use_authority.sol 698 B

1234567891011121314151617181920212223242526
  1. import 'solana';
  2. contract AuthorityExample {
  3. address authority;
  4. uint64 counter;
  5. constructor(address initial_authority) {
  6. authority = initial_authority;
  7. }
  8. @signer(authorityAccount)
  9. function set_new_authority(address new_authority) external {
  10. assert(tx.accounts.authorityAccount.key == authority && tx.accounts.authorityAccount.is_signer);
  11. authority = new_authority;
  12. }
  13. @signer(authorityAccount)
  14. function inc() external {
  15. assert(tx.accounts.authorityAccount.key == authority && tx.accounts.authorityAccount.is_signer);
  16. counter += 1;
  17. }
  18. function get() public view returns (uint64) {
  19. return counter;
  20. }
  21. }