17个稳定版本
| 新 21.2.1 | 2024年8月20日 |
|---|---|
| 21.2.0 | 2024年7月16日 |
| 21.1.2 | 2024年6月24日 |
| 20.3.0 | 2024年3月15日 |
| 0.0.3 |
|
#276 in 神奇豆子
10,884 每月下载量
用于 56 个crate(4个直接使用)
195KB
4K SLoC
rs-soroban-env
Rust合约环境接口和(可选)Soroban主机实现。
该soroban-env-commoncrate包含智能合约客户端和主机之间共享环境接口的元素:定义可用环境函数的Envtrait以及可以通过WASM调用约定传递的Val类型。此外,还包括对Val子类型的轻量级包装:Object、Symbol、Error等。
该soroban-env-guestcrate包含环境接口的客户端存根实现,称为Guest,它依赖于主机实现提供的extern fn。这可以在提供extern fn的WASM运行时中使用。
该soroban-env-hostcrate包含环境接口的主机端完整实现,称为Host。这可以在实际的区块链主机中使用,或者在SDK中本地测试。
lib.rs:
环境通用crate包含三组类型
- Val类型,一种64位值类型,是几种不同类型(数字、布尔值、符号、对象引用)的联合,通过精心位打包进行编码。
- 包含[Val]的特定、已知联合状态的包装类型([Object],[Symbol],[Error])。这些也是64位值,但提供针对联合状态特定的方法(例如,[Symbol]将与Rust字符串类型进行互转)。
- 描述客户端代码和主机代码之间接口的[Env]特质。换句话说,
Env描述了一组必须在合同主机中实现并由客户端(或SDK)调用的主机函数。[Env]特质上的方法只能传递64位值,通常是[Val]或包装类型之一。
该包还包含在[Val]类型和XDR类型之间进行互转的函数,并重新导出[xdr]模块下的[stellar_xdr]中的XDR定义。
依赖项
~6–32MB
~507K SLoC