#blockchain #smart-contracts #mocking #transaction #framework #executor #facilitate

novax-executor

NovaX框架的一部分,此crate简化了在区块链上对智能合约执行事务和查询的操作

35个版本

0.1.8 2024年8月23日
0.1.7-beta.22024年7月17日
0.1.7-beta.12024年5月31日
0.1.4 2024年3月31日
0.0.24 2023年11月26日

#28 in #facilitate

Download history 19/week @ 2024-05-06 10/week @ 2024-05-13 24/week @ 2024-05-20 182/week @ 2024-05-27 32/week @ 2024-06-03 24/week @ 2024-06-10 7/week @ 2024-06-17 5/week @ 2024-06-24 109/week @ 2024-07-15 18/week @ 2024-07-22 27/week @ 2024-07-29 219/week @ 2024-08-05 217/week @ 2024-08-12 465/week @ 2024-08-19

934 每月下载量
用于 5 个crate(2直接使用)

GPL-3.0-only

275KB
5.5K SLoC

novax-executor是一个crate,旨在简化Rust应用程序与区块链网络之间的交互。其主要用途是供其他“novax”crate,如“novax”使用,但它以开发者可以在测试期间用于模拟的方式设计。它抽象了查询区块链、执行事务和部署智能合约的复杂性,从而为开发者提供了一个简化的接口。

此crate提供了几个核心抽象和实现,用于与区块链交互

  • 执行器抽象:

    • QueryExecutor:一个异步特质,用于在区块链上执行查询。
    • TransactionExecutor:一个异步特质,用于在区块链上执行事务。
    • DeployExecutor:一个异步特质,用于在区块链上部署智能合约。
  • 网络交互:

    • BlockchainInteractor:一个特质,用于抽象区块链交互以允许模拟。
    • BlockchainProxy:一个特质,抽象通信代理以允许模拟,提供与区块链网关交互的方法。
    • ProxyQueryExecutorQueryNetworkExecutor:在区块链上执行查询的实现。
    • NetworkExecutorBaseTransactionNetworkExecutor:在区块链上执行事务的实现。
  • 模拟框架:

    • MockExecutor:一个结构,用于在测试期间使用MultiversX Rust测试框架模拟区块链交互。
    • StandardMockExecutorMockExecutor的扩展,提供标准模拟行为。
  • 虚拟框架:

    • DummyExecutorDummyTransactionExecutorDummyDeployExecutor:实现,用于在测试和开发中无需实际区块链交互的情况下辅助。
  • 实用类型和特质:

    • SendableTransactionSendableTransactionConvertible:方便交易处理的实用类型和特性。
  • 错误处理:

    • ExecutorError:在区块链交互过程中可能出现的各种错误的全面枚举,包括数据错误、网络查询错误和模拟部署错误。

此包提供的抽象层旨在使实现模拟或虚拟执行器变得容易,从而可以在无需实时区块链网络的情况下进行彻底的测试和开发。这对于开发早期阶段或在需要精确控制区块链状态或行为的测试场景中特别有用。

该架构还允许轻松扩展执行器框架以支持额外的区块链网络或自定义交互模式。

特性

  • async-trait:此包使用 async-trait 包以允许异步特性方法,从而实现异步区块链交互。

错误处理

novax-executor 中的错误处理全面且旨在涵盖在交互区块链时可能出现的各种问题。请参阅 ExecutorErrorNetworkQueryErrorMockDeployError 了解更多详情。

依赖

~19–32MB
~532K SLoC