16个版本

0.4.5 2024年6月26日
0.4.2 2024年2月17日
0.4.0-alpha.42023年12月5日
0.4.0-alpha.22023年11月22日
0.2.0 2023年5月31日

#7 in #avalanche

Download history 3/week @ 2024-05-17 2/week @ 2024-05-24 4/week @ 2024-05-31 4/week @ 2024-06-07 126/week @ 2024-06-14 136/week @ 2024-06-21 16/week @ 2024-06-28 14/week @ 2024-07-05 13/week @ 2024-07-19 44/week @ 2024-07-26

57 每月下载量
用于 ash_cli

BSD-3-Clause

170KB
3.5K SLoC

ash_sdk

ash-rs 是用于 AvalancheAsh 工具的 Rust SDK。

它提供了比 avalanche-types-rs 更高级别的抽象,并附带一个简化与 Avalanche 网络交互的 CLI。

有偏见的结构体布局

该库提供了一种有偏见的布局来表示 Avalanche 网络、子网和区块链。布局可以表示如下

AvalancheNetwork
└── subnets
    ├── AvalancheSubnet 1
    │   ├── blockchains
    │   │   ├── AvalancheBlockchain 1
    │   │   └── AvalancheBlockchain 2
    │   └── validators
    │       ├── AvalancheSubnetValidator 1
    │       └── AvalancheSubnetValidator 2
    └── AvalancheSubnet 2
        ├── blockchains
        │   ├── AvalancheBlockchain 3
        │   └── AvalancheBlockchain 4
        └── validators
            ├── AvalancheSubnetValidator 1
            └── AvalancheSubnetValidator 2

Avalanche 网络

AvalancheNetwork 是一个顶级结构体,表示一个 Avalanche 网络。它包含其 AvalancheSubnet 的列表。大多数更新方法都实现在此结构体上(例如,update_subnetupdate_blockchains 等)。

Avalanche 子网和验证者

AvalancheSubnet 是一个表示 Avalanche 子网的结构体。它包含所有子网元数据、其 AvalancheBlockchain 的列表以及其验证者(作为 AvalancheSubnetsValidator)的列表。

Avalanche 区块链

AvalancheBlockchain 是一个表示 Avalanche 区块链的结构体。它包含所有区块链元数据。

Avalanche 节点

AvalancheNode 是一个表示 Avalanche 节点的结构体。一个 AvalancheNode 并不直接与一个 AvalancheNetwork 相关联,因为它的元数据直接从其端点检索。

配置

该库依赖于包含已知 Avalanche 网络列表的 YAML 配置文件。对于每个网络,至少需要提供 P-Chain 配置(在主网络中)及其 ID 和 RPC 端点。所有其他子网/区块链都将从 P-Chain 检索/丰富。

默认配置已嵌入库中(见conf/default.yaml)并包含以下网络

  • mainnetfuji使用默认的Avalanche公共端点
  • mainnet-ankrfuji-ankr使用Ankr的Avalanche公共端点
  • mainnet-blastfuji-blast使用Blast的Avalanche公共端点

配置示例

# Default configuration of the mainnet network
avalancheNetworks:
  - name: mainnet
    subnets:
      - id: 11111111111111111111111111111111LpoYY
        controlKeys: []
        threshold: 0
        blockchains:
          - id: 11111111111111111111111111111111LpoYY
            name: P-Chain
            vmType: PlatformVM
            rpcUrl: https://api.avax.network/ext/bc/P
          - id: 2q9e4r6Mu3U68nU1fYjgbR6JvwrRx36CohpAX5UQxse55x1Q5
            name: C-Chain
            vmID: mgj786NP7uDwBCcq6YwThhaN8FLyybkCa4zBWTQbNgmK6k9A6
            vmType: Coreth
            rpcUrl: https://api.avax.network/ext/bc/C/rpc
          - id: 2oYMBNV4eNHyqk2fjjV5nVQLDbtmNJzq5s3qs3Lo6ftnC6FByM
            name: X-Chain
            vmID: jvYyfQTxGMJLuGWa55kdP2p2zSUYsQ5Raupu4TW34ZAUBAbtq
            vmType: AvalancheVM
            rpcUrl: https://api.avax.network/ext/bc/X

注意:您可以使用ash conf init命令通过CLI生成配置文件。

用法

可以通过查看CLI代码来查看如何使用库的示例。

模块

有关更多详细信息,请参阅docs.rs文档

依赖项

~48–66MB
~1.5M SLoC