More Info
Private Name Tags
ContractCreator
Latest 5 from a total of 5 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Add Vesting Sche... | 17378891 | 552 days ago | IN | 0 ETH | 0.06101969 | ||||
Add Vesting Sche... | 17378868 | 552 days ago | IN | 0 ETH | 0.04447369 | ||||
Add Vesting Sche... | 17378861 | 552 days ago | IN | 0 ETH | 0.03935983 | ||||
Add Vesting Sche... | 17378830 | 552 days ago | IN | 0 ETH | 0.04386493 | ||||
Add Vesting Sche... | 17378793 | 552 days ago | IN | 0 ETH | 0.0434595 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Escrow
Compiler Version
v0.8.12+commit.f00d7308
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity = 0.8.12; // Inheritance import "./Ownable.sol"; import "./LimitedSetup.sol"; import "./interfaces/IERC20.sol"; contract Escrow is Ownable, LimitedSetup { /* The escrow token. */ address public token; /* Lists of (timestamp, quantity) pairs per account, sorted in ascending time order. * These are the times at which each given quantity of WBT vests. */ mapping(address => uint[2][]) public vestingSchedules; /* An account's total vested balance to save recomputing this for fee extraction purposes. */ mapping(address => uint) public totalVestedAccountBalance; /* The total remaining vested balance, for verifying the actual balance of this contract against. */ uint public totalVestedBalance; uint public constant TIME_INDEX = 0; uint public constant QUANTITY_INDEX = 1; /* Limit vesting entries to disallow unbounded iteration over vesting schedules. */ uint public constant MAX_VESTING_ENTRIES = 35; /* ========== CONSTRUCTOR ========== */ constructor(address _token) LimitedSetup(8 weeks) { token = _token; } /* ========== VIEW FUNCTIONS ========== */ /** * @notice A simple alias to totalVestedAccountBalance: provides ERC20 balance integration. */ function balanceOf(address account) public view returns (uint) { return totalVestedAccountBalance[account]; } /** * @notice The number of vesting dates in an account's schedule. */ function numVestingEntries(address account) public view returns (uint) { return vestingSchedules[account].length; } /** * @notice Get a particular schedule entry for an account. * @return A pair of uints: (timestamp, quantity). */ function getVestingScheduleEntry(address account, uint index) public view returns (uint[2] memory) { return vestingSchedules[account][index]; } /** * @notice Get the time at which a given schedule entry will vest. */ function getVestingTime(address account, uint index) public view returns (uint) { return getVestingScheduleEntry(account, index)[TIME_INDEX]; } /** * @notice Get the quantity of WBT associated with a given schedule entry. */ function getVestingQuantity(address account, uint index) public view returns (uint) { return getVestingScheduleEntry(account, index)[QUANTITY_INDEX]; } /** * @notice Obtain the index of the next schedule entry that will vest for a given user. */ function getNextVestingIndex(address account) public view returns (uint) { uint len = numVestingEntries(account); for (uint i = 0; i < len; i++) { if (getVestingTime(account, i) != 0) { return i; } } return len; } /** * @notice Obtain the next schedule entry that will vest for a given user. * @return A pair of uints: (timestamp, quantity). */ function getNextVestingEntry(address account) public view returns (uint[2] memory) { uint index = getNextVestingIndex(account); if (index == numVestingEntries(account)) { return [uint(0), 0]; } return getVestingScheduleEntry(account, index); } /** * @notice Obtain the time at which the next schedule entry will vest for a given user. */ function getNextVestingTime(address account) external view returns (uint) { return getNextVestingEntry(account)[TIME_INDEX]; } /** * @notice Obtain the quantity which the next schedule entry will vest for a given user. */ function getNextVestingQuantity(address account) external view returns (uint) { return getNextVestingEntry(account)[QUANTITY_INDEX]; } /* ========== MUTATIVE FUNCTIONS ========== */ /** * @notice Destroy the vesting information associated with an account. */ function purgeAccount(address account) external onlyOwner onlyDuringSetup { delete vestingSchedules[account]; totalVestedBalance = totalVestedBalance - totalVestedAccountBalance[account]; delete totalVestedAccountBalance[account]; } /** * @notice Add a new vesting entry at a given time and quantity to an account's schedule. * @dev A call to this should be accompanied by either enough balance already available * in this contract, or a corresponding call to.endow(), to ensure that when * the funds are withdrawn, there is enough balance, as well as correctly calculating * the fees. * This may only be called by the owner during the contract's setup period. * Note; although this function could technically be used to produce unbounded * arrays, it's only in the foundation's command to add to these lists. * @param account The account to append a new vesting entry to. * @param time The absolute unix timestamp after which the vested quantity may be withdrawn. * @param quantity The quantity of WBT that will vest. */ function appendVestingEntry( address account, uint time, uint quantity ) public onlyOwner onlyDuringSetup { /* No empty or already-passed vesting entries allowed. */ require(block.timestamp < time, "Time must be in the future"); require(quantity != 0, "Quantity cannot be zero"); /* There must be enough balance in the contract to provide for the vesting entry. */ totalVestedBalance = totalVestedBalance + quantity; require( totalVestedBalance <= IERC20(token).balanceOf(address(this)), "Must be enough balance in the contract to provide for the vesting entry" ); /* Disallow arbitrarily long vesting schedules in light of the gas limit. */ uint scheduleLength = vestingSchedules[account].length; require(scheduleLength <= MAX_VESTING_ENTRIES, "Vesting schedule is too long"); if (scheduleLength == 0) { totalVestedAccountBalance[account] = quantity; } else { /* Disallow adding new vesting earlier than the last one. * Since entries are only appended, this means that no vesting date can be repeated. */ require( getVestingTime(account, numVestingEntries(account) - 1) < time, "Cannot add new vested entries earlier than the last one" ); totalVestedAccountBalance[account] = totalVestedAccountBalance[account] + quantity; } vestingSchedules[account].push([time, quantity]); } /** * @notice Construct a vesting schedule to release a quantities of WBT * over a series of intervals. * @dev Assumes that the quantities are nonzero * and that the sequence of timestamps is strictly increasing. * This may only be called by the owner during the contract's setup period. */ function addVestingSchedule( address account, uint[] calldata times, uint[] calldata quantities ) external onlyOwner onlyDuringSetup { for (uint i = 0; i < times.length; i++) { appendVestingEntry(account, times[i], quantities[i]); } } /** * @notice Allow a user to withdraw any WBT in their schedule that have vested. */ function vest() external { uint numEntries = numVestingEntries(msg.sender); uint total; for (uint i = 0; i < numEntries; i++) { uint time = getVestingTime(msg.sender, i); /* The list is sorted; when we reach the first future time, bail out. */ if (time > block.timestamp) { break; } uint qty = getVestingQuantity(msg.sender, i); if (qty > 0) { vestingSchedules[msg.sender][i] = [0, 0]; total = total + qty; } } if (total != 0) { totalVestedBalance = totalVestedBalance - total; totalVestedAccountBalance[msg.sender] = totalVestedAccountBalance[msg.sender] - total; require(IERC20(token).transfer(msg.sender, total)); emit Vested(msg.sender, block.timestamp, total); } } /* ========== EVENTS ========== */ event Vested(address indexed beneficiary, uint time, uint value); }
// SPDX-License-Identifier: MIT pragma solidity =0.8.12; interface IERC20 { function balanceOf(address who) external view returns (uint256); function transfer(address to, uint256 value) external returns (bool); }
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity =0.8.12; contract LimitedSetup { uint public setupExpiryTime; /** * @dev LimitedSetup Constructor. * @param setupDuration The time the setup period will last for. */ constructor(uint setupDuration) { setupExpiryTime = block.timestamp + setupDuration; } modifier onlyDuringSetup { require(block.timestamp < setupExpiryTime, "Can only perform this action during setup"); _; } }
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity =0.8.12; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { _owner = msg.sender; emit OwnershipTransferred(address(0), msg.sender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == msg.sender, "Ownable: caller is not the owner"); _; } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Vested","type":"event"},{"inputs":[],"name":"MAX_VESTING_ENTRIES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"QUANTITY_INDEX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TIME_INDEX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256[]","name":"times","type":"uint256[]"},{"internalType":"uint256[]","name":"quantities","type":"uint256[]"}],"name":"addVestingSchedule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"appendVestingEntry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getNextVestingEntry","outputs":[{"internalType":"uint256[2]","name":"","type":"uint256[2]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getNextVestingIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getNextVestingQuantity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getNextVestingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getVestingQuantity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getVestingScheduleEntry","outputs":[{"internalType":"uint256[2]","name":"","type":"uint256[2]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getVestingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"numVestingEntries","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"purgeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setupExpiryTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalVestedAccountBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalVestedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"vestingSchedules","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620021943803806200219483398181016040528101906200003791906200019d565b6249d400336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38042620000e4919062000208565b6001819055505080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000265565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001658262000138565b9050919050565b620001778162000158565b81146200018357600080fd5b50565b60008151905062000197816200016c565b92915050565b600060208284031215620001b657620001b562000133565b5b6000620001c68482850162000186565b91505092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200021582620001cf565b91506200022283620001cf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200025a5762000259620001d9565b5b828201905092915050565b611f1f80620002756000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063bb2a7d0c1161007c578063bb2a7d0c146103da578063d0cc82e3146103f6578063da7bd3e914610414578063ee1d036c14610444578063f2fde38b14610474578063fc0c546a146104905761014d565b806370a08231146102f05780638ad58777146103205780638da5cb5b1461033e57806397f465271461035c5780639b217f901461038c578063a15d59ce146103bc5761014d565b80632f5bb661116101155780632f5bb6611461021a578063458efde31461024a57806345e5441f1461025457806346ba2d901461028457806363667eb7146102a25780636b3905c4146102c05761014d565b8063135c07011461015257806319e740c01461016e5780631bb47b441461019e578063204b676a146101ba578063227d517a146101ea575b600080fd5b61016c60048036038101906101679190611586565b6104ae565b005b61018860048036038101906101839190611586565b610664565b60405161019591906115cc565b60405180910390f35b6101b860048036038101906101b39190611613565b6106b6565b005b6101d460048036038101906101cf9190611586565b610b5f565b6040516101e191906115cc565b60405180910390f35b61020460048036038101906101ff9190611586565b610bab565b60405161021191906115cc565b60405180910390f35b610234600480360381019061022f9190611586565b610bc3565b6040516102419190611711565b60405180910390f35b610252610c1a565b005b61026e60048036038101906102699190611613565b610ec2565b60405161027b91906115cc565b60405180910390f35b61028c610f07565b60405161029991906115cc565b60405180910390f35b6102aa610f0d565b6040516102b791906115cc565b60405180910390f35b6102da60048036038101906102d59190611586565b610f12565b6040516102e791906115cc565b60405180910390f35b61030a60048036038101906103059190611586565b610f3c565b60405161031791906115cc565b60405180910390f35b610328610f85565b60405161033591906115cc565b60405180910390f35b610346610f8a565b604051610353919061173b565b60405180910390f35b61037660048036038101906103719190611586565b610fb3565b60405161038391906115cc565b60405180910390f35b6103a660048036038101906103a19190611756565b610fdd565b6040516103b391906115cc565b60405180910390f35b6103c4611009565b6040516103d191906115cc565b60405180910390f35b6103f460048036038101906103ef91906117fb565b61100f565b005b6103fe611147565b60405161040b91906115cc565b60405180910390f35b61042e60048036038101906104299190611756565b61114c565b60405161043b9190611711565b60405180910390f35b61045e60048036038101906104599190611756565b6111f7565b60405161046b91906115cc565b60405180910390f35b61048e60048036038101906104899190611586565b611223565b005b6104986113de565b6040516104a5919061173b565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461053c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610533906118ed565b60405180910390fd5b6001544210610580576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105779061197f565b60405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105cb9190611404565b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460055461061891906119ce565b600581905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000905550565b60008061067083610b5f565b905060005b818110156106ab5760006106898583610fdd565b146106985780925050506106b1565b80806106a390611a02565b915050610675565b50809150505b919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073b906118ed565b60405180910390fd5b6001544210610788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077f9061197f565b60405180910390fd5b8142106107ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c190611a97565b60405180910390fd5b600081141561080e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080590611b03565b60405180910390fd5b8060055461081c9190611b23565b600581905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161087d919061173b565b602060405180830381865afa15801561089a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108be9190611b8e565b6005541115610902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f990611c53565b60405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050602381111561098d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098490611cbf565b60405180910390fd5b60008114156109df5781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610acd565b826109fe8560016109ef88610b5f565b6109f991906119ce565b610fdd565b10610a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3590611d51565b60405180910390fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a899190611b23565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280858152602001848152509080600181540180825580915050600190039060005260206000209060020201600090919091909150906002610b58929190611428565b5050505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60046020528060005260406000206000915090505481565b610bcb611468565b6000610bd683610664565b9050610be183610b5f565b811415610c07576040518060400160405280600081526020016000815250915050610c15565b610c11838261114c565b9150505b919050565b6000610c2533610b5f565b9050600080600090505b82811015610d19576000610c433383610fdd565b905042811115610c535750610d19565b6000610c5f33846111f7565b90506000811115610d04576040518060400160405280600060ff168152602001600060ff16815250600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610cd857610cd7611d71565b5b9060005260206000209060020201906002610cf492919061148a565b508084610d019190611b23565b93505b50508080610d1190611a02565b915050610c2f565b5060008114610ebe5780600554610d3091906119ce565b60058190555080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d8191906119ce565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610e21929190611da0565b6020604051808303816000875af1158015610e40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e649190611e01565b610e6d57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167ffbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc64283604051610eb5929190611e2e565b60405180910390a25b5050565b60036020528260005260406000208281548110610ede57600080fd5b90600052602060002090600202018160028110610efa57600080fd5b0160009250925050505481565b60015481565b600081565b6000610f1d82610bc3565b600060028110610f3057610f2f611d71565b5b60200201519050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600181565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610fbe82610bc3565b600160028110610fd157610fd0611d71565b5b60200201519050919050565b6000610fe9838361114c565b600060028110610ffc57610ffb611d71565b5b6020020151905092915050565b60055481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611094906118ed565b60405180910390fd5b60015442106110e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d89061197f565b60405180910390fd5b60005b8484905081101561113f5761112c8686868481811061110657611105611d71565b5b905060200201358585858181106111205761111f611d71565b5b905060200201356106b6565b808061113790611a02565b9150506110e4565b505050505050565b602381565b611154611468565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106111a5576111a4611d71565b5b90600052602060002090600202016002806020026040519081016040528092919082600280156111ea576020028201915b8154815260200190600101908083116111d6575b5050505050905092915050565b6000611203838361114c565b60016002811061121657611215611d71565b5b6020020151905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a8906118ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890611ec9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b508054600082556002029060005260206000209081019061142591906114cf565b50565b8260028101928215611457579160200282015b8281111561145657825182559160200191906001019061143b565b5b50905061146491906114f3565b5090565b6040518060400160405280600290602082028036833780820191505090505090565b82600281019282156114be579160200282015b828111156114bd578251829060ff1690559160200191906001019061149d565b5b5090506114cb91906114f3565b5090565b5b808211156114ef57600081816114e69190611510565b506002016114d0565b5090565b5b8082111561150c5760008160009055506001016114f4565b5090565b506000815560010160009055565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061155382611528565b9050919050565b61156381611548565b811461156e57600080fd5b50565b6000813590506115808161155a565b92915050565b60006020828403121561159c5761159b61151e565b5b60006115aa84828501611571565b91505092915050565b6000819050919050565b6115c6816115b3565b82525050565b60006020820190506115e160008301846115bd565b92915050565b6115f0816115b3565b81146115fb57600080fd5b50565b60008135905061160d816115e7565b92915050565b60008060006060848603121561162c5761162b61151e565b5b600061163a86828701611571565b935050602061164b868287016115fe565b925050604061165c868287016115fe565b9150509250925092565b600060029050919050565b600081905092915050565b6000819050919050565b61168f816115b3565b82525050565b60006116a18383611686565b60208301905092915050565b6000602082019050919050565b6116c381611666565b6116cd8184611671565b92506116d88261167c565b8060005b838110156117095781516116f08782611695565b96506116fb836116ad565b9250506001810190506116dc565b505050505050565b600060408201905061172660008301846116ba565b92915050565b61173581611548565b82525050565b6000602082019050611750600083018461172c565b92915050565b6000806040838503121561176d5761176c61151e565b5b600061177b85828601611571565b925050602061178c858286016115fe565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126117bb576117ba611796565b5b8235905067ffffffffffffffff8111156117d8576117d761179b565b5b6020830191508360208202830111156117f4576117f36117a0565b5b9250929050565b6000806000806000606086880312156118175761181661151e565b5b600061182588828901611571565b955050602086013567ffffffffffffffff81111561184657611845611523565b5b611852888289016117a5565b9450945050604086013567ffffffffffffffff81111561187557611874611523565b5b611881888289016117a5565b92509250509295509295909350565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006118d7602083611890565b91506118e2826118a1565b602082019050919050565b60006020820190508181036000830152611906816118ca565b9050919050565b7f43616e206f6e6c7920706572666f726d207468697320616374696f6e2064757260008201527f696e672073657475700000000000000000000000000000000000000000000000602082015250565b6000611969602983611890565b91506119748261190d565b604082019050919050565b600060208201905081810360008301526119988161195c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006119d9826115b3565b91506119e4836115b3565b9250828210156119f7576119f661199f565b5b828203905092915050565b6000611a0d826115b3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611a4057611a3f61199f565b5b600182019050919050565b7f54696d65206d75737420626520696e2074686520667574757265000000000000600082015250565b6000611a81601a83611890565b9150611a8c82611a4b565b602082019050919050565b60006020820190508181036000830152611ab081611a74565b9050919050565b7f5175616e746974792063616e6e6f74206265207a65726f000000000000000000600082015250565b6000611aed601783611890565b9150611af882611ab7565b602082019050919050565b60006020820190508181036000830152611b1c81611ae0565b9050919050565b6000611b2e826115b3565b9150611b39836115b3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b6e57611b6d61199f565b5b828201905092915050565b600081519050611b88816115e7565b92915050565b600060208284031215611ba457611ba361151e565b5b6000611bb284828501611b79565b91505092915050565b7f4d75737420626520656e6f7567682062616c616e636520696e2074686520636f60008201527f6e747261637420746f2070726f7669646520666f72207468652076657374696e60208201527f6720656e74727900000000000000000000000000000000000000000000000000604082015250565b6000611c3d604783611890565b9150611c4882611bbb565b606082019050919050565b60006020820190508181036000830152611c6c81611c30565b9050919050565b7f56657374696e67207363686564756c6520697320746f6f206c6f6e6700000000600082015250565b6000611ca9601c83611890565b9150611cb482611c73565b602082019050919050565b60006020820190508181036000830152611cd881611c9c565b9050919050565b7f43616e6e6f7420616464206e65772076657374656420656e747269657320656160008201527f726c696572207468616e20746865206c617374206f6e65000000000000000000602082015250565b6000611d3b603783611890565b9150611d4682611cdf565b604082019050919050565b60006020820190508181036000830152611d6a81611d2e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050611db5600083018561172c565b611dc260208301846115bd565b9392505050565b60008115159050919050565b611dde81611dc9565b8114611de957600080fd5b50565b600081519050611dfb81611dd5565b92915050565b600060208284031215611e1757611e1661151e565b5b6000611e2584828501611dec565b91505092915050565b6000604082019050611e4360008301856115bd565b611e5060208301846115bd565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611eb3602683611890565b9150611ebe82611e57565b604082019050919050565b60006020820190508181036000830152611ee281611ea6565b905091905056fea2646970667358221220d98c2200a725b4c0e98bb33bf7b0ff13d6066c54d2e1b6df35788de76eb7680864736f6c634300080c00330000000000000000000000000423d7c27d1dde7eb4aae02dae6b651c7225e6f9
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063bb2a7d0c1161007c578063bb2a7d0c146103da578063d0cc82e3146103f6578063da7bd3e914610414578063ee1d036c14610444578063f2fde38b14610474578063fc0c546a146104905761014d565b806370a08231146102f05780638ad58777146103205780638da5cb5b1461033e57806397f465271461035c5780639b217f901461038c578063a15d59ce146103bc5761014d565b80632f5bb661116101155780632f5bb6611461021a578063458efde31461024a57806345e5441f1461025457806346ba2d901461028457806363667eb7146102a25780636b3905c4146102c05761014d565b8063135c07011461015257806319e740c01461016e5780631bb47b441461019e578063204b676a146101ba578063227d517a146101ea575b600080fd5b61016c60048036038101906101679190611586565b6104ae565b005b61018860048036038101906101839190611586565b610664565b60405161019591906115cc565b60405180910390f35b6101b860048036038101906101b39190611613565b6106b6565b005b6101d460048036038101906101cf9190611586565b610b5f565b6040516101e191906115cc565b60405180910390f35b61020460048036038101906101ff9190611586565b610bab565b60405161021191906115cc565b60405180910390f35b610234600480360381019061022f9190611586565b610bc3565b6040516102419190611711565b60405180910390f35b610252610c1a565b005b61026e60048036038101906102699190611613565b610ec2565b60405161027b91906115cc565b60405180910390f35b61028c610f07565b60405161029991906115cc565b60405180910390f35b6102aa610f0d565b6040516102b791906115cc565b60405180910390f35b6102da60048036038101906102d59190611586565b610f12565b6040516102e791906115cc565b60405180910390f35b61030a60048036038101906103059190611586565b610f3c565b60405161031791906115cc565b60405180910390f35b610328610f85565b60405161033591906115cc565b60405180910390f35b610346610f8a565b604051610353919061173b565b60405180910390f35b61037660048036038101906103719190611586565b610fb3565b60405161038391906115cc565b60405180910390f35b6103a660048036038101906103a19190611756565b610fdd565b6040516103b391906115cc565b60405180910390f35b6103c4611009565b6040516103d191906115cc565b60405180910390f35b6103f460048036038101906103ef91906117fb565b61100f565b005b6103fe611147565b60405161040b91906115cc565b60405180910390f35b61042e60048036038101906104299190611756565b61114c565b60405161043b9190611711565b60405180910390f35b61045e60048036038101906104599190611756565b6111f7565b60405161046b91906115cc565b60405180910390f35b61048e60048036038101906104899190611586565b611223565b005b6104986113de565b6040516104a5919061173b565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461053c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610533906118ed565b60405180910390fd5b6001544210610580576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105779061197f565b60405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105cb9190611404565b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460055461061891906119ce565b600581905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000905550565b60008061067083610b5f565b905060005b818110156106ab5760006106898583610fdd565b146106985780925050506106b1565b80806106a390611a02565b915050610675565b50809150505b919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073b906118ed565b60405180910390fd5b6001544210610788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077f9061197f565b60405180910390fd5b8142106107ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c190611a97565b60405180910390fd5b600081141561080e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080590611b03565b60405180910390fd5b8060055461081c9190611b23565b600581905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161087d919061173b565b602060405180830381865afa15801561089a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108be9190611b8e565b6005541115610902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f990611c53565b60405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050602381111561098d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098490611cbf565b60405180910390fd5b60008114156109df5781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610acd565b826109fe8560016109ef88610b5f565b6109f991906119ce565b610fdd565b10610a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3590611d51565b60405180910390fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a899190611b23565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280858152602001848152509080600181540180825580915050600190039060005260206000209060020201600090919091909150906002610b58929190611428565b5050505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60046020528060005260406000206000915090505481565b610bcb611468565b6000610bd683610664565b9050610be183610b5f565b811415610c07576040518060400160405280600081526020016000815250915050610c15565b610c11838261114c565b9150505b919050565b6000610c2533610b5f565b9050600080600090505b82811015610d19576000610c433383610fdd565b905042811115610c535750610d19565b6000610c5f33846111f7565b90506000811115610d04576040518060400160405280600060ff168152602001600060ff16815250600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610cd857610cd7611d71565b5b9060005260206000209060020201906002610cf492919061148a565b508084610d019190611b23565b93505b50508080610d1190611a02565b915050610c2f565b5060008114610ebe5780600554610d3091906119ce565b60058190555080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d8191906119ce565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610e21929190611da0565b6020604051808303816000875af1158015610e40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e649190611e01565b610e6d57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167ffbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc64283604051610eb5929190611e2e565b60405180910390a25b5050565b60036020528260005260406000208281548110610ede57600080fd5b90600052602060002090600202018160028110610efa57600080fd5b0160009250925050505481565b60015481565b600081565b6000610f1d82610bc3565b600060028110610f3057610f2f611d71565b5b60200201519050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600181565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610fbe82610bc3565b600160028110610fd157610fd0611d71565b5b60200201519050919050565b6000610fe9838361114c565b600060028110610ffc57610ffb611d71565b5b6020020151905092915050565b60055481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611094906118ed565b60405180910390fd5b60015442106110e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d89061197f565b60405180910390fd5b60005b8484905081101561113f5761112c8686868481811061110657611105611d71565b5b905060200201358585858181106111205761111f611d71565b5b905060200201356106b6565b808061113790611a02565b9150506110e4565b505050505050565b602381565b611154611468565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106111a5576111a4611d71565b5b90600052602060002090600202016002806020026040519081016040528092919082600280156111ea576020028201915b8154815260200190600101908083116111d6575b5050505050905092915050565b6000611203838361114c565b60016002811061121657611215611d71565b5b6020020151905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a8906118ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890611ec9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b508054600082556002029060005260206000209081019061142591906114cf565b50565b8260028101928215611457579160200282015b8281111561145657825182559160200191906001019061143b565b5b50905061146491906114f3565b5090565b6040518060400160405280600290602082028036833780820191505090505090565b82600281019282156114be579160200282015b828111156114bd578251829060ff1690559160200191906001019061149d565b5b5090506114cb91906114f3565b5090565b5b808211156114ef57600081816114e69190611510565b506002016114d0565b5090565b5b8082111561150c5760008160009055506001016114f4565b5090565b506000815560010160009055565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061155382611528565b9050919050565b61156381611548565b811461156e57600080fd5b50565b6000813590506115808161155a565b92915050565b60006020828403121561159c5761159b61151e565b5b60006115aa84828501611571565b91505092915050565b6000819050919050565b6115c6816115b3565b82525050565b60006020820190506115e160008301846115bd565b92915050565b6115f0816115b3565b81146115fb57600080fd5b50565b60008135905061160d816115e7565b92915050565b60008060006060848603121561162c5761162b61151e565b5b600061163a86828701611571565b935050602061164b868287016115fe565b925050604061165c868287016115fe565b9150509250925092565b600060029050919050565b600081905092915050565b6000819050919050565b61168f816115b3565b82525050565b60006116a18383611686565b60208301905092915050565b6000602082019050919050565b6116c381611666565b6116cd8184611671565b92506116d88261167c565b8060005b838110156117095781516116f08782611695565b96506116fb836116ad565b9250506001810190506116dc565b505050505050565b600060408201905061172660008301846116ba565b92915050565b61173581611548565b82525050565b6000602082019050611750600083018461172c565b92915050565b6000806040838503121561176d5761176c61151e565b5b600061177b85828601611571565b925050602061178c858286016115fe565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126117bb576117ba611796565b5b8235905067ffffffffffffffff8111156117d8576117d761179b565b5b6020830191508360208202830111156117f4576117f36117a0565b5b9250929050565b6000806000806000606086880312156118175761181661151e565b5b600061182588828901611571565b955050602086013567ffffffffffffffff81111561184657611845611523565b5b611852888289016117a5565b9450945050604086013567ffffffffffffffff81111561187557611874611523565b5b611881888289016117a5565b92509250509295509295909350565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006118d7602083611890565b91506118e2826118a1565b602082019050919050565b60006020820190508181036000830152611906816118ca565b9050919050565b7f43616e206f6e6c7920706572666f726d207468697320616374696f6e2064757260008201527f696e672073657475700000000000000000000000000000000000000000000000602082015250565b6000611969602983611890565b91506119748261190d565b604082019050919050565b600060208201905081810360008301526119988161195c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006119d9826115b3565b91506119e4836115b3565b9250828210156119f7576119f661199f565b5b828203905092915050565b6000611a0d826115b3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611a4057611a3f61199f565b5b600182019050919050565b7f54696d65206d75737420626520696e2074686520667574757265000000000000600082015250565b6000611a81601a83611890565b9150611a8c82611a4b565b602082019050919050565b60006020820190508181036000830152611ab081611a74565b9050919050565b7f5175616e746974792063616e6e6f74206265207a65726f000000000000000000600082015250565b6000611aed601783611890565b9150611af882611ab7565b602082019050919050565b60006020820190508181036000830152611b1c81611ae0565b9050919050565b6000611b2e826115b3565b9150611b39836115b3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b6e57611b6d61199f565b5b828201905092915050565b600081519050611b88816115e7565b92915050565b600060208284031215611ba457611ba361151e565b5b6000611bb284828501611b79565b91505092915050565b7f4d75737420626520656e6f7567682062616c616e636520696e2074686520636f60008201527f6e747261637420746f2070726f7669646520666f72207468652076657374696e60208201527f6720656e74727900000000000000000000000000000000000000000000000000604082015250565b6000611c3d604783611890565b9150611c4882611bbb565b606082019050919050565b60006020820190508181036000830152611c6c81611c30565b9050919050565b7f56657374696e67207363686564756c6520697320746f6f206c6f6e6700000000600082015250565b6000611ca9601c83611890565b9150611cb482611c73565b602082019050919050565b60006020820190508181036000830152611cd881611c9c565b9050919050565b7f43616e6e6f7420616464206e65772076657374656420656e747269657320656160008201527f726c696572207468616e20746865206c617374206f6e65000000000000000000602082015250565b6000611d3b603783611890565b9150611d4682611cdf565b604082019050919050565b60006020820190508181036000830152611d6a81611d2e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050611db5600083018561172c565b611dc260208301846115bd565b9392505050565b60008115159050919050565b611dde81611dc9565b8114611de957600080fd5b50565b600081519050611dfb81611dd5565b92915050565b600060208284031215611e1757611e1661151e565b5b6000611e2584828501611dec565b91505092915050565b6000604082019050611e4360008301856115bd565b611e5060208301846115bd565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611eb3602683611890565b9150611ebe82611e57565b604082019050919050565b60006020820190508181036000830152611ee281611ea6565b905091905056fea2646970667358221220d98c2200a725b4c0e98bb33bf7b0ff13d6066c54d2e1b6df35788de76eb7680864736f6c634300080c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000423d7c27d1dde7eb4aae02dae6b651c7225e6f9
-----Decoded View---------------
Arg [0] : _token (address): 0x0423d7C27D1dDE7Eb4aaE02Dae6B651C7225e6f9
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000423d7c27d1dde7eb4aae02dae6b651c7225e6f9
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 29 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.