1 个稳定版本

3.0.0 2022年3月23日

#11#委托者

MIT 许可证

89KB
111

委托者智能合约

委托者智能合约是我们展示在链上执行其他智能合约的案例。

它总共由 4 个不同的智能合约组成

  • 委托者(根):将调用委托给 Adder 或 Subber 智能合约
  • 加法器:增加 Accumulator 智能合约中的值
  • 减法器:减少 Accumulator 智能合约中的值
  • 累加器:拥有一个简单的 i32 值,可以被增加或减少

为了测试这个智能合约组合,您需要执行以下步骤。

您可以使用我们的 合约 UI 上传合约。如果您想本地测试,我们的 substrate-contracts-node 是启动本地智能合约链的一个简单方法。

  1. 使用 ./build-all.sh 脚本编译所有合约。您将在 target/ink/ 文件夹中收到所有智能合约的相应 .contract

    • target/ink/delegator.contract
    • target/ink/adder/adder.contract
    • target/ink/subber/subber.contract
    • target/ink/accumulator/accumulator.contract
  2. 将 Accumulator、Adder 和 Subber 的 .contract 包上传到链上。

  3. 注意记录上传合约的相应代码哈希。您可以从上传合约的页面复制合约哈希 [链接]

  4. 给定所有代码哈希和起始值,实例化 Delegator 智能合约。确保捐赠足够大(如果您使用我们的 substrate-contracts-node,它为 1000000)。Delegator 智能合约将为您实例化其他智能合约。

  5. 现在您可以使用 Delegator 智能合约提供的操作。具体来说,使用 delegate 来委托调用 Adder 或 Subber,以增加或减少 Accumulator 智能合约中存储的值,以及使用 switch 来切换当前委托的智能合约。初始委托的智能合约是 Adder。


    __注意:__
    根据您的Substrate版本,您可能会遇到UI中预填充的gas估计值的一个bug,并出现错误ExtrinsicFailed: OutOfGas。作为解决方案,请手动设置最大允许的gas(例如,设置为5000)。

依赖项

~5–7MB
~128K SLoC