More Info
Private Name Tags
ContractCreator
Latest 17 from a total of 17 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Trigger Token Se... | 15968614 | 684 days ago | IN | 0 ETH | 0.02889257 | ||||
Trigger Token Se... | 15191929 | 799 days ago | IN | 0 ETH | 0.00754441 | ||||
Trigger Token Se... | 14576109 | 899 days ago | IN | 0 ETH | 0.02949239 | ||||
Trigger Token Se... | 13980845 | 992 days ago | IN | 0 ETH | 0.20136887 | ||||
Trigger Token Se... | 13524478 | 1063 days ago | IN | 0 ETH | 0.10246633 | ||||
Trigger Token Se... | 12951596 | 1152 days ago | IN | 0 ETH | 0.01833755 | ||||
Trigger Token Se... | 12767221 | 1181 days ago | IN | 0 ETH | 0.01100046 | ||||
Trigger Token Se... | 12561581 | 1213 days ago | IN | 0 ETH | 0.01613097 | ||||
Trigger Token Se... | 12356708 | 1245 days ago | IN | 0 ETH | 0.02932352 | ||||
Trigger Token Se... | 12149154 | 1277 days ago | IN | 0 ETH | 0.35342898 | ||||
Trigger Token Se... | 11953650 | 1307 days ago | IN | 0 ETH | 0.18277969 | ||||
Trigger Token Se... | 11752578 | 1338 days ago | IN | 0 ETH | 0.15255945 | ||||
Trigger Token Se... | 11550546 | 1369 days ago | IN | 0 ETH | 0.0504952 | ||||
Transfer Ownersh... | 11550545 | 1369 days ago | IN | 0 ETH | 0.0030888 | ||||
Set TGE Date | 11550544 | 1369 days ago | IN | 0 ETH | 0.0043348 | ||||
Set Token Addres... | 11550543 | 1369 days ago | IN | 0 ETH | 0.0044333 | ||||
0x60806040 | 11550471 | 1369 days ago | IN | 0 ETH | 0.7774448 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
DistibutionContract4
Compiler Version
v0.5.8+commit.23d335f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-12-29 */ /** *Submitted for verification at Etherscan.io on 2020-09-28 */ /** *Submitted for verification at Etherscan.io on 2018-09-01 */ 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 DistibutionContract4 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{ /* Ecosystem */ setInitialDistribution(0xadaCAC0455b324C8Df53cf3DF18f3112C1D2f992, 4000000, 0 /* No Lock */); setInitialDistribution(0xadaCAC0455b324C8Df53cf3DF18f3112C1D2f992, 2000000, 1*month); setInitialDistribution(0xadaCAC0455b324C8Df53cf3DF18f3112C1D2f992, 2000000, 2*month); setInitialDistribution(0xadaCAC0455b324C8Df53cf3DF18f3112C1D2f992, 2000000, 3*month); setInitialDistribution(0xadaCAC0455b324C8Df53cf3DF18f3112C1D2f992, 2000000, 4*month); setInitialDistribution(0xadaCAC0455b324C8Df53cf3DF18f3112C1D2f992, 2000000, 5*month); setInitialDistribution(0xadaCAC0455b324C8Df53cf3DF18f3112C1D2f992, 2000000, 6*month); setInitialDistribution(0xadaCAC0455b324C8Df53cf3DF18f3112C1D2f992, 2000000, 7*month); setInitialDistribution(0xadaCAC0455b324C8Df53cf3DF18f3112C1D2f992, 2000000, 8*month); /* Liquidity Fund */ setInitialDistribution(0xCa441962EccFc3BF7b7168873078EB47cE7a6D6D, 4000000, 0 /* No Lock */); setInitialDistribution(0xCa441962EccFc3BF7b7168873078EB47cE7a6D6D, 2000000, 1*month); setInitialDistribution(0xCa441962EccFc3BF7b7168873078EB47cE7a6D6D, 2000000, 2*month); setInitialDistribution(0xCa441962EccFc3BF7b7168873078EB47cE7a6D6D, 2000000, 3*month); setInitialDistribution(0xCa441962EccFc3BF7b7168873078EB47cE7a6D6D, 2000000, 4*month); setInitialDistribution(0xCa441962EccFc3BF7b7168873078EB47cE7a6D6D, 2000000, 5*month); setInitialDistribution(0xCa441962EccFc3BF7b7168873078EB47cE7a6D6D, 2000000, 6*month); setInitialDistribution(0xCa441962EccFc3BF7b7168873078EB47cE7a6D6D, 2000000, 7*month); setInitialDistribution(0xCa441962EccFc3BF7b7168873078EB47cE7a6D6D, 2000000, 8*month); /* Team & Advisors */ setInitialDistribution(0xCe0fd16616d3e6D1F2843b5386606beab58c8f06, 2500000, year); setInitialDistribution(0xCe0fd16616d3e6D1F2843b5386606beab58c8f06, 2500000, year.add(3*month)); setInitialDistribution(0xCe0fd16616d3e6D1F2843b5386606beab58c8f06, 2500000, year.add(6*month)); setInitialDistribution(0xCe0fd16616d3e6D1F2843b5386606beab58c8f06, 2500000, year.add(9*month)); /* Foundational Reserve */ setInitialDistribution(0xaFAba7B30353f26dFBD96B28E6c521BbA6d2067A, 2500000, year); setInitialDistribution(0xaFAba7B30353f26dFBD96B28E6c521BbA6d2067A, 2500000, year.add(3*month)); setInitialDistribution(0xaFAba7B30353f26dFBD96B28E6c521BbA6d2067A, 2500000, year.add(6*month)); setInitialDistribution(0xaFAba7B30353f26dFBD96B28E6c521BbA6d2067A, 2500000, year.add(9*month)); /* Private 3 */ setInitialDistribution(0x25f7fB196b0a88eF94Ca164e0B016A8d9D9463D8, 70000, 1*month); setInitialDistribution(0x25f7fB196b0a88eF94Ca164e0B016A8d9D9463D8, 70000, 2*month); setInitialDistribution(0x25f7fB196b0a88eF94Ca164e0B016A8d9D9463D8, 70000, 3*month); setInitialDistribution(0x883aD562D0a83569dA00DdF88C96C348519c0030, 50000, 1*month); setInitialDistribution(0x883aD562D0a83569dA00DdF88C96C348519c0030, 50000, 2*month); setInitialDistribution(0x883aD562D0a83569dA00DdF88C96C348519c0030, 50000, 3*month); setInitialDistribution(0x9455FD942cA87446fD914e07C403C785bdcdE84E, 120000, 1*month); setInitialDistribution(0x9455FD942cA87446fD914e07C403C785bdcdE84E, 120000, 2*month); setInitialDistribution(0x9455FD942cA87446fD914e07C403C785bdcdE84E, 120000, 3*month); setInitialDistribution(0xDDD5987a2A4d6285E56F8088d9Df485d8A5530Fb, 80000, 1*month); setInitialDistribution(0xDDD5987a2A4d6285E56F8088d9Df485d8A5530Fb, 80000, 2*month); setInitialDistribution(0xDDD5987a2A4d6285E56F8088d9Df485d8A5530Fb, 80000, 3*month); setInitialDistribution(0x52E7bdE89Fcbd1e1C656Db1C08DdE45D82447e25, 100000, 1*month); setInitialDistribution(0x52E7bdE89Fcbd1e1C656Db1C08DdE45D82447e25, 100000, 2*month); setInitialDistribution(0x52E7bdE89Fcbd1e1C656Db1C08DdE45D82447e25, 100000, 3*month); setInitialDistribution(0x9E61f6110cbc373469af6Ff82efB581CCa3Dc9EC, 100000, 1*month); setInitialDistribution(0x9E61f6110cbc373469af6Ff82efB581CCa3Dc9EC, 100000, 2*month); setInitialDistribution(0x9E61f6110cbc373469af6Ff82efB581CCa3Dc9EC, 100000, 3*month); setInitialDistribution(0x5e5f96023b673548120B8747cD0Fd767E023a414, 100000, 1*month); setInitialDistribution(0x5e5f96023b673548120B8747cD0Fd767E023a414, 100000, 2*month); setInitialDistribution(0x5e5f96023b673548120B8747cD0Fd767E023a414, 100000, 3*month); setInitialDistribution(0x45ACFc113D151416FC8c5b7A696616B6Dd7aa1F6, 150000, 1*month); setInitialDistribution(0x45ACFc113D151416FC8c5b7A696616B6Dd7aa1F6, 150000, 2*month); setInitialDistribution(0x45ACFc113D151416FC8c5b7A696616B6Dd7aa1F6, 150000, 3*month); setInitialDistribution(0x46c848aE9d3537cf21913adCADd0Fab4C4A71697, 40000, 1*month); setInitialDistribution(0x46c848aE9d3537cf21913adCADd0Fab4C4A71697, 40000, 2*month); setInitialDistribution(0x46c848aE9d3537cf21913adCADd0Fab4C4A71697, 40000, 3*month); setInitialDistribution(0xdff8F33d52D3AC4A9aFEc3E09Fe11351a7C680aA, 30000, 1*month); setInitialDistribution(0xdff8F33d52D3AC4A9aFEc3E09Fe11351a7C680aA, 30000, 2*month); setInitialDistribution(0xdff8F33d52D3AC4A9aFEc3E09Fe11351a7C680aA, 30000, 3*month); setInitialDistribution(0xe232914B1801dE9498F2dc3Ae1A6093BC6529e0e, 300000, 1*month); setInitialDistribution(0xe232914B1801dE9498F2dc3Ae1A6093BC6529e0e, 300000, 2*month); setInitialDistribution(0xe232914B1801dE9498F2dc3Ae1A6093BC6529e0e, 300000, 3*month); setInitialDistribution(0xd6299841f785144845867e6E1cB7E9bc5D5dF378, 50000, 1*month); setInitialDistribution(0xd6299841f785144845867e6E1cB7E9bc5D5dF378, 50000, 2*month); setInitialDistribution(0xd6299841f785144845867e6E1cB7E9bc5D5dF378, 50000, 3*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
[{"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
608060405260008060146101000a81548160ff021916908315150217905550600060025560006003553480156200003557600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000a173adacac0455b324c8df53cf3df18f3112c1d2f992623d0900600062000cb060201b60201c565b620000d173adacac0455b324c8df53cf3df18f3112c1d2f992621e848062278d0060010262000cb060201b60201c565b6200010173adacac0455b324c8df53cf3df18f3112c1d2f992621e848062278d0060020262000cb060201b60201c565b6200013173adacac0455b324c8df53cf3df18f3112c1d2f992621e848062278d0060030262000cb060201b60201c565b6200016173adacac0455b324c8df53cf3df18f3112c1d2f992621e848062278d0060040262000cb060201b60201c565b6200019173adacac0455b324c8df53cf3df18f3112c1d2f992621e848062278d0060050262000cb060201b60201c565b620001c173adacac0455b324c8df53cf3df18f3112c1d2f992621e848062278d0060060262000cb060201b60201c565b620001f173adacac0455b324c8df53cf3df18f3112c1d2f992621e848062278d0060070262000cb060201b60201c565b6200022173adacac0455b324c8df53cf3df18f3112c1d2f992621e848062278d0060080262000cb060201b60201c565b6200024c73ca441962eccfc3bf7b7168873078eb47ce7a6d6d623d0900600062000cb060201b60201c565b6200027c73ca441962eccfc3bf7b7168873078eb47ce7a6d6d621e848062278d0060010262000cb060201b60201c565b620002ac73ca441962eccfc3bf7b7168873078eb47ce7a6d6d621e848062278d0060020262000cb060201b60201c565b620002dc73ca441962eccfc3bf7b7168873078eb47ce7a6d6d621e848062278d0060030262000cb060201b60201c565b6200030c73ca441962eccfc3bf7b7168873078eb47ce7a6d6d621e848062278d0060040262000cb060201b60201c565b6200033c73ca441962eccfc3bf7b7168873078eb47ce7a6d6d621e848062278d0060050262000cb060201b60201c565b6200036c73ca441962eccfc3bf7b7168873078eb47ce7a6d6d621e848062278d0060060262000cb060201b60201c565b6200039c73ca441962eccfc3bf7b7168873078eb47ce7a6d6d621e848062278d0060070262000cb060201b60201c565b620003cc73ca441962eccfc3bf7b7168873078eb47ce7a6d6d621e848062278d0060080262000cb060201b60201c565b620003fa73ce0fd16616d3e6d1f2843b5386606beab58c8f06622625a06301e1338062000cb060201b60201c565b6200044773ce0fd16616d3e6d1f2843b5386606beab58c8f06622625a06200043b62278d006003026301e1338062000f0b60201b620012c81790919060201c565b62000cb060201b60201c565b6200049473ce0fd16616d3e6d1f2843b5386606beab58c8f06622625a06200048862278d006006026301e1338062000f0b60201b620012c81790919060201c565b62000cb060201b60201c565b620004e173ce0fd16616d3e6d1f2843b5386606beab58c8f06622625a0620004d562278d006009026301e1338062000f0b60201b620012c81790919060201c565b62000cb060201b60201c565b6200050f73afaba7b30353f26dfbd96b28e6c521bba6d2067a622625a06301e1338062000cb060201b60201c565b6200055c73afaba7b30353f26dfbd96b28e6c521bba6d2067a622625a06200055062278d006003026301e1338062000f0b60201b620012c81790919060201c565b62000cb060201b60201c565b620005a973afaba7b30353f26dfbd96b28e6c521bba6d2067a622625a06200059d62278d006006026301e1338062000f0b60201b620012c81790919060201c565b62000cb060201b60201c565b620005f673afaba7b30353f26dfbd96b28e6c521bba6d2067a622625a0620005ea62278d006009026301e1338062000f0b60201b620012c81790919060201c565b62000cb060201b60201c565b620006267325f7fb196b0a88ef94ca164e0b016a8d9d9463d86201117062278d0060010262000cb060201b60201c565b620006567325f7fb196b0a88ef94ca164e0b016a8d9d9463d86201117062278d0060020262000cb060201b60201c565b620006867325f7fb196b0a88ef94ca164e0b016a8d9d9463d86201117062278d0060030262000cb060201b60201c565b620006b573883ad562d0a83569da00ddf88c96c348519c003061c35062278d0060010262000cb060201b60201c565b620006e473883ad562d0a83569da00ddf88c96c348519c003061c35062278d0060020262000cb060201b60201c565b6200071373883ad562d0a83569da00ddf88c96c348519c003061c35062278d0060030262000cb060201b60201c565b62000743739455fd942ca87446fd914e07c403c785bdcde84e6201d4c062278d0060010262000cb060201b60201c565b62000773739455fd942ca87446fd914e07c403c785bdcde84e6201d4c062278d0060020262000cb060201b60201c565b620007a3739455fd942ca87446fd914e07c403c785bdcde84e6201d4c062278d0060030262000cb060201b60201c565b620007d373ddd5987a2a4d6285e56f8088d9df485d8a5530fb6201388062278d0060010262000cb060201b60201c565b6200080373ddd5987a2a4d6285e56f8088d9df485d8a5530fb6201388062278d0060020262000cb060201b60201c565b6200083373ddd5987a2a4d6285e56f8088d9df485d8a5530fb6201388062278d0060030262000cb060201b60201c565b620008637352e7bde89fcbd1e1c656db1c08dde45d82447e25620186a062278d0060010262000cb060201b60201c565b620008937352e7bde89fcbd1e1c656db1c08dde45d82447e25620186a062278d0060020262000cb060201b60201c565b620008c37352e7bde89fcbd1e1c656db1c08dde45d82447e25620186a062278d0060030262000cb060201b60201c565b620008f3739e61f6110cbc373469af6ff82efb581cca3dc9ec620186a062278d0060010262000cb060201b60201c565b62000923739e61f6110cbc373469af6ff82efb581cca3dc9ec620186a062278d0060020262000cb060201b60201c565b62000953739e61f6110cbc373469af6ff82efb581cca3dc9ec620186a062278d0060030262000cb060201b60201c565b62000983735e5f96023b673548120b8747cd0fd767e023a414620186a062278d0060010262000cb060201b60201c565b620009b3735e5f96023b673548120b8747cd0fd767e023a414620186a062278d0060020262000cb060201b60201c565b620009e3735e5f96023b673548120b8747cd0fd767e023a414620186a062278d0060030262000cb060201b60201c565b62000a137345acfc113d151416fc8c5b7a696616b6dd7aa1f6620249f062278d0060010262000cb060201b60201c565b62000a437345acfc113d151416fc8c5b7a696616b6dd7aa1f6620249f062278d0060020262000cb060201b60201c565b62000a737345acfc113d151416fc8c5b7a696616b6dd7aa1f6620249f062278d0060030262000cb060201b60201c565b62000aa27346c848ae9d3537cf21913adcadd0fab4c4a71697619c4062278d0060010262000cb060201b60201c565b62000ad17346c848ae9d3537cf21913adcadd0fab4c4a71697619c4062278d0060020262000cb060201b60201c565b62000b007346c848ae9d3537cf21913adcadd0fab4c4a71697619c4062278d0060030262000cb060201b60201c565b62000b2f73dff8f33d52d3ac4a9afec3e09fe11351a7c680aa61753062278d0060010262000cb060201b60201c565b62000b5e73dff8f33d52d3ac4a9afec3e09fe11351a7c680aa61753062278d0060020262000cb060201b60201c565b62000b8d73dff8f33d52d3ac4a9afec3e09fe11351a7c680aa61753062278d0060030262000cb060201b60201c565b62000bbd73e232914b1801de9498f2dc3ae1a6093bc6529e0e620493e062278d0060010262000cb060201b60201c565b62000bed73e232914b1801de9498f2dc3ae1a6093bc6529e0e620493e062278d0060020262000cb060201b60201c565b62000c1d73e232914b1801de9498f2dc3ae1a6093bc6529e0e620493e062278d0060030262000cb060201b60201c565b62000c4c73d6299841f785144845867e6e1cb7e9bc5d5df37861c35062278d0060010262000cb060201b60201c565b62000c7b73d6299841f785144845867e6e1cb7e9bc5d5df37861c35062278d0060020262000cb060201b60201c565b62000caa73d6299841f785144845867e6e1cb7e9bc5d5df37861c35062278d0060030262000cb060201b60201c565b62000fbc565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161462000d0a57600080fd5b600060149054906101000a900460ff161562000d2557600080fd5b600080905060008090505b60018054905081101562000dbe578473ffffffffffffffffffffffffffffffffffffffff166001828154811062000d6357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141562000db057600191505b808060010191505062000d30565b5062000dc962000f94565b6040518060800160405280670de0b6b3a764000086028152602001670de0b6b3a76400008602815260200184815260200160008152509050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150509060018203906000526020600020906004020160009091929091909150600082015181600001556020820151816001015560408201518160020155606082015181600301555050508162000f045760018590806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5050505050565b60008082840190508381101562000f8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b61143c8062000fcc6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063785e9e86116100a2578063b90c72ae11610071578063b90c72ae14610327578063cb1287281461036b578063f2fde38b14610389578063f3269716146103cd578063f8a14f46146103eb5761010b565b8063785e9e861461027f57806383e2ad63146102c95780638456cb59146102d35780638da5cb5b146102dd5761010b565b80633f4ba83a116100de5780633f4ba83a146102175780635c975abb14610221578063702921f51461024357806376093957146102615761010b565b806326a4e8d2146101105780632d9b4b2514610154578063313ce567146101cb57806332a01103146101e9575b600080fd5b6101526004803603602081101561012657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610459565b005b6101a06004803603604081101561016a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b6101d361055a565b6040518082815260200191505060405180910390f35b610215600480360360208110156101ff57600080fd5b8101908080359060200190929190505050610566565b005b61021f6105e3565b005b61022961069d565b604051808215151515815260200191505060405180910390f35b61024b6106b0565b6040518082815260200191505060405180910390f35b6102696106b7565b6040518082815260200191505060405180910390f35b6102876106bd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102d16106e3565b005b6102db610dc7565b005b6102e5610e83565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103696004803603602081101561033d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ea8565b005b6103736110e3565b6040518082815260200191505060405180910390f35b6103cb6004803603602081101561039f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e9565b005b6103d561123a565b6040518082815260200191505060405180910390f35b6104176004803603602081101561040157600080fd5b8101908080359060200190929190505050611242565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104b257600080fd5b600060149054906101000a900460ff16156104cc57600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6004602052816000526040600020818154811061052957fe5b9060005260206000209060040201600091509150508060000154908060010154908060020154908060030154905084565b670de0b6b3a764000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105bf57600080fd5b600060149054906101000a900460ff16156105d957600080fd5b8060028190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461063c57600080fd5b600060149054906101000a900460ff1661065557600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600060149054906101000a900460ff1681565b62278d0081565b60035481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060149054906101000a900460ff16156106fd57600080fd5b60006002541415610776576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5447452064617465206e6f74207365742079657400000000000000000000000081525060200191505060405180910390fd5b60025442116107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f544745207374696c6c206861736ec2b47420737461727465640000000000000081525060200191505060405180910390fd5b620151806108066003544261127e90919063ffffffff16565b11610879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f43616e206f6e6c792062652063616c6c6564206f6e636520612064617900000081525060200191505060405180910390fd5b4260038190555060008090505b600180549050811015610dc457606060046000600184815481106108a657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561098557838290600052602060002090600402016040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820154815250508152602001906001019061092b565b50505050905060008090505b8151811015610db5578181815181106109a657fe5b6020026020010151604001516109c76002544261127e90919063ffffffff16565b1180156109eb575060008282815181106109dd57fe5b602002602001015160200151115b15610da85760008282815181106109fe57fe5b6020026020010151602001519050610ab1816004600060018881548110610a2157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610a9157fe5b90600052602060002090600402016001015461127e90919063ffffffff16565b6004600060018781548110610ac257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610b3257fe5b906000526020600020906004020160010181905550610bec816004600060018881548110610b5c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610bcc57fe5b9060005260206000209060040201600301546112c890919063ffffffff16565b6004600060018781548110610bfd57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610c6d57fe5b906000526020600020906004020160030181905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60018681548110610ccd57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610d6257600080fd5b505af1158015610d76573d6000803e3d6000fd5b505050506040513d6020811015610d8c57600080fd5b8101908080519060200190929190505050610da657600080fd5b505b8080600101915050610991565b50508080600101915050610886565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e2057600080fd5b600060149054906101000a900460ff1615610e3a57600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f0157600080fd5b600060149054906101000a900460ff16610f1a57600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610ff857600080fd5b505afa15801561100c573d6000803e3d6000fd5b505050506040513d602081101561102257600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561109c57600080fd5b505af11580156110b0573d6000803e3d6000fd5b505050506040513d60208110156110c657600080fd5b81019080805190602001909291905050506110e057600080fd5b50565b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561117c57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6301e1338081565b6001818154811061124f57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611350565b905092915050565b600080828401905083811015611346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008383111582906113fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156113c25780820151818401526020810190506113a7565b50505050905090810190601f1680156113ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fea165627a7a72305820d57afb1384c87be2f9bbba0c62c02eddd90f239bc9d4e1f204b9afafa76128ce0029
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061010b5760003560e01c8063785e9e86116100a2578063b90c72ae11610071578063b90c72ae14610327578063cb1287281461036b578063f2fde38b14610389578063f3269716146103cd578063f8a14f46146103eb5761010b565b8063785e9e861461027f57806383e2ad63146102c95780638456cb59146102d35780638da5cb5b146102dd5761010b565b80633f4ba83a116100de5780633f4ba83a146102175780635c975abb14610221578063702921f51461024357806376093957146102615761010b565b806326a4e8d2146101105780632d9b4b2514610154578063313ce567146101cb57806332a01103146101e9575b600080fd5b6101526004803603602081101561012657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610459565b005b6101a06004803603604081101561016a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b6101d361055a565b6040518082815260200191505060405180910390f35b610215600480360360208110156101ff57600080fd5b8101908080359060200190929190505050610566565b005b61021f6105e3565b005b61022961069d565b604051808215151515815260200191505060405180910390f35b61024b6106b0565b6040518082815260200191505060405180910390f35b6102696106b7565b6040518082815260200191505060405180910390f35b6102876106bd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102d16106e3565b005b6102db610dc7565b005b6102e5610e83565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103696004803603602081101561033d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ea8565b005b6103736110e3565b6040518082815260200191505060405180910390f35b6103cb6004803603602081101561039f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e9565b005b6103d561123a565b6040518082815260200191505060405180910390f35b6104176004803603602081101561040157600080fd5b8101908080359060200190929190505050611242565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104b257600080fd5b600060149054906101000a900460ff16156104cc57600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6004602052816000526040600020818154811061052957fe5b9060005260206000209060040201600091509150508060000154908060010154908060020154908060030154905084565b670de0b6b3a764000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105bf57600080fd5b600060149054906101000a900460ff16156105d957600080fd5b8060028190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461063c57600080fd5b600060149054906101000a900460ff1661065557600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600060149054906101000a900460ff1681565b62278d0081565b60035481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060149054906101000a900460ff16156106fd57600080fd5b60006002541415610776576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5447452064617465206e6f74207365742079657400000000000000000000000081525060200191505060405180910390fd5b60025442116107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f544745207374696c6c206861736ec2b47420737461727465640000000000000081525060200191505060405180910390fd5b620151806108066003544261127e90919063ffffffff16565b11610879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f43616e206f6e6c792062652063616c6c6564206f6e636520612064617900000081525060200191505060405180910390fd5b4260038190555060008090505b600180549050811015610dc457606060046000600184815481106108a657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561098557838290600052602060002090600402016040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820154815250508152602001906001019061092b565b50505050905060008090505b8151811015610db5578181815181106109a657fe5b6020026020010151604001516109c76002544261127e90919063ffffffff16565b1180156109eb575060008282815181106109dd57fe5b602002602001015160200151115b15610da85760008282815181106109fe57fe5b6020026020010151602001519050610ab1816004600060018881548110610a2157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610a9157fe5b90600052602060002090600402016001015461127e90919063ffffffff16565b6004600060018781548110610ac257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610b3257fe5b906000526020600020906004020160010181905550610bec816004600060018881548110610b5c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610bcc57fe5b9060005260206000209060040201600301546112c890919063ffffffff16565b6004600060018781548110610bfd57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610c6d57fe5b906000526020600020906004020160030181905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60018681548110610ccd57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610d6257600080fd5b505af1158015610d76573d6000803e3d6000fd5b505050506040513d6020811015610d8c57600080fd5b8101908080519060200190929190505050610da657600080fd5b505b8080600101915050610991565b50508080600101915050610886565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e2057600080fd5b600060149054906101000a900460ff1615610e3a57600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f0157600080fd5b600060149054906101000a900460ff16610f1a57600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610ff857600080fd5b505afa15801561100c573d6000803e3d6000fd5b505050506040513d602081101561102257600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561109c57600080fd5b505af11580156110b0573d6000803e3d6000fd5b505050506040513d60208110156110c657600080fd5b81019080805190602001909291905050506110e057600080fd5b50565b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561117c57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6301e1338081565b6001818154811061124f57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611350565b905092915050565b600080828401905083811015611346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008383111582906113fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156113c25780820151818401526020810190506113a7565b50505050905090810190601f1680156113ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fea165627a7a72305820d57afb1384c87be2f9bbba0c62c02eddd90f239bc9d4e1f204b9afafa76128ce0029
Deployed Bytecode Sourcemap
9484:9928:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9484:9928:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16356:129;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16356:129:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9932:59;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9932:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9568:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16727:103;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16727:103:0;;;;;;;;;;;;;;;;;:::i;:::-;;8707:105;;;:::i;:::-;;8032:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9784:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9876;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10030:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16969:1562;;;:::i;:::-;;8511:103;;;:::i;:::-;;6920:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16497:222;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16497:222:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9699:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7569:192;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7569:192:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9830:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9617:28;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9617:28:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16356:129;7369:5;;;;;;;;;;;7355:19;;:10;:19;;;7347:28;;;;;;8218:6;;;;;;;;;;;8217:7;8209:16;;;;;;16463:13;16449:5;;:28;;;;;;;;;;;;;;;;;;16356:129;:::o;9932:59::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9568:42::-;9603:7;9568:42;:::o;16727:103::-;7369:5;;;;;;;;;;;7355:19;;:10;:19;;;7347:28;;;;;;8218:6;;;;;;;;;;;8217:7;8209:16;;;;;;16817:5;16807:7;:15;;;;16727:103;:::o;8707:105::-;7369:5;;;;;;;;;;;7355:19;;:10;:19;;;7347:28;;;;;;8394:6;;;;;;;;;;;8386:15;;;;;;8774:5;8765:6;;:14;;;;;;;;;;;;;;;;;;8795:9;;;;;;;;;;8707:105::o;8032:26::-;;;;;;;;;;;;;:::o;9784:39::-;9816:7;9784:39;:::o;9876:::-;;;;:::o;10030:18::-;;;;;;;;;;;;;:::o;16969:1562::-;8218:6;;;;;;;;;;;8217:7;8209:16;;;;;;17100:1;17089:7;;:12;;17081:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17198:7;;17180:15;:25;17172:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17358:6;17314:41;17334:20;;17314:15;:19;;:41;;;;:::i;:::-;:50;17306:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17432:15;17409:20;:38;;;;17501:6;17510:1;17501:10;;17497:1024;17517:11;:18;;;;17513:1;:22;17497:1024;;;17601:27;17631:13;:29;17645:11;17657:1;17645:14;;;;;;;;;;;;;;;;;;;;;;;;;17631:29;;;;;;;;;;;;;;;17601:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17730:6;17739:1;17730:10;;17726:784;17746:1;:8;17742:1;:12;17726:784;;;17815:1;17817;17815:4;;;;;;;;;;;;;;:14;;;17784:28;17804:7;;17784:15;:19;;:28;;;;:::i;:::-;:45;17783:136;;;;;17917:1;17893;17895;17893:4;;;;;;;;;;;;;;:21;;;:25;17783:136;17779:716;;;18043:21;18103:1;18105;18103:4;;;;;;;;;;;;;;:21;;;18087:37;;18199:68;18253:13;18199;:29;18213:11;18225:1;18213:14;;;;;;;;;;;;;;;;;;;;;;;;;18199:29;;;;;;;;;;;;;;;18229:1;18199:32;;;;;;;;;;;;;;;;;;:49;;;:53;;:68;;;;:::i;:::-;18147:13;:29;18161:11;18173:1;18161:14;;;;;;;;;;;;;;;;;;;;;;;;;18147:29;;;;;;;;;;;;;;;18177:1;18147:32;;;;;;;;;;;;;;;;;;:49;;:120;;;;18336:62;18384:13;18336;:29;18350:11;18362:1;18350:14;;;;;;;;;;;;;;;;;;;;;;;;;18336:29;;;;;;;;;;;;;;;18366:1;18336:32;;;;;;;;;;;;;;;;;;:43;;;:47;;:62;;;;:::i;:::-;18290:13;:29;18304:11;18316:1;18304:14;;;;;;;;;;;;;;;;;;;;;;;;;18290:29;;;;;;;;;;;;;;;18320:1;18290:32;;;;;;;;;;;;;;;;;;:43;;:108;;;;18429:5;;;;;;;;;;;:14;;;18444:11;18456:1;18444:14;;;;;;;;;;;;;;;;;;;;;;;;;18460:13;18429:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18429:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18429:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18429:45:0;;;;;;;;;;;;;;;;18421:54;;;;;;17779:716;;17756:3;;;;;;;17726:784;;;;17497:1024;17537:3;;;;;;;17497:1024;;;;16969:1562::o;8511:103::-;7369:5;;;;;;;;;;;7355:19;;:10;:19;;;7347:28;;;;;;8218:6;;;;;;;;;;;8217:7;8209:16;;;;;;8579:4;8570:6;;:13;;;;;;;;;;;;;;;;;;8599:7;;;;;;;;;;8511:103::o;6920:20::-;;;;;;;;;;;;;:::o;16497:222::-;7369:5;;;;;;;;;;;7355:19;;:10;:19;;;7347:28;;;;;;8394:6;;;;;;;;;;;8386:15;;;;;;16654:5;;;;;;;;;;;:14;;;16669:8;16679:5;;;;;;;;;;;:15;;;16703:4;16679:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16679:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16679:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16679:30:0;;;;;;;;;;;;;;;;16654:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16654:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16654:56:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16654:56:0;;;;;;;;;;;;;;;;16646:65;;;;;;16497:222;:::o;9699:26::-;;;;:::o;7569:192::-;7369:5;;;;;;;;;;;7355:19;;:10;:19;;;7347:28;;;;;;7670:1;7650:22;;:8;:22;;;;7642:31;;;;;;7717:8;7689:37;;7710:5;;;;;;;;;;;7689:37;;;;;;;;;;;;7745:8;7737:5;;:16;;;;;;;;;;;;;;;;;;7569:192;:::o;9830:39::-;9861:8;9830:39;:::o;9617:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1967:136::-;2025:7;2052:43;2056:1;2059;2052:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2045:50;;1967:136;;;;:::o;1511:181::-;1569:7;1589:9;1605:1;1601;:5;1589:17;;1630:1;1625;:6;;1617:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1683:1;1676:8;;;1511:181;;;;:::o;2440:192::-;2526:7;2559:1;2554;:6;;2562:12;2546: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;2546:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2586:9;2602:1;2598;:5;2586:17;;2623:1;2616:8;;;2440:192;;;;;:::o
Swarm Source
bzzr://d57afb1384c87be2f9bbba0c62c02eddd90f239bc9d4e1f204b9afafa76128ce
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 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.