Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
- Contract name:
- WEMC
- Optimization enabled
- true
- Compiler version
- v0.8.18+commit.87f61d96
- Optimization runs
- 800
- EVM Version
- paris
- Verified at
- 2024-01-10T19:32:33.749614Z
contracts/staking/WEMC.sol
// SPDX-License-Identifier: MIT pragma solidity 0.8.18; contract WEMC { string public name = "Wrapped EMC"; string public symbol = "WEMC"; uint8 public decimals = 18; event Approval(address indexed src, address indexed guy, uint wad); event Transfer(address indexed src, address indexed dst, uint wad); event Deposit(address indexed dst, uint wad); event Withdrawal(address indexed src, uint wad); mapping (address => uint) public balanceOf; mapping (address => mapping (address => uint)) public allowance; receive() external payable { deposit(); } function deposit() public payable { balanceOf[msg.sender] += msg.value; emit Deposit(msg.sender, msg.value); } function withdraw(uint wad) public { require(balanceOf[msg.sender] >= wad, "Insufficient balance"); balanceOf[msg.sender] -= wad; address payable recipient = payable(msg.sender); recipient.transfer(wad); emit Withdrawal(msg.sender, wad); } function totalSupply() public view returns (uint) { return address(this).balance; } function approve(address guy, uint wad) public returns (bool) { allowance[msg.sender][guy] = wad; emit Approval(msg.sender, guy, wad); return true; } function transfer(address dst, uint wad) public returns (bool) { return transferFrom(msg.sender, dst, wad); } function transferFrom(address src, address dst, uint wad) public returns (bool) { require(balanceOf[src] >= wad, "Insufficient balance"); if (src != msg.sender && allowance[src][msg.sender] != type(uint256).max) { require(allowance[src][msg.sender] >= wad, "Insufficient allowance"); allowance[src][msg.sender] -= wad; } balanceOf[src] -= wad; balanceOf[dst] += wad; emit Transfer(src, dst, wad); return true; } }
Compiler Settings
{"outputSelection":{"*":{"*":["*"],"":["*"]}},"optimizer":{"runs":800,"enabled":true},"metadata":{"useLiteralContent":true,"bytecodeHash":"none"},"libraries":{},"evmVersion":"paris"}
Contract ABI
[{"type":"event","name":"Approval","inputs":[{"type":"address","name":"src","internalType":"address","indexed":true},{"type":"address","name":"guy","internalType":"address","indexed":true},{"type":"uint256","name":"wad","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"type":"address","name":"dst","internalType":"address","indexed":true},{"type":"uint256","name":"wad","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"src","internalType":"address","indexed":true},{"type":"address","name":"dst","internalType":"address","indexed":true},{"type":"uint256","name":"wad","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"type":"address","name":"src","internalType":"address","indexed":true},{"type":"uint256","name":"wad","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"","internalType":"address"},{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"guy","internalType":"address"},{"type":"uint256","name":"wad","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"payable","outputs":[],"name":"deposit","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"dst","internalType":"address"},{"type":"uint256","name":"wad","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"src","internalType":"address"},{"type":"address","name":"dst","internalType":"address"},{"type":"uint256","name":"wad","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"withdraw","inputs":[{"type":"uint256","name":"wad","internalType":"uint256"}]},{"type":"receive","stateMutability":"payable"}]
Contract Creation Code
0x60c0604052600b60809081526a5772617070656420454d4360a81b60a05260009061002a9082610112565b5060408051808201909152600481526357454d4360e01b60208201526001906100539082610112565b506002805460ff1916601217905534801561006d57600080fd5b506101d1565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061009d57607f821691505b6020821081036100bd57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561010d57600081815260208120601f850160051c810160208610156100ea5750805b601f850160051c820191505b81811015610109578281556001016100f6565b5050505b505050565b81516001600160401b0381111561012b5761012b610073565b61013f816101398454610089565b846100c3565b602080601f831160018114610174576000841561015c5750858301515b600019600386901b1c1916600185901b178555610109565b600085815260208120601f198616915b828110156101a357888601518255948401946001909101908401610184565b50858210156101c15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610886806101e06000396000f3fe6080604052600436106100c05760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146101fa578063d0e30db01461021a578063dd62ed3e1461022257600080fd5b8063313ce5671461018c57806370a08231146101b857806395d89b41146101e557600080fd5b806318160ddd116100a557806318160ddd1461012f57806323b872dd1461014c5780632e1a7d4d1461016c57600080fd5b806306fdde03146100d4578063095ea7b3146100ff57600080fd5b366100cf576100cd61025a565b005b600080fd5b3480156100e057600080fd5b506100e96102b5565b6040516100f691906106cc565b60405180910390f35b34801561010b57600080fd5b5061011f61011a366004610736565b610343565b60405190151581526020016100f6565b34801561013b57600080fd5b50475b6040519081526020016100f6565b34801561015857600080fd5b5061011f610167366004610760565b6103b0565b34801561017857600080fd5b506100cd61018736600461079c565b6105bf565b34801561019857600080fd5b506002546101a69060ff1681565b60405160ff90911681526020016100f6565b3480156101c457600080fd5b5061013e6101d33660046107b5565b60036020526000908152604090205481565b3480156101f157600080fd5b506100e96106ab565b34801561020657600080fd5b5061011f610215366004610736565b6106b8565b6100cd61025a565b34801561022e57600080fd5b5061013e61023d3660046107d0565b600460209081526000928352604080842090915290825290205481565b3360009081526003602052604081208054349290610279908490610819565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b600080546102c29061082c565b80601f01602080910402602001604051908101604052809291908181526020018280546102ee9061082c565b801561033b5780601f106103105761010080835404028352916020019161033b565b820191906000526020600020905b81548152906001019060200180831161031e57829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061039e9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526003602052604081205482111561041d5760405162461bcd60e51b815260206004820152601460248201527f496e73756666696369656e742062616c616e636500000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b038416331480159061045b57506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b1561050c576001600160a01b03841660009081526004602090815260408083203384529091529020548211156104d35760405162461bcd60e51b815260206004820152601660248201527f496e73756666696369656e7420616c6c6f77616e6365000000000000000000006044820152606401610414565b6001600160a01b038416600090815260046020908152604080832033845290915281208054849290610506908490610866565b90915550505b6001600160a01b03841660009081526003602052604081208054849290610534908490610866565b90915550506001600160a01b03831660009081526003602052604081208054849290610561908490610819565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105ad91815260200190565b60405180910390a35060019392505050565b3360009081526003602052604090205481111561061e5760405162461bcd60e51b815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152606401610414565b336000908152600360205260408120805483929061063d908490610866565b90915550506040513390819083156108fc029084906000818181858888f19350505050158015610671573d6000803e3d6000fd5b5060405182815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a25050565b600180546102c29061082c565b60006106c53384846103b0565b9392505050565b600060208083528351808285015260005b818110156106f9578581018301518582016040015282016106dd565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461073157600080fd5b919050565b6000806040838503121561074957600080fd5b6107528361071a565b946020939093013593505050565b60008060006060848603121561077557600080fd5b61077e8461071a565b925061078c6020850161071a565b9150604084013590509250925092565b6000602082840312156107ae57600080fd5b5035919050565b6000602082840312156107c757600080fd5b6106c58261071a565b600080604083850312156107e357600080fd5b6107ec8361071a565b91506107fa6020840161071a565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103aa576103aa610803565b600181811c9082168061084057607f821691505b60208210810361086057634e487b7160e01b600052602260045260246000fd5b50919050565b818103818111156103aa576103aa61080356fea164736f6c6343000812000a
Deployed ByteCode
0x6080604052600436106100c05760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146101fa578063d0e30db01461021a578063dd62ed3e1461022257600080fd5b8063313ce5671461018c57806370a08231146101b857806395d89b41146101e557600080fd5b806318160ddd116100a557806318160ddd1461012f57806323b872dd1461014c5780632e1a7d4d1461016c57600080fd5b806306fdde03146100d4578063095ea7b3146100ff57600080fd5b366100cf576100cd61025a565b005b600080fd5b3480156100e057600080fd5b506100e96102b5565b6040516100f691906106cc565b60405180910390f35b34801561010b57600080fd5b5061011f61011a366004610736565b610343565b60405190151581526020016100f6565b34801561013b57600080fd5b50475b6040519081526020016100f6565b34801561015857600080fd5b5061011f610167366004610760565b6103b0565b34801561017857600080fd5b506100cd61018736600461079c565b6105bf565b34801561019857600080fd5b506002546101a69060ff1681565b60405160ff90911681526020016100f6565b3480156101c457600080fd5b5061013e6101d33660046107b5565b60036020526000908152604090205481565b3480156101f157600080fd5b506100e96106ab565b34801561020657600080fd5b5061011f610215366004610736565b6106b8565b6100cd61025a565b34801561022e57600080fd5b5061013e61023d3660046107d0565b600460209081526000928352604080842090915290825290205481565b3360009081526003602052604081208054349290610279908490610819565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b600080546102c29061082c565b80601f01602080910402602001604051908101604052809291908181526020018280546102ee9061082c565b801561033b5780601f106103105761010080835404028352916020019161033b565b820191906000526020600020905b81548152906001019060200180831161031e57829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061039e9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526003602052604081205482111561041d5760405162461bcd60e51b815260206004820152601460248201527f496e73756666696369656e742062616c616e636500000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b038416331480159061045b57506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b1561050c576001600160a01b03841660009081526004602090815260408083203384529091529020548211156104d35760405162461bcd60e51b815260206004820152601660248201527f496e73756666696369656e7420616c6c6f77616e6365000000000000000000006044820152606401610414565b6001600160a01b038416600090815260046020908152604080832033845290915281208054849290610506908490610866565b90915550505b6001600160a01b03841660009081526003602052604081208054849290610534908490610866565b90915550506001600160a01b03831660009081526003602052604081208054849290610561908490610819565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105ad91815260200190565b60405180910390a35060019392505050565b3360009081526003602052604090205481111561061e5760405162461bcd60e51b815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152606401610414565b336000908152600360205260408120805483929061063d908490610866565b90915550506040513390819083156108fc029084906000818181858888f19350505050158015610671573d6000803e3d6000fd5b5060405182815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a25050565b600180546102c29061082c565b60006106c53384846103b0565b9392505050565b600060208083528351808285015260005b818110156106f9578581018301518582016040015282016106dd565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461073157600080fd5b919050565b6000806040838503121561074957600080fd5b6107528361071a565b946020939093013593505050565b60008060006060848603121561077557600080fd5b61077e8461071a565b925061078c6020850161071a565b9150604084013590509250925092565b6000602082840312156107ae57600080fd5b5035919050565b6000602082840312156107c757600080fd5b6106c58261071a565b600080604083850312156107e357600080fd5b6107ec8361071a565b91506107fa6020840161071a565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103aa576103aa610803565b600181811c9082168061084057607f821691505b60208210810361086057634e487b7160e01b600052602260045260246000fd5b50919050565b818103818111156103aa576103aa61080356fea164736f6c6343000812000a