54 个版本 (35 个主要更新)

37.0.0 2024 年 7 月 18 日
36.0.0 2024 年 7 月 12 日
35.0.0 2024 年 6 月 24 日
34.0.0 2024 年 5 月 23 日
2.0.0-alpha.52020 年 3 月 24 日

#1356 in 魔法豆

Download history 1835/week @ 2024-04-16 1935/week @ 2024-04-23 1921/week @ 2024-04-30 1565/week @ 2024-05-07 2021/week @ 2024-05-14 2223/week @ 2024-05-21 2686/week @ 2024-05-28 2388/week @ 2024-06-04 2102/week @ 2024-06-11 2175/week @ 2024-06-18 2659/week @ 2024-06-25 916/week @ 2024-07-02 1846/week @ 2024-07-09 2418/week @ 2024-07-16 2208/week @ 2024-07-23 2032/week @ 2024-07-30

8,618 每月下载量
用于 26 个crate (17 直接)

Apache-2.0

2MB
37K SLoC

sudo 模块

概述

Sudo 模块允许单个账户(称为“sudo key”)执行需要Root调用或指定一个新账户来替换它们的可调用函数。同一时间只能有一个账户作为sudo key。

接口

可调用函数

只有sudo key可以调用Sudo模块中的可调用函数。

  • sudo - 对可调用函数进行Root调用。
  • set_key - 将新账户指定为sudo key。

用法

执行特权函数

Sudo模块本身不打算在其它模块中使用。相反,你可以在其他模块中构建“特权函数”(即需要Root来源的函数)。你可以通过使用sudo键账户调用sudo来执行这些特权函数。特权函数不能通过外部直接执行。

Origin类型文档中了解更多关于特权函数和Root来源的信息。

简单代码片段

这是一个公开特权函数的模块示例

#[frame_support::pallet]
pub mod pallet {
    use super::*;
    use frame_support::pallet_prelude::*;
    use frame_system::pallet_prelude::*;

    #[pallet::pallet]
    pub struct Pallet<T>(_);

    #[pallet::config]
    pub trait Config: frame_system::Config {}

    #[pallet::call]
    impl<T: Config> Pallet<T> {
        #[pallet::weight(0)]
        pub fn privileged_function(origin: OriginFor<T>) -> DispatchResult {
            ensure_root(origin)?;

            // do something...

            Ok(())
        }
    }
}

创世配置

Sudo模块依赖于GenesisConfig。你需要设置一个初始超级用户账户作为sudokey

许可证:Apache-2.0

依赖关系

~17–32MB
~539K SLoC