ERC-20
Overview
Max Total Supply
36,529,041 TIME
Holders
34
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Time
Compiler Version
v0.8.0+commit.c7dfd78e
Optimization Enabled:
No with 200 runs
Other Settings:
byzantium EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; contract Time is ERC20 { uint256 constant DAY_IN_SECONDS = 86400; uint256 lastTimeClaim; uint256 timeFrequency; address timeGuardian; address timeBank; // exchange address event RewardSent( address timeMiner, uint256 reward, uint256 timeReleased, uint256 timestamp ); event TimeFrequencyEvent(uint256 timeFrequency); event TimeBankEvent(address timeBank); constructor() ERC20("Time", "TIME") { lastTimeClaim = block.timestamp; timeGuardian = msg.sender; timeFrequency = DAY_IN_SECONDS; _mint( address(this), (block.timestamp - 1230940800) * 10**uint256(decimals()) ); // the starting time anniversary _burn( address(this), (block.timestamp - 1230940800) * 10**uint256(decimals()) ); } function mineTime() public { require( (block.timestamp - lastTimeClaim) >= timeFrequency, "TIME is released one day every day" ); uint256 reward = (block.timestamp - lastTimeClaim - timeFrequency) * 10**uint256(decimals()); uint256 timeReleased = timeFrequency * 10**uint256(decimals()); _mint(timeBank, timeReleased); // Time Contract recieves a day - 5 sec ideally _mint(msg.sender, reward); // Time Distributor recieves 5 seconds lastTimeClaim = block.timestamp; emit RewardSent( msg.sender, reward, timeReleased, lastTimeClaim ); } function setTimeBank(address Bank) public { require(msg.sender == timeGuardian, "you are not the Time guardian"); timeBank = Bank; emit TimeBankEvent(timeBank); } function setTimeFrequency(uint256 frequency) public { require(msg.sender == timeGuardian, "you are not the Time guardian"); timeFrequency = frequency; emit TimeFrequencyEvent(timeFrequency); } function getLastTimeClaim() public view returns (uint256) { return lastTimeClaim; } function getTimeBankAddress() public view returns (address) { return timeBank; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./IERC20.sol"; import "./extensions/IERC20Metadata.sol"; import "../../utils/Context.sol"; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin guidelines: functions revert instead * of returning `false` on failure. This behavior is nonetheless conventional * and does not conflict with the expectations of ERC20 applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The defaut value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `to` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = accountBalance - amount; _totalSupply -= amount; emit Transfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../IERC20.sol"; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } }
{ "remappings": [], "optimizer": { "enabled": false, "runs": 200 }, "evmVersion": "byzantium", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"timeMiner","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timeReleased","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"RewardSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"timeBank","type":"address"}],"name":"TimeBankEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timeFrequency","type":"uint256"}],"name":"TimeFrequencyEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getLastTimeClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTimeBankAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mineTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"Bank","type":"address"}],"name":"setTimeBank","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"frequency","type":"uint256"}],"name":"setTimeFrequency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600481526020017f54696d65000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f54494d45000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000969291906200053b565b508060049080519060200190620000af9291906200053b565b5050504260058190555033600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062015180600681905550620001663062000122620001ce640100000000026401000000009004565b60ff16600a6200013391906200085a565b63495eaa8042620001459190620009f8565b62000151919062000997565b620001d7640100000000026401000000009004565b620001c83062000184620001ce640100000000026401000000009004565b60ff16600a6200019591906200085a565b63495eaa8042620001a79190620009f8565b620001b3919062000997565b62000345640100000000026401000000009004565b62000ade565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200024a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002419062000752565b60405180910390fd5b620002676000838362000536640100000000026401000000009004565b80600260008282546200027b9190620007a2565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002d29190620007a2565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000339919062000774565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620003b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003af9062000730565b60405180910390fd5b620003d58260008362000536640100000000026401000000009004565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156200045e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000455906200070e565b60405180910390fd5b81816200046c9190620009f8565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254620004c29190620009f8565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405162000529919062000774565b60405180910390a3505050565b505050565b828054620005499062000a3d565b90600052602060002090601f0160209004810192826200056d5760008555620005b9565b82601f106200058857805160ff1916838001178555620005b9565b82800160010185558215620005b9579182015b82811115620005b85782518255916020019190600101906200059b565b5b509050620005c89190620005cc565b5090565b5b80821115620005e7576000816000905550600101620005cd565b5090565b6000620005fa60228362000791565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006200066260218362000791565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000620006ca601f8362000791565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b620007088162000a33565b82525050565b600060208201905081810360008301526200072981620005eb565b9050919050565b600060208201905081810360008301526200074b8162000653565b9050919050565b600060208201905081810360008301526200076d81620006bb565b9050919050565b60006020820190506200078b6000830184620006fd565b92915050565b600082825260208201905092915050565b6000620007af8262000a33565b9150620007bc8362000a33565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620007f457620007f362000a73565b5b828201905092915050565b6000808291508390505b6001851115620008515780860481111562000829576200082862000a73565b5b6001851615620008395780820291505b8081029050620008498562000ad1565b945062000809565b94509492505050565b6000620008678262000a33565b9150620008748362000a33565b9250620008a37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008ab565b905092915050565b600082620008bd576001905062000990565b81620008cd576000905062000990565b8160018114620008e65760028114620008f15762000927565b600191505062000990565b60ff84111562000906576200090562000a73565b5b8360020a91508482111562000920576200091f62000a73565b5b5062000990565b5060208310610133831016604e8410600b8410161715620009615782820a9050838111156200095b576200095a62000a73565b5b62000990565b620009708484846001620007ff565b925090508184048111156200098a576200098962000a73565b5b81810290505b9392505050565b6000620009a48262000a33565b9150620009b18362000a33565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009ed57620009ec62000a73565b5b828202905092915050565b600062000a058262000a33565b915062000a128362000a33565b92508282101562000a285762000a2762000a73565b5b828203905092915050565b6000819050919050565b6000600282049050600182168062000a5657607f821691505b6020821081141562000a6d5762000a6c62000aa2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050919050565b611cea8062000aee6000396000f3fe608060405234801561001057600080fd5b506004361061011d576000357c01000000000000000000000000000000000000000000000000000000009004806395d89b41116100b4578063cce6923111610083578063cce69231146102e2578063da192258146102fe578063dd62ed3e1461031c578063ee353f6d1461034c5761011d565b806395d89b4114610246578063a457c2d714610264578063a9059cbb14610294578063c9f0f6f1146102c45761011d565b8063313ce567116100f0578063313ce567146101be57806339509351146101dc57806370a082311461020c578063870280641461023c5761011d565b806306fdde0314610122578063095ea7b31461014057806318160ddd1461017057806323b872dd1461018e575b600080fd5b61012a610368565b6040516101379190611747565b60405180910390f35b61015a60048036038101906101559190611242565b6103fa565b604051610167919061172c565b60405180910390f35b610178610418565b60405161018591906118a9565b60405180910390f35b6101a860048036038101906101a391906111f3565b610422565b6040516101b5919061172c565b60405180910390f35b6101c6610523565b6040516101d391906118c4565b60405180910390f35b6101f660048036038101906101f19190611242565b61052c565b604051610203919061172c565b60405180910390f35b6102266004803603810190610221919061118e565b6105d8565b60405161023391906118a9565b60405180910390f35b610244610620565b005b61024e61075a565b60405161025b9190611747565b60405180910390f35b61027e60048036038101906102799190611242565b6107ec565b60405161028b919061172c565b60405180910390f35b6102ae60048036038101906102a99190611242565b6108e0565b6040516102bb919061172c565b60405180910390f35b6102cc6108fe565b6040516102d991906118a9565b60405180910390f35b6102fc60048036038101906102f7919061127e565b610908565b005b6103066109db565b60405161031391906116cc565b60405180910390f35b610336600480360381019061033191906111b7565b610a05565b60405161034391906118a9565b60405180910390f35b6103666004803603810190610361919061118e565b610a8c565b005b60606003805461037790611bd8565b80601f01602080910402602001604051908101604052809291908181526020018280546103a390611bd8565b80156103f05780601f106103c5576101008083540402835291602001916103f0565b820191906000526020600020905b8154815290600101906020018083116103d357829003601f168201915b5050505050905090565b600061040e610407610bb9565b8484610bc1565b6001905092915050565b6000600254905090565b600061042f848484610d8c565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061047a610bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156104fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f190611809565b60405180910390fd5b61051785610506610bb9565b85846105129190611b1c565b610bc1565b60019150509392505050565b60006012905090565b60006105ce610539610bb9565b848460016000610547610bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105c991906118fb565b610bc1565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600654600554426106319190611b1c565b1015610672576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610669906117a9565b60405180910390fd5b600061067c610523565b60ff16600a61068b91906119a4565b6006546005544261069c9190611b1c565b6106a69190611b1c565b6106b09190611ac2565b905060006106bc610523565b60ff16600a6106cb91906119a4565b6006546106d89190611ac2565b9050610706600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261100b565b610710338361100b565b426005819055507f09526129f7eb903d2806162d5d3698343558d013232900c37ca478100892e47833838360055460405161074e94939291906116e7565b60405180910390a15050565b60606004805461076990611bd8565b80601f016020809104026020016040519081016040528092919081815260200182805461079590611bd8565b80156107e25780601f106107b7576101008083540402835291602001916107e2565b820191906000526020600020905b8154815290600101906020018083116107c557829003601f168201915b5050505050905090565b600080600160006107fb610bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156108b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108af90611869565b60405180910390fd5b6108d56108c3610bb9565b8585846108d09190611b1c565b610bc1565b600191505092915050565b60006108f46108ed610bb9565b8484610d8c565b6001905092915050565b6000600554905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098f906117e9565b60405180910390fd5b806006819055507f8964407bec6e24c8f775bed968642e1ea5faa50b01d41776a3c24418af7d7a3e6006546040516109d091906118a9565b60405180910390a150565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b13906117e9565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f42e5a2a88939f1e7aa3cc74f4bf00698f8c686bc3068d06a2026a72ad67f6612600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610bae91906116cc565b60405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2890611849565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9890611789565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d7f91906118a9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df390611829565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6390611769565b60405180910390fd5b610e7783838361115f565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef4906117c9565b60405180910390fd5b8181610f099190611b1c565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f9991906118fb565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ffd91906118a9565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290611889565b60405180910390fd5b6110876000838361115f565b806002600082825461109991906118fb565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110ee91906118fb565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161115391906118a9565b60405180910390a35050565b505050565b60008135905061117381611c86565b92915050565b60008135905061118881611c9d565b92915050565b6000602082840312156111a057600080fd5b60006111ae84828501611164565b91505092915050565b600080604083850312156111ca57600080fd5b60006111d885828601611164565b92505060206111e985828601611164565b9150509250929050565b60008060006060848603121561120857600080fd5b600061121686828701611164565b935050602061122786828701611164565b925050604061123886828701611179565b9150509250925092565b6000806040838503121561125557600080fd5b600061126385828601611164565b925050602061127485828601611179565b9150509250929050565b60006020828403121561129057600080fd5b600061129e84828501611179565b91505092915050565b6112b081611b50565b82525050565b6112bf81611b62565b82525050565b60006112d0826118df565b6112da81856118ea565b93506112ea818560208601611ba5565b6112f381611c68565b840191505092915050565b600061130b6023836118ea565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006113716022836118ea565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006113d76022836118ea565b91507f54494d452069732072656c6561736564206f6e6520646179206576657279206460008301527f61790000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061143d6026836118ea565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114a3601d836118ea565b91507f796f7520617265206e6f74207468652054696d6520677561726469616e0000006000830152602082019050919050565b60006114e36028836118ea565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115496025836118ea565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115af6024836118ea565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006116156025836118ea565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061167b601f836118ea565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b6116b781611b8e565b82525050565b6116c681611b98565b82525050565b60006020820190506116e160008301846112a7565b92915050565b60006080820190506116fc60008301876112a7565b61170960208301866116ae565b61171660408301856116ae565b61172360608301846116ae565b95945050505050565b600060208201905061174160008301846112b6565b92915050565b6000602082019050818103600083015261176181846112c5565b905092915050565b60006020820190508181036000830152611782816112fe565b9050919050565b600060208201905081810360008301526117a281611364565b9050919050565b600060208201905081810360008301526117c2816113ca565b9050919050565b600060208201905081810360008301526117e281611430565b9050919050565b6000602082019050818103600083015261180281611496565b9050919050565b60006020820190508181036000830152611822816114d6565b9050919050565b600060208201905081810360008301526118428161153c565b9050919050565b60006020820190508181036000830152611862816115a2565b9050919050565b6000602082019050818103600083015261188281611608565b9050919050565b600060208201905081810360008301526118a28161166e565b9050919050565b60006020820190506118be60008301846116ae565b92915050565b60006020820190506118d960008301846116bd565b92915050565b600081519050919050565b600082825260208201905092915050565b600061190682611b8e565b915061191183611b8e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561194657611945611c0a565b5b828201905092915050565b6000808291508390505b600185111561199b5780860481111561197757611976611c0a565b5b60018516156119865780820291505b808102905061199485611c79565b945061195b565b94509492505050565b60006119af82611b8e565b91506119ba83611b8e565b92506119e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846119ef565b905092915050565b6000826119ff5760019050611abb565b81611a0d5760009050611abb565b8160018114611a235760028114611a2d57611a5c565b6001915050611abb565b60ff841115611a3f57611a3e611c0a565b5b8360020a915084821115611a5657611a55611c0a565b5b50611abb565b5060208310610133831016604e8410600b8410161715611a915782820a905083811115611a8c57611a8b611c0a565b5b611abb565b611a9e8484846001611951565b92509050818404811115611ab557611ab4611c0a565b5b81810290505b9392505050565b6000611acd82611b8e565b9150611ad883611b8e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b1157611b10611c0a565b5b828202905092915050565b6000611b2782611b8e565b9150611b3283611b8e565b925082821015611b4557611b44611c0a565b5b828203905092915050565b6000611b5b82611b6e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611bc3578082015181840152602081019050611ba8565b83811115611bd2576000848401525b50505050565b60006002820490506001821680611bf057607f821691505b60208210811415611c0457611c03611c39565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6000600282049050919050565b611c8f81611b50565b8114611c9a57600080fd5b50565b611ca681611b8e565b8114611cb157600080fd5b5056fea2646970667358221220afc836af15900d8b4d37e55f516a8701721ddd7c6eb96d1f1d9e04d57308fcd964736f6c63430008000033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061011d576000357c01000000000000000000000000000000000000000000000000000000009004806395d89b41116100b4578063cce6923111610083578063cce69231146102e2578063da192258146102fe578063dd62ed3e1461031c578063ee353f6d1461034c5761011d565b806395d89b4114610246578063a457c2d714610264578063a9059cbb14610294578063c9f0f6f1146102c45761011d565b8063313ce567116100f0578063313ce567146101be57806339509351146101dc57806370a082311461020c578063870280641461023c5761011d565b806306fdde0314610122578063095ea7b31461014057806318160ddd1461017057806323b872dd1461018e575b600080fd5b61012a610368565b6040516101379190611747565b60405180910390f35b61015a60048036038101906101559190611242565b6103fa565b604051610167919061172c565b60405180910390f35b610178610418565b60405161018591906118a9565b60405180910390f35b6101a860048036038101906101a391906111f3565b610422565b6040516101b5919061172c565b60405180910390f35b6101c6610523565b6040516101d391906118c4565b60405180910390f35b6101f660048036038101906101f19190611242565b61052c565b604051610203919061172c565b60405180910390f35b6102266004803603810190610221919061118e565b6105d8565b60405161023391906118a9565b60405180910390f35b610244610620565b005b61024e61075a565b60405161025b9190611747565b60405180910390f35b61027e60048036038101906102799190611242565b6107ec565b60405161028b919061172c565b60405180910390f35b6102ae60048036038101906102a99190611242565b6108e0565b6040516102bb919061172c565b60405180910390f35b6102cc6108fe565b6040516102d991906118a9565b60405180910390f35b6102fc60048036038101906102f7919061127e565b610908565b005b6103066109db565b60405161031391906116cc565b60405180910390f35b610336600480360381019061033191906111b7565b610a05565b60405161034391906118a9565b60405180910390f35b6103666004803603810190610361919061118e565b610a8c565b005b60606003805461037790611bd8565b80601f01602080910402602001604051908101604052809291908181526020018280546103a390611bd8565b80156103f05780601f106103c5576101008083540402835291602001916103f0565b820191906000526020600020905b8154815290600101906020018083116103d357829003601f168201915b5050505050905090565b600061040e610407610bb9565b8484610bc1565b6001905092915050565b6000600254905090565b600061042f848484610d8c565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061047a610bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156104fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f190611809565b60405180910390fd5b61051785610506610bb9565b85846105129190611b1c565b610bc1565b60019150509392505050565b60006012905090565b60006105ce610539610bb9565b848460016000610547610bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105c991906118fb565b610bc1565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600654600554426106319190611b1c565b1015610672576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610669906117a9565b60405180910390fd5b600061067c610523565b60ff16600a61068b91906119a4565b6006546005544261069c9190611b1c565b6106a69190611b1c565b6106b09190611ac2565b905060006106bc610523565b60ff16600a6106cb91906119a4565b6006546106d89190611ac2565b9050610706600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261100b565b610710338361100b565b426005819055507f09526129f7eb903d2806162d5d3698343558d013232900c37ca478100892e47833838360055460405161074e94939291906116e7565b60405180910390a15050565b60606004805461076990611bd8565b80601f016020809104026020016040519081016040528092919081815260200182805461079590611bd8565b80156107e25780601f106107b7576101008083540402835291602001916107e2565b820191906000526020600020905b8154815290600101906020018083116107c557829003601f168201915b5050505050905090565b600080600160006107fb610bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156108b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108af90611869565b60405180910390fd5b6108d56108c3610bb9565b8585846108d09190611b1c565b610bc1565b600191505092915050565b60006108f46108ed610bb9565b8484610d8c565b6001905092915050565b6000600554905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098f906117e9565b60405180910390fd5b806006819055507f8964407bec6e24c8f775bed968642e1ea5faa50b01d41776a3c24418af7d7a3e6006546040516109d091906118a9565b60405180910390a150565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b13906117e9565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f42e5a2a88939f1e7aa3cc74f4bf00698f8c686bc3068d06a2026a72ad67f6612600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610bae91906116cc565b60405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2890611849565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9890611789565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d7f91906118a9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df390611829565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6390611769565b60405180910390fd5b610e7783838361115f565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef4906117c9565b60405180910390fd5b8181610f099190611b1c565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f9991906118fb565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ffd91906118a9565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290611889565b60405180910390fd5b6110876000838361115f565b806002600082825461109991906118fb565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110ee91906118fb565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161115391906118a9565b60405180910390a35050565b505050565b60008135905061117381611c86565b92915050565b60008135905061118881611c9d565b92915050565b6000602082840312156111a057600080fd5b60006111ae84828501611164565b91505092915050565b600080604083850312156111ca57600080fd5b60006111d885828601611164565b92505060206111e985828601611164565b9150509250929050565b60008060006060848603121561120857600080fd5b600061121686828701611164565b935050602061122786828701611164565b925050604061123886828701611179565b9150509250925092565b6000806040838503121561125557600080fd5b600061126385828601611164565b925050602061127485828601611179565b9150509250929050565b60006020828403121561129057600080fd5b600061129e84828501611179565b91505092915050565b6112b081611b50565b82525050565b6112bf81611b62565b82525050565b60006112d0826118df565b6112da81856118ea565b93506112ea818560208601611ba5565b6112f381611c68565b840191505092915050565b600061130b6023836118ea565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006113716022836118ea565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006113d76022836118ea565b91507f54494d452069732072656c6561736564206f6e6520646179206576657279206460008301527f61790000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061143d6026836118ea565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114a3601d836118ea565b91507f796f7520617265206e6f74207468652054696d6520677561726469616e0000006000830152602082019050919050565b60006114e36028836118ea565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115496025836118ea565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115af6024836118ea565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006116156025836118ea565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061167b601f836118ea565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b6116b781611b8e565b82525050565b6116c681611b98565b82525050565b60006020820190506116e160008301846112a7565b92915050565b60006080820190506116fc60008301876112a7565b61170960208301866116ae565b61171660408301856116ae565b61172360608301846116ae565b95945050505050565b600060208201905061174160008301846112b6565b92915050565b6000602082019050818103600083015261176181846112c5565b905092915050565b60006020820190508181036000830152611782816112fe565b9050919050565b600060208201905081810360008301526117a281611364565b9050919050565b600060208201905081810360008301526117c2816113ca565b9050919050565b600060208201905081810360008301526117e281611430565b9050919050565b6000602082019050818103600083015261180281611496565b9050919050565b60006020820190508181036000830152611822816114d6565b9050919050565b600060208201905081810360008301526118428161153c565b9050919050565b60006020820190508181036000830152611862816115a2565b9050919050565b6000602082019050818103600083015261188281611608565b9050919050565b600060208201905081810360008301526118a28161166e565b9050919050565b60006020820190506118be60008301846116ae565b92915050565b60006020820190506118d960008301846116bd565b92915050565b600081519050919050565b600082825260208201905092915050565b600061190682611b8e565b915061191183611b8e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561194657611945611c0a565b5b828201905092915050565b6000808291508390505b600185111561199b5780860481111561197757611976611c0a565b5b60018516156119865780820291505b808102905061199485611c79565b945061195b565b94509492505050565b60006119af82611b8e565b91506119ba83611b8e565b92506119e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846119ef565b905092915050565b6000826119ff5760019050611abb565b81611a0d5760009050611abb565b8160018114611a235760028114611a2d57611a5c565b6001915050611abb565b60ff841115611a3f57611a3e611c0a565b5b8360020a915084821115611a5657611a55611c0a565b5b50611abb565b5060208310610133831016604e8410600b8410161715611a915782820a905083811115611a8c57611a8b611c0a565b5b611abb565b611a9e8484846001611951565b92509050818404811115611ab557611ab4611c0a565b5b81810290505b9392505050565b6000611acd82611b8e565b9150611ad883611b8e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b1157611b10611c0a565b5b828202905092915050565b6000611b2782611b8e565b9150611b3283611b8e565b925082821015611b4557611b44611c0a565b5b828203905092915050565b6000611b5b82611b6e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611bc3578082015181840152602081019050611ba8565b83811115611bd2576000848401525b50505050565b60006002820490506001821680611bf057607f821691505b60208210811415611c0457611c03611c39565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6000600282049050919050565b611c8f81611b50565b8114611c9a57600080fd5b50565b611ca681611b8e565b8114611cb157600080fd5b5056fea2646970667358221220afc836af15900d8b4d37e55f516a8701721ddd7c6eb96d1f1d9e04d57308fcd964736f6c63430008000033
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.