#host #contract #environment #env #soroban #guest #val

bin+lib soroban-env-host

Soroban 合约主机环境

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 2022 年 7 月 29 日

#113 in 魔法豆

Download history 2577/week @ 2024-05-01 2531/week @ 2024-05-08 2410/week @ 2024-05-15 1690/week @ 2024-05-22 2295/week @ 2024-05-29 2573/week @ 2024-06-05 3510/week @ 2024-06-12 2529/week @ 2024-06-19 2124/week @ 2024-06-26 1316/week @ 2024-07-03 3536/week @ 2024-07-10 2814/week @ 2024-07-17 2833/week @ 2024-07-24 3457/week @ 2024-07-31 2186/week @ 2024-08-07 1311/week @ 2024-08-14

10,589 每月下载量
53 个crate中使用 (14 个直接使用)

Apache-2.0

2MB
41K SLoC

rs-soroban-env

Rust 合约环境接口和 (可选) Soroban 主机实现。

soroban-env-common》crate 包含了智能合约客户端和主机之间共享环境接口的元素:定义可用环境函数的 Env trait 以及可以通过 WASM 调用约定进行传递的 Val 类型。此外,还包括了 Val 子类型的封装:如 ObjectSymbolError 等。

soroban-env-guest》crate 包含了环境接口的客户端 占位实现,称为 Guest,它依赖于由主机实现提供的 extern fns。这可以在提供 extern fns 的 WASM 运行时中使用。

soroban-env-host》crate 包含了环境接口的主机端 完整实现,称为 Host。这可以在实际的区块链主机中使用,或者用于 SDK 中的本地测试。


lib.rs:

此crate主要存在是为了提供 Soroban [Host] 类型,这是客户端合约代码与运行在其内的主机之间的 [Env] 接口的 实现

此crate还导出了 [soroban_env_common] crate 的所有内容,以供主机(或合约本地测试)代码使用。这里可见的大部分类型和模块定义实际上是在公共crate中定义的。

在本地单元测试合约(不使用wasm)时,开发者可能还希望启用"testutils"功能,该功能允许通过ID在[Host]上注册其他测试合约。

类型[Host]提供了一些比仅[Env]特质更多的便利,包括

  • 负责在CPU和内存方面衡量和限制执行成本的[budget]模块。
  • 负责在合约及其持久化存储之间提供接口的[storage]模块。

依赖关系

~16–44MB
~715K SLoC