70 个版本 (10 个稳定版)

2.0.0 2023年11月15日
1.8.0 2023年9月12日
1.7.2 2023年8月30日
1.7.0 2023年6月28日
0.1.0 2020年8月24日

#1081 in 神奇豆子

Download history 136/week @ 2024-03-11 71/week @ 2024-03-18 42/week @ 2024-03-25 238/week @ 2024-04-01 29/week @ 2024-04-08 59/week @ 2024-04-15 41/week @ 2024-04-22 25/week @ 2024-04-29 31/week @ 2024-05-06 19/week @ 2024-05-13 11/week @ 2024-05-20 33/week @ 2024-06-03 21/week @ 2024-06-10 22/week @ 2024-06-17 12/week @ 2024-06-24

每月下载量 88 次
8 crates 中使用

GPL-3.0-only

720KB
18K SLoC

clarity-repl

Clarity 是一种 可判定 的智能合约语言,由 Blockstack 设计,旨在优化可预测性和安全性。智能合约允许开发者在区块链上编码关键业务逻辑。

一种编程语言是可判定的,如果你能从代码本身确定程序将做什么。Clarity 故意设计为图灵不完整,以避免 Turing complexity。这允许对给定智能合约的整个调用图进行完全的静态分析。此外,我们支持类型和类型检查器,可以消除整个类别的错误,如意外的类型转换、重入性错误和读取未初始化的值。

读取-评估-打印循环 (REPL),也称为交互式顶层或语言外壳,是一个简单的交互式计算机编程环境,它接受单个用户输入(即单个表达式),评估(执行)它们,并将结果返回给用户;在REPL环境中编写的程序是分步执行的。

screenshot

快速开始

从 cargo 构建

cargo install clarity-repl

从源代码构建 CLI

第一步是确保你已经安装了 Rust 和支持软件。

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

然后,你可以克隆此仓库

git clone https://github.com/hirosystems/clarity-repl.git

cd clarity-repl

默认情况下,您将处于我们的开发分支,develop,其中包含尚未发布的代码。如果您计划提交任何代码更改,那么这个分支适合您。如果您只需要最新稳定版本,请切换到主分支

git checkout main

然后进行构建和安装

cargo install --bin clarity-repl --path .

然后可以使用以下命令运行REPL

clarity-repl

构建WASM库

cargo install wasm-pack
wasm-pack build --target web --release -- --no-default-features --features wasm

初始功能集

  • 评估清晰度表达式(算术、逻辑、哈希函数)
  • 显示格式化错误
  • 能够生成WASM构建
  • 完全支持持久化数据(定义映射、定义数据变量、定义可变代币、定义非可变代币)

其他期望的功能(非详尽,非优先级排序)

  • 显示文档
  • 显示成本分析
  • 显示事件
  • 当检测到公共函数或特质时,将片段保存为可contract-call?的合约
  • 能够播种STX余额
  • 在浏览器中测试WASM构建
  • 能够在Jupyter笔记本中编写Clarity合约
  • 更简单的安装(通过brew等)

依赖项

~8–31MB
~458K SLoC