#stark #zkp #cairo

no-std starknet-types-core

Starknet的核心类型表示

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魔法豆

Download history 8690/week @ 2024-04-16 7977/week @ 2024-04-23 7682/week @ 2024-04-30 4509/week @ 2024-05-07 3595/week @ 2024-05-14 4716/week @ 2024-05-21 5163/week @ 2024-05-28 5264/week @ 2024-06-04 3983/week @ 2024-06-11 5305/week @ 2024-06-18 6184/week @ 2024-06-25 6258/week @ 2024-07-02 4349/week @ 2024-07-09 5754/week @ 2024-07-16 5986/week @ 2024-07-23 6992/week @ 2024-07-30

24,080 每月下载量
用于 66 个crate(16个直接使用)

MIT 协议

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

  • 添加了 AffinePointProjectivePoint 结构,它们代表椭圆曲线上的点,用于执行椭圆曲线操作。
  • 支持无_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