This page lists common examples of working with privileges, ownership and access control.
// 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; }}