More Info
Private Name Tags
ContractCreator
Latest 16 from a total of 16 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Trigger Token Se... | 17131897 | 692 days ago | IN | 0 ETH | 0.01623655 | ||||
Trigger Token Se... | 15582323 | 910 days ago | IN | 0 ETH | 0.00460059 | ||||
Trigger Token Se... | 15333853 | 949 days ago | IN | 0 ETH | 0.00832852 | ||||
Trigger Token Se... | 14855041 | 1027 days ago | IN | 0 ETH | 0.02196714 | ||||
Trigger Token Se... | 14353479 | 1106 days ago | IN | 0 ETH | 0.02044338 | ||||
Trigger Token Se... | 13740880 | 1201 days ago | IN | 0 ETH | 0.05131244 | ||||
Trigger Token Se... | 13315854 | 1267 days ago | IN | 0 ETH | 0.04026546 | ||||
Trigger Token Se... | 13140168 | 1295 days ago | IN | 0 ETH | 0.04689613 | ||||
Trigger Token Se... | 12951640 | 1324 days ago | IN | 0 ETH | 0.0088838 | ||||
Trigger Token Se... | 12900923 | 1332 days ago | IN | 0 ETH | 0.00734779 | ||||
Trigger Token Se... | 12862471 | 1338 days ago | IN | 0 ETH | 0.00977978 | ||||
Transfer Ownersh... | 12478855 | 1397 days ago | IN | 0 ETH | 0.004045 | ||||
Set TGE Date | 12478757 | 1398 days ago | IN | 0 ETH | 0.00648435 | ||||
Trigger Token Se... | 12478726 | 1398 days ago | IN | 0 ETH | 0.12439846 | ||||
Set TGE Date | 12478685 | 1398 days ago | IN | 0 ETH | 0.01040684 | ||||
Set Token Addres... | 12438944 | 1404 days ago | IN | 0 ETH | 0.00309761 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
DistributionContract
Compiler Version
v0.5.8+commit.23d335f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-05-21 */ pragma solidity 0.5.8; // File: openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. * * _Available since v2.4.0._ */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } // File: openzeppelin-solidity/contracts/token/ERC20/ERC20.sol /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public view returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } // File: openzeppelin-solidity/contracts/ownership/Ownable.sol /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } } // File: openzeppelin-solidity/contracts/lifecycle/Pausable.sol /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Pausable is Ownable { event Pause(); event Unpause(); bool public paused = false; /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!paused); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(paused); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() onlyOwner whenNotPaused public { paused = true; emit Pause(); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() onlyOwner whenPaused public { paused = false; emit Unpause(); } } // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see <https://www.gnu.org/licenses/>. contract DistributionContract is Pausable { using SafeMath for uint256; uint256 constant public decimals = 1 ether; address[] public tokenOwners ; /* Tracks distributions mapping (iterable) */ uint256 public TGEDate = 0; /* Date From where the distribution starts (TGE) */ uint256 constant public month = 30 days; uint256 constant public year = 365 days; uint256 public lastDateDistribution = 0; mapping(address => DistributionStep[]) public distributions; /* Distribution object */ ERC20 public erc20; struct DistributionStep { uint256 amountAllocated; uint256 currentAllocated; uint256 unlockDay; uint256 amountSent; } constructor() public{ /* Private Sale - 280M - 20% on TGE, then 20% every 2 months */ setInitialDistribution(0x6C7C41059294FB407EB01559a87c209e175448A4, 56000000, 0); setInitialDistribution(0x6C7C41059294FB407EB01559a87c209e175448A4, 56000000, 2*month); setInitialDistribution(0x6C7C41059294FB407EB01559a87c209e175448A4, 56000000, 4*month); setInitialDistribution(0x6C7C41059294FB407EB01559a87c209e175448A4, 56000000, 6*month); setInitialDistribution(0x6C7C41059294FB407EB01559a87c209e175448A4, 56000000, 8*month); /* Public Sale - 40M - fully unlocked */ setInitialDistribution(0xB6DBeE9352047F44c02A2EBf236Caad8c2B96204, 40000000, 0); /* Liquidity - 240M - 20% on TGE, 10% per month over 8 months */ setInitialDistribution(0xD355F843749eC58Db8402394C47a36C613C77e42, 48000000, 0); setInitialDistribution(0xD355F843749eC58Db8402394C47a36C613C77e42, 24000000, month); setInitialDistribution(0xD355F843749eC58Db8402394C47a36C613C77e42, 24000000, 2*month); setInitialDistribution(0xD355F843749eC58Db8402394C47a36C613C77e42, 24000000, 3*month); setInitialDistribution(0xD355F843749eC58Db8402394C47a36C613C77e42, 24000000, 4*month); setInitialDistribution(0xD355F843749eC58Db8402394C47a36C613C77e42, 24000000, 5*month); setInitialDistribution(0xD355F843749eC58Db8402394C47a36C613C77e42, 24000000, 6*month); setInitialDistribution(0xD355F843749eC58Db8402394C47a36C613C77e42, 24000000, 7*month); setInitialDistribution(0xD355F843749eC58Db8402394C47a36C613C77e42, 24000000, 8*month); /* Ecosystem - 240M - 20% on TGE, 10% per month over 8 months */ setInitialDistribution(0x285Bd1cA703625c4e8f2F16e961A4B6b4D5dfe4d, 48000000, 0); setInitialDistribution(0x285Bd1cA703625c4e8f2F16e961A4B6b4D5dfe4d, 24000000, month); setInitialDistribution(0x285Bd1cA703625c4e8f2F16e961A4B6b4D5dfe4d, 24000000, 2*month); setInitialDistribution(0x285Bd1cA703625c4e8f2F16e961A4B6b4D5dfe4d, 24000000, 3*month); setInitialDistribution(0x285Bd1cA703625c4e8f2F16e961A4B6b4D5dfe4d, 24000000, 4*month); setInitialDistribution(0x285Bd1cA703625c4e8f2F16e961A4B6b4D5dfe4d, 24000000, 5*month); setInitialDistribution(0x285Bd1cA703625c4e8f2F16e961A4B6b4D5dfe4d, 24000000, 6*month); setInitialDistribution(0x285Bd1cA703625c4e8f2F16e961A4B6b4D5dfe4d, 24000000, 7*month); setInitialDistribution(0x285Bd1cA703625c4e8f2F16e961A4B6b4D5dfe4d, 24000000, 8*month); /* Team & Advisors - 100M - 1 year fully locked, then 25% quarterly */ setInitialDistribution(0x037BCCFA864F8B771c6964ef5A10a01a0AF4Ff15, 25000000, year); setInitialDistribution(0x037BCCFA864F8B771c6964ef5A10a01a0AF4Ff15, 25000000, year.add(3*month)); setInitialDistribution(0x037BCCFA864F8B771c6964ef5A10a01a0AF4Ff15, 25000000, year.add(6*month)); setInitialDistribution(0x037BCCFA864F8B771c6964ef5A10a01a0AF4Ff15, 25000000, year.add(9*month)); /* Foundational Reserve - 100M - 1 year fully locked, then 25% quarterly */ setInitialDistribution(0x131a0eDE9661ca7bd7070F5aB9DA823B935d3f42, 25000000, year); setInitialDistribution(0x131a0eDE9661ca7bd7070F5aB9DA823B935d3f42, 25000000, year.add(3*month)); setInitialDistribution(0x131a0eDE9661ca7bd7070F5aB9DA823B935d3f42, 25000000, year.add(6*month)); setInitialDistribution(0x131a0eDE9661ca7bd7070F5aB9DA823B935d3f42, 25000000, year.add(9*month)); } function setTokenAddress(address _tokenAddress) external onlyOwner whenNotPaused { erc20 = ERC20(_tokenAddress); } function safeGuardAllTokens(address _address) external onlyOwner whenPaused { /* In case of needed urgency for the sake of contract bug */ require(erc20.transfer(_address, erc20.balanceOf(address(this)))); } function setTGEDate(uint256 _time) external onlyOwner whenNotPaused { TGEDate = _time; } /** * Should allow any address to trigger it, but since the calls are atomic it should do only once per day */ function triggerTokenSend() external whenNotPaused { /* Require TGE Date already been set */ require(TGEDate != 0, "TGE date not set yet"); /* TGE has not started */ require(block.timestamp > TGEDate, "TGE still hasn´t started"); /* Test that the call be only done once per day */ require(block.timestamp.sub(lastDateDistribution) > 1 days, "Can only be called once a day"); lastDateDistribution = block.timestamp; /* Go thru all tokenOwners */ for(uint i = 0; i < tokenOwners.length; i++) { /* Get Address Distribution */ DistributionStep[] memory d = distributions[tokenOwners[i]]; /* Go thru all distributions array */ for(uint j = 0; j < d.length; j++){ if( (block.timestamp.sub(TGEDate) > d[j].unlockDay) /* Verify if unlockDay has passed */ && (d[j].currentAllocated > 0) /* Verify if currentAllocated > 0, so that address has tokens to be sent still */ ){ uint256 sendingAmount; sendingAmount = d[j].currentAllocated; distributions[tokenOwners[i]][j].currentAllocated = distributions[tokenOwners[i]][j].currentAllocated.sub(sendingAmount); distributions[tokenOwners[i]][j].amountSent = distributions[tokenOwners[i]][j].amountSent.add(sendingAmount); require(erc20.transfer(tokenOwners[i], sendingAmount)); } } } } function setInitialDistribution(address _address, uint256 _tokenAmount, uint256 _unlockDays) internal onlyOwner whenNotPaused { /* Add tokenOwner to Eachable Mapping */ bool isAddressPresent = false; /* Verify if tokenOwner was already added */ for(uint i = 0; i < tokenOwners.length; i++) { if(tokenOwners[i] == _address){ isAddressPresent = true; } } /* Create DistributionStep Object */ DistributionStep memory distributionStep = DistributionStep(_tokenAmount * decimals, _tokenAmount * decimals, _unlockDays, 0); /* Attach */ distributions[_address].push(distributionStep); /* If Address not present in array of iterable token owners */ if(!isAddressPresent){ tokenOwners.push(_address); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[{"name":"_tokenAddress","type":"address"}],"name":"setTokenAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"distributions","outputs":[{"name":"amountAllocated","type":"uint256"},{"name":"currentAllocated","type":"uint256"},{"name":"unlockDay","type":"uint256"},{"name":"amountSent","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_time","type":"uint256"}],"name":"setTGEDate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"month","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastDateDistribution","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"erc20","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"triggerTokenSend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"safeGuardAllTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TGEDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"year","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenOwners","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
608060405260008060146101000a81548160ff021916908315150217905550600060025560006003553480156200003557600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000a2736c7c41059294fb407eb01559a87c209e175448a46303567e0060006200072c60201b60201c565b620000d3736c7c41059294fb407eb01559a87c209e175448a46303567e0062278d006002026200072c60201b60201c565b62000104736c7c41059294fb407eb01559a87c209e175448a46303567e0062278d006004026200072c60201b60201c565b62000135736c7c41059294fb407eb01559a87c209e175448a46303567e0062278d006006026200072c60201b60201c565b62000166736c7c41059294fb407eb01559a87c209e175448a46303567e0062278d006008026200072c60201b60201c565b6200019273b6dbee9352047f44c02a2ebf236caad8c2b962046302625a0060006200072c60201b60201c565b620001be73d355f843749ec58db8402394c47a36c613c77e426302dc6c0060006200072c60201b60201c565b620001ec73d355f843749ec58db8402394c47a36c613c77e4263016e360062278d006200072c60201b60201c565b6200021d73d355f843749ec58db8402394c47a36c613c77e4263016e360062278d006002026200072c60201b60201c565b6200024e73d355f843749ec58db8402394c47a36c613c77e4263016e360062278d006003026200072c60201b60201c565b6200027f73d355f843749ec58db8402394c47a36c613c77e4263016e360062278d006004026200072c60201b60201c565b620002b073d355f843749ec58db8402394c47a36c613c77e4263016e360062278d006005026200072c60201b60201c565b620002e173d355f843749ec58db8402394c47a36c613c77e4263016e360062278d006006026200072c60201b60201c565b6200031273d355f843749ec58db8402394c47a36c613c77e4263016e360062278d006007026200072c60201b60201c565b6200034373d355f843749ec58db8402394c47a36c613c77e4263016e360062278d006008026200072c60201b60201c565b6200036f73285bd1ca703625c4e8f2f16e961a4b6b4d5dfe4d6302dc6c0060006200072c60201b60201c565b6200039d73285bd1ca703625c4e8f2f16e961a4b6b4d5dfe4d63016e360062278d006200072c60201b60201c565b620003ce73285bd1ca703625c4e8f2f16e961a4b6b4d5dfe4d63016e360062278d006002026200072c60201b60201c565b620003ff73285bd1ca703625c4e8f2f16e961a4b6b4d5dfe4d63016e360062278d006003026200072c60201b60201c565b6200043073285bd1ca703625c4e8f2f16e961a4b6b4d5dfe4d63016e360062278d006004026200072c60201b60201c565b6200046173285bd1ca703625c4e8f2f16e961a4b6b4d5dfe4d63016e360062278d006005026200072c60201b60201c565b6200049273285bd1ca703625c4e8f2f16e961a4b6b4d5dfe4d63016e360062278d006006026200072c60201b60201c565b620004c373285bd1ca703625c4e8f2f16e961a4b6b4d5dfe4d63016e360062278d006007026200072c60201b60201c565b620004f473285bd1ca703625c4e8f2f16e961a4b6b4d5dfe4d63016e360062278d006008026200072c60201b60201c565b6200052373037bccfa864f8b771c6964ef5a10a01a0af4ff1563017d78406301e133806200072c60201b60201c565b6200057173037bccfa864f8b771c6964ef5a10a01a0af4ff1563017d78406200056562278d006003026301e133806200098760201b620012c81790919060201c565b6200072c60201b60201c565b620005bf73037bccfa864f8b771c6964ef5a10a01a0af4ff1563017d7840620005b362278d006006026301e133806200098760201b620012c81790919060201c565b6200072c60201b60201c565b6200060d73037bccfa864f8b771c6964ef5a10a01a0af4ff1563017d78406200060162278d006009026301e133806200098760201b620012c81790919060201c565b6200072c60201b60201c565b6200063c73131a0ede9661ca7bd7070f5ab9da823b935d3f4263017d78406301e133806200072c60201b60201c565b6200068a73131a0ede9661ca7bd7070f5ab9da823b935d3f4263017d78406200067e62278d006003026301e133806200098760201b620012c81790919060201c565b6200072c60201b60201c565b620006d873131a0ede9661ca7bd7070f5ab9da823b935d3f4263017d7840620006cc62278d006006026301e133806200098760201b620012c81790919060201c565b6200072c60201b60201c565b6200072673131a0ede9661ca7bd7070f5ab9da823b935d3f4263017d78406200071a62278d006009026301e133806200098760201b620012c81790919060201c565b6200072c60201b60201c565b62000a38565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146200078657600080fd5b600060149054906101000a900460ff1615620007a157600080fd5b600080905060008090505b6001805490508110156200083a578473ffffffffffffffffffffffffffffffffffffffff1660018281548110620007df57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156200082c57600191505b8080600101915050620007ac565b506200084562000a10565b6040518060800160405280670de0b6b3a764000086028152602001670de0b6b3a76400008602815260200184815260200160008152509050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081908060018154018082558091505090600182039060005260206000209060040201600090919290919091506000820151816000015560208201518160010155604082015181600201556060820151816003015550505081620009805760018590806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5050505050565b60008082840190508381101562000a06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b61143c8062000a486000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063785e9e86116100a2578063b90c72ae11610071578063b90c72ae14610327578063cb1287281461036b578063f2fde38b14610389578063f3269716146103cd578063f8a14f46146103eb5761010b565b8063785e9e861461027f57806383e2ad63146102c95780638456cb59146102d35780638da5cb5b146102dd5761010b565b80633f4ba83a116100de5780633f4ba83a146102175780635c975abb14610221578063702921f51461024357806376093957146102615761010b565b806326a4e8d2146101105780632d9b4b2514610154578063313ce567146101cb57806332a01103146101e9575b600080fd5b6101526004803603602081101561012657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610459565b005b6101a06004803603604081101561016a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b6101d361055a565b6040518082815260200191505060405180910390f35b610215600480360360208110156101ff57600080fd5b8101908080359060200190929190505050610566565b005b61021f6105e3565b005b61022961069d565b604051808215151515815260200191505060405180910390f35b61024b6106b0565b6040518082815260200191505060405180910390f35b6102696106b7565b6040518082815260200191505060405180910390f35b6102876106bd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102d16106e3565b005b6102db610dc7565b005b6102e5610e83565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103696004803603602081101561033d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ea8565b005b6103736110e3565b6040518082815260200191505060405180910390f35b6103cb6004803603602081101561039f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e9565b005b6103d561123a565b6040518082815260200191505060405180910390f35b6104176004803603602081101561040157600080fd5b8101908080359060200190929190505050611242565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104b257600080fd5b600060149054906101000a900460ff16156104cc57600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6004602052816000526040600020818154811061052957fe5b9060005260206000209060040201600091509150508060000154908060010154908060020154908060030154905084565b670de0b6b3a764000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105bf57600080fd5b600060149054906101000a900460ff16156105d957600080fd5b8060028190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461063c57600080fd5b600060149054906101000a900460ff1661065557600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600060149054906101000a900460ff1681565b62278d0081565b60035481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060149054906101000a900460ff16156106fd57600080fd5b60006002541415610776576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5447452064617465206e6f74207365742079657400000000000000000000000081525060200191505060405180910390fd5b60025442116107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f544745207374696c6c206861736ec2b47420737461727465640000000000000081525060200191505060405180910390fd5b620151806108066003544261127e90919063ffffffff16565b11610879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f43616e206f6e6c792062652063616c6c6564206f6e636520612064617900000081525060200191505060405180910390fd5b4260038190555060008090505b600180549050811015610dc457606060046000600184815481106108a657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561098557838290600052602060002090600402016040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820154815250508152602001906001019061092b565b50505050905060008090505b8151811015610db5578181815181106109a657fe5b6020026020010151604001516109c76002544261127e90919063ffffffff16565b1180156109eb575060008282815181106109dd57fe5b602002602001015160200151115b15610da85760008282815181106109fe57fe5b6020026020010151602001519050610ab1816004600060018881548110610a2157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610a9157fe5b90600052602060002090600402016001015461127e90919063ffffffff16565b6004600060018781548110610ac257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610b3257fe5b906000526020600020906004020160010181905550610bec816004600060018881548110610b5c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610bcc57fe5b9060005260206000209060040201600301546112c890919063ffffffff16565b6004600060018781548110610bfd57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610c6d57fe5b906000526020600020906004020160030181905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60018681548110610ccd57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610d6257600080fd5b505af1158015610d76573d6000803e3d6000fd5b505050506040513d6020811015610d8c57600080fd5b8101908080519060200190929190505050610da657600080fd5b505b8080600101915050610991565b50508080600101915050610886565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e2057600080fd5b600060149054906101000a900460ff1615610e3a57600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f0157600080fd5b600060149054906101000a900460ff16610f1a57600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610ff857600080fd5b505afa15801561100c573d6000803e3d6000fd5b505050506040513d602081101561102257600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561109c57600080fd5b505af11580156110b0573d6000803e3d6000fd5b505050506040513d60208110156110c657600080fd5b81019080805190602001909291905050506110e057600080fd5b50565b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561117c57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6301e1338081565b6001818154811061124f57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611350565b905092915050565b600080828401905083811015611346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008383111582906113fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156113c25780820151818401526020810190506113a7565b50505050905090810190601f1680156113ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fea165627a7a72305820f0485fa89cb0d8492af20922333c22fac041c79a738c4ee8c07afc94362805200029
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061010b5760003560e01c8063785e9e86116100a2578063b90c72ae11610071578063b90c72ae14610327578063cb1287281461036b578063f2fde38b14610389578063f3269716146103cd578063f8a14f46146103eb5761010b565b8063785e9e861461027f57806383e2ad63146102c95780638456cb59146102d35780638da5cb5b146102dd5761010b565b80633f4ba83a116100de5780633f4ba83a146102175780635c975abb14610221578063702921f51461024357806376093957146102615761010b565b806326a4e8d2146101105780632d9b4b2514610154578063313ce567146101cb57806332a01103146101e9575b600080fd5b6101526004803603602081101561012657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610459565b005b6101a06004803603604081101561016a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b6101d361055a565b6040518082815260200191505060405180910390f35b610215600480360360208110156101ff57600080fd5b8101908080359060200190929190505050610566565b005b61021f6105e3565b005b61022961069d565b604051808215151515815260200191505060405180910390f35b61024b6106b0565b6040518082815260200191505060405180910390f35b6102696106b7565b6040518082815260200191505060405180910390f35b6102876106bd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102d16106e3565b005b6102db610dc7565b005b6102e5610e83565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103696004803603602081101561033d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ea8565b005b6103736110e3565b6040518082815260200191505060405180910390f35b6103cb6004803603602081101561039f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e9565b005b6103d561123a565b6040518082815260200191505060405180910390f35b6104176004803603602081101561040157600080fd5b8101908080359060200190929190505050611242565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104b257600080fd5b600060149054906101000a900460ff16156104cc57600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6004602052816000526040600020818154811061052957fe5b9060005260206000209060040201600091509150508060000154908060010154908060020154908060030154905084565b670de0b6b3a764000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105bf57600080fd5b600060149054906101000a900460ff16156105d957600080fd5b8060028190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461063c57600080fd5b600060149054906101000a900460ff1661065557600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600060149054906101000a900460ff1681565b62278d0081565b60035481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060149054906101000a900460ff16156106fd57600080fd5b60006002541415610776576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5447452064617465206e6f74207365742079657400000000000000000000000081525060200191505060405180910390fd5b60025442116107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f544745207374696c6c206861736ec2b47420737461727465640000000000000081525060200191505060405180910390fd5b620151806108066003544261127e90919063ffffffff16565b11610879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f43616e206f6e6c792062652063616c6c6564206f6e636520612064617900000081525060200191505060405180910390fd5b4260038190555060008090505b600180549050811015610dc457606060046000600184815481106108a657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561098557838290600052602060002090600402016040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820154815250508152602001906001019061092b565b50505050905060008090505b8151811015610db5578181815181106109a657fe5b6020026020010151604001516109c76002544261127e90919063ffffffff16565b1180156109eb575060008282815181106109dd57fe5b602002602001015160200151115b15610da85760008282815181106109fe57fe5b6020026020010151602001519050610ab1816004600060018881548110610a2157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610a9157fe5b90600052602060002090600402016001015461127e90919063ffffffff16565b6004600060018781548110610ac257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610b3257fe5b906000526020600020906004020160010181905550610bec816004600060018881548110610b5c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610bcc57fe5b9060005260206000209060040201600301546112c890919063ffffffff16565b6004600060018781548110610bfd57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610c6d57fe5b906000526020600020906004020160030181905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60018681548110610ccd57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610d6257600080fd5b505af1158015610d76573d6000803e3d6000fd5b505050506040513d6020811015610d8c57600080fd5b8101908080519060200190929190505050610da657600080fd5b505b8080600101915050610991565b50508080600101915050610886565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e2057600080fd5b600060149054906101000a900460ff1615610e3a57600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f0157600080fd5b600060149054906101000a900460ff16610f1a57600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610ff857600080fd5b505afa15801561100c573d6000803e3d6000fd5b505050506040513d602081101561102257600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561109c57600080fd5b505af11580156110b0573d6000803e3d6000fd5b505050506040513d60208110156110c657600080fd5b81019080805190602001909291905050506110e057600080fd5b50565b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561117c57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6301e1338081565b6001818154811061124f57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611350565b905092915050565b600080828401905083811015611346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008383111582906113fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156113c25780820151818401526020810190506113a7565b50505050905090810190601f1680156113ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fea165627a7a72305820f0485fa89cb0d8492af20922333c22fac041c79a738c4ee8c07afc94362805200029
Deployed Bytecode Sourcemap
9342:7402:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9342:7402:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13688:129;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13688:129:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9790:59;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9790:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9426:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14059:103;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14059:103:0;;;;;;;;;;;;;;;;;:::i;:::-;;8565:105;;;:::i;:::-;;7890:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9642:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9734;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9888:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14301:1562;;;:::i;:::-;;8369:103;;;:::i;:::-;;6778:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13829:222;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13829:222:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9557:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7427:192;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7427:192:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9688:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9475:28;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9475:28:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13688:129;7227:5;;;;;;;;;;;7213:19;;:10;:19;;;7205:28;;;;;;8076:6;;;;;;;;;;;8075:7;8067:16;;;;;;13795:13;13781:5;;:28;;;;;;;;;;;;;;;;;;13688:129;:::o;9790:59::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9426:42::-;9461:7;9426:42;:::o;14059:103::-;7227:5;;;;;;;;;;;7213:19;;:10;:19;;;7205:28;;;;;;8076:6;;;;;;;;;;;8075:7;8067:16;;;;;;14149:5;14139:7;:15;;;;14059:103;:::o;8565:105::-;7227:5;;;;;;;;;;;7213:19;;:10;:19;;;7205:28;;;;;;8252:6;;;;;;;;;;;8244:15;;;;;;8632:5;8623:6;;:14;;;;;;;;;;;;;;;;;;8653:9;;;;;;;;;;8565:105::o;7890:26::-;;;;;;;;;;;;;:::o;9642:39::-;9674:7;9642:39;:::o;9734:::-;;;;:::o;9888:18::-;;;;;;;;;;;;;:::o;14301:1562::-;8076:6;;;;;;;;;;;8075:7;8067:16;;;;;;14432:1;14421:7;;:12;;14413:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14530:7;;14512:15;:25;14504:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14690:6;14646:41;14666:20;;14646:15;:19;;:41;;;;:::i;:::-;:50;14638:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14764:15;14741:20;:38;;;;14833:6;14842:1;14833:10;;14829:1024;14849:11;:18;;;;14845:1;:22;14829:1024;;;14933:27;14963:13;:29;14977:11;14989:1;14977:14;;;;;;;;;;;;;;;;;;;;;;;;;14963:29;;;;;;;;;;;;;;;14933:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15062:6;15071:1;15062:10;;15058:784;15078:1;:8;15074:1;:12;15058:784;;;15147:1;15149;15147:4;;;;;;;;;;;;;;:14;;;15116:28;15136:7;;15116:15;:19;;:28;;;;:::i;:::-;:45;15115:136;;;;;15249:1;15225;15227;15225:4;;;;;;;;;;;;;;:21;;;:25;15115:136;15111:716;;;15375:21;15435:1;15437;15435:4;;;;;;;;;;;;;;:21;;;15419:37;;15531:68;15585:13;15531;:29;15545:11;15557:1;15545:14;;;;;;;;;;;;;;;;;;;;;;;;;15531:29;;;;;;;;;;;;;;;15561:1;15531:32;;;;;;;;;;;;;;;;;;:49;;;:53;;:68;;;;:::i;:::-;15479:13;:29;15493:11;15505:1;15493:14;;;;;;;;;;;;;;;;;;;;;;;;;15479:29;;;;;;;;;;;;;;;15509:1;15479:32;;;;;;;;;;;;;;;;;;:49;;:120;;;;15668:62;15716:13;15668;:29;15682:11;15694:1;15682:14;;;;;;;;;;;;;;;;;;;;;;;;;15668:29;;;;;;;;;;;;;;;15698:1;15668:32;;;;;;;;;;;;;;;;;;:43;;;:47;;:62;;;;:::i;:::-;15622:13;:29;15636:11;15648:1;15636:14;;;;;;;;;;;;;;;;;;;;;;;;;15622:29;;;;;;;;;;;;;;;15652:1;15622:32;;;;;;;;;;;;;;;;;;:43;;:108;;;;15761:5;;;;;;;;;;;:14;;;15776:11;15788:1;15776:14;;;;;;;;;;;;;;;;;;;;;;;;;15792:13;15761:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15761:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15761:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15761:45:0;;;;;;;;;;;;;;;;15753:54;;;;;;15111:716;;15088:3;;;;;;;15058:784;;;;14829:1024;14869:3;;;;;;;14829:1024;;;;14301:1562::o;8369:103::-;7227:5;;;;;;;;;;;7213:19;;:10;:19;;;7205:28;;;;;;8076:6;;;;;;;;;;;8075:7;8067:16;;;;;;8437:4;8428:6;;:13;;;;;;;;;;;;;;;;;;8457:7;;;;;;;;;;8369:103::o;6778:20::-;;;;;;;;;;;;;:::o;13829:222::-;7227:5;;;;;;;;;;;7213:19;;:10;:19;;;7205:28;;;;;;8252:6;;;;;;;;;;;8244:15;;;;;;13986:5;;;;;;;;;;;:14;;;14001:8;14011:5;;;;;;;;;;;:15;;;14035:4;14011:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14011:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14011:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14011:30:0;;;;;;;;;;;;;;;;13986:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13986:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13986:56:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13986:56:0;;;;;;;;;;;;;;;;13978:65;;;;;;13829:222;:::o;9557:26::-;;;;:::o;7427:192::-;7227:5;;;;;;;;;;;7213:19;;:10;:19;;;7205:28;;;;;;7528:1;7508:22;;:8;:22;;;;7500:31;;;;;;7575:8;7547:37;;7568:5;;;;;;;;;;;7547:37;;;;;;;;;;;;7603:8;7595:5;;:16;;;;;;;;;;;;;;;;;;7427:192;:::o;9688:39::-;9719:8;9688:39;:::o;9475:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1825:136::-;1883:7;1910:43;1914:1;1917;1910:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1903:50;;1825:136;;;;:::o;1369:181::-;1427:7;1447:9;1463:1;1459;:5;1447:17;;1488:1;1483;:6;;1475:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1541:1;1534:8;;;1369:181;;;;:::o;2298:192::-;2384:7;2417:1;2412;:6;;2420:12;2404:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2404:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2444:9;2460:1;2456;:5;2444:17;;2481:1;2474:8;;;2298:192;;;;;:::o
Swarm Source
bzzr://f0485fa89cb0d8492af20922333c22fac041c79a738c4ee8c07afc9436280520
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
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.