#编译 #sierra #版本 #编译 #casm #工具 #永恒存在

bin+lib universal-sierra-compiler

通用-Sierra-编译器是用于 Sierra 编译的工具。它可以将任何永恒存在的 Sierra 版本编译成 CASM。

4 个版本 (2 个稳定)

2.2.0 2024 年 8 月 2 日
2.2.0-rc.12024 年 7 月 10 日
2.2.0-rc.02024 年 7 月 2 日
2.1.0 2024 年 3 月 22 日

#2 in #casm

Download history 116/week @ 2024-05-04 34/week @ 2024-05-11 48/week @ 2024-05-18 40/week @ 2024-05-25 60/week @ 2024-06-01 57/week @ 2024-06-08 74/week @ 2024-06-15 181/week @ 2024-06-22 255/week @ 2024-06-29 221/week @ 2024-07-06 170/week @ 2024-07-13 175/week @ 2024-07-20 320/week @ 2024-07-27 318/week @ 2024-08-03 140/week @ 2024-08-10 62/week @ 2024-08-17

844 每月下载
用于 4 个 crate (3 直接)

MIT 许可证

1MB
289

通用-Sierra-编译器

Crates.io Version

通用-Sierra-编译器是用于 Sierra 编译的工具/crate。它可以将任何永恒存在的 Sierra 版本编译成 CASM。

支持的 Sierra 版本
1.6.0
1.5.0
~1.4.0
~1.3.0
~1.2.0
1.1.0
1.0.0
0.1.0

安装

要安装 universal-sierra-binary 的最新稳定版本,请运行

curl -L https://raw.githubusercontent.com/software-mansion/universal-sierra-compiler/master/scripts/install.sh | sh

或者,要将 USC 作为 Rust 依赖项使用,只需将其放入您的 Cargo.toml 中,如下所示

universal-sierra-compiler = "2.1.0"

您几乎总是想安装最新稳定版本。在极少数情况下,如果存在带有新不稳定 Sierra 版本的预发布版本,并且您想使用它,请运行以下命令并指定所需的预发布版本

curl -L https://raw.githubusercontent.com/software-mansion/universal-sierra-compiler/master/scripts/install.sh | sh -s -- v2.0.0-rc.0

📝 注意

如果脚本无法将已安装的二进制文件添加到 PATH,它将打印手动添加的说明。

作为二进制文件使用

命令行工具

该工具由两个子命令组成

  • compile-contract
  • compile-raw

第一个子命令编译 Starknet 合同的 Sierra,而第二个子命令编译纯 Cairo 代码的 Sierra。

compile-contract 子命令

此子命令的输入是包含合同 Sierra(cairo_lang_starknet_classes::contract_class::ContractClass)的文件的路径,格式为 json

$ universal-sierra-compiler \
  compile-contract \
  --sierra-path ./path/to/sierra.json
  
{"bytecode": ...}

📝 注意

请注意,输出是 JSON 格式。

要自动保存 CASM,请传递 --output-path 参数

$ universal-sierra-compiler \
    compile-contract \
      --sierra-path ./path/to/sierra.json
      --output-path ./path/to/casm.json

compile-raw 子命令

此子命令的输入是包含 Sierra 程序(cairo_lang_sierra::program::Program)的文件的路径,格式为 json

$ universal-sierra-compiler \
    compile-raw \
      --sierra-path ./path/to/sierra.json
  
{"assembled_cairo_program": ...}

📝 注意

请注意,输出是 JSON 格式。

要自动保存已编译的cairo程序,请传递--output-path参数

$ universal-sierra-compiler \
    compile-raw \
      --sierra-path ./path/to/sierra.json
      --output-path ./path/to/casm.json

作为库使用

库crate导出两个函数

  • compile_contract(serde_json::Value) -> Result<serde_json::Value>
  • compile_raw(serde_json::Value) -> Result<serde_json::Value>

它们与它们的CLI对应函数执行相同的操作。然而,它们接受整个程序作为参数,精确地是一个json_serde::Value。返回值是编译后的程序,位于Result<serde_json::Value>中。

依赖项

~24–35MB
~513K SLoC