false
false
0

Contract Address Details

0x3a2561721FC9765b6b599DFEa71c9B9e708dFDDC

Token
Wrapped EMC (WEMC)
Creator
0xfd0a18–e4e16a at 0xc4be81–004293
Balance
20,736,001 EMC ( )
Tokens
Fetching tokens...
Transactions
9 Transactions
Transfers
0 Transfers
Gas Used
372,104
Last Balance Update
7332828
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