Address Contract Verified
Address
0xE8b22f38695899F408243744486767B651107E78
Balance
0 ETH
Nonce
1
Code Size
4667 bytes
Creator
0x57F1BF19...E3eF at tx 0xf96f71d3...36a692
Indexed Transactions
0
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