#xdr #define #contract #set #type #codec #decoding

no-std bin+lib stellar-xdr

Stellar XDR 类型、编码和解码

8 个稳定版本

21.2.0 2024年7月15日
21.0.1 2024年4月23日
20.1.0 2024年2月1日
20.0.2 2023年12月18日
0.0.1 2022年7月29日

#1369魔法豆

Download history 3146/week @ 2024-04-25 3024/week @ 2024-05-02 3019/week @ 2024-05-09 2801/week @ 2024-05-16 1971/week @ 2024-05-23 3348/week @ 2024-05-30 2785/week @ 2024-06-06 3863/week @ 2024-06-13 2916/week @ 2024-06-20 2413/week @ 2024-06-27 2090/week @ 2024-07-04 4250/week @ 2024-07-11 3158/week @ 2024-07-18 3719/week @ 2024-07-25 4028/week @ 2024-08-01 2377/week @ 2024-08-08

13,911 每月下载量
用于 71 个crate(直接使用31个)

Apache-2.0

4.5MB
101K SLoC

stellar-xdr

包含用于处理Stellar XDR的类型和功能的库和CLI。

类型由托管在stellar/stellar-xdr的XDR定义生成,使用xdrgen

用法

要使用库,请在您的toml中包含

stellar-xdr = { version = "...", default-features = true, features = [] }

功能

该crate具有多个功能、功能级别、辅助功能和XDR通道。

默认功能:stdcurr

功能级别

  1. std – std功能提供所有功能(类型、编码、解码),是默认功能集。
  2. alloc – alloc功能使用BoxVec类型进行递归引用和数组,如果启用了std功能,则会自动启用。使用默认的全局分配器。将在#39中添加对自定义分配器的支持。不存在编码或解码能力,只有类型。将在#46中添加编码和解码能力。
  3. 如果未启用std或alloc,递归和数组类型需要静态生存期值。没有编码或解码能力。编码和解码能力将在#47中添加。

辅助功能

  1. base64 – 启用对base64编码和解码的支持。
  2. serde – 启用对使用serde crate序列化和反序列化类型的支持。
  3. serde_json – 启用对serde_json特定内置功能的支持。通常不需要使用serde_json中的类型,仅当需要使用依赖于serde_json的实用函数时才必要。
  4. arbitrary – 启用与arbitrary crate的互操作支持。
  5. hex – 启用对某些类型字符串表示中的十六进制支持。在启用serde时自动启用。
  6. schemars – 启用生成JSON Schema的支持。(实验性)

标记为实验性的功能可能会随时消失,也可能随时有破坏性更改,或者可能是完整的实现。

XDR通道

  • curr – 从stellar/stellar-xdr curr分支构建的XDR类型。
  • next – 从stellar/stellar-xdr next分支构建的XDR类型。

如果启用单个通道,则类型在crate的根目录中可用。如果启用多个通道,则它们在crate根目录的模块中可用。

CLI

要使用CLI

cargo install --locked stellar-xdr --version ... --features cli

示例

解析TransactionEnvelope

stellar-xdr decode --type TransactionEnvelope << -
AAAAA...
-

从合约中解析ScSpecEntry

stellar-xdr +next decode --type ScSpecEntry --input stream-base64 --output json-formatted << -
AAAAA...
-

从桶文件中解析BucketEntry封装流

stellar-xdr decode --type BucketEntry --input stream-framed --output json-formatted bucket.xdr

依赖关系

~0.8–2.1MB
~44K SLoC