Skip to content

Instantly share code, notes, and snippets.

@jessgusclark
Created November 12, 2024 13:15
Show Gist options
  • Save jessgusclark/72a56d2049bbd7c755f42f2602f56b8f to your computer and use it in GitHub Desktop.
Save jessgusclark/72a56d2049bbd7c755f42f2602f56b8f to your computer and use it in GitHub Desktop.
NumberKeeper contract
// SPDX-License-Idenfitier: UNLICENSED
pragma solidity ^0.8.0;
contract NumberKeeper {
int magicNumber;
mapping (address => bool) public isAuthorized;
event NumberChanged(int indexed newNumber);
constructor() {
isAuthorized[msg.sender] = true;
}
function setNumber (int newNumber) public {
require(isAuthorized[msg.sender] == true, "Not authorized to change");
magicNumber = newNumber;
emit NumberChanged(newNumber);
}
function getNumber () public view returns(int) {
return magicNumber;
}
function checkAccess (address authAddress) public view returns(bool) {
return isAuthorized[authAddress];
}
function changeAccess (address newAddress, bool isGranted) public {
require(isAuthorized[msg.sender] == true, "Not authorized to change");
isAuthorized[newAddress] = isGranted;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment