Created
November 12, 2024 13:15
-
-
Save jessgusclark/72a56d2049bbd7c755f42f2602f56b8f to your computer and use it in GitHub Desktop.
NumberKeeper contract
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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