23 个版本 (破坏性更新)

0.37.0 2024 年 5 月 28 日
0.35.3 2024 年 4 月 11 日
0.35.0 2024 年 3 月 21 日
0.33.0 2023 年 12 月 7 日
0.22.0 2022 年 6 月 20 日

#2#subxt

Download history 5938/week @ 2024-05-06 5941/week @ 2024-05-13 4958/week @ 2024-05-20 5486/week @ 2024-05-27 6469/week @ 2024-06-03 5346/week @ 2024-06-10 5445/week @ 2024-06-17 6240/week @ 2024-06-24 5005/week @ 2024-07-01 6220/week @ 2024-07-08 7549/week @ 2024-07-15 6909/week @ 2024-07-22 7426/week @ 2024-07-29 7388/week @ 2024-08-05 7070/week @ 2024-08-12 7730/week @ 2024-08-19

每月 29,964 次下载
用于 66 软件包(直接使用 7 个)

Apache-2.0 OR GPL-3.0

145KB
3K SLoC

subxt · build 最新版本 文档

Subxt 是一个用于与基于 Substrate 的节点进行交互的 Rust 和 WebAssembly 库。它能够

  • 提交外部交易(这个名字就是这样来的)。
  • 订阅区块,从区块中读取外部交易和相关事件。
  • 读取并迭代存储值。
  • 从元数据中读取常量和自定义值。
  • 调用运行时 API,返回结果。
  • 通过安全、静态类型接口或动态接口执行上述所有操作,当需要灵活性时。
  • 编译为 WASM 并在浏览器中完全运行。
  • 通过 subxt-core 软件包在 #[no_std] 环境中执行所有这些操作。
  • 使用内置的轻客户端 (smoldot) 与链进行交互。

用法

查看 示例 文件夹或 示例 文件夹,以获取各种较小的或较大的 subxt 用法示例,或 阅读指南 了解更多信息。

从Substrate节点下载元数据

使用subxt-cli工具从节点下载目标运行时的元数据。

  1. 安装
cargo install subxt-cli
  1. 将编码后的元数据保存到文件
subxt metadata -f bytes > metadata.scale

默认查询的是默认的本地运行节点的元数据,地址为https://127.0.0.1:9933/。如果查询不同的节点,则metadata命令接受一个--url参数。

Subxt 文档

有关使用subxt的更多详细信息,请访问文档

集成测试

大多数测试需要一个运行的substrate节点进行通信。这是通过为每个测试启动一个substrate节点实例来实现的。它需要在您的路径上有一个最新的substrate可执行文件。

这可以通过cargo从源代码安装

cargo install --git https://github.com/paritytech/polkadot-sdk staging-node-cli --force

实际使用

请通过PR将您的项目添加到此列表。

  • cargo-contract CLI用于与Wasm智能合约交互。
  • xcm-cli CLI用于提交XCM消息。
  • phala-pherry Phala区块链和链下安全工作者之间的中继器。
  • crunch CLI用于在每代或X小时批量索赔基于substrate的链的质押奖励。
  • interbtc-clients interBTC parachain的客户端实现;特别是保险库/中继器和预言机。
  • tidext 具有强堡签名的Tidechain客户端。
  • staking-miner-v2 提交NPos选举方案并获得奖励。
  • polkadot-introspector 用于监控Polkadot节点的工具。
  • ink! 使用subxt的智能合约语言,允许开发者对他们的合约进行端到端测试
  • Chainflip 用于原生跨链交易的去中心化交易所。

替代方案

substrate-api-client提供类似的功能。

许可证

此存储库中的所有代码均在GPL-3.0Apache-2.0许可证下双许可。有关更多详细信息,请参阅许可证文件

如果您对我们的产品的许可有任何疑问,请联系我们


lib.rs:

表示由基于substrate的节点提供的元数据。此表示形式已针对Subxt和相关crate进行了优化,且独立于节点可以提供的不同版本的元数据。

通常,这可以通过以下方式构建:

  1. 调用Metadata::decode()给定从节点获得的某些元数据字节(这使用codec::Decode)。
  2. 获取frame_metadata::RuntimeMetadataPrefixed,然后使用.try_into()将其转换为Metadata

依赖项

~6MB
~91K SLoC