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.5 | 2020 年 3 月 24 日 |
#1356 in 魔法豆
8,618 每月下载量
用于 26 个crate (17 直接)
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