Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Latest 19 from a total of 19 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Trigger Token Se... | 15045108 | 1248 days ago | IN | 0 ETH | 0.01809084 | ||||
| Trigger Token Se... | 14495212 | 1338 days ago | IN | 0 ETH | 0.04927139 | ||||
| Trigger Token Se... | 13899678 | 1430 days ago | IN | 0 ETH | 0.08631179 | ||||
| Trigger Token Se... | 13329524 | 1520 days ago | IN | 0 ETH | 0.12670837 | ||||
| Trigger Token Se... | 13161814 | 1546 days ago | IN | 0 ETH | 0.07045115 | ||||
| Trigger Token Se... | 13051275 | 1563 days ago | IN | 0 ETH | 0.02948982 | ||||
| Trigger Token Se... | 12742267 | 1611 days ago | IN | 0 ETH | 0.01093148 | ||||
| Trigger Token Se... | 12556188 | 1640 days ago | IN | 0 ETH | 0.0226784 | ||||
| Trigger Token Se... | 12356702 | 1671 days ago | IN | 0 ETH | 0.02919265 | ||||
| Trigger Token Se... | 12149184 | 1703 days ago | IN | 0 ETH | 0.1434111 | ||||
| Trigger Token Se... | 11948145 | 1734 days ago | IN | 0 ETH | 0.1318617 | ||||
| Trigger Token Se... | 11750498 | 1764 days ago | IN | 0 ETH | 0.06631178 | ||||
| Trigger Token Se... | 11549301 | 1795 days ago | IN | 0 ETH | 0.04545256 | ||||
| Trigger Token Se... | 11354438 | 1825 days ago | IN | 0 ETH | 0.0105676 | ||||
| Trigger Token Se... | 11151239 | 1856 days ago | IN | 0 ETH | 0.03966536 | ||||
| Trigger Token Se... | 10953738 | 1887 days ago | IN | 0 ETH | 0.1066002 | ||||
| Transfer Ownersh... | 10953737 | 1887 days ago | IN | 0 ETH | 0.00648648 | ||||
| Set TGE Date | 10953734 | 1887 days ago | IN | 0 ETH | 0.00910308 | ||||
| Set Token Addres... | 10953733 | 1887 days ago | IN | 0 ETH | 0.00930993 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
PolkastarterDistributionContract
Compiler Version
v0.5.8+commit.23d335f2
Contract Source Code (Solidity)
/**
*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 PolkastarterDistributionContract 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{
/* Seed */
setInitialDistribution(0xc97d35Dc801E6C16642b9E8b76D4ba26f30f72a6, 3000000, 0 /* No Lock */);
setInitialDistribution(0xc97d35Dc801E6C16642b9E8b76D4ba26f30f72a6, 1500000, 1 * month); /* After 1 Month */
setInitialDistribution(0xc97d35Dc801E6C16642b9E8b76D4ba26f30f72a6, 1500000, 2 * month); /* After 2 Months */
setInitialDistribution(0xc97d35Dc801E6C16642b9E8b76D4ba26f30f72a6, 1500000, 3 * month); /* After 3 Months */
setInitialDistribution(0xc97d35Dc801E6C16642b9E8b76D4ba26f30f72a6, 1500000, 4 * month); /* After 4 Months */
setInitialDistribution(0xc97d35Dc801E6C16642b9E8b76D4ba26f30f72a6, 1500000, 5 * month); /* After 5 Months */
setInitialDistribution(0xc97d35Dc801E6C16642b9E8b76D4ba26f30f72a6, 1500000, 6 * month); /* After 6 Months */
setInitialDistribution(0xc97d35Dc801E6C16642b9E8b76D4ba26f30f72a6, 1500000, 7 * month); /* After 7 Months */
setInitialDistribution(0xc97d35Dc801E6C16642b9E8b76D4ba26f30f72a6, 1500000, 8 * month); /* After 8 Months */
/* Private Sale */
setInitialDistribution(0xc1eF9b92A7fFD8a5be9011a626944Cd4C2810A91, 6875000, 0 /* No Lock */);
setInitialDistribution(0xc1eF9b92A7fFD8a5be9011a626944Cd4C2810A91, 6875000, 1 * month); /* After 1 Month */
setInitialDistribution(0xc1eF9b92A7fFD8a5be9011a626944Cd4C2810A91, 6875000, 2 * month); /* After 2 Months */
setInitialDistribution(0xc1eF9b92A7fFD8a5be9011a626944Cd4C2810A91, 6875000, 3 * month); /* After 3 Months */
/* Team & Advisors */
setInitialDistribution(0x5d1c9B0B0807573B8976733dF3BaAf0102E1b3F8, 2500000, year);
setInitialDistribution(0x5d1c9B0B0807573B8976733dF3BaAf0102E1b3F8, 2500000, year.add(3 * month)); /* After 3 Month */
setInitialDistribution(0x5d1c9B0B0807573B8976733dF3BaAf0102E1b3F8, 2500000, year.add(6 * month)); /* After 6 Month */
setInitialDistribution(0x5d1c9B0B0807573B8976733dF3BaAf0102E1b3F8, 2500000, year.add(9 * month)); /* After 9 Month */
/* Network Growth Growth */
setInitialDistribution(0x36Dc5e71304a3826C54EF6F8a19C2c4160e8ce9c, 3000000, 0 /* No Lock */);
setInitialDistribution(0x36Dc5e71304a3826C54EF6F8a19C2c4160e8ce9c, 1000000, 1 * month); /* After 1 Month */
setInitialDistribution(0x36Dc5e71304a3826C54EF6F8a19C2c4160e8ce9c, 1000000, 2 * month); /* After 2 Months */
setInitialDistribution(0x36Dc5e71304a3826C54EF6F8a19C2c4160e8ce9c, 1000000, 3 * month); /* After 3 Months */
setInitialDistribution(0x36Dc5e71304a3826C54EF6F8a19C2c4160e8ce9c, 1000000, 4 * month); /* After 4 Months */
setInitialDistribution(0x36Dc5e71304a3826C54EF6F8a19C2c4160e8ce9c, 1000000, 5 * month); /* After 5 Months */
setInitialDistribution(0x36Dc5e71304a3826C54EF6F8a19C2c4160e8ce9c, 1000000, 6 * month); /* After 6 Months */
setInitialDistribution(0x36Dc5e71304a3826C54EF6F8a19C2c4160e8ce9c, 1000000, 7 * month); /* After 7 Months */
setInitialDistribution(0x36Dc5e71304a3826C54EF6F8a19C2c4160e8ce9c, 1000000, 8 * month); /* After 8 Months */
setInitialDistribution(0x36Dc5e71304a3826C54EF6F8a19C2c4160e8ce9c, 1000000, 9 * month); /* After 9 Months */
setInitialDistribution(0x36Dc5e71304a3826C54EF6F8a19C2c4160e8ce9c, 1000000, 10 * month); /* After 10 Months */
setInitialDistribution(0x36Dc5e71304a3826C54EF6F8a19C2c4160e8ce9c, 1000000, 11 * month); /* After 11 Months */
setInitialDistribution(0x36Dc5e71304a3826C54EF6F8a19C2c4160e8ce9c, 1000000, 12 * month); /* After 12 Months */
/* Liquidity Fund */
setInitialDistribution(0xDD2AA97FB05aE47d1227FaAc488Ad8678e8Ea4F2, 5000000, 0 /* No Lock */);
setInitialDistribution(0xDD2AA97FB05aE47d1227FaAc488Ad8678e8Ea4F2, 2000000, 1 * month); /* After 1 Month */
setInitialDistribution(0xDD2AA97FB05aE47d1227FaAc488Ad8678e8Ea4F2, 2000000, 2 * month); /* After 2 Months */
setInitialDistribution(0xDD2AA97FB05aE47d1227FaAc488Ad8678e8Ea4F2, 2000000, 3 * month); /* After 3 Months */
setInitialDistribution(0xDD2AA97FB05aE47d1227FaAc488Ad8678e8Ea4F2, 2000000, 4 * month); /* After 4 Months */
setInitialDistribution(0xDD2AA97FB05aE47d1227FaAc488Ad8678e8Ea4F2, 2000000, 5 * month); /* After 5 Months */
setInitialDistribution(0xDD2AA97FB05aE47d1227FaAc488Ad8678e8Ea4F2, 1500000, 6 * month); /* After 6 Months */
setInitialDistribution(0xDD2AA97FB05aE47d1227FaAc488Ad8678e8Ea4F2, 1000000, 7 * month); /* After 7 Months */
setInitialDistribution(0xDD2AA97FB05aE47d1227FaAc488Ad8678e8Ea4F2, 1000000, 8 * month); /* After 8 Months */
setInitialDistribution(0xDD2AA97FB05aE47d1227FaAc488Ad8678e8Ea4F2, 1000000, 9 * month); /* After 9 Months */
setInitialDistribution(0xDD2AA97FB05aE47d1227FaAc488Ad8678e8Ea4F2, 1000000, 10 * month); /* After 10 Months */
setInitialDistribution(0xDD2AA97FB05aE47d1227FaAc488Ad8678e8Ea4F2, 1000000, 11 * month); /* After 11 Months */
setInitialDistribution(0xDD2AA97FB05aE47d1227FaAc488Ad8678e8Ea4F2, 1000000, 12 * month); /* After 12 Months */
/* Foundational Reserve Fund */
setInitialDistribution(0x20373581F525d1b85f9F9B5e7594eD5EE9a8Bc21, 2500000, year);
setInitialDistribution(0x20373581F525d1b85f9F9B5e7594eD5EE9a8Bc21, 2500000, year.add(3 * month)); /* After 3 Month */
setInitialDistribution(0x20373581F525d1b85f9F9B5e7594eD5EE9a8Bc21, 2500000, year.add(6 * month)); /* After 6 Month */
setInitialDistribution(0x20373581F525d1b85f9F9B5e7594eD5EE9a8Bc21, 2500000, year.add(9 * month)); /* After 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
608060405260008060146101000a81548160ff021916908315150217905550600060025560006003553480156200003557600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000a173c97d35dc801e6c16642b9e8b76d4ba26f30f72a6622dc6c06000620009e260201b60201c565b620000d173c97d35dc801e6c16642b9e8b76d4ba26f30f72a66216e36062278d00600102620009e260201b60201c565b6200010173c97d35dc801e6c16642b9e8b76d4ba26f30f72a66216e36062278d00600202620009e260201b60201c565b6200013173c97d35dc801e6c16642b9e8b76d4ba26f30f72a66216e36062278d00600302620009e260201b60201c565b6200016173c97d35dc801e6c16642b9e8b76d4ba26f30f72a66216e36062278d00600402620009e260201b60201c565b6200019173c97d35dc801e6c16642b9e8b76d4ba26f30f72a66216e36062278d00600502620009e260201b60201c565b620001c173c97d35dc801e6c16642b9e8b76d4ba26f30f72a66216e36062278d00600602620009e260201b60201c565b620001f173c97d35dc801e6c16642b9e8b76d4ba26f30f72a66216e36062278d00600702620009e260201b60201c565b6200022173c97d35dc801e6c16642b9e8b76d4ba26f30f72a66216e36062278d00600802620009e260201b60201c565b6200024c73c1ef9b92a7ffd8a5be9011a626944cd4c2810a916268e7786000620009e260201b60201c565b6200027c73c1ef9b92a7ffd8a5be9011a626944cd4c2810a916268e77862278d00600102620009e260201b60201c565b620002ac73c1ef9b92a7ffd8a5be9011a626944cd4c2810a916268e77862278d00600202620009e260201b60201c565b620002dc73c1ef9b92a7ffd8a5be9011a626944cd4c2810a916268e77862278d00600302620009e260201b60201c565b6200030a735d1c9b0b0807573b8976733df3baaf0102e1b3f8622625a06301e13380620009e260201b60201c565b62000357735d1c9b0b0807573b8976733df3baaf0102e1b3f8622625a06200034b62278d006003026301e1338062000c3d60201b620012c81790919060201c565b620009e260201b60201c565b620003a4735d1c9b0b0807573b8976733df3baaf0102e1b3f8622625a06200039862278d006006026301e1338062000c3d60201b620012c81790919060201c565b620009e260201b60201c565b620003f1735d1c9b0b0807573b8976733df3baaf0102e1b3f8622625a0620003e562278d006009026301e1338062000c3d60201b620012c81790919060201c565b620009e260201b60201c565b6200041c7336dc5e71304a3826c54ef6f8a19c2c4160e8ce9c622dc6c06000620009e260201b60201c565b6200044c7336dc5e71304a3826c54ef6f8a19c2c4160e8ce9c620f424062278d00600102620009e260201b60201c565b6200047c7336dc5e71304a3826c54ef6f8a19c2c4160e8ce9c620f424062278d00600202620009e260201b60201c565b620004ac7336dc5e71304a3826c54ef6f8a19c2c4160e8ce9c620f424062278d00600302620009e260201b60201c565b620004dc7336dc5e71304a3826c54ef6f8a19c2c4160e8ce9c620f424062278d00600402620009e260201b60201c565b6200050c7336dc5e71304a3826c54ef6f8a19c2c4160e8ce9c620f424062278d00600502620009e260201b60201c565b6200053c7336dc5e71304a3826c54ef6f8a19c2c4160e8ce9c620f424062278d00600602620009e260201b60201c565b6200056c7336dc5e71304a3826c54ef6f8a19c2c4160e8ce9c620f424062278d00600702620009e260201b60201c565b6200059c7336dc5e71304a3826c54ef6f8a19c2c4160e8ce9c620f424062278d00600802620009e260201b60201c565b620005cc7336dc5e71304a3826c54ef6f8a19c2c4160e8ce9c620f424062278d00600902620009e260201b60201c565b620005fc7336dc5e71304a3826c54ef6f8a19c2c4160e8ce9c620f424062278d00600a02620009e260201b60201c565b6200062c7336dc5e71304a3826c54ef6f8a19c2c4160e8ce9c620f424062278d00600b02620009e260201b60201c565b6200065c7336dc5e71304a3826c54ef6f8a19c2c4160e8ce9c620f424062278d00600c02620009e260201b60201c565b6200068773dd2aa97fb05ae47d1227faac488ad8678e8ea4f2624c4b406000620009e260201b60201c565b620006b773dd2aa97fb05ae47d1227faac488ad8678e8ea4f2621e848062278d00600102620009e260201b60201c565b620006e773dd2aa97fb05ae47d1227faac488ad8678e8ea4f2621e848062278d00600202620009e260201b60201c565b6200071773dd2aa97fb05ae47d1227faac488ad8678e8ea4f2621e848062278d00600302620009e260201b60201c565b6200074773dd2aa97fb05ae47d1227faac488ad8678e8ea4f2621e848062278d00600402620009e260201b60201c565b6200077773dd2aa97fb05ae47d1227faac488ad8678e8ea4f2621e848062278d00600502620009e260201b60201c565b620007a773dd2aa97fb05ae47d1227faac488ad8678e8ea4f26216e36062278d00600602620009e260201b60201c565b620007d773dd2aa97fb05ae47d1227faac488ad8678e8ea4f2620f424062278d00600702620009e260201b60201c565b6200080773dd2aa97fb05ae47d1227faac488ad8678e8ea4f2620f424062278d00600802620009e260201b60201c565b6200083773dd2aa97fb05ae47d1227faac488ad8678e8ea4f2620f424062278d00600902620009e260201b60201c565b6200086773dd2aa97fb05ae47d1227faac488ad8678e8ea4f2620f424062278d00600a02620009e260201b60201c565b6200089773dd2aa97fb05ae47d1227faac488ad8678e8ea4f2620f424062278d00600b02620009e260201b60201c565b620008c773dd2aa97fb05ae47d1227faac488ad8678e8ea4f2620f424062278d00600c02620009e260201b60201c565b620008f57320373581f525d1b85f9f9b5e7594ed5ee9a8bc21622625a06301e13380620009e260201b60201c565b620009427320373581f525d1b85f9f9b5e7594ed5ee9a8bc21622625a06200093662278d006003026301e1338062000c3d60201b620012c81790919060201c565b620009e260201b60201c565b6200098f7320373581f525d1b85f9f9b5e7594ed5ee9a8bc21622625a06200098362278d006006026301e1338062000c3d60201b620012c81790919060201c565b620009e260201b60201c565b620009dc7320373581f525d1b85f9f9b5e7594ed5ee9a8bc21622625a0620009d062278d006009026301e1338062000c3d60201b620012c81790919060201c565b620009e260201b60201c565b62000cee565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161462000a3c57600080fd5b600060149054906101000a900460ff161562000a5757600080fd5b600080905060008090505b60018054905081101562000af0578473ffffffffffffffffffffffffffffffffffffffff166001828154811062000a9557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141562000ae257600191505b808060010191505062000a62565b5062000afb62000cc6565b6040518060800160405280670de0b6b3a764000086028152602001670de0b6b3a76400008602815260200184815260200160008152509050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150509060018203906000526020600020906004020160009091929091909150600082015181600001556020820151816001015560408201518160020155606082015181600301555050508162000c365760018590806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5050505050565b60008082840190508381101562000cbc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b61143c8062000cfe6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063785e9e86116100a2578063b90c72ae11610071578063b90c72ae14610327578063cb1287281461036b578063f2fde38b14610389578063f3269716146103cd578063f8a14f46146103eb5761010b565b8063785e9e861461027f57806383e2ad63146102c95780638456cb59146102d35780638da5cb5b146102dd5761010b565b80633f4ba83a116100de5780633f4ba83a146102175780635c975abb14610221578063702921f51461024357806376093957146102615761010b565b806326a4e8d2146101105780632d9b4b2514610154578063313ce567146101cb57806332a01103146101e9575b600080fd5b6101526004803603602081101561012657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610459565b005b6101a06004803603604081101561016a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b6101d361055a565b6040518082815260200191505060405180910390f35b610215600480360360208110156101ff57600080fd5b8101908080359060200190929190505050610566565b005b61021f6105e3565b005b61022961069d565b604051808215151515815260200191505060405180910390f35b61024b6106b0565b6040518082815260200191505060405180910390f35b6102696106b7565b6040518082815260200191505060405180910390f35b6102876106bd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102d16106e3565b005b6102db610dc7565b005b6102e5610e83565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103696004803603602081101561033d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ea8565b005b6103736110e3565b6040518082815260200191505060405180910390f35b6103cb6004803603602081101561039f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e9565b005b6103d561123a565b6040518082815260200191505060405180910390f35b6104176004803603602081101561040157600080fd5b8101908080359060200190929190505050611242565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104b257600080fd5b600060149054906101000a900460ff16156104cc57600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6004602052816000526040600020818154811061052957fe5b9060005260206000209060040201600091509150508060000154908060010154908060020154908060030154905084565b670de0b6b3a764000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105bf57600080fd5b600060149054906101000a900460ff16156105d957600080fd5b8060028190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461063c57600080fd5b600060149054906101000a900460ff1661065557600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600060149054906101000a900460ff1681565b62278d0081565b60035481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060149054906101000a900460ff16156106fd57600080fd5b60006002541415610776576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5447452064617465206e6f74207365742079657400000000000000000000000081525060200191505060405180910390fd5b60025442116107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f544745207374696c6c206861736ec2b47420737461727465640000000000000081525060200191505060405180910390fd5b620151806108066003544261127e90919063ffffffff16565b11610879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f43616e206f6e6c792062652063616c6c6564206f6e636520612064617900000081525060200191505060405180910390fd5b4260038190555060008090505b600180549050811015610dc457606060046000600184815481106108a657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561098557838290600052602060002090600402016040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820154815250508152602001906001019061092b565b50505050905060008090505b8151811015610db5578181815181106109a657fe5b6020026020010151604001516109c76002544261127e90919063ffffffff16565b1180156109eb575060008282815181106109dd57fe5b602002602001015160200151115b15610da85760008282815181106109fe57fe5b6020026020010151602001519050610ab1816004600060018881548110610a2157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610a9157fe5b90600052602060002090600402016001015461127e90919063ffffffff16565b6004600060018781548110610ac257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610b3257fe5b906000526020600020906004020160010181905550610bec816004600060018881548110610b5c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610bcc57fe5b9060005260206000209060040201600301546112c890919063ffffffff16565b6004600060018781548110610bfd57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610c6d57fe5b906000526020600020906004020160030181905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60018681548110610ccd57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610d6257600080fd5b505af1158015610d76573d6000803e3d6000fd5b505050506040513d6020811015610d8c57600080fd5b8101908080519060200190929190505050610da657600080fd5b505b8080600101915050610991565b50508080600101915050610886565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e2057600080fd5b600060149054906101000a900460ff1615610e3a57600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f0157600080fd5b600060149054906101000a900460ff16610f1a57600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610ff857600080fd5b505afa15801561100c573d6000803e3d6000fd5b505050506040513d602081101561102257600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561109c57600080fd5b505af11580156110b0573d6000803e3d6000fd5b505050506040513d60208110156110c657600080fd5b81019080805190602001909291905050506110e057600080fd5b50565b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561117c57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6301e1338081565b6001818154811061124f57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611350565b905092915050565b600080828401905083811015611346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008383111582906113fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156113c25780820151818401526020810190506113a7565b50505050905090810190601f1680156113ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fea165627a7a72305820f925619b62c212e9b40d88bc729ab5846a84e65ab5dbb13da880aa7dfaaf59140029
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061010b5760003560e01c8063785e9e86116100a2578063b90c72ae11610071578063b90c72ae14610327578063cb1287281461036b578063f2fde38b14610389578063f3269716146103cd578063f8a14f46146103eb5761010b565b8063785e9e861461027f57806383e2ad63146102c95780638456cb59146102d35780638da5cb5b146102dd5761010b565b80633f4ba83a116100de5780633f4ba83a146102175780635c975abb14610221578063702921f51461024357806376093957146102615761010b565b806326a4e8d2146101105780632d9b4b2514610154578063313ce567146101cb57806332a01103146101e9575b600080fd5b6101526004803603602081101561012657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610459565b005b6101a06004803603604081101561016a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b6101d361055a565b6040518082815260200191505060405180910390f35b610215600480360360208110156101ff57600080fd5b8101908080359060200190929190505050610566565b005b61021f6105e3565b005b61022961069d565b604051808215151515815260200191505060405180910390f35b61024b6106b0565b6040518082815260200191505060405180910390f35b6102696106b7565b6040518082815260200191505060405180910390f35b6102876106bd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102d16106e3565b005b6102db610dc7565b005b6102e5610e83565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103696004803603602081101561033d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ea8565b005b6103736110e3565b6040518082815260200191505060405180910390f35b6103cb6004803603602081101561039f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e9565b005b6103d561123a565b6040518082815260200191505060405180910390f35b6104176004803603602081101561040157600080fd5b8101908080359060200190929190505050611242565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104b257600080fd5b600060149054906101000a900460ff16156104cc57600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6004602052816000526040600020818154811061052957fe5b9060005260206000209060040201600091509150508060000154908060010154908060020154908060030154905084565b670de0b6b3a764000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105bf57600080fd5b600060149054906101000a900460ff16156105d957600080fd5b8060028190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461063c57600080fd5b600060149054906101000a900460ff1661065557600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600060149054906101000a900460ff1681565b62278d0081565b60035481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060149054906101000a900460ff16156106fd57600080fd5b60006002541415610776576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5447452064617465206e6f74207365742079657400000000000000000000000081525060200191505060405180910390fd5b60025442116107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f544745207374696c6c206861736ec2b47420737461727465640000000000000081525060200191505060405180910390fd5b620151806108066003544261127e90919063ffffffff16565b11610879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f43616e206f6e6c792062652063616c6c6564206f6e636520612064617900000081525060200191505060405180910390fd5b4260038190555060008090505b600180549050811015610dc457606060046000600184815481106108a657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561098557838290600052602060002090600402016040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820154815250508152602001906001019061092b565b50505050905060008090505b8151811015610db5578181815181106109a657fe5b6020026020010151604001516109c76002544261127e90919063ffffffff16565b1180156109eb575060008282815181106109dd57fe5b602002602001015160200151115b15610da85760008282815181106109fe57fe5b6020026020010151602001519050610ab1816004600060018881548110610a2157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610a9157fe5b90600052602060002090600402016001015461127e90919063ffffffff16565b6004600060018781548110610ac257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610b3257fe5b906000526020600020906004020160010181905550610bec816004600060018881548110610b5c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610bcc57fe5b9060005260206000209060040201600301546112c890919063ffffffff16565b6004600060018781548110610bfd57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610c6d57fe5b906000526020600020906004020160030181905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60018681548110610ccd57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610d6257600080fd5b505af1158015610d76573d6000803e3d6000fd5b505050506040513d6020811015610d8c57600080fd5b8101908080519060200190929190505050610da657600080fd5b505b8080600101915050610991565b50508080600101915050610886565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e2057600080fd5b600060149054906101000a900460ff1615610e3a57600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f0157600080fd5b600060149054906101000a900460ff16610f1a57600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610ff857600080fd5b505afa15801561100c573d6000803e3d6000fd5b505050506040513d602081101561102257600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561109c57600080fd5b505af11580156110b0573d6000803e3d6000fd5b505050506040513d60208110156110c657600080fd5b81019080805190602001909291905050506110e057600080fd5b50565b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561117c57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6301e1338081565b6001818154811061124f57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611350565b905092915050565b600080828401905083811015611346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008383111582906113fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156113c25780820151818401526020810190506113a7565b50505050905090810190601f1680156113ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fea165627a7a72305820f925619b62c212e9b40d88bc729ab5846a84e65ab5dbb13da880aa7dfaaf59140029
Deployed Bytecode Sourcemap
9413:9550:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9413:9550:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15907:129;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15907:129:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9873:59;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9873:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9509:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16278:103;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16278:103:0;;;;;;;;;;;;;;;;;:::i;:::-;;8636:105;;;:::i;:::-;;7961:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9725:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9817;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9971:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16520:1562;;;:::i;:::-;;8440:103;;;:::i;:::-;;6849:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16048:222;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16048:222:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9640:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7498:192;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7498:192:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9771:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9558:28;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9558:28:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15907:129;7298:5;;;;;;;;;;;7284:19;;:10;:19;;;7276:28;;;;;;8147:6;;;;;;;;;;;8146:7;8138:16;;;;;;16014:13;16000:5;;:28;;;;;;;;;;;;;;;;;;15907:129;:::o;9873:59::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9509:42::-;9544:7;9509:42;:::o;16278:103::-;7298:5;;;;;;;;;;;7284:19;;:10;:19;;;7276:28;;;;;;8147:6;;;;;;;;;;;8146:7;8138:16;;;;;;16368:5;16358:7;:15;;;;16278:103;:::o;8636:105::-;7298:5;;;;;;;;;;;7284:19;;:10;:19;;;7276:28;;;;;;8323:6;;;;;;;;;;;8315:15;;;;;;8703:5;8694:6;;:14;;;;;;;;;;;;;;;;;;8724:9;;;;;;;;;;8636:105::o;7961:26::-;;;;;;;;;;;;;:::o;9725:39::-;9757:7;9725:39;:::o;9817:::-;;;;:::o;9971:18::-;;;;;;;;;;;;;:::o;16520:1562::-;8147:6;;;;;;;;;;;8146:7;8138:16;;;;;;16651:1;16640:7;;:12;;16632:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16749:7;;16731:15;:25;16723:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16909:6;16865:41;16885:20;;16865:15;:19;;:41;;;;:::i;:::-;:50;16857:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16983:15;16960:20;:38;;;;17052:6;17061:1;17052:10;;17048:1024;17068:11;:18;;;;17064:1;:22;17048:1024;;;17152:27;17182:13;:29;17196:11;17208:1;17196:14;;;;;;;;;;;;;;;;;;;;;;;;;17182:29;;;;;;;;;;;;;;;17152:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17281:6;17290:1;17281:10;;17277:784;17297:1;:8;17293:1;:12;17277:784;;;17366:1;17368;17366:4;;;;;;;;;;;;;;:14;;;17335:28;17355:7;;17335:15;:19;;:28;;;;:::i;:::-;:45;17334:136;;;;;17468:1;17444;17446;17444:4;;;;;;;;;;;;;;:21;;;:25;17334:136;17330:716;;;17594:21;17654:1;17656;17654:4;;;;;;;;;;;;;;:21;;;17638:37;;17750:68;17804:13;17750;:29;17764:11;17776:1;17764:14;;;;;;;;;;;;;;;;;;;;;;;;;17750:29;;;;;;;;;;;;;;;17780:1;17750:32;;;;;;;;;;;;;;;;;;:49;;;:53;;:68;;;;:::i;:::-;17698:13;:29;17712:11;17724:1;17712:14;;;;;;;;;;;;;;;;;;;;;;;;;17698:29;;;;;;;;;;;;;;;17728:1;17698:32;;;;;;;;;;;;;;;;;;:49;;:120;;;;17887:62;17935:13;17887;:29;17901:11;17913:1;17901:14;;;;;;;;;;;;;;;;;;;;;;;;;17887:29;;;;;;;;;;;;;;;17917:1;17887:32;;;;;;;;;;;;;;;;;;:43;;;:47;;:62;;;;:::i;:::-;17841:13;:29;17855:11;17867:1;17855:14;;;;;;;;;;;;;;;;;;;;;;;;;17841:29;;;;;;;;;;;;;;;17871:1;17841:32;;;;;;;;;;;;;;;;;;:43;;:108;;;;17980:5;;;;;;;;;;;:14;;;17995:11;18007:1;17995:14;;;;;;;;;;;;;;;;;;;;;;;;;18011:13;17980:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17980:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17980:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17980:45:0;;;;;;;;;;;;;;;;17972:54;;;;;;17330:716;;17307:3;;;;;;;17277:784;;;;17048:1024;17088:3;;;;;;;17048:1024;;;;16520:1562::o;8440:103::-;7298:5;;;;;;;;;;;7284:19;;:10;:19;;;7276:28;;;;;;8147:6;;;;;;;;;;;8146:7;8138:16;;;;;;8508:4;8499:6;;:13;;;;;;;;;;;;;;;;;;8528:7;;;;;;;;;;8440:103::o;6849:20::-;;;;;;;;;;;;;:::o;16048:222::-;7298:5;;;;;;;;;;;7284:19;;:10;:19;;;7276:28;;;;;;8323:6;;;;;;;;;;;8315:15;;;;;;16205:5;;;;;;;;;;;:14;;;16220:8;16230:5;;;;;;;;;;;:15;;;16254:4;16230:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16230:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16230:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16230:30:0;;;;;;;;;;;;;;;;16205:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16205:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16205:56:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16205:56:0;;;;;;;;;;;;;;;;16197:65;;;;;;16048:222;:::o;9640:26::-;;;;:::o;7498:192::-;7298:5;;;;;;;;;;;7284:19;;:10;:19;;;7276:28;;;;;;7599:1;7579:22;;:8;:22;;;;7571:31;;;;;;7646:8;7618:37;;7639:5;;;;;;;;;;;7618:37;;;;;;;;;;;;7674:8;7666:5;;:16;;;;;;;;;;;;;;;;;;7498:192;:::o;9771:39::-;9802:8;9771:39;:::o;9558:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1896:136::-;1954:7;1981:43;1985:1;1988;1981:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1974:50;;1896:136;;;;:::o;1440:181::-;1498:7;1518:9;1534:1;1530;:5;1518:17;;1559:1;1554;:6;;1546:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1612:1;1605:8;;;1440:181;;;;:::o;2369:192::-;2455:7;2488:1;2483;:6;;2491:12;2475: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;2475:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2515:9;2531:1;2527;:5;2515:17;;2552:1;2545:8;;;2369:192;;;;;:::o
Swarm Source
bzzr://f925619b62c212e9b40d88bc729ab5846a84e65ab5dbb13da880aa7dfaaf5914
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 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.