【问题标题】:Dispatching a Function Defined in Another Substrate FRAME Pallet调度另一个 Substrate FRAME Pallet 中定义的函数
【发布时间】:2020-07-03 15:15:00
【问题描述】:

我熟悉实现此问题标题中描述的目标的一种机制:在调用写在另一个托盘中的外部函数时,传递一个写在自己的托盘中的可调度调用作为参数,如 Sudo托盘或实用托盘中定义的多重签名功能。跨托盘调度功能的其他选项是什么?具体来说,我想将一个托盘 Pallet A 作为 Trait 绑定类型包含在另一个托盘 Pallet B 中,然后从 Pallet A 中调度一个在 Pallet B 中定义的函数。

【问题讨论】:

    标签: substrate


    【解决方案1】:

    仅当您需要将源/过滤器控制为真正任意的可调度函数时,调度诸如 Utility 或 Sudo 托盘之类的调用的行为才有意义。

    如果您有两个特定的托盘想要相互交互,使用 Trait 将它们耦合是正确的方法。您可以通过查看 ChangeMembers 特征以及它如何在诸如集体、会员、社会、Phragmen 选举等托盘中使用来在 Substrate master 中看到这种行为...

    此外,您可以查看更大的特征,例如Currency,并看到它基本上通过Currency::transfer 公开了transfer“外部”,允许任何托盘在其自己的上下文中执行此功能。

    总结一下:

    • 会建议你继续前进
    • 不建议您将 call.dispatch 用于此类特定的托盘与托盘交互

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-11
      • 1970-01-01
      • 2018-04-10
      • 1970-01-01
      • 2015-11-05
      相关资源
      最近更新 更多