访问控制
本页列出了使用权限、所有权和访问控制的常见示例。
如何使用 Ownable trait检查发件人权限
// Ownable has to be imported from stdlib, as well as Deployable, for convenience:import "@stdlib/ownable";import "@stdlib/deploy";
message FooBarMsg { newVal: Int as uint32;}
// Ownable trait can limit certain actions to the owner onlycontract SenderChecker with Deployable, Ownable { // Persistent state variables owner: Address; // Ownable trait requires you to add this exact state variable val: Int as uint32; // some value
init() { // we can initialize owner to any value we want, the deployer in this case: self.owner = sender(); self.val = 0; }
receive("inc") { self.requireOwner(); // throws exit code 132 if the sender isn't an owner self.val += 1; }
receive(msg: FooBarMsg) { self.requireOwner(); // throws exit code 132 if the sender isn't an owner self.val = msg.newVal; }}