Created
March 10, 2022 22:45
-
-
Save vis-kid/aa347c77950996131a8a859e43c3db66 to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.7+commit.e28d00a7.js&optimize=false&runs=200&gist=
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
pragma solidity >=0.7.0 <0.9.0; | |
contract Coin { | |
address public minter; | |
mapping(address => uint) public balances; | |
event Sent(address from, address to, uint amount); | |
constructor() { | |
minter = msg.sender; | |
} | |
modifier onlyMinter { | |
require(msg.sender == minter); | |
_; | |
} | |
modifier checkAmount(uint _amount) { | |
require(_amount < 1e60); | |
_; | |
} | |
modifier checkbalance(uint _amount) { | |
require(_amount <= balances[msg.sender], "Insufficient Balance!"); | |
_; | |
} | |
function mint(address _receiver, uint _amount) public onlyMinter checkAmount(_amount) { | |
balances[_receiver] += _amount; | |
} | |
function send(address _receiver, uint _amount) public checkbalance(_amount) { | |
balances[msg.sender] -= _amount; | |
balances[_receiver] += _amount; | |
emit Sent(msg.sender, _receiver, _amount); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment