Appearance
访问控制
本页面列出了处理权限、所有权和访问控制的常见示例。
如何使用 Ownable 特性检查发送者权限
typescript
// 为了方便起见,必须从 stdlib 中导入 Ownable 和 Deployable:
import "@stdlib/ownable";
import "@stdlib/deploy";
message FooBarMsg {
newVal: Int as uint32;
}
// Ownable 特性可以将某些操作限制为仅限所有者
contract SenderChecker with Deployable, Ownable {
// 持久状态变量
owner: Address; // Ownable 特性要求您添加这个确切的状态变量
val: Int as uint32; // 一些值
init() {
// 我们可以将 owner 初始化为任何我们想要的值,这里是部署者:
self.owner = sender();
self.val = 0;
}
receive("inc") {
require(self.owner == sender(), "只有所有者才能增加值!");
self.val += 1;
}
receive(msg: FooBarMsg) {
require(self.owner == sender(), "只有所有者才能设置值!");
self.val = msg.newVal;
}
}