#substrate #module #pallet #run-time #dispatch #calls #root

no-std pallet-mandate

一个用于帮助模块调度根调用的 Substrate 托盘

11 个版本 (稳定)

2.0.8 2021 年 3 月 5 日
2.0.7 2020 年 9 月 28 日
2.0.6-rc62020 年 8 月 21 日
2.0.4 2020 年 5 月 26 日
2.0.0 2020 年 3 月 23 日

#43#调度

每月 50 次下载

自定义许可

7KB

授权托盘

一个 Substrate 托盘,允许从运行时模块(如 collective)使用 sudo 函数。

Screen Shot 2020-02-13 at 12 30 21 PM

用法

添加依赖

编辑 runtime/Cargo.toml 并添加以下内容

[dependencies.mandate]
default-features = false
version = '2.0.0'
package = "pallet-mandate"

然后将 mandate/std 添加到 [features] 部分,它应该看起来像这样

[dependencies.mandate]
default-features = false
version = '2.0.0'
package = "pallet-mandate"

[features]
default = ['std']
std = [
    # Your substrate modules /std calls here
    # ...

    'mandate/std',
]

将模块添加到您的运行时

特质实现

您可以使用 ExternalOrigin 类型来指定谁可以向模块调度调用。例如,您可以与 collective 一起使用。

impl mandate::Trait for Runtime {
    type Proposal = Call;

    // A majority of the committee can dispatch root calls
    type ExternalOrigin =
        collective::EnsureProportionAtLeast<_1, _2, AccountId, TechnicalCollective>;
}

添加模块

construct_runtime 宏调用中,只需添加 Mandate: mandate::{Module, Call},它应该看起来像这样

construct_runtime!(
    pub enum Runtime where
        Block = Block,
        NodeBlock = Block,
        UncheckedExtrinsic = UncheckedExtrinsic
    {
    	// Your modules here
    	// ...
        Mandate: mandate::{Module, Call},
    }
);

依赖项

~8–17MB
~237K SLoC