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-common
crate包含智能合约客户端和主机之间共享环境接口的元素:定义可用环境函数的Env
trait以及可以通过WASM调用约定传递的Val
类型。此外,还包括对Val
子类型的轻量级包装:Object
、Symbol
、Error
等。
该soroban-env-guest
crate包含环境接口的客户端存根实现,称为Guest
,它依赖于主机实现提供的extern fn。这可以在提供extern fn的WASM运行时中使用。
该soroban-env-host
crate包含环境接口的主机端完整实现,称为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