Contract Overview
Balance:
0 FTM
FTM Value:
$0.00
My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Latest 1 internal transaction
Parent Txn Hash | Block | From | To | Value | |||
---|---|---|---|---|---|---|---|
0xf1c6e2a436f2ba48958118dd9e6843c960ef4eb6fed10362221346e5d02c8b42 | 38975875 | 369 days 16 hrs ago | Degen Finance: Deployer | Contract Creation | 0 FTM |
[ Download CSV Export ]
Contract Name:
Node
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at FtmScan.com on 2022-05-24 */ /** *Submitted for verification at FtmScan.com on 2022-05-14 */ /** *Submitted for verification at FtmScan.com on 2022-04-12 */ // SPDX-License-Identifier: MIT // File @openzeppelin/contracts-old/token/ERC20/[email protected] pragma solidity ^0.6.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ 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); } // File @openzeppelin/contracts-old/math/[email protected] pragma solidity ^0.6.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. */ 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. */ 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. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } // File @openzeppelin/contracts-old/utils/[email protected] pragma solidity ^0.6.2; /** * @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 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]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } } // File @openzeppelin/contracts-old/token/ERC20/[email protected] pragma solidity ^0.6.0; /** * @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"); } } } // File contracts/distribution/Node.sol pragma experimental ABIEncoderV2; pragma solidity 0.6.12; contract Node { using SafeERC20 for IERC20; using SafeMath for uint256; IERC20 public constant TOKEN = IERC20(0xF9784Ab1AceF4c88d58844d84acf635B89461f5A); uint256[] public tierAllocPoints = [1 ether, 1 ether, 1 ether]; uint256[] public tierAmounts = [2000 ether, 5000 ether, 5000 ether]; struct User { uint256 total_deposits; uint256 total_claims; uint256 last_distPoints; } event CreateNode(uint256 timestamp, address account, uint256 num); address private dev; mapping(address => User) public users; mapping(address => mapping(uint256 => uint256)) public nodes; mapping(uint256 => uint256) public totalNodes; address[] public userIndices; uint256 public total_deposited; uint256 public total_claimed; uint256 public total_rewards; uint256 public treasury_rewards; uint256 public treasuryFeePercent; uint256 public totalDistributeRewards; uint256 public totalDistributePoints; uint256 public maxReturnPercent; uint256 public dripRate; uint256 public lastDripTime; uint256 public startTime; bool public enabled; uint256 public constant MULTIPLIER = 10e18; constructor(uint256 _startTime) public { maxReturnPercent = 500; dripRate = 2880000; treasuryFeePercent = 10; lastDripTime = _startTime > block.timestamp ? _startTime : block.timestamp; startTime = _startTime; enabled = true; dev = msg.sender; } receive() external payable { revert("Do not send FTM."); } modifier onlyDev() { require(msg.sender == dev, "Caller is not the dev!"); _; } function changeDev(address payable newDev) external onlyDev { require(newDev != address(0), "Zero address"); dev = newDev; } function claimTreasuryRewards() external { if (treasury_rewards > 0) { TOKEN.safeTransfer(dev, treasury_rewards); treasury_rewards = 0; } } function setStartTime(uint256 _startTime) external onlyDev { startTime = _startTime; } function setEnabled(bool _enabled) external onlyDev { enabled = _enabled; } function setTreasuryFeePercent(uint256 percent) external onlyDev { treasuryFeePercent = percent; } function setDripRate(uint256 rate) external onlyDev { dripRate = rate; } function setLastDripTime(uint256 timestamp) external onlyDev { lastDripTime = timestamp; } function setMaxReturnPercent(uint256 percent) external onlyDev { maxReturnPercent = percent; } function setTierValues(uint256[] memory _tierAllocPoints, uint256[] memory _tierAmounts) external onlyDev { require(_tierAllocPoints.length == _tierAmounts.length, "Length mismatch"); tierAllocPoints = _tierAllocPoints; tierAmounts = _tierAmounts; } function setUser(address _addr, User memory _user) external onlyDev { total_deposited = total_deposited.sub(users[_addr].total_deposits).add(_user.total_deposits); total_claimed = total_claimed.sub(users[_addr].total_claims).add(_user.total_claims); users[_addr].total_deposits = _user.total_deposits; users[_addr].total_claims = _user.total_claims; } function setNodes(address _user, uint256[] memory _nodes) external onlyDev { for(uint256 i = 0; i < _nodes.length; i++) { totalNodes[i] = totalNodes[i].sub(nodes[_user][i]).add( _nodes[i]); nodes[_user][i] = _nodes[i]; } } function totalAllocPoints() public view returns (uint256) { uint256 total = 0; for (uint256 i = 0; i < tierAllocPoints.length; i++) { total = total.add(tierAllocPoints[i].mul(totalNodes[i])); } return total; } function allocPoints(address account) public view returns (uint256) { uint256 total = 0; for (uint256 i = 0; i < tierAllocPoints.length; i++) { total = total.add(tierAllocPoints[i].mul(nodes[account][i])); } return total; } function getDistributionRewards(address account) public view returns (uint256) { if (isMaxPayout(account)) return 0; uint256 newDividendPoints = totalDistributePoints.sub(users[account].last_distPoints); uint256 distribute = allocPoints(account).mul(newDividendPoints).div(MULTIPLIER); return distribute > total_rewards ? total_rewards : distribute; } function getTotalRewards(address _sender) public view returns (uint256) { if (users[_sender].total_deposits == 0) return 0; uint256 rewards = getDistributionRewards(_sender).add(getRewardDrip().mul(allocPoints(_sender)).div(totalAllocPoints())); uint256 totalClaims = users[_sender].total_claims; uint256 maxPay = maxPayout(_sender); // Payout remaining if exceeds max payout return totalClaims.add(rewards) > maxPay ? maxPay.sub(totalClaims) : rewards; } function create(uint256 nodeTier, uint256 numNodes) external { address _sender = msg.sender; require(enabled && block.timestamp >= startTime, "Disabled"); require(nodeTier < tierAllocPoints.length && nodeTier < tierAmounts.length, "Invalid nodeTier"); claim(); if (users[_sender].total_deposits == 0) { userIndices.push(_sender); // New user users[_sender].last_distPoints = totalDistributePoints; } if (users[_sender].total_deposits != 0 && isMaxPayout(_sender)) { users[_sender].last_distPoints = totalDistributePoints; } uint256 tierPrice = tierAmounts[nodeTier].mul(numNodes); require(TOKEN.balanceOf(_sender) >= tierPrice, "Insufficient balance"); require(TOKEN.allowance(_sender, address(this)) >= tierPrice, "Insufficient allowance"); TOKEN.safeTransferFrom(_sender, address(this), tierPrice); users[_sender].total_deposits = users[_sender].total_deposits.add(tierPrice); total_deposited = total_deposited.add(tierPrice); treasury_rewards = treasury_rewards.add( tierPrice.mul(treasuryFeePercent).div(100) ); nodes[_sender][nodeTier] = nodes[_sender][nodeTier].add(numNodes); totalNodes[nodeTier] = totalNodes[nodeTier].add(numNodes); emit CreateNode(block.timestamp, _sender, numNodes); } function claim() public { dripRewards(); address _sender = msg.sender; uint256 _rewards = getDistributionRewards(_sender); if (_rewards > 0) { total_rewards = total_rewards.sub(_rewards); uint256 totalClaims = users[_sender].total_claims; uint256 maxPay = maxPayout(_sender); // Payout remaining if exceeds max payout if(totalClaims.add(_rewards) > maxPay) { _rewards = maxPay.sub(totalClaims); } users[_sender].total_claims = users[_sender].total_claims.add(_rewards); total_claimed = total_claimed.add(_rewards); IERC20(TOKEN).safeTransfer(_sender, _rewards); users[_sender].last_distPoints = totalDistributePoints; } } function _compound(uint256 nodeTier, uint256 numNodes) internal { address _sender = msg.sender; require(enabled && block.timestamp >= startTime, "Disabled"); require(nodeTier < tierAllocPoints.length && nodeTier < tierAmounts.length, "Invalid nodeTier"); if (users[_sender].total_deposits == 0) { userIndices.push(_sender); // New user users[_sender].last_distPoints = totalDistributePoints; } if (users[_sender].total_deposits != 0 && isMaxPayout(_sender)) { users[_sender].last_distPoints = totalDistributePoints; } uint256 tierPrice = tierAmounts[nodeTier].mul(numNodes); require(TOKEN.balanceOf(_sender) >= tierPrice, "Insufficient balance"); require(TOKEN.allowance(_sender, address(this)) >= tierPrice, "Insufficient allowance"); TOKEN.safeTransferFrom(_sender, address(this), tierPrice); users[_sender].total_deposits = users[_sender].total_deposits.add(tierPrice); total_deposited = total_deposited.add(tierPrice); treasury_rewards = treasury_rewards.add( tierPrice.mul(treasuryFeePercent).div(100) ); nodes[_sender][nodeTier] = nodes[_sender][nodeTier].add(numNodes); totalNodes[nodeTier] = totalNodes[nodeTier].add(numNodes); emit CreateNode(block.timestamp, _sender, numNodes); } function compound() public { uint256 rewardsPending = getTotalRewards(msg.sender); require(rewardsPending >= tierAmounts[0], "Not enough to compound"); uint256 numPossible = rewardsPending.div(tierAmounts[0]); claim(); _compound(0, numPossible); } function maxPayout(address _sender) public view returns (uint256) { return users[_sender].total_deposits.mul(maxReturnPercent).div(100); } function isMaxPayout(address _sender) public view returns (bool) { return users[_sender].total_claims >= maxPayout(_sender); } function _disperse(uint256 amount) internal { if (amount > 0 ) { totalDistributePoints = totalDistributePoints.add(amount.mul(MULTIPLIER).div(totalAllocPoints())); totalDistributeRewards = totalDistributeRewards.add(amount); total_rewards = total_rewards.add(amount); } } function dripRewards() public { uint256 drip = getRewardDrip(); if (drip > 0) { _disperse(drip); lastDripTime = block.timestamp; } } function getRewardDrip() public view returns (uint256) { if (lastDripTime < block.timestamp) { uint256 poolBalance = getBalancePool(); uint256 secondsPassed = block.timestamp.sub(lastDripTime); uint256 drip = secondsPassed.mul(poolBalance).div(dripRate); if (drip > poolBalance) { drip = poolBalance; } return drip; } return 0; } function getDayDripEstimate(address _user) external view returns (uint256) { return allocPoints(_user) > 0 && !isMaxPayout(_user) ? getBalancePool() .mul(86400) .mul(allocPoints(_user)) .div(totalAllocPoints()) .div(dripRate) : 0; } function total_users() external view returns (uint256) { return userIndices.length; } function numNodes(address _sender, uint256 _nodeId) external view returns (uint256) { return nodes[_sender][_nodeId]; } function getNodes(address _sender) external view returns (uint256[] memory) { uint256[] memory userNodes = new uint256[](tierAllocPoints.length); for (uint256 i = 0; i < tierAllocPoints.length; i++) { userNodes[i] = userNodes[i].add(nodes[_sender][i]); } return userNodes; } function getTotalNodes() external view returns (uint256[] memory) { uint256[] memory totals = new uint256[](tierAllocPoints.length); for (uint256 i = 0; i < tierAllocPoints.length; i++) { totals[i] = totals[i].add(totalNodes[i]); } return totals; } function getBalance() public view returns (uint256) { return IERC20(TOKEN).balanceOf(address(this)); } function getBalancePool() public view returns (uint256) { return getBalance().sub(total_rewards).sub(treasury_rewards); } function emergencyWithdraw(IERC20 token, uint256 amnt) external onlyDev { token.safeTransfer(dev, amnt); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"num","type":"uint256"}],"name":"CreateNode","type":"event"},{"inputs":[],"name":"MULTIPLIER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOKEN","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"allocPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"newDev","type":"address"}],"name":"changeDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimTreasuryRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nodeTier","type":"uint256"},{"internalType":"uint256","name":"numNodes","type":"uint256"}],"name":"create","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dripRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dripRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amnt","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalancePool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getDayDripEstimate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getDistributionRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"getNodes","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardDrip","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalNodes","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"getTotalRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"isMaxPayout","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastDripTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"maxPayout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxReturnPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"nodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_nodeId","type":"uint256"}],"name":"numNodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setDripRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"setLastDripTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxReturnPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256[]","name":"_nodes","type":"uint256[]"}],"name":"setNodes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"}],"name":"setStartTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_tierAllocPoints","type":"uint256[]"},{"internalType":"uint256[]","name":"_tierAmounts","type":"uint256[]"}],"name":"setTierValues","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setTreasuryFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"components":[{"internalType":"uint256","name":"total_deposits","type":"uint256"},{"internalType":"uint256","name":"total_claims","type":"uint256"},{"internalType":"uint256","name":"last_distPoints","type":"uint256"}],"internalType":"struct Node.User","name":"_user","type":"tuple"}],"name":"setUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tierAllocPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tierAmounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAllocPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributePoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributeRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalNodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_claimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_deposited","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_users","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasury_rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userIndices","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"total_deposits","type":"uint256"},{"internalType":"uint256","name":"total_claims","type":"uint256"},{"internalType":"uint256","name":"last_distPoints","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e0604052670de0b6b3a7640000608081815260a082905260c0919091526200002d906000906003620000ec565b5060408051606081018252686c6b935b8bbd400000815269010f0cf064dd5920000060208201819052918101919091526200006d90600190600362000147565b503480156200007b57600080fd5b5060405162002567380380620025678339810160408190526200009e91620001a7565b6101f4600e55622bf200600f55600a600b55428111620000bf5742620000c1565b805b6010556011556012805460ff19166001179055600280546001600160a01b03191633179055620001c0565b82805482825590600052602060002090810192821562000135579160200282015b828111156200013557825182906001600160401b03169055916020019190600101906200010d565b506200014392915062000190565b5090565b82805482825590600052602060002090810192821562000135579160200282015b828111156200013557825182906001600160501b031690559160200191906001019062000168565b5b8082111562000143576000815560010162000191565b600060208284031215620001b9578081fd5b5051919050565b61239780620001d06000396000f3fe6080604052600436106102cd5760003560e01c80635c75dcbc116101755780639f7b4579116100dc578063d326159211610095578063e7cc62bd1161006f578063e7cc62bd1461082a578063f65f4eaf1461083f578063f69e204614610854578063fba1f7b014610869576102f3565b8063d3261592146107e0578063de560cca146107f5578063e300e98b1461080a576102f3565b80639f7b457914610727578063a87430ba14610747578063ab4e278514610776578063adf1b67e1461078b578063bcb11639146107ab578063c7ce9560146107cb576102f3565b8063740c8af71161012e578063740c8af71461068857806378e979251461069d57806382bfefc8146106b257806388a8c95c146106c757806394ac42cc146106e757806395ccea6714610707576102f3565b80635c75dcbc146105e95780635fb11d7e146105fe5780635fbb48dc1461061e57806363584ecd1461063e578063648acb09146106535780636af904c614610673576102f3565b80632ae2707111610234578063486af96a116101ed5780635083f17b116101c75780635083f17b1461057f57806356e1221c1461059f5780635b0d2d8c146105bf5780635b2f3c8e146105d4576102f3565b8063486af96a146105285780634b3dd5b5146105555780634e71d92d1461056a576102f3565b80632ae27071146104685780632bcf161c14610488578063328d8f72146104a857806335771fe0146104c85780633e0a322d146104e857806344886d7014610508576102f3565b80631fa36cbe116102865780631fa36cbe146103a4578063211aea02146103b95780632365d7bc146103e6578063238dafe0146104065780632702dfe714610428578063277e531614610448576102f3565b8063059f8b16146102f857806305c4744b1461032357806305d6bbf41461033a57806312065fe01461034f5780631d1c7b4e146103645780631ed5c6c214610384576102f3565b366102f35760405162461bcd60e51b81526004016102ea906121e0565b60405180910390fd5b600080fd5b34801561030457600080fd5b5061030d61087e565b60405161031a91906122ad565b60405180910390f35b34801561032f57600080fd5b5061033861088a565b005b34801561034657600080fd5b5061030d6108cb565b34801561035b57600080fd5b5061030d6108d1565b34801561037057600080fd5b5061030d61037f366004611ea2565b610961565b34801561039057600080fd5b5061033861039f366004611ea2565b610973565b3480156103b057600080fd5b5061030d6109a2565b3480156103c557600080fd5b506103d96103d4366004611ea2565b610a05565b60405161031a9190611f0f565b3480156103f257600080fd5b5061030d610401366004611ea2565b610a2c565b34801561041257600080fd5b5061041b610a4a565b60405161031a9190611fbe565b34801561043457600080fd5b50610338610443366004611d86565b610a53565b34801561045457600080fd5b5061030d610463366004611d1c565b610b16565b34801561047457600080fd5b50610338610483366004611e13565b610b9e565b34801561049457600080fd5b5061030d6104a3366004611d1c565b610c15565b3480156104b457600080fd5b506103386104c3366004611e6a565b610cba565b3480156104d457600080fd5b5061030d6104e3366004611ea2565b610cf7565b3480156104f457600080fd5b50610338610503366004611ea2565b610d04565b34801561051457600080fd5b5061041b610523366004611d1c565b610d33565b34801561053457600080fd5b50610548610543366004611d1c565b610d63565b60405161031a9190611f7a565b34801561056157600080fd5b5061030d610e2e565b34801561057657600080fd5b50610338610e97565b34801561058b57600080fd5b5061033861059a366004611d38565b610fa0565b3480156105ab57600080fd5b506103386105ba366004611ea2565b61107a565b3480156105cb57600080fd5b5061030d6110a9565b3480156105e057600080fd5b506103386110c5565b3480156105f557600080fd5b5061030d6110e8565b34801561060a57600080fd5b5061030d610619366004611d1c565b6110ee565b34801561062a57600080fd5b50610338610639366004611ea2565b611140565b34801561064a57600080fd5b5061054861116f565b34801561065f57600080fd5b5061033861066e366004611ea2565b611209565b34801561067f57600080fd5b5061030d611238565b34801561069457600080fd5b5061030d61123e565b3480156106a957600080fd5b5061030d611244565b3480156106be57600080fd5b506103d961124a565b3480156106d357600080fd5b506103386106e2366004611d1c565b611262565b3480156106f357600080fd5b5061030d610702366004611d1c565b6112d4565b34801561071357600080fd5b50610338610722366004611de8565b611330565b34801561073357600080fd5b50610338610742366004611ed2565b611374565b34801561075357600080fd5b50610767610762366004611d1c565b611759565b60405161031a939291906122d5565b34801561078257600080fd5b5061030d61177a565b34801561079757600080fd5b5061030d6107a6366004611de8565b611780565b3480156107b757600080fd5b5061030d6107c6366004611de8565b61179d565b3480156107d757600080fd5b5061030d6117c5565b3480156107ec57600080fd5b5061030d6117cb565b34801561080157600080fd5b5061030d6117d1565b34801561081657600080fd5b5061030d610825366004611d1c565b6117d7565b34801561083657600080fd5b5061030d611806565b34801561084b57600080fd5b5061030d61180c565b34801561086057600080fd5b50610338611812565b34801561087557600080fd5b5061030d611899565b678ac7230489e8000081565b600a54156108c957600254600a546108c39173f9784ab1acef4c88d58844d84acf635b89461f5a916001600160a01b039091169061189f565b6000600a555b565b60095481565b6040516370a0823160e01b815260009073f9784ab1acef4c88d58844d84acf635b89461f5a906370a082319061090b903090600401611f0f565b60206040518083038186803b15801561092357600080fd5b505afa158015610937573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095b9190611eba565b90505b90565b60056020526000908152604090205481565b6002546001600160a01b0316331461099d5760405162461bcd60e51b81526004016102ea90611ffc565b601055565b600080805b6000548110156109ff5760008181526005602052604081205481546109f5926109ee9291859081106109d557fe5b90600052602060002001546118f590919063ffffffff16565b8390611936565b91506001016109a7565b50905090565b60068181548110610a1257fe5b6000918252602090912001546001600160a01b0316905081565b60008181548110610a3957fe5b600091825260209091200154905081565b60125460ff1681565b6002546001600160a01b03163314610a7d5760405162461bcd60e51b81526004016102ea90611ffc565b80516001600160a01b038316600090815260036020526040902054600754610ab09291610aaa919061195b565b90611936565b6007556020808201516001600160a01b03841660009081526003909252604090912060010154600854610ae89291610aaa919061195b565b60085580516001600160a01b0390921660009081526003602090815260409091209283550151600190910155565b6000610b2182610d33565b15610b2e57506000610b99565b6001600160a01b038216600090815260036020526040812060020154600d54610b569161195b565b90506000610b7f678ac7230489e80000610b7984610b73886110ee565b906118f5565b9061199d565b90506009548111610b905780610b94565b6009545b925050505b919050565b6002546001600160a01b03163314610bc85760405162461bcd60e51b81526004016102ea90611ffc565b8051825114610be95760405162461bcd60e51b81526004016102ea906121b7565b8151610bfc906000906020850190611c3c565b508051610c10906001906020840190611c3c565b505050565b6001600160a01b038116600090815260036020526040812054610c3a57506000610b99565b6000610c67610c5e610c4a6109a2565b610b79610c56876110ee565b610b73610e2e565b610aaa85610b16565b6001600160a01b038416600090815260036020526040812060010154919250610c8f856117d7565b905080610c9c8385611936565b11610ca75782610cb1565b610cb1818361195b565b95945050505050565b6002546001600160a01b03163314610ce45760405162461bcd60e51b81526004016102ea90611ffc565b6012805460ff1916911515919091179055565b60018181548110610a3957fe5b6002546001600160a01b03163314610d2e5760405162461bcd60e51b81526004016102ea90611ffc565b601155565b6000610d3e826117d7565b6001600160a01b03831660009081526003602052604090206001015410159050919050565b600054606090819067ffffffffffffffff81118015610d8157600080fd5b50604051908082528060200260200182016040528015610dab578160200160208202803683370190505b50905060005b600054811015610e27576001600160a01b03841660009081526004602090815260408083208484529091529020548251610e089190849084908110610df257fe5b602002602001015161193690919063ffffffff16565b828281518110610e1457fe5b6020908102919091010152600101610db1565b5092915050565b6000426010541015610e91576000610e446110a9565b90506000610e5d6010544261195b90919063ffffffff16565b90506000610e7a600f54610b7985856118f590919063ffffffff16565b905082811115610e875750815b925061095e915050565b50600090565b610e9f6110c5565b336000610eab82610b16565b90508015610f9c57600954610ec0908261195b565b6009556001600160a01b03821660009081526003602052604081206001015490610ee9846117d7565b905080610ef68385611936565b1115610f0957610f06818361195b565b92505b6001600160a01b038416600090815260036020526040902060010154610f2f9084611936565b6001600160a01b038516600090815260036020526040902060010155600854610f589084611936565b600855610f7a73f9784ab1acef4c88d58844d84acf635b89461f5a858561189f565b5050600d546001600160a01b0383166000908152600360205260409020600201555b5050565b6002546001600160a01b03163314610fca5760405162461bcd60e51b81526004016102ea90611ffc565b60005b8151811015610c1057611026828281518110610fe557fe5b6020908102919091018101516001600160a01b038616600090815260048352604080822086835284528082205460059094529020549091610aaa919061195b565b600082815260056020526040902055815182908290811061104357fe5b6020908102919091018101516001600160a01b03851660009081526004835260408082208583529093529190912055600101610fcd565b6002546001600160a01b031633146110a45760405162461bcd60e51b81526004016102ea90611ffc565b600b55565b600061095b600a546110bf6009546110bf6108d1565b9061195b565b60006110cf610e2e565b905080156110e5576110e0816119df565b426010555b50565b600b5481565b600080805b600054811015610e27576001600160a01b03841660009081526004602090815260408083208484529091528120548154611136926109ee9291859081106109d557fe5b91506001016110f3565b6002546001600160a01b0316331461116a5760405162461bcd60e51b81526004016102ea90611ffc565b600f55565b600054606090819067ffffffffffffffff8111801561118d57600080fd5b506040519080825280602002602001820160405280156111b7578160200160208202803683370190505b50905060005b6000548110156109ff576111ea6005600083815260200190815260200160002054838381518110610df257fe5b8282815181106111f657fe5b60209081029190910101526001016111bd565b6002546001600160a01b031633146112335760405162461bcd60e51b81526004016102ea90611ffc565b600e55565b60085481565b600e5481565b60115481565b73f9784ab1acef4c88d58844d84acf635b89461f5a81565b6002546001600160a01b0316331461128c5760405162461bcd60e51b81526004016102ea90611ffc565b6001600160a01b0381166112b25760405162461bcd60e51b81526004016102ea90612126565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000806112e0836110ee565b1180156112f357506112f182610d33565b155b6112fe57600061132a565b61132a600f54610b7961130f6109a2565b610b7961131b876110ee565b610b7362015180610b736110a9565b92915050565b6002546001600160a01b0316331461135a5760405162461bcd60e51b81526004016102ea90611ffc565b600254610f9c906001600160a01b0384811691168361189f565b601254339060ff16801561138a57506011544210155b6113a65760405162461bcd60e51b81526004016102ea9061220a565b600054831080156113b8575060015483105b6113d45760405162461bcd60e51b81526004016102ea9061214c565b6113dc610e97565b6001600160a01b0381166000908152600360205260409020546114595760068054600181019091557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b038316908117909155600d54600091825260036020526040909120600201555b6001600160a01b03811660009081526003602052604090205415801590611484575061148481610d33565b156114a957600d546001600160a01b0382166000908152600360205260409020600201555b60006114bc83600186815481106109d557fe5b6040516370a0823160e01b8152909150819073f9784ab1acef4c88d58844d84acf635b89461f5a906370a08231906114f8908690600401611f0f565b60206040518083038186803b15801561151057600080fd5b505afa158015611524573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115489190611eba565b10156115665760405162461bcd60e51b81526004016102ea906120c3565b604051636eb1769f60e11b8152819073f9784ab1acef4c88d58844d84acf635b89461f5a9063dd62ed3e906115a19086903090600401611f23565b60206040518083038186803b1580156115b957600080fd5b505afa1580156115cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f19190611eba565b101561160f5760405162461bcd60e51b81526004016102ea90612093565b61162f73f9784ab1acef4c88d58844d84acf635b89461f5a833084611a34565b6001600160a01b0382166000908152600360205260409020546116529082611936565b6001600160a01b0383166000908152600360205260409020556007546116789082611936565b600755600b5461169d9061169490606490610b799085906118f5565b600a5490611936565b600a556001600160a01b03821660009081526004602090815260408083208784529091529020546116ce9084611936565b6001600160a01b03831660009081526004602090815260408083208884528252808320939093556005905220546117059084611936565b6000858152600560205260409081902091909155517fddc82401ab579d868e816af720a563cdf9f9d0350abb3fa3266bcf33dd4f48ab9061174b904290859087906122b6565b60405180910390a150505050565b60036020526000908152604090208054600182015460029092015490919083565b600a5481565b600460209081526000928352604080842090915290825290205481565b6001600160a01b03919091166000908152600460209081526040808320938352929052205490565b600d5481565b600f5481565b60075481565b600e546001600160a01b038216600090815260036020526040812054909161132a91606491610b7991906118f5565b60065490565b600c5481565b600061181d33610c15565b9050600160008154811061182d57fe5b90600052602060002001548110156118575760405162461bcd60e51b81526004016102ea9061202c565b6000611884600160008154811061186a57fe5b90600052602060002001548361199d90919063ffffffff16565b905061188e610e97565b610f9c600082611a5b565b60105481565b610c108363a9059cbb60e01b84846040516024016118be929190611f61565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611abb565b6000826119045750600061132a565b8282028284828161191157fe5b041461192f5760405162461bcd60e51b81526004016102ea90612176565b9392505050565b60008282018381101561192f5760405162461bcd60e51b81526004016102ea9061205c565b600061192f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ba0565b600061192f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bcc565b80156110e557611a0e611a056119f36109a2565b610b7984678ac7230489e800006118f5565b600d5490611936565b600d55600c54611a1e9082611936565b600c55600954611a2e9082611936565b60095550565b611a55846323b872dd60e01b8585856040516024016118be93929190611f3d565b50505050565b601254339060ff168015611a7157506011544210155b611a8d5760405162461bcd60e51b81526004016102ea9061220a565b60005483108015611a9f575060015483105b6113dc5760405162461bcd60e51b81526004016102ea9061214c565b611acd826001600160a01b0316611c03565b611ae95760405162461bcd60e51b81526004016102ea90612276565b60006060836001600160a01b031683604051611b059190611ef3565b6000604051808303816000865af19150503d8060008114611b42576040519150601f19603f3d011682016040523d82523d6000602084013e611b47565b606091505b509150915081611b695760405162461bcd60e51b81526004016102ea906120f1565b805115611a555780806020019051810190611b849190611e86565b611a555760405162461bcd60e51b81526004016102ea9061222c565b60008184841115611bc45760405162461bcd60e51b81526004016102ea9190611fc9565b505050900390565b60008183611bed5760405162461bcd60e51b81526004016102ea9190611fc9565b506000838581611bf957fe5b0495945050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610b94575050151592915050565b828054828255906000526020600020908101928215611c77579160200282015b82811115611c77578251825591602001919060010190611c5c565b50611c83929150611c87565b5090565b5b80821115611c835760008155600101611c88565b600082601f830112611cac578081fd5b813567ffffffffffffffff811115611cc2578182fd5b6020808202611cd28282016122eb565b83815293508184018583018287018401881015611cee57600080fd5b600092505b84831015611d11578035825260019290920191908301908301611cf3565b505050505092915050565b600060208284031215611d2d578081fd5b813561192f8161233e565b60008060408385031215611d4a578081fd5b8235611d558161233e565b9150602083013567ffffffffffffffff811115611d70578182fd5b611d7c85828601611c9c565b9150509250929050565b6000808284036080811215611d99578283fd5b8335611da48161233e565b92506060601f1982011215611db7578182fd5b50611dc260606122eb565b602084013581526040840135602082015260608401356040820152809150509250929050565b60008060408385031215611dfa578182fd5b8235611e058161233e565b946020939093013593505050565b60008060408385031215611e25578182fd5b823567ffffffffffffffff80821115611e3c578384fd5b611e4886838701611c9c565b93506020850135915080821115611e5d578283fd5b50611d7c85828601611c9c565b600060208284031215611e7b578081fd5b813561192f81612353565b600060208284031215611e97578081fd5b815161192f81612353565b600060208284031215611eb3578081fd5b5035919050565b600060208284031215611ecb578081fd5b5051919050565b60008060408385031215611ee4578182fd5b50508035926020909101359150565b60008251611f05818460208701612312565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015611fb257835183529284019291840191600101611f96565b50909695505050505050565b901515815260200190565b6000602082528251806020840152611fe8816040850160208701612312565b601f01601f19169190910160400192915050565b60208082526016908201527543616c6c6572206973206e6f7420746865206465762160501b604082015260600190565b602080825260169082015275139bdd08195b9bdd59da081d1bc818dbdb5c1bdd5b9960521b604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b602080825260169082015275496e73756666696369656e7420616c6c6f77616e636560501b604082015260600190565b602080825260149082015273496e73756666696369656e742062616c616e636560601b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600c908201526b5a65726f206164647265737360a01b604082015260600190565b60208082526010908201526f24b73b30b634b2103737b232aa34b2b960811b604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252600f908201526e098cadccee8d040dad2e6dac2e8c6d608b1b604082015260600190565b60208082526010908201526f2237903737ba1039b2b73210232a269760811b604082015260600190565b602080825260089082015267111a5cd8589b195960c21b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601f908201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604082015260600190565b90815260200190565b9283526001600160a01b03919091166020830152604082015260600190565b9283526020830191909152604082015260600190565b60405181810167ffffffffffffffff8111828210171561230a57600080fd5b604052919050565b60005b8381101561232d578181015183820152602001612315565b83811115611a555750506000910152565b6001600160a01b03811681146110e557600080fd5b80151581146110e557600080fdfea2646970667358221220e57ac0b525704409bf1112030e91b6ea6e2f8742161a36317e2013fe5d1de37564736f6c634300060c00330000000000000000000000000000000000000000000000000000000000000000
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _startTime (uint256): 0
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000000
Deployed ByteCode Sourcemap
15048:12337:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16648:26;;-1:-1:-1;;;16648:26:0;;;;;;;:::i;:::-;;;;;;;;15048:12337;;;;16231:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16955:191;;;;;;;;;;;;;:::i;:::-;;15872:28;;;;;;;;;;;;;:::i;26994:116::-;;;;;;;;;;;;;:::i;15711:45::-;;;;;;;;;;-1:-1:-1;15711:45:0;;;;;:::i;:::-;;:::i;17581:104::-;;;;;;;;;;-1:-1:-1;17581:104:0;;;;;:::i;:::-;;:::i;18777:263::-;;;;;;;;;;;;;:::i;15763:28::-;;;;;;;;;;-1:-1:-1;15763:28:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;15225:62::-;;;;;;;;;;-1:-1:-1;15225:62:0;;;;;:::i;:::-;;:::i;16205:19::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;18098:392::-;;;;;;;;;;-1:-1:-1;18098:392:0;;;;;:::i;:::-;;:::i;19333:394::-;;;;;;;;;;-1:-1:-1;19333:394:0;;;;;:::i;:::-;;:::i;17809:281::-;;;;;;;;;;-1:-1:-1;17809:281:0;;;;;:::i;:::-;;:::i;19739:540::-;;;;;;;;;;-1:-1:-1;19739:540:0;;;;;:::i;:::-;;:::i;17266:89::-;;;;;;;;;;-1:-1:-1;17266:89:0;;;;;:::i;:::-;;:::i;15294:67::-;;;;;;;;;;-1:-1:-1;15294:67:0;;;;;:::i;:::-;;:::i;17154:100::-;;;;;;;;;;-1:-1:-1;17154:100:0;;;;;:::i;:::-;;:::i;24554:140::-;;;;;;;;;;-1:-1:-1;24554:140:0;;;;;:::i;:::-;;:::i;26344:328::-;;;;;;;;;;-1:-1:-1;26344:328:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;25243:460::-;;;;;;;;;;;;;:::i;21762:864::-;;;;;;;;;;;;;:::i;18498:271::-;;;;;;;;;;-1:-1:-1;18498:271:0;;;;;:::i;:::-;;:::i;17363:112::-;;;;;;;;;;-1:-1:-1;17363:112:0;;;;;:::i;:::-;;:::i;27119:135::-;;;;;;;;;;;;;:::i;25043:192::-;;;;;;;;;;;;;:::i;15945:33::-;;;;;;;;;;;;;:::i;19048:277::-;;;;;;;;;;-1:-1:-1;19048:277:0;;;;;:::i;:::-;;:::i;17483:86::-;;;;;;;;;;-1:-1:-1;17483:86:0;;;;;:::i;:::-;;:::i;26684:302::-;;;;;;;;;;;;;:::i;17693:108::-;;;;;;;;;;-1:-1:-1;17693:108:0;;;;;:::i;:::-;;:::i;15837:28::-;;;;;;;;;;;;;:::i;16072:31::-;;;;;;;;;;;;;:::i;16174:24::-;;;;;;;;;;;;;:::i;15137:81::-;;;;;;;;;;;;;:::i;16800:147::-;;;;;;;;;;-1:-1:-1;16800:147:0;;;;;:::i;:::-;;:::i;25711:377::-;;;;;;;;;;-1:-1:-1;25711:377:0;;;;;:::i;:::-;;:::i;27262:120::-;;;;;;;;;;-1:-1:-1;27262:120:0;;;;;:::i;:::-;;:::i;20289:1465::-;;;;;;;;;;-1:-1:-1;20289:1465:0;;;;;:::i;:::-;;:::i;15600:37::-;;;;;;;;;;-1:-1:-1;15600:37:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;15907:31::-;;;;;;;;;;;;;:::i;15644:60::-;;;;;;;;;;-1:-1:-1;15644:60:0;;;;;:::i;:::-;;:::i;26203:133::-;;;;;;;;;;-1:-1:-1;26203:133:0;;;;;:::i;:::-;;:::i;16029:36::-;;;;;;;;;;;;;:::i;16110:23::-;;;;;;;;;;;;;:::i;15800:30::-;;;;;;;;;;;;;:::i;24394:152::-;;;;;;;;;;-1:-1:-1;24394:152:0;;;;;:::i;:::-;;:::i;26096:99::-;;;;;;;;;;;;;:::i;15985:37::-;;;;;;;;;;;;;:::i;24093:291::-;;;;;;;;;;;;;:::i;16140:27::-;;;;;;;;;;;;;:::i;16231:42::-;16268:5;16231:42;:::o;16955:191::-;17011:16;;:20;17007:129;;17067:3;;17072:16;;17048:41;;15175:42;;-1:-1:-1;;;;;17067:3:0;;;;17048:18;:41::i;:::-;17123:1;17104:16;:20;17007:129;16955:191::o;15872:28::-;;;;:::o;26994:116::-;27064:38;;-1:-1:-1;;;27064:38:0;;27037:7;;15175:42;;27064:23;;:38;;27096:4;;27064:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27057:45;;26994:116;;:::o;15711:45::-;;;;;;;;;;;;;:::o;17581:104::-;16742:3;;-1:-1:-1;;;;;16742:3:0;16728:10;:17;16720:52;;;;-1:-1:-1;;;16720:52:0;;;;;;;:::i;:::-;17653:12:::1;:24:::0;17581:104::o;18777:263::-;18826:7;;;18874:136;18898:15;:22;18894:26;;18874:136;;;18983:13;;;;:10;:13;;;;;;18960:18;;18950:48;;18960:37;;18983:13;18994:1;;18960:18;;;;;;;;;;;;;;:22;;:37;;;;:::i;:::-;18950:5;;:9;:48::i;:::-;18942:56;-1:-1:-1;18922:3:0;;18874:136;;;-1:-1:-1;19027:5:0;-1:-1:-1;18777:263:0;:::o;15763:28::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15763:28:0;;-1:-1:-1;15763:28:0;:::o;15225:62::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15225:62:0;:::o;16205:19::-;;;;;;:::o;18098:392::-;16742:3;;-1:-1:-1;;;;;16742:3:0;16728:10;:17;16720:52;;;;-1:-1:-1;;;16720:52:0;;;;;;;:::i;:::-;18248:20;;-1:-1:-1;;;;;18215:12:0;::::1;18248:20;18215:12:::0;;;:5:::1;:12;::::0;;;;:27;18195:15:::1;::::0;:74:::1;::::0;18248:20;18195:48:::1;::::0;:15;:19:::1;:48::i;:::-;:52:::0;::::1;:74::i;:::-;18177:15;:92:::0;18345:18:::1;::::0;;::::1;::::0;-1:-1:-1;;;;;18314:12:0;::::1;;::::0;;;:5:::1;:12:::0;;;;;;;:25:::1;;::::0;18296:13:::1;::::0;:68:::1;::::0;18345:18;18296:44:::1;::::0;:13;:17:::1;:44::i;:68::-;18280:13;:84:::0;18405:20;;-1:-1:-1;;;;;18375:12:0;;::::1;18405:20;18375:12:::0;;;:5:::1;:12;::::0;;;;;;;:50;;;18464:18:::1;::::0;18436:25:::1;::::0;;::::1;:46:::0;18098:392::o;19333:394::-;19403:7;19427:20;19439:7;19427:11;:20::i;:::-;19423:34;;;-1:-1:-1;19456:1:0;19449:8;;19423:34;-1:-1:-1;;;;;19524:14:0;;19470:25;19524:14;;;:5;:14;;;;;:30;;;19498:21;;:57;;:25;:57::i;:::-;19470:85;;19566:18;19587:59;16268:5;19587:43;19612:17;19587:20;19599:7;19587:11;:20::i;:::-;:24;;:43::i;:::-;:47;;:59::i;:::-;19566:80;;19677:13;;19664:10;:26;:55;;19709:10;19664:55;;;19693:13;;19664:55;19657:62;;;;19333:394;;;;:::o;17809:281::-;16742:3;;-1:-1:-1;;;;;16742:3:0;16728:10;:17;16720:52;;;;-1:-1:-1;;;16720:52:0;;;;;;;:::i;:::-;17961:12:::1;:19;17934:16;:23;:46;17926:74;;;;-1:-1:-1::0;;;17926:74:0::1;;;;;;;:::i;:::-;18011:34:::0;;::::1;::::0;:15:::1;::::0;:34:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;18056:26:0;;::::1;::::0;:11:::1;::::0;:26:::1;::::0;::::1;::::0;::::1;:::i;:::-;;17809:281:::0;;:::o;19739:540::-;-1:-1:-1;;;;;19826:14:0;;19802:7;19826:14;;;:5;:14;;;;;:29;19822:62;;-1:-1:-1;19883:1:0;19876:8;;19822:62;19905:15;19923:102;19959:65;20005:18;:16;:18::i;:::-;19959:41;19979:20;19991:7;19979:11;:20::i;:::-;19959:15;:13;:15::i;:65::-;19923:31;19946:7;19923:22;:31::i;:102::-;-1:-1:-1;;;;;20058:14:0;;20036:19;20058:14;;;:5;:14;;;;;:27;;;19905:120;;-1:-1:-1;20113:18:0;20064:7;20113:9;:18::i;:::-;20096:35;-1:-1:-1;20096:35:0;20202:24;:11;20218:7;20202:15;:24::i;:::-;:33;:69;;20264:7;20202:69;;;20238:23;:6;20249:11;20238:10;:23::i;:::-;20195:76;19739:540;-1:-1:-1;;;;;19739:540:0:o;17266:89::-;16742:3;;-1:-1:-1;;;;;16742:3:0;16728:10;:17;16720:52;;;;-1:-1:-1;;;16720:52:0;;;;;;;:::i;:::-;17329:7:::1;:18:::0;;-1:-1:-1;;17329:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17266:89::o;15294:67::-;;;;;;;;;;17154:100;16742:3;;-1:-1:-1;;;;;16742:3:0;16728:10;:17;16720:52;;;;-1:-1:-1;;;16720:52:0;;;;;;;:::i;:::-;17224:9:::1;:22:::0;17154:100::o;24554:140::-;24613:4;24668:18;24678:7;24668:9;:18::i;:::-;-1:-1:-1;;;;;24637:14:0;;;;;;:5;:14;;;;;:27;;;:49;;;-1:-1:-1;24554:140:0;;;:::o;26344:328::-;26474:15;:22;26402:16;;;;26460:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26460:37:0;;26431:66;;26513:9;26508:130;26532:15;:22;26528:26;;26508:130;;;-1:-1:-1;;;;;26608:14:0;;;;;;:5;:14;;;;;;;;:17;;;;;;;;;26591:12;;:35;;26608:17;26591:9;;26623:1;;26591:12;;;;;;;;;;;;:16;;:35;;;;:::i;:::-;26576:9;26586:1;26576:12;;;;;;;;;;;;;;;;;:50;26556:3;;26508:130;;;-1:-1:-1;26655:9:0;26344:328;-1:-1:-1;;26344:328:0:o;25243:460::-;25289:7;25328:15;25313:12;;:30;25309:368;;;25360:19;25382:16;:14;:16::i;:::-;25360:38;;25413:21;25437:33;25457:12;;25437:15;:19;;:33;;;;:::i;:::-;25413:57;;25485:12;25500:44;25535:8;;25500:30;25518:11;25500:13;:17;;:30;;;;:::i;:44::-;25485:59;;25572:11;25565:4;:18;25561:77;;;-1:-1:-1;25611:11:0;25561:77;25661:4;-1:-1:-1;25654:11:0;;-1:-1:-1;;25654:11:0;25309:368;-1:-1:-1;25694:1:0;25243:460;:::o;21762:864::-;21797:13;:11;:13::i;:::-;21841:10;21823:15;21881:31;21841:10;21881:22;:31::i;:::-;21862:50;-1:-1:-1;21937:12:0;;21933:686;;21996:13;;:27;;22014:8;21996:17;:27::i;:::-;21980:13;:43;-1:-1:-1;;;;;22060:14:0;;22038:19;22060:14;;;:5;:14;;;;;:27;;;;22119:18;22066:7;22119:9;:18::i;:::-;22102:35;-1:-1:-1;22102:35:0;22212:25;:11;22228:8;22212:15;:25::i;:::-;:34;22209:108;;;22278:23;:6;22289:11;22278:10;:23::i;:::-;22267:34;;22209:108;-1:-1:-1;;;;;22363:14:0;;;;;;:5;:14;;;;;:27;;;:41;;22395:8;22363:31;:41::i;:::-;-1:-1:-1;;;;;22333:14:0;;;;;;:5;:14;;;;;:27;;:71;22435:13;;:27;;22453:8;22435:17;:27::i;:::-;22419:13;:43;22479:45;15175:42;22506:7;22515:8;22479:26;:45::i;:::-;-1:-1:-1;;22586:21:0;;-1:-1:-1;;;;;22553:14:0;;;;;;:5;:14;;;;;:30;;:54;21933:686;21762:864;;:::o;18498:271::-;16742:3;;-1:-1:-1;;;;;16742:3:0;16728:10;:17;16720:52;;;;-1:-1:-1;;;16720:52:0;;;;;;;:::i;:::-;18588:9:::1;18584:178;18607:6;:13;18603:1;:17;18584:178;;;18658:50;18698:6;18705:1;18698:9;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;18676:12:0;::::1;;::::0;;;:5:::1;:12:::0;;;;;;:15;;;;;;;;;18658:10:::1;:13:::0;;;;;;18698:9;;18658:34:::1;::::0;:13;:17:::1;:34::i;:50::-;18642:13;::::0;;;:10:::1;:13;::::0;;;;:66;18741:9;;:6;;18653:1;;18741:9;::::1;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;18723:12:0;::::1;;::::0;;;:5:::1;:12:::0;;;;;;:15;;;;;;;;;;:27;18622:3:::1;;18584:178;;17363:112:::0;16742:3;;-1:-1:-1;;;;;16742:3:0;16728:10;:17;16720:52;;;;-1:-1:-1;;;16720:52:0;;;;;;;:::i;:::-;17439:18:::1;:28:::0;17363:112::o;27119:135::-;27166:7;27193:53;27229:16;;27193:31;27210:13;;27193:12;:10;:12::i;:::-;:16;;:31::i;25043:192::-;25084:12;25099:15;:13;:15::i;:::-;25084:30;-1:-1:-1;25131:8:0;;25127:101;;25156:15;25166:4;25156:9;:15::i;:::-;25201;25186:12;:30;25127:101;25043:192;:::o;15945:33::-;;;;:::o;19048:277::-;19107:7;;;19155:140;19179:15;:22;19175:26;;19155:140;;;-1:-1:-1;;;;;19264:14:0;;;;;;:5;:14;;;;;;;;:17;;;;;;;;;19241:18;;19231:52;;19241:41;;19264:17;19279:1;;19241:18;;;;;19231:52;19223:60;-1:-1:-1;19203:3:0;;19155:140;;17483:86;16742:3;;-1:-1:-1;;;;;16742:3:0;16728:10;:17;16720:52;;;;-1:-1:-1;;;16720:52:0;;;;;;;:::i;:::-;17546:8:::1;:15:::0;17483:86::o;26684:302::-;26801:15;:22;26732:16;;;;26787:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26787:37:0;;26761:63;;26840:9;26835:120;26859:15;:22;26855:26;;26835:120;;;26915:28;26929:10;:13;26940:1;26929:13;;;;;;;;;;;;26915:6;26922:1;26915:9;;;;;;;:28;26903:6;26910:1;26903:9;;;;;;;;;;;;;;;;;:40;26883:3;;26835:120;;17693:108;16742:3;;-1:-1:-1;;;;;16742:3:0;16728:10;:17;16720:52;;;;-1:-1:-1;;;16720:52:0;;;;;;;:::i;:::-;17767:16:::1;:26:::0;17693:108::o;15837:28::-;;;;:::o;16072:31::-;;;;:::o;16174:24::-;;;;:::o;15137:81::-;15175:42;15137:81;:::o;16800:147::-;16742:3;;-1:-1:-1;;;;;16742:3:0;16728:10;:17;16720:52;;;;-1:-1:-1;;;16720:52:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16879:20:0;::::1;16871:45;;;;-1:-1:-1::0;;;16871:45:0::1;;;;;;;:::i;:::-;16927:3;:12:::0;;-1:-1:-1;;;;;;16927:12:0::1;-1:-1:-1::0;;;;;16927:12:0;;;::::1;::::0;;;::::1;::::0;;16800:147::o;25711:377::-;25777:7;25838:1;25817:18;25829:5;25817:11;:18::i;:::-;:22;:45;;;;;25844:18;25856:5;25844:11;:18::i;:::-;25843:19;25817:45;:263;;26079:1;25817:263;;;25882:177;26050:8;;25882:141;26004:18;:16;:18::i;:::-;25882:95;25958:18;25970:5;25958:11;:18::i;:::-;25882:49;25925:5;25882:16;:14;:16::i;:177::-;25797:283;25711:377;-1:-1:-1;;25711:377:0:o;27262:120::-;16742:3;;-1:-1:-1;;;;;16742:3:0;16728:10;:17;16720:52;;;;-1:-1:-1;;;16720:52:0;;;;;;;:::i;:::-;27364:3:::1;::::0;27345:29:::1;::::0;-1:-1:-1;;;;;27345:18:0;;::::1;::::0;27364:3:::1;27369:4:::0;27345:18:::1;:29::i;20289:1465::-:0;20408:7;;20379:10;;20408:7;;:39;;;;;20438:9;;20419:15;:28;;20408:39;20400:60;;;;-1:-1:-1;;;20400:60:0;;;;;;;:::i;:::-;20490:15;:22;20479:33;;:66;;;;-1:-1:-1;20527:11:0;:18;20516:29;;20479:66;20471:95;;;;-1:-1:-1;;;20471:95:0;;;;;;;:::i;:::-;20579:7;:5;:7::i;:::-;-1:-1:-1;;;;;20603:14:0;;;;;;:5;:14;;;;;:29;20599:173;;20654:11;:25;;;;;;;;;;;;-1:-1:-1;;;;;;20654:25:0;-1:-1:-1;;;;;20654:25:0;;;;;;;;20739:21;;-1:-1:-1;20706:14:0;;;:5;20654:25;20706:14;;;;;:30;;:54;20599:173;-1:-1:-1;;;;;20787:14:0;;;;;;:5;:14;;;;;:29;:34;;;;:58;;;20825:20;20837:7;20825:11;:20::i;:::-;20783:145;;;20895:21;;-1:-1:-1;;;;;20862:14:0;;;;;;:5;:14;;;;;:30;;:54;20783:145;20940:17;20960:35;20986:8;20960:11;20972:8;20960:21;;;;;;;:35;21024:24;;-1:-1:-1;;;21024:24:0;;20940:55;;-1:-1:-1;20940:55:0;;15175:42;;21024:15;;:24;;21040:7;;21024:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:37;;21016:70;;;;-1:-1:-1;;;21016:70:0;;;;;;;:::i;:::-;21105:39;;-1:-1:-1;;;21105:39:0;;21148:9;;15175:42;;21105:15;;:39;;21121:7;;21138:4;;21105:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;;21097:87;;;;-1:-1:-1;;;21097:87:0;;;;;;;:::i;:::-;21195:57;15175:42;21218:7;21235:4;21242:9;21195:22;:57::i;:::-;-1:-1:-1;;;;;21297:14:0;;;;;;:5;:14;;;;;:29;:44;;21331:9;21297:33;:44::i;:::-;-1:-1:-1;;;;;21265:14:0;;;;;;:5;:14;;;;;:76;21380:15;;:30;;21400:9;21380:19;:30::i;:::-;21362:15;:48;21489:18;;21440:88;;21475:42;;21513:3;;21475:33;;:9;;:13;:33::i;:42::-;21440:16;;;:20;:88::i;:::-;21421:16;:107;-1:-1:-1;;;;;21576:14:0;;;;;;:5;:14;;;;;;;;:24;;;;;;;;;:38;;21605:8;21576:28;:38::i;:::-;-1:-1:-1;;;;;21549:14:0;;;;;;:5;:14;;;;;;;;:24;;;;;;;;:65;;;;21648:10;:20;;;;:34;;21673:8;21648:24;:34::i;:::-;21625:20;;;;:10;:20;;;;;;;:57;;;;21700:46;;;;;21711:15;;21728:7;;21737:8;;21700:46;:::i;:::-;;;;;;;;20289:1465;;;;:::o;15600:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15907:31::-;;;;:::o;15644:60::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;26203:133::-;-1:-1:-1;;;;;26305:14:0;;;;26278:7;26305:14;;;:5;:14;;;;;;;;:23;;;;;;;;;26203:133::o;16029:36::-;;;;:::o;16110:23::-;;;;:::o;15800:30::-;;;;:::o;24394:152::-;24512:16;;-1:-1:-1;;;;;24478:14:0;;24451:7;24478:14;;;:5;:14;;;;;:29;24451:7;;24478:60;;24534:3;;24478:51;;:29;:33;:51::i;26096:99::-;26169:11;:18;26096:99;:::o;15985:37::-;;;;:::o;24093:291::-;24129:22;24154:27;24170:10;24154:15;:27::i;:::-;24129:52;;24218:11;24230:1;24218:14;;;;;;;;;;;;;;;;24200;:32;;24192:67;;;;-1:-1:-1;;;24192:67:0;;;;;;;:::i;:::-;24270:19;24292:34;24311:11;24323:1;24311:14;;;;;;;;;;;;;;;;24292;:18;;:34;;;;:::i;:::-;24270:56;;24335:7;:5;:7::i;:::-;24351:25;24361:1;24364:11;24351:9;:25::i;16140:27::-;;;;:::o;11775:177::-;11858:86;11878:5;11908:23;;;11933:2;11937:5;11885:58;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;11885:58:0;;;;;;;;;;;;;;-1:-1:-1;;;;;11885:58:0;-1:-1:-1;;;;;;11885:58:0;;;;;;;;;;11858:19;:86::i;5239:471::-;5297:7;5542:6;5538:47;;-1:-1:-1;5572:1:0;5565:8;;5538:47;5609:5;;;5613:1;5609;:5;:1;5633:5;;;;;:10;5625:56;;;;-1:-1:-1;;;5625:56:0;;;;;;;:::i;:::-;5701:1;5239:471;-1:-1:-1;;;5239:471:0:o;3909:181::-;3967:7;3999:5;;;4023:6;;;;4015:46;;;;-1:-1:-1;;;4015:46:0;;;;;;;:::i;4365:136::-;4423:7;4450:43;4454:1;4457;4450:43;;;;;;;;;;;;;;;;;:3;:43::i;6178:132::-;6236:7;6263:39;6267:1;6270;6263:39;;;;;;;;;;;;;;;;;:3;:39::i;24702:333::-;24761:10;;24757:271;;24813:73;24839:46;24866:18;:16;:18::i;:::-;24839:22;:6;16268:5;24839:10;:22::i;:46::-;24813:21;;;:25;:73::i;:::-;24789:21;:97;24926:22;;:34;;24953:6;24926:26;:34::i;:::-;24901:22;:59;24991:13;;:25;;25009:6;24991:17;:25::i;:::-;24975:13;:41;24702:333;:::o;11960:205::-;12061:96;12081:5;12111:27;;;12140:4;12146:2;12150:5;12088:68;;;;;;;;;;:::i;12061:96::-;11960:205;;;;:::o;22637:1448::-;22759:7;;22730:10;;22759:7;;:39;;;;;22789:9;;22770:15;:28;;22759:39;22751:60;;;;-1:-1:-1;;;22751:60:0;;;;;;;:::i;:::-;22841:15;:22;22830:33;;:66;;;;-1:-1:-1;22878:11:0;:18;22867:29;;22830:66;22822:95;;;;-1:-1:-1;;;22822:95:0;;;;;;;:::i;13819:1115::-;14424:27;14432:5;-1:-1:-1;;;;;14424:25:0;;:27::i;:::-;14416:71;;;;-1:-1:-1;;;14416:71:0;;;;;;;:::i;:::-;14561:12;14575:23;14610:5;-1:-1:-1;;;;;14602:19:0;14622:4;14602:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14560:67;;;;14646:7;14638:52;;;;-1:-1:-1;;;14638:52:0;;;;;;;:::i;:::-;14707:17;;:21;14703:224;;14849:10;14838:30;;;;;;;;;;;;:::i;:::-;14830:85;;;;-1:-1:-1;;;14830:85:0;;;;;;;:::i;4796:192::-;4882:7;4918:12;4910:6;;;;4902:29;;;;-1:-1:-1;;;4902:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;4954:5:0;;;4796:192::o;6798:345::-;6884:7;6986:12;6979:5;6971:28;;;;-1:-1:-1;;;6971:28:0;;;;;;;;:::i;:::-;;7010:9;7026:1;7022;:5;;;;;;;6798:345;-1:-1:-1;;;;;6798:345:0:o;9154:619::-;9214:4;9682:20;;9525:66;9722:23;;;;;;:42;;-1:-1:-1;;9749:15:0;;;9154:619;-1:-1:-1;;9154:619:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;313:707;;430:3;423:4;415:6;411:17;407:27;397:2;;-1:-1;;438:12;397:2;485:6;472:20;24306:18;24298:6;24295:30;24292:2;;;-1:-1;;24328:12;24292:2;24373:4;;24365:6;24361:17;507:80;24373:4;24361:17;24426:15;507:80;:::i;:::-;615:21;;;498:89;-1:-1;672:14;;;647:17;;;752:27;;;;;749:36;-1:-1;746:2;;;798:1;;788:12;746:2;823:1;814:10;;808:206;833:6;830:1;827:13;808:206;;;2190:20;;901:50;;855:1;848:9;;;;;965:14;;;;993;;808:206;;;812:14;;;;;390:630;;;;:::o;2401:241::-;;2505:2;2493:9;2484:7;2480:23;2476:32;2473:2;;;-1:-1;;2511:12;2473:2;85:6;72:20;97:33;124:5;97:33;:::i;2913:502::-;;;3059:2;3047:9;3038:7;3034:23;3030:32;3027:2;;;-1:-1;;3065:12;3027:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;3117:63;-1:-1;3245:2;3230:18;;3217:32;3269:18;3258:30;;3255:2;;;-1:-1;;3291:12;3255:2;3321:78;3391:7;3382:6;3371:9;3367:22;3321:78;:::i;:::-;3311:88;;;3021:394;;;;;:::o;3422:409::-;;;3552:9;3543:7;3539:23;3564:3;3539:23;3535:33;3532:2;;;-1:-1;;3571:12;3532:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;3623:63;-1:-1;1590:4;-1:-1;;1569:19;;1565:30;1562:2;;;-1:-1;;1598:12;1562:2;;1626:20;1590:4;1626:20;:::i;:::-;3723:2;3787:9;3783:22;2190:20;1720:16;1713:75;1911:22;3787:9;1911:22;2190:20;3723:2;1876:5;1872:16;1865:75;1590:4;3787:9;2066:22;2190:20;1911:22;2031:5;2027:16;2020:75;3731:84;;;;3526:305;;;;;:::o;3838:366::-;;;3959:2;3947:9;3938:7;3934:23;3930:32;3927:2;;;-1:-1;;3965:12;3927:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;4017:63;4117:2;4156:22;;;;2190:20;;-1:-1;;;3921:283::o;4211:638::-;;;4382:2;4370:9;4361:7;4357:23;4353:32;4350:2;;;-1:-1;;4388:12;4350:2;4446:17;4433:31;4484:18;;4476:6;4473:30;4470:2;;;-1:-1;;4506:12;4470:2;4536:78;4606:7;4597:6;4586:9;4582:22;4536:78;:::i;:::-;4526:88;;4679:2;4668:9;4664:18;4651:32;4637:46;;4484:18;4695:6;4692:30;4689:2;;;-1:-1;;4725:12;4689:2;;4755:78;4825:7;4816:6;4805:9;4801:22;4755:78;:::i;4856:235::-;;4957:2;4945:9;4936:7;4932:23;4928:32;4925:2;;;-1:-1;;4963:12;4925:2;1105:6;1092:20;1117:30;1141:5;1117:30;:::i;5098:257::-;;5210:2;5198:9;5189:7;5185:23;5181:32;5178:2;;;-1:-1;;5216:12;5178:2;1240:6;1234:13;1252:30;1276:5;1252:30;:::i;5761:241::-;;5865:2;5853:9;5844:7;5840:23;5836:32;5833:2;;;-1:-1;;5871:12;5833:2;-1:-1;2190:20;;5827:175;-1:-1;5827:175::o;6009:263::-;;6124:2;6112:9;6103:7;6099:23;6095:32;6092:2;;;-1:-1;;6130:12;6092:2;-1:-1;2338:13;;6086:186;-1:-1;6086:186::o;6279:366::-;;;6400:2;6388:9;6379:7;6375:23;6371:32;6368:2;;;-1:-1;;6406:12;6368:2;-1:-1;;2190:20;;;6558:2;6597:22;;;2190:20;;-1:-1;6362:283::o;13766:271::-;;8103:5;24719:12;8214:52;8259:6;8254:3;8247:4;8240:5;8236:16;8214:52;:::i;:::-;8278:16;;;;;13900:137;-1:-1;;13900:137::o;14044:222::-;-1:-1;;;;;26113:54;;;;7054:37;;14171:2;14156:18;;14142:124::o;14518:349::-;-1:-1;;;;;26113:54;;;7054:37;;26113:54;;14853:2;14838:18;;6913:58;14681:2;14666:18;;14652:215::o;14874:444::-;-1:-1;;;;;26113:54;;;7054:37;;26113:54;;;;15221:2;15206:18;;7054:37;15304:2;15289:18;;13597:37;;;;15057:2;15042:18;;15028:290::o;15325:333::-;-1:-1;;;;;26113:54;;;;7054:37;;15644:2;15629:18;;13597:37;15480:2;15465:18;;15451:207::o;15665:370::-;15842:2;15856:47;;;24719:12;;15827:18;;;25251:19;;;15665:370;;15842:2;24573:14;;;;25291;;;;15665:370;7542:260;7567:6;7564:1;7561:13;7542:260;;;7628:13;;13597:37;;25106:14;;;;6806;;;;7589:1;7582:9;7542:260;;;-1:-1;15909:116;;15813:222;-1:-1;;;;;;15813:222::o;16042:210::-;25914:13;;25907:21;7897:34;;16163:2;16148:18;;16134:118::o;16514:310::-;;16661:2;16682:17;16675:47;8610:5;24719:12;25263:6;16661:2;16650:9;16646:18;25251:19;8704:52;8749:6;25291:14;16650:9;25291:14;16661:2;8730:5;8726:16;8704:52;:::i;:::-;1569:19;27264:14;-1:-1;;27260:28;8768:39;;;;25291:14;8768:39;;16632:192;-1:-1;;16632:192::o;16831:416::-;17031:2;17045:47;;;9044:2;17016:18;;;25251:19;-1:-1;;;25291:14;;;9060:45;9124:12;;;17002:245::o;17254:416::-;17454:2;17468:47;;;9375:2;17439:18;;;25251:19;-1:-1;;;25291:14;;;9391:45;9455:12;;;17425:245::o;17677:416::-;17877:2;17891:47;;;9706:2;17862:18;;;25251:19;9742:29;25291:14;;;9722:50;9791:12;;;17848:245::o;18100:416::-;18300:2;18314:47;;;10042:2;18285:18;;;25251:19;-1:-1;;;25291:14;;;10058:45;10122:12;;;18271:245::o;18523:416::-;18723:2;18737:47;;;10373:2;18708:18;;;25251:19;-1:-1;;;25291:14;;;10389:43;10451:12;;;18694:245::o;18946:416::-;19146:2;19160:47;;;19131:18;;;25251:19;10738:34;25291:14;;;10718:55;10792:12;;;19117:245::o;19369:416::-;19569:2;19583:47;;;11043:2;19554:18;;;25251:19;-1:-1;;;25291:14;;;11059:35;11113:12;;;19540:245::o;19792:416::-;19992:2;20006:47;;;11364:2;19977:18;;;25251:19;-1:-1;;;25291:14;;;11380:39;11438:12;;;19963:245::o;20215:416::-;20415:2;20429:47;;;11689:2;20400:18;;;25251:19;11725:34;25291:14;;;11705:55;-1:-1;;;11780:12;;;11773:25;11817:12;;;20386:245::o;20638:416::-;20838:2;20852:47;;;12068:2;20823:18;;;25251:19;-1:-1;;;25291:14;;;12084:38;12141:12;;;20809:245::o;21061:416::-;21261:2;21275:47;;;12392:2;21246:18;;;25251:19;-1:-1;;;25291:14;;;12408:39;12466:12;;;21232:245::o;21484:416::-;21684:2;21698:47;;;12717:1;21669:18;;;25251:19;-1:-1;;;25291:14;;;12732:31;12782:12;;;21655:245::o;21907:416::-;22107:2;22121:47;;;13033:2;22092:18;;;25251:19;13069:34;25291:14;;;13049:55;-1:-1;;;13124:12;;;13117:34;13170:12;;;22078:245::o;22330:416::-;22530:2;22544:47;;;13421:2;22515:18;;;25251:19;13457:33;25291:14;;;13437:54;13510:12;;;22501:245::o;22753:222::-;13597:37;;;22880:2;22865:18;;22851:124::o;22982:444::-;13597:37;;;-1:-1;;;;;26113:54;;;;23329:2;23314:18;;7054:37;23412:2;23397:18;;13597:37;23165:2;23150:18;;23136:290::o;23433:444::-;13597:37;;;23780:2;23765:18;;13597:37;;;;23863:2;23848:18;;13597:37;23616:2;23601:18;;23587:290::o;23884:256::-;23946:2;23940:9;23972:17;;;24047:18;24032:34;;24068:22;;;24029:62;24026:2;;;24104:1;;24094:12;24026:2;23946;24113:22;23924:216;;-1:-1;23924:216::o;26920:268::-;26985:1;26992:101;27006:6;27003:1;27000:13;26992:101;;;27073:11;;;27067:18;27054:11;;;27047:39;27028:2;27021:10;26992:101;;;27108:6;27105:1;27102:13;27099:2;;;-1:-1;;26985:1;27155:16;;27148:27;26969:219::o;27301:117::-;-1:-1;;;;;26113:54;;27360:35;;27350:2;;27409:1;;27399:12;27565:111;27646:5;25914:13;25907:21;27624:5;27621:32;27611:2;;27667:1;;27657:12
Swarm Source
ipfs://e57ac0b525704409bf1112030e91b6ea6e2f8742161a36317e2013fe5d1de375
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Validator ID :
0 FTM
Amount Staked
0
Amount Delegated
0
Staking Total
0
Staking Start Epoch
0
Staking Start Time
0
Proof of Importance
0
Origination Score
0
Validation Score
0
Active
0
Online
0
Downtime
0 s
Address | Amount | claimed Rewards | Created On Epoch | Created On |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.