Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 665 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Add White Lists | 13871707 | 1544 days ago | IN | 0 ETH | 0.01412017 | ||||
| Add White List | 13719699 | 1568 days ago | IN | 0 ETH | 0.00569734 | ||||
| Add White List | 13503699 | 1602 days ago | IN | 0 ETH | 0.00874479 | ||||
| Add White List | 13496980 | 1603 days ago | IN | 0 ETH | 0.00472231 | ||||
| Add White List | 13494763 | 1603 days ago | IN | 0 ETH | 0.00776602 | ||||
| Add White List | 13407033 | 1617 days ago | IN | 0 ETH | 0.00356218 | ||||
| Add White List | 13392513 | 1619 days ago | IN | 0 ETH | 0.00646472 | ||||
| Add White List | 13372921 | 1623 days ago | IN | 0 ETH | 0.00746457 | ||||
| Add White List | 13300599 | 1634 days ago | IN | 0 ETH | 0.00455495 | ||||
| Add White List | 13196356 | 1650 days ago | IN | 0 ETH | 0.0040857 | ||||
| Add White List | 13170226 | 1654 days ago | IN | 0 ETH | 0.00539384 | ||||
| Add White List | 13120504 | 1662 days ago | IN | 0 ETH | 0.00290754 | ||||
| Add White List | 13073208 | 1669 days ago | IN | 0 ETH | 0.00202806 | ||||
| Add White List | 13022687 | 1677 days ago | IN | 0 ETH | 0.00346442 | ||||
| Add White List | 13008004 | 1679 days ago | IN | 0 ETH | 0.00288667 | ||||
| Add White List | 12951551 | 1688 days ago | IN | 0 ETH | 0.00217225 | ||||
| Add White List | 12942594 | 1689 days ago | IN | 0 ETH | 0.00276254 | ||||
| Add White List | 12918255 | 1693 days ago | IN | 0 ETH | 0.00184122 | ||||
| Add White List | 12850249 | 1704 days ago | IN | 0 ETH | 0.0016528 | ||||
| Add White List | 12836851 | 1706 days ago | IN | 0 ETH | 0.00236115 | ||||
| Add White List | 12817704 | 1709 days ago | IN | 0 ETH | 0.00217225 | ||||
| Add White List | 12755243 | 1719 days ago | IN | 0 ETH | 0.00141669 | ||||
| Add White List | 12703727 | 1727 days ago | IN | 0 ETH | 0.00245559 | ||||
| Add White List | 12680437 | 1730 days ago | IN | 0 ETH | 0.00363617 | ||||
| Add White List | 12674011 | 1731 days ago | IN | 0 ETH | 0.00141669 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
TokenDistribute
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2021-01-07
*/
pragma solidity ^0.5.0;
/**
* @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;
}
}
/**
* @dev Interface of the ERC20 standard as defined in the EIP. Does not include
* the optional functions; to access them see {ERC20Detailed}.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
}
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
* ====
*/
function isContract(address account) internal view returns (bool) {
// According to EIP-1052, 0x0 is the value returned for not-yet created accounts
// and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
// for accounts without code, i.e. `keccak256('')`
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
// solhint-disable-next-line no-inline-assembly
assembly { codehash := extcodehash(account) }
return (codehash != accountHash && codehash != 0x0);
}
/**
* @dev Converts an `address` into `address payable`. Note that this is
* simply a type cast: the actual underlying value is not changed.
*
* _Available since v2.4.0._
*/
function toPayable(address account) internal pure returns (address payable) {
return address(uint160(account));
}
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*
* _Available since v2.4.0._
*/
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
// solhint-disable-next-line avoid-call-value
(bool success, ) = recipient.call.value(amount)("");
require(success, "Address: unable to send value, recipient may have reverted");
}
}
/**
* @title SafeERC20
* @dev Wrappers around ERC20 operations that throw on failure (when the token
* contract returns false). Tokens that return no value (and instead revert or
* throw on failure) are also supported, non-reverting calls are assumed to be
* successful.
* To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,
* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
*/
library SafeERC20 {
using SafeMath for uint256;
using Address for address;
function safeTransfer(IERC20 token, address to, uint256 value) internal {
callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
}
function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
}
function safeApprove(IERC20 token, address spender, uint256 value) internal {
// safeApprove should only be called when setting an initial allowance,
// or when resetting it to zero. To increase and decrease it, use
// 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
// solhint-disable-next-line max-line-length
require((value == 0) || (token.allowance(address(this), spender) == 0),
"SafeERC20: approve from non-zero to non-zero allowance"
);
callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
}
function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
uint256 newAllowance = token.allowance(address(this), spender).add(value);
callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
}
function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {
uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero");
callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
}
/**
* @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
* on the return value: the return value is optional (but if data is returned, it must not be false).
* @param token The token targeted by the call.
* @param data The call data (encoded using abi.encode or one of its variants).
*/
function callOptionalReturn(IERC20 token, bytes memory data) private {
// We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
// we're implementing it ourselves.
// A Solidity high level call has three parts:
// 1. The target address is checked to verify it contains contract code
// 2. The call itself is made, and success asserted
// 3. The return value is decoded, which in turn checks the size of the returned data.
// solhint-disable-next-line max-line-length
require(address(token).isContract(), "SafeERC20: call to non-contract");
// solhint-disable-next-line avoid-low-level-calls
(bool success, bytes memory returndata) = address(token).call(data);
require(success, "SafeERC20: low-level call failed");
if (returndata.length > 0) { // Return data is optional
// solhint-disable-next-line max-line-length
require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
}
}
}
interface IPOWToken {
function updateIncomeRate() external;
function incomeToken() external view returns(uint256);
function incomeRate() external view returns(uint256);
function startMiningTime() external view returns (uint256);
function mint(address to, uint value) external;
function remainingAmount() external view returns(uint256);
function rewardToken() external view returns(uint256);
function stakingRewardRate() external view returns(uint256);
function lpStakingRewardRate() external view returns(uint256);
function rewardPeriodFinish() external view returns(uint256);
function claimIncome(address to, uint256 amount) external;
function claimReward(address to, uint256 amount) external;
}
interface IERC20Detail {
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
}
/**
* @dev Contract module that helps prevent reentrant calls to a function.
*
* Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
* available, which can be applied to functions to make sure there are no nested
* (reentrant) calls to them.
*
* Note that because there is a single `nonReentrant` guard, functions marked as
* `nonReentrant` may not call one another. This can be worked around by making
* those functions `private`, and then adding `external` `nonReentrant` entry
* points to them.
*
* TIP: If you would like to learn more about reentrancy and alternative ways
* to protect against it, check out our blog post
* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
*
* _Since v2.5.0:_ this module is now much more gas efficient, given net gas
* metering changes introduced in the Istanbul hardfork.
*/
contract ReentrancyGuard {
bool private _notEntered;
function initialize() internal {
// Storing an initial non-zero value makes deployment a bit more
// expensive, but in exchange the refund on every call to nonReentrant
// will be lower in amount. Since refunds are capped to a percetange of
// the total transaction's gas, it is best to keep them low in cases
// like this one, to increase the likelihood of the full refund coming
// into effect.
_notEntered = true;
}
/**
* @dev Prevents a contract from calling itself, directly or indirectly.
* Calling a `nonReentrant` function from another `nonReentrant`
* function is not supported. It is possible to prevent this from happening
* by making the `nonReentrant` function external, and make it call a
* `private` function that does the actual work.
*/
modifier nonReentrant() {
// On the first call to nonReentrant, _notEntered will be true
require(_notEntered, "ReentrancyGuard: reentrant call");
// Any calls to nonReentrant after this point will fail
_notEntered = false;
_;
// By storing the original value once again, a refund is triggered (see
// https://eips.ethereum.org/EIPS/eip-2200)
_notEntered = true;
}
}
contract TokenDistribute is ReentrancyGuard{
using SafeMath for uint256;
using SafeERC20 for IERC20;
bool internal initialized;
address public owner;
address public paramSetter;
address public hashRateToken;
address[] public exchangeTokens;
uint256[] public exchangeRates;
mapping (address => bool) public isWhiteListed;
function initialize(address newOwner, address _paramSetter, address _hashRateToken) public {
require(!initialized, "Token already initialized");
require(newOwner != address(0), "new owner is the zero address");
super.initialize();
initialized = true;
owner = newOwner;
paramSetter = _paramSetter;
hashRateToken = _hashRateToken;
}
function transferOwnership(address newOwner) external onlyOwner {
require(newOwner != address(0), "new owner is the zero address");
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
function setParamSetter(address _paramSetter) external onlyOwner {
require(_paramSetter != address(0), "param setter is the zero address");
emit ParamSetterChanged(paramSetter, _paramSetter);
paramSetter = _paramSetter;
}
function addWhiteLists (address[] calldata _users) external onlyParamSetter {
for (uint i=0; i<_users.length; i++){
address _user = _users[i];
_addWhiteList(_user);
}
}
function addWhiteList (address _user) external onlyParamSetter {
_addWhiteList(_user);
}
function _addWhiteList (address _user) internal {
isWhiteListed[_user] = true;
emit AddedWhiteList(_user);
}
function removeWhiteList (address _user) external onlyParamSetter {
delete isWhiteListed[_user];
emit RemovedWhiteList(_user);
}
function getWhiteListStatus(address _user) public view returns (bool) {
return isWhiteListed[_user];
}
function addExchangeToken(address _exchangeToken, uint256 _exchangeRate) external onlyParamSetter {
exchangeTokens.push(_exchangeToken);
exchangeRates.push(_exchangeRate);
}
function updateExchangeRate(uint256 _tokenId, uint256 _exchangeRate) external onlyParamSetter checkTokenId(_tokenId) {
exchangeRates[_tokenId] = _exchangeRate;
}
function remainingAmount() public view returns(uint256) {
return IPOWToken(hashRateToken).remainingAmount();
}
function exchange(uint256 _tokenId, uint256 amount, address to) checkTokenId(_tokenId) external nonReentrant {
require(amount > 0, "Cannot exchange 0");
require(amount <= remainingAmount(), "not sufficient supply");
require(getWhiteListStatus(to), "to is not in whitelist");
uint256 exchangeRateAmplifier = 1000;
uint256 hashRateTokenAmplifier;
uint256 exchangeTokenAmplifier;
{
address exchangeToken = exchangeTokens[_tokenId];
uint256 hashRateTokenDecimal = IERC20Detail(hashRateToken).decimals();
uint256 exchangeTokenDecimal = IERC20Detail(exchangeToken).decimals();
hashRateTokenAmplifier = 10**hashRateTokenDecimal;
exchangeTokenAmplifier = 10**exchangeTokenDecimal;
}
uint256 token_amount = amount.mul(exchangeRates[_tokenId]).mul(exchangeTokenAmplifier).div(hashRateTokenAmplifier).div(exchangeRateAmplifier);
{
address exchangeToken = exchangeTokens[_tokenId];
IERC20(exchangeToken).safeTransferFrom(msg.sender, address(this), token_amount);
IPOWToken(hashRateToken).mint(to, amount);
}
emit Exchanged(msg.sender, amount, _tokenId, token_amount);
}
function ownerMint(uint256 amount)external onlyOwner {
IPOWToken(hashRateToken).mint(owner, amount);
}
function ownerWithdraw(address _token, uint256 _amount) external onlyOwner {
IERC20(_token).safeTransfer(owner, _amount);
}
modifier checkTokenId(uint256 _tokenId) {
require(exchangeTokens[_tokenId] != address(0) && exchangeRates[_tokenId] != 0, "wrong _tokenId");
_;
}
modifier onlyOwner() {
require(msg.sender == owner, "!owner");
_;
}
modifier onlyParamSetter() {
require(msg.sender == paramSetter, "!param setter");
_;
}
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
event ParamSetterChanged(address indexed previousSetter, address indexed newSetter);
event Exchanged(address indexed user, uint256 amount, uint256 tokenId, uint256 token_amount);
event AddedWhiteList(address _user);
event RemovedWhiteList(address _user);
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"}],"name":"AddedWhiteList","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"token_amount","type":"uint256"}],"name":"Exchanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousSetter","type":"address"},{"indexed":true,"internalType":"address","name":"newSetter","type":"address"}],"name":"ParamSetterChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"}],"name":"RemovedWhiteList","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"_exchangeToken","type":"address"},{"internalType":"uint256","name":"_exchangeRate","type":"uint256"}],"name":"addExchangeToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"addWhiteList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_users","type":"address[]"}],"name":"addWhiteLists","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"exchange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"exchangeRates","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"exchangeTokens","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getWhiteListStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hashRateToken","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"address","name":"_paramSetter","type":"address"},{"internalType":"address","name":"_hashRateToken","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWhiteListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ownerMint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ownerWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paramSetter","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"remainingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"removeWhiteList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_paramSetter","type":"address"}],"name":"setParamSetter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_exchangeRate","type":"uint256"}],"name":"updateExchangeRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b50612697806100206000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063a85fc2fb116100ad578063e7cd4a0411610071578063e7cd4a04146105b9578063eb6ee0a1146105fd578063f19e75d414610647578063f2fde38b14610675578063fcc73637146106b957610121565b8063a85fc2fb146103fd578063aa3166b414610455578063c0c53b8b14610499578063d157dc151461051d578063d9c88e141461056b57610121565b8063669b8f20116100f4578063669b8f20146102935780636f9170f6146102ef5780638da5cb5b1461034b5780638f72d54514610395578063a50a1fe6146103df57610121565b8063105dacdf146101265780632042e5c21461019f57806340477126146101e3578063593524ed14610251575b600080fd5b61019d6004803603602081101561013c57600080fd5b810190808035906020019064010000000081111561015957600080fd5b82018360208201111561016b57600080fd5b8035906020019184602083028401116401000000008311171561018d57600080fd5b90919293919293905050506106f1565b005b6101e1600480360360208110156101b557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061080e565b005b61020f600480360360208110156101f957600080fd5b8101908080359060200190929190505050610986565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61027d6004803603602081101561026757600080fd5b81019080803590602001909291905050506109c2565b6040518082815260200191505060405180910390f35b6102d5600480360360208110156102a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109e3565b604051808215151515815260200191505060405180910390f35b6103316004803603602081101561030557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a39565b604051808215151515815260200191505060405180910390f35b610353610a59565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61039d610a7f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103e7610aa5565b6040518082815260200191505060405180910390f35b6104536004803603606081101561041357600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b4f565b005b6104976004803603602081101561046b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111ef565b005b61051b600480360360608110156104af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611415565b005b6105696004803603604081101561053357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611626565b005b6105b76004803603604081101561058157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061177f565b005b6105fb600480360360208110156105cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611893565b005b610605611962565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106736004803603602081101561065d57600080fd5b8101908080359060200190929190505050611988565b005b6106b76004803603602081101561068b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b31565b005b6106ef600480360360408110156106cf57600080fd5b810190808035906020019092919080359060200190929190505050611d57565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f21706172616d207365747465720000000000000000000000000000000000000081525060200191505060405180910390fd5b60008090505b828290508110156108095760008383838181106107d357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1690506107fb81611f3a565b5080806001019150506107ba565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f21706172616d207365747465720000000000000000000000000000000000000081525060200191505060405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690557f9ff0fe46bde692ffa123229beb5debd1c068a183c3b74be4f2d749f628203d3a81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6003818154811061099357fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600481815481106109cf57fe5b906000526020600020016000915090505481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60056020528060005260406000206000915054906101000a900460ff1681565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a50a1fe66040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0f57600080fd5b505afa158015610b23573d6000803e3d6000fd5b505050506040513d6020811015610b3957600080fd5b8101908080519060200190929190505050905090565b82600073ffffffffffffffffffffffffffffffffffffffff1660038281548110610b7557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015610bdc5750600060048281548110610bce57fe5b906000526020600020015414155b610c4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f77726f6e67205f746f6b656e496400000000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900460ff16610ccf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60008060006101000a81548160ff02191690831515021790555060008311610d5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43616e6e6f742065786368616e6765203000000000000000000000000000000081525060200191505060405180910390fd5b610d67610aa5565b831115610ddc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6e6f742073756666696369656e7420737570706c79000000000000000000000081525060200191505060405180910390fd5b610de5826109e3565b610e57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f746f206973206e6f7420696e2077686974656c6973740000000000000000000081525060200191505060405180910390fd5b60006103e89050600080600060038881548110610e7057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610f0757600080fd5b505afa158015610f1b573d6000803e3d6000fd5b505050506040513d6020811015610f3157600080fd5b810190808051906020019092919050505060ff16905060008273ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8f57600080fd5b505afa158015610fa3573d6000803e3d6000fd5b505050506040513d6020811015610fb957600080fd5b810190808051906020019092919050505060ff16905081600a0a945080600a0a9350505050600061104084611032856110248661101660048f81548110610ffc57fe5b90600052602060002001548e611ff890919063ffffffff16565b611ff890919063ffffffff16565b61207e90919063ffffffff16565b61207e90919063ffffffff16565b905060006003898154811061105157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506110ab3330848473ffffffffffffffffffffffffffffffffffffffff166120c8909392919063ffffffff16565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19888a6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561115457600080fd5b505af1158015611168573d6000803e3d6000fd5b50505050503373ffffffffffffffffffffffffffffffffffffffff167faa72c0d539d6f8e122bb378e2cff27e44ac4a7fb25d71693868474bd87137199888a8460405180848152602001838152602001828152602001935050505060405180910390a25050505060016000806101000a81548160ff02191690831515021790555050505050565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f216f776e6572000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611355576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f706172616d2073657474657220697320746865207a65726f206164647265737381525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fbdb27c45e7cebea53416bc78c5bfc5014c1efa4cfd3a2cc9398aeb9aaa617fb560405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060019054906101000a900460ff1615611498576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f546f6b656e20616c726561647920696e697469616c697a65640000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561153b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6e6577206f776e657220697320746865207a65726f206164647265737300000081525060200191505060405180910390fd5b6115436121ce565b6001600060016101000a81548160ff02191690831515021790555082600060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f21706172616d207365747465720000000000000000000000000000000000000081525060200191505060405180910390fd5b60038290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060048190806001815401808255809150509060018203906000526020600020016000909192909190915055505050565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611842576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f216f776e6572000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61188f600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff166121ea9092919063ffffffff16565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f21706172616d207365747465720000000000000000000000000000000000000081525060200191505060405180910390fd5b61195f81611f3a565b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a4b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f216f776e6572000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611b1657600080fd5b505af1158015611b2a573d6000803e3d6000fd5b5050505050565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bf4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f216f776e6572000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6e6577206f776e657220697320746865207a65726f206164647265737300000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f21706172616d207365747465720000000000000000000000000000000000000081525060200191505060405180910390fd5b81600073ffffffffffffffffffffffffffffffffffffffff1660038281548110611e4057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611ea75750600060048281548110611e9957fe5b906000526020600020015414155b611f19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f77726f6e67205f746f6b656e496400000000000000000000000000000000000081525060200191505060405180910390fd5b8160048481548110611f2757fe5b9060005260206000200181905550505050565b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f64fd21439447139bed5a374a0f62ecc0fbd38cf2687d4ed5d587cb55dfbd425881604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60008083141561200b5760009050612078565b600082840290508284828161201c57fe5b0414612073576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126186021913960400191505060405180910390fd5b809150505b92915050565b60006120c083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122bb565b905092915050565b6121c8848573ffffffffffffffffffffffffffffffffffffffff166323b872dd905060e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612381565b50505050565b60016000806101000a81548160ff021916908315150217905550565b6122b6838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612381565b505050565b60008083118290612367576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561232c578082015181840152602081019050612311565b50505050905090810190601f1680156123595780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161237357fe5b049050809150509392505050565b6123a08273ffffffffffffffffffffffffffffffffffffffff166125cc565b612412576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b60208310612461578051825260208201915060208101905060208303925061243e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146124c3576040519150601f19603f3d011682016040523d82523d6000602084013e6124c8565b606091505b509150915081612540576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b6000815111156125c65780806020019051602081101561255f57600080fd5b81019080805190602001909291905050506125c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612639602a913960400191505060405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561260e57506000801b8214155b9250505091905056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a723158205f2e4b4834e45051b90347d2d4ad1e947fb24ab729a70948da2320e987596f6b64736f6c63430005110032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101215760003560e01c8063a85fc2fb116100ad578063e7cd4a0411610071578063e7cd4a04146105b9578063eb6ee0a1146105fd578063f19e75d414610647578063f2fde38b14610675578063fcc73637146106b957610121565b8063a85fc2fb146103fd578063aa3166b414610455578063c0c53b8b14610499578063d157dc151461051d578063d9c88e141461056b57610121565b8063669b8f20116100f4578063669b8f20146102935780636f9170f6146102ef5780638da5cb5b1461034b5780638f72d54514610395578063a50a1fe6146103df57610121565b8063105dacdf146101265780632042e5c21461019f57806340477126146101e3578063593524ed14610251575b600080fd5b61019d6004803603602081101561013c57600080fd5b810190808035906020019064010000000081111561015957600080fd5b82018360208201111561016b57600080fd5b8035906020019184602083028401116401000000008311171561018d57600080fd5b90919293919293905050506106f1565b005b6101e1600480360360208110156101b557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061080e565b005b61020f600480360360208110156101f957600080fd5b8101908080359060200190929190505050610986565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61027d6004803603602081101561026757600080fd5b81019080803590602001909291905050506109c2565b6040518082815260200191505060405180910390f35b6102d5600480360360208110156102a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109e3565b604051808215151515815260200191505060405180910390f35b6103316004803603602081101561030557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a39565b604051808215151515815260200191505060405180910390f35b610353610a59565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61039d610a7f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103e7610aa5565b6040518082815260200191505060405180910390f35b6104536004803603606081101561041357600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b4f565b005b6104976004803603602081101561046b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111ef565b005b61051b600480360360608110156104af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611415565b005b6105696004803603604081101561053357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611626565b005b6105b76004803603604081101561058157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061177f565b005b6105fb600480360360208110156105cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611893565b005b610605611962565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106736004803603602081101561065d57600080fd5b8101908080359060200190929190505050611988565b005b6106b76004803603602081101561068b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b31565b005b6106ef600480360360408110156106cf57600080fd5b810190808035906020019092919080359060200190929190505050611d57565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f21706172616d207365747465720000000000000000000000000000000000000081525060200191505060405180910390fd5b60008090505b828290508110156108095760008383838181106107d357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1690506107fb81611f3a565b5080806001019150506107ba565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f21706172616d207365747465720000000000000000000000000000000000000081525060200191505060405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690557f9ff0fe46bde692ffa123229beb5debd1c068a183c3b74be4f2d749f628203d3a81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6003818154811061099357fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600481815481106109cf57fe5b906000526020600020016000915090505481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60056020528060005260406000206000915054906101000a900460ff1681565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a50a1fe66040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0f57600080fd5b505afa158015610b23573d6000803e3d6000fd5b505050506040513d6020811015610b3957600080fd5b8101908080519060200190929190505050905090565b82600073ffffffffffffffffffffffffffffffffffffffff1660038281548110610b7557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015610bdc5750600060048281548110610bce57fe5b906000526020600020015414155b610c4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f77726f6e67205f746f6b656e496400000000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900460ff16610ccf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60008060006101000a81548160ff02191690831515021790555060008311610d5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43616e6e6f742065786368616e6765203000000000000000000000000000000081525060200191505060405180910390fd5b610d67610aa5565b831115610ddc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6e6f742073756666696369656e7420737570706c79000000000000000000000081525060200191505060405180910390fd5b610de5826109e3565b610e57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f746f206973206e6f7420696e2077686974656c6973740000000000000000000081525060200191505060405180910390fd5b60006103e89050600080600060038881548110610e7057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610f0757600080fd5b505afa158015610f1b573d6000803e3d6000fd5b505050506040513d6020811015610f3157600080fd5b810190808051906020019092919050505060ff16905060008273ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8f57600080fd5b505afa158015610fa3573d6000803e3d6000fd5b505050506040513d6020811015610fb957600080fd5b810190808051906020019092919050505060ff16905081600a0a945080600a0a9350505050600061104084611032856110248661101660048f81548110610ffc57fe5b90600052602060002001548e611ff890919063ffffffff16565b611ff890919063ffffffff16565b61207e90919063ffffffff16565b61207e90919063ffffffff16565b905060006003898154811061105157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506110ab3330848473ffffffffffffffffffffffffffffffffffffffff166120c8909392919063ffffffff16565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19888a6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561115457600080fd5b505af1158015611168573d6000803e3d6000fd5b50505050503373ffffffffffffffffffffffffffffffffffffffff167faa72c0d539d6f8e122bb378e2cff27e44ac4a7fb25d71693868474bd87137199888a8460405180848152602001838152602001828152602001935050505060405180910390a25050505060016000806101000a81548160ff02191690831515021790555050505050565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f216f776e6572000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611355576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f706172616d2073657474657220697320746865207a65726f206164647265737381525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fbdb27c45e7cebea53416bc78c5bfc5014c1efa4cfd3a2cc9398aeb9aaa617fb560405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060019054906101000a900460ff1615611498576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f546f6b656e20616c726561647920696e697469616c697a65640000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561153b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6e6577206f776e657220697320746865207a65726f206164647265737300000081525060200191505060405180910390fd5b6115436121ce565b6001600060016101000a81548160ff02191690831515021790555082600060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f21706172616d207365747465720000000000000000000000000000000000000081525060200191505060405180910390fd5b60038290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060048190806001815401808255809150509060018203906000526020600020016000909192909190915055505050565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611842576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f216f776e6572000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61188f600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff166121ea9092919063ffffffff16565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f21706172616d207365747465720000000000000000000000000000000000000081525060200191505060405180910390fd5b61195f81611f3a565b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a4b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f216f776e6572000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611b1657600080fd5b505af1158015611b2a573d6000803e3d6000fd5b5050505050565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bf4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f216f776e6572000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6e6577206f776e657220697320746865207a65726f206164647265737300000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f21706172616d207365747465720000000000000000000000000000000000000081525060200191505060405180910390fd5b81600073ffffffffffffffffffffffffffffffffffffffff1660038281548110611e4057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611ea75750600060048281548110611e9957fe5b906000526020600020015414155b611f19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f77726f6e67205f746f6b656e496400000000000000000000000000000000000081525060200191505060405180910390fd5b8160048481548110611f2757fe5b9060005260206000200181905550505050565b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f64fd21439447139bed5a374a0f62ecc0fbd38cf2687d4ed5d587cb55dfbd425881604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60008083141561200b5760009050612078565b600082840290508284828161201c57fe5b0414612073576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126186021913960400191505060405180910390fd5b809150505b92915050565b60006120c083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122bb565b905092915050565b6121c8848573ffffffffffffffffffffffffffffffffffffffff166323b872dd905060e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612381565b50505050565b60016000806101000a81548160ff021916908315150217905550565b6122b6838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612381565b505050565b60008083118290612367576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561232c578082015181840152602081019050612311565b50505050905090810190601f1680156123595780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161237357fe5b049050809150509392505050565b6123a08273ffffffffffffffffffffffffffffffffffffffff166125cc565b612412576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b60208310612461578051825260208201915060208101905060208303925061243e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146124c3576040519150601f19603f3d011682016040523d82523d6000602084013e6124c8565b606091505b509150915081612540576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b6000815111156125c65780806020019051602081101561255f57600080fd5b81019080805190602001909291905050506125c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612639602a913960400191505060405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561260e57506000801b8214155b9250505091905056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a723158205f2e4b4834e45051b90347d2d4ad1e947fb24ab729a70948da2320e987596f6b64736f6c63430005110032
Deployed Bytecode Sourcemap
18232:4870:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18232:4870:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19513:217;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19513:217:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;19513:217:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19513:217:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;19513:217:0;;;;;;;;;;;;:::i;:::-;;19987:152;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19987:152:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;18477:31;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18477:31:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18515:30;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18515:30:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20147:116;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20147:116:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18554:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18554:46:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18382:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18442:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20658:124;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20790:1282;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20790:1282:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19252:253;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19252:253:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;18609:400;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18609:400:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20271:196;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20271:196:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22204:137;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22204:137:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19738:102;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19738:102:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;18409:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22080:116;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22080:116:0;;;;;;;;;;;;;;;;;:::i;:::-;;19017:227;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19017:227:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;20475:175;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20475:175:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19513:217;22683:11;;;;;;;;;;;22669:25;;:10;:25;;;22661:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19605:6;19612:1;19605:8;;19600:123;19617:6;;:13;;19615:1;:15;19600:123;;;19651:13;19667:6;;19674:1;19667:9;;;;;;;;;;;;;;;19651:25;;19691:20;19705:5;19691:13;:20::i;:::-;19600:123;19632:3;;;;;;;19600:123;;;;19513:217;;:::o;19987:152::-;22683:11;;;;;;;;;;;22669:25;;:10;:25;;;22661:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20071:13;:20;20085:5;20071:20;;;;;;;;;;;;;;;;20064:27;;;;;;;;;;;20108:23;20125:5;20108:23;;;;;;;;;;;;;;;;;;;;;;19987:152;:::o;18477:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18515:30::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20147:116::-;20211:4;20235:13;:20;20249:5;20235:20;;;;;;;;;;;;;;;;;;;;;;;;;20228:27;;20147:116;;;:::o;18554:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;18382:20::-;;;;;;;;;;;;;:::o;18442:28::-;;;;;;;;;;;;;:::o;20658:124::-;20705:7;20742:13;;;;;;;;;;;20732:40;;;:42;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20732:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20732:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20732:42:0;;;;;;;;;;;;;;;;20725:49;;20658:124;:::o;20790:1282::-;20867:8;22444:1;22408:38;;:14;22423:8;22408:24;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;:70;;;;;22477:1;22450:13;22464:8;22450:23;;;;;;;;;;;;;;;;:28;;22408:70;22400:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17894:11;;;;;;;;;;;17886:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18033:5;18019:11;;:19;;;;;;;;;;;;;;;;;;20927:1;20918:6;:10;20910:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20979:17;:15;:17::i;:::-;20969:6;:27;;20961:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21041:22;21060:2;21041:18;:22::i;:::-;21033:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21103:29;21135:4;21103:36;;21150:30;21191;21247:21;21271:14;21286:8;21271:24;;;;;;;;;;;;;;;;;;;;;;;;;21247:48;;21310:28;21354:13;;;;;;;;;;;21341:36;;;:38;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21341:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21341:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21341:38:0;;;;;;;;;;;;;;;;21310:69;;;;21394:28;21438:13;21425:36;;;:38;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21425:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21425:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21425:38:0;;;;;;;;;;;;;;;;21394:69;;;;21507:20;21503:2;:24;21478:49;;21571:20;21567:2;:24;21542:49;;18051:1;;;21615:20;21638:118;21734:21;21638:91;21706:22;21638:63;21678:22;21638:35;21649:13;21663:8;21649:23;;;;;;;;;;;;;;;;21638:6;:10;;:35;;;;:::i;:::-;:39;;:63;;;;:::i;:::-;:67;;:91;;;;:::i;:::-;:95;;:118;;;;:::i;:::-;21615:141;;21784:21;21808:14;21823:8;21808:24;;;;;;;;;;;;;;;;;;;;;;;;;21784:48;;21847:79;21886:10;21906:4;21913:12;21854:13;21847:38;;;;:79;;;;;;:::i;:::-;21951:13;;;;;;;;;;;21941:29;;;21971:2;21975:6;21941:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21941:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21941:41:0;;;;18051:1;22021:10;22011:53;;;22033:6;22041:8;22051:12;22011:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18051:1;;;;18213:4;18199:11;;:18;;;;;;;;;;;;;;;;;;20790:1282;;;;:::o;19252:253::-;22579:5;;;;;;;;;;;22565:19;;:10;:19;;;22557:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19360:1;19336:26;;:12;:26;;;;19328:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19447:12;19415:45;;19434:11;;;;;;;;;;;19415:45;;;;;;;;;;;;19485:12;19471:11;;:26;;;;;;;;;;;;;;;;;;19252:253;:::o;18609:400::-;18720:11;;;;;;;;;;;18719:12;18711:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18800:1;18780:22;;:8;:22;;;;18772:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18847:18;:16;:18::i;:::-;18890:4;18876:11;;:18;;;;;;;;;;;;;;;;;;18915:8;18907:5;;:16;;;;;;;;;;;;;;;;;;18948:12;18934:11;;:26;;;;;;;;;;;;;;;;;;18987:14;18971:13;;:30;;;;;;;;;;;;;;;;;;18609:400;;;:::o;20271:196::-;22683:11;;;;;;;;;;;22669:25;;:10;:25;;;22661:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20380:14;20400;20380:35;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;20380:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20426:13;20445;20426:33;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;20426:33:0;;;;;;;;;;;;;;;;;;;;;;20271:196;;:::o;22204:137::-;22579:5;;;;;;;;;;;22565:19;;:10;:19;;;22557:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22290:43;22318:5;;;;;;;;;;;22325:7;22297:6;22290:27;;;;:43;;;;;:::i;:::-;22204:137;;:::o;19738:102::-;22683:11;;;;;;;;;;;22669:25;;:10;:25;;;22661:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19812:20;19826:5;19812:13;:20::i;:::-;19738:102;:::o;18409:26::-;;;;;;;;;;;;;:::o;22080:116::-;22579:5;;;;;;;;;;;22565:19;;:10;:19;;;22557:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22154:13;;;;;;;;;;;22144:29;;;22174:5;;;;;;;;;;;22181:6;22144:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22144:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22144:44:0;;;;22080:116;:::o;19017:227::-;22579:5;;;;;;;;;;;22565:19;;:10;:19;;;22557:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19120:1;19100:22;;:8;:22;;;;19092:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19200:8;19172:37;;19193:5;;;;;;;;;;;19172:37;;;;;;;;;;;;19228:8;19220:5;;:16;;;;;;;;;;;;;;;;;;19017:227;:::o;20475:175::-;22683:11;;;;;;;;;;;22669:25;;:10;:25;;;22661:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20582:8;22444:1;22408:38;;:14;22423:8;22408:24;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;:70;;;;;22477:1;22450:13;22464:8;22450:23;;;;;;;;;;;;;;;;:28;;22408:70;22400:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20629:13;20603;20617:8;20603:23;;;;;;;;;;;;;;;:39;;;;22723:1;20475:175;;:::o;19848:131::-;19930:4;19907:13;:20;19921:5;19907:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;19950:21;19965:5;19950:21;;;;;;;;;;;;;;;;;;;;;;19848:131;:::o;2231:471::-;2289:7;2539:1;2534;:6;2530:47;;;2564:1;2557:8;;;;2530:47;2589:9;2605:1;2601;:5;2589:17;;2634:1;2629;2625;:5;;;;;;:10;2617:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2693:1;2686:8;;;2231:471;;;;;:::o;3170:132::-;3228:7;3255:39;3259:1;3262;3255:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3248:46;;3170:132;;;;:::o;11991:204::-;12092:95;12111:5;12141;:18;;;:27;;;;12170:4;12176:2;12180:5;12118:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12118:68:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;12118:68:0;12092:18;:95::i;:::-;11991:204;;;;:::o;16909:486::-;17383:4;17369:11;;:18;;;;;;;;;;;;;;;;;;16909:486::o;11807:176::-;11890:85;11909:5;11939;:14;;;:23;;;;11964:2;11968:5;11916:58;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11916:58:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;11916:58:0;11890:18;:85::i;:::-;11807:176;;;:::o;3832:345::-;3918:7;4017:1;4013;:5;4020:12;4005:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4005:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4044:9;4060:1;4056;:5;;;;;;4044:17;;4168:1;4161:8;;;3832:345;;;;;:::o;13846:1114::-;14450:27;14458:5;14450:25;;;:27::i;:::-;14442:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14587:12;14601:23;14636:5;14628:19;;14648:4;14628:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;14628:25:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;14586:67:0;;;;14672:7;14664:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14753:1;14733:10;:17;:21;14729:224;;;14875:10;14864:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14864:30:0;;;;;;;;;;;;;;;;14856:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14729:224;13846:1114;;;;:::o;8931:619::-;8991:4;9253:16;9280:19;9302:66;9280:88;;;;9471:7;9459:20;9447:32;;9511:11;9499:8;:23;;:42;;;;;9538:3;9526:15;;:8;:15;;9499:42;9491:51;;;;8931:619;;;:::o
Swarm Source
bzzr://5f2e4b4834e45051b90347d2d4ad1e947fb24ab729a70948da2320e987596f6b
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 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.