15个版本
0.1.5 | 2024年6月29日 |
---|---|
0.1.4 | 2024年6月25日 |
0.1.2 | 2024年5月18日 |
0.1.1 | 2024年4月25日 |
0.0.5 | 2023年12月22日 |
#961 在 魔法豆
24,080 每月下载量
用于 66 个crate(16个直接使用)
110KB
2.5K SLoC
starknet-types-core
Starknet的核心类型表示。
概述
The starknet-types-core
crate provides
- 用于Cairo和STARK证明的通用
Felt
(域元素)类型。它被创建出来,以减少Starknet Rust生态系统中的碎片化,通过提供对Felt
类型的标准化表示。
特性
始终在线
- 标准化的
Felt
类型:通过使用我们标准化的Felt
类型来简化您的代码库。针对性能优化:已对Felt
类型进行性能优化。 - 支持无_std ✅
Serde
- 为
Felt
类型提供序列化和反序列化实现 - 支持无_std ✅
Parity Scale Codec
- 在Parity序列化框架内为
Felt
类型提供序列化和反序列化实现 - 支持无_std ✅
Arbitrary
- 为
Felt
类型提供 Arbitrary 实现
Curve
- 添加了
AffinePoint
和ProjectivePoint
结构,它们代表椭圆曲线上的点,用于执行椭圆曲线操作。 - 支持无_std ✅
Hash
- 实现了Felts和Felts数组的Pedersen哈希功能
示例
以下是使用starknet-types-core
类型的示例
let felt = Felt::from(18);
let projective_point = ProjectivePoint::new(Felt::from(0), Felt::from(1), Felt::from(0));
let affine_point = AffinePoint::new(Felt::from(0), Felt::from(1)).unwrap();
使用方法
通过将以下内容添加到您的Cargo.toml
中,将starknet-types-core
包含到您的库中
[dependencies]
starknet-types-core = { version = "0.0.3", git = "https://github.com/starknet-io/types-rs", default-features = false, features = [
"alloc",
"serde",
"arbitrary",
"curve",
"hash",
] }
从源码构建
克隆仓库并导航到starknet-types-core目录。然后运行
cargo build --release
测试
克隆仓库并导航到starknet-types-core目录。然后运行
cargo test
贡献
欢迎贡献!请阅读我们的贡献指南以获取更多信息。
许可证
本存储库采用MIT许可证,有关更多信息,请参阅LICENSE。
依赖项
~1.2–2MB
~42K SLoC