Cryo Explorer Ethereum Mainnet

Address Contract Verified

Address 0xE8b22f38695899F408243744486767B651107E78
Balance 0 ETH
Nonce 1
Code Size 4667 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

4667 bytes
0x608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c8063395093511161006f578063395093511461016557806370a082311461019557806395d89b41146101c5578063a457c2d7146101e3578063a9059cbb14610213578063dd62ed3e14610243576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f5ffd5b6100b3610273565b6040516100c09190610bd6565b60405180910390f35b6100e360048036038101906100de9190610c87565b6102ff565b6040516100f09190610cdf565b60405180910390f35b610101610315565b60405161010e9190610d07565b60405180910390f35b610131600480360381019061012c9190610d20565b61031e565b60405161013e9190610cdf565b60405180910390f35b61014f6103ca565b60405161015c9190610d8b565b60405180910390f35b61017f600480360381019061017a9190610c87565b6103dc565b60405161018c9190610cdf565b60405180910390f35b6101af60048036038101906101aa9190610da4565b61047c565b6040516101bc9190610d07565b60405180910390f35b6101cd6104c1565b6040516101da9190610bd6565b60405180910390f35b6101fd60048036038101906101f89190610c87565b61054d565b60405161020a9190610cdf565b60405180910390f35b61022d60048036038101906102289190610c87565b6105ed565b60405161023a9190610cdf565b60405180910390f35b61025d60048036038101906102589190610dcf565b610603565b60405161026a9190610d07565b60405180910390f35b6003805461028090610e3a565b80601f01602080910402602001604051908101604052809291908181526020018280546102ac90610e3a565b80156102f75780601f106102ce576101008083540402835291602001916102f7565b820191905f5260205f20905b8154815290600101906020018083116102da57829003601f168201915b505050505081565b5f61030b338484610685565b6001905092915050565b5f600254905090565b5f61032a848484610848565b6103bf84336103ba8560015f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610aac90919063ffffffff16565b610685565b600190509392505050565b60055f9054906101000a900460ff1681565b5f610472338461046d8560015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b0990919063ffffffff16565b610685565b6001905092915050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b600480546104ce90610e3a565b80601f01602080910402602001604051908101604052809291908181526020018280546104fa90610e3a565b80156105455780601f1061051c57610100808354040283529160200191610545565b820191905f5260205f20905b81548152906001019060200180831161052857829003601f168201915b505050505081565b5f6105e333846105de8560015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610aac90919063ffffffff16565b610685565b6001905092915050565b5f6105f9338484610848565b6001905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ea90610eda565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610761576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075890610f68565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161083b9190610d07565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ad90610ff6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b90611084565b60405180910390fd5b610973815f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610aac90919063ffffffff16565b5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610a02815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b0990919063ffffffff16565b5f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a9f9190610d07565b60405180910390a3505050565b5f82821115610af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae7906110ec565b60405180910390fd5b5f8284610afd9190611137565b90508091505092915050565b5f5f8284610b17919061116a565b905083811015610b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b53906111e7565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610ba882610b66565b610bb28185610b70565b9350610bc2818560208601610b80565b610bcb81610b8e565b840191505092915050565b5f6020820190508181035f830152610bee8184610b9e565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c2382610bfa565b9050919050565b610c3381610c19565b8114610c3d575f5ffd5b50565b5f81359050610c4e81610c2a565b92915050565b5f819050919050565b610c6681610c54565b8114610c70575f5ffd5b50565b5f81359050610c8181610c5d565b92915050565b5f5f60408385031215610c9d57610c9c610bf6565b5b5f610caa85828601610c40565b9250506020610cbb85828601610c73565b9150509250929050565b5f8115159050919050565b610cd981610cc5565b82525050565b5f602082019050610cf25f830184610cd0565b92915050565b610d0181610c54565b82525050565b5f602082019050610d1a5f830184610cf8565b92915050565b5f5f5f60608486031215610d3757610d36610bf6565b5b5f610d4486828701610c40565b9350506020610d5586828701610c40565b9250506040610d6686828701610c73565b9150509250925092565b5f60ff82169050919050565b610d8581610d70565b82525050565b5f602082019050610d9e5f830184610d7c565b92915050565b5f60208284031215610db957610db8610bf6565b5b5f610dc684828501610c40565b91505092915050565b5f5f60408385031215610de557610de4610bf6565b5b5f610df285828601610c40565b9250506020610e0385828601610c40565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610e5157607f821691505b602082108103610e6457610e63610e0d565b5b50919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f610ec4602483610b70565b9150610ecf82610e6a565b604082019050919050565b5f6020820190508181035f830152610ef181610eb8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f610f52602283610b70565b9150610f5d82610ef8565b604082019050919050565b5f6020820190508181035f830152610f7f81610f46565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f610fe0602583610b70565b9150610feb82610f86565b604082019050919050565b5f6020820190508181035f83015261100d81610fd4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61106e602383610b70565b915061107982611014565b604082019050919050565b5f6020820190508181035f83015261109b81611062565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f6110d6601e83610b70565b91506110e1826110a2565b602082019050919050565b5f6020820190508181035f830152611103816110ca565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61114182610c54565b915061114c83610c54565b92508282039050818111156111645761116361110a565b5b92915050565b5f61117482610c54565b915061117f83610c54565b92508282019050808211156111975761119661110a565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6111d1601b83610b70565b91506111dc8261119d565b602082019050919050565b5f6020820190508181035f8301526111fe816111c5565b905091905056fea2646970667358221220feb3fd5ac187a358321456b5cf80a6cbf133469f44df82f2b5f0294c0da6c11c64736f6c634300081e0033

Verified Source Code Full Match

Compiler: v0.8.30+commit.73712a01 EVM: prague Optimization: No
WETH.sol 176 lines
/**
 *Submitted for verification at Etherscan.io on 2021-07-08
*/

pragma solidity ^0.8.0;


library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "SafeMath: modulo by zero");
        return a % b;
    }
}


interface IERC20 {

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}


contract ERC20 is IERC20 {

    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 private _totalSupply;

    event Issue(address indexed account, uint256 amount);

    event Redeem(address indexed account, uint256 value);

    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 value) public returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function _approve(address owner, address spender, uint256 value) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    function _issue(address account, uint256 amount) internal {
        require(account != address(0), "CoinFactory: issue to the zero address");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
        emit Issue(account, amount);
    }

    function _redeem(address account, uint256 value) internal {
        require(account != address(0), "CoinFactory: redeem from the zero address");

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(0), value);
        emit Redeem(account, value);
    }
}


contract DHToken is ERC20 {

    string public name;
    string public symbol;
    uint8 public decimals;
    uint256 private _totalSupply;

    constructor (string memory _name, string memory _symbol, uint8 _decimals) {
        uint256 amount = 100000000*10**18;

        _issue(msg.sender,amount);

        _totalSupply = 0;
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
    }
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 5 functions

These functions modify contract state and require a wallet transaction to execute.

approve 0x095ea7b3
address spender
uint256 value
returns: bool
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool

Recent Transactions

No transactions found for this address