#interface #introspection #generate #cairo #src5 #erc165

bin+lib src5-rs

从 Cairo 特性生成 SRC5 接口 ids 的工具

3 个稳定版本

2.0.0 2024年2月13日
1.0.1 2023年6月26日
0.1.2 2023年6月23日
0.1.1 2023年6月23日
0.1.0 2023年6月23日

#38 in #cairo

每月 23 次下载

MIT 许可证

40KB
985

src5-rs

Crates.io

概述

从 Cairo 源代码生成 SRC5 接口 ids 的工具,使用 Cairo 源代码作为输入。

安装

Cargo

  • 按照此指南安装 rust 工具链以安装 cargo。
  • 运行 cargo install src5-rs

用法

运行 src5_rs parse <PATH_TO_CAIRO_FILE> 生成文件中所有非泛型特质的接口 ids。

例如,将以下代码复制到您的文件系统中

trait IAccount {
    fn __execute__(calls: Array<Call>) -> Array<Span<felt252>>;
    fn __validate__(calls: Array<Call>) -> felt252;
    fn __validate_declare__(class_hash: felt252) -> felt252;
    fn is_valid_signature(message: felt252, signature: Array<felt252>) -> u32;
    fn supports_interface(interface_id: u32) -> bool;
}

注意,您不需要定义或导入在 corelib 中定义的类型,但必须在文件中定义自定义 Struct 和 Enum。

运行解析子命令,传入文件路径作为参数

src5_rs parse path/to/the/file

您应该在终端中看到以下输出

许可证

在 MIT 许可证下授权。

依赖项

~27–39MB
~559K SLoC