Contract
0xee5d6fc6033e5b612f284ff816cba6b615675d7f
1
Contract Overview
Balance:
0 AVAX
AVAX Value:
$0.00
My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Contract Name:
Node
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at snowtrace.io on 2022-05-28 */ // 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(0x82845B52b53c80595bbF78129126bD3E6Fc2C1DF); uint256[] public tierAllocPoints = [1 ether, 1 ether, 1 ether]; uint256[] public tierAmounts = [0.00002 ether, 1 ether, 1 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 = 2100000; treasuryFeePercent = 25; lastDripTime = _startTime > block.timestamp ? _startTime : block.timestamp; startTime = _startTime; enabled = true; dev = msg.sender; } receive() external payable { revert("Do not send AVAX."); } 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); } }
[{"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
60e0604052670de0b6b3a7640000608081815260a082905260c0919091526200002d906000906003620000e7565b50604080516060810182526512309ce540008152670de0b6b3a7640000602082018190529181019190915262000068906001906003620000e7565b503480156200007657600080fd5b506040516200251a3803806200251a833981016040819052620000999162000159565b6101f4600e5562200b20600f556019600b55428111620000ba5742620000bc565b805b6010556011556012805460ff19166001179055600280546001600160a01b0319163317905562000172565b82805482825590600052602060002090810192821562000130579160200282015b828111156200013057825182906001600160401b031690559160200191906001019062000108565b506200013e92915062000142565b5090565b5b808211156200013e576000815560010162000143565b6000602082840312156200016b578081fd5b5051919050565b61239880620001826000396000f3fe6080604052600436106102cd5760003560e01c80635c75dcbc116101755780639f7b4579116100dc578063d326159211610095578063e7cc62bd1161006f578063e7cc62bd1461082a578063f65f4eaf1461083f578063f69e204614610854578063fba1f7b014610869576102f3565b8063d3261592146107e0578063de560cca146107f5578063e300e98b1461080a576102f3565b80639f7b457914610727578063a87430ba14610747578063ab4e278514610776578063adf1b67e1461078b578063bcb11639146107ab578063c7ce9560146107cb576102f3565b8063740c8af71161012e578063740c8af71461068857806378e979251461069d57806382bfefc8146106b257806388a8c95c146106c757806394ac42cc146106e757806395ccea6714610707576102f3565b80635c75dcbc146105e95780635fb11d7e146105fe5780635fbb48dc1461061e57806363584ecd1461063e578063648acb09146106535780636af904c614610673576102f3565b80632ae2707111610234578063486af96a116101ed5780635083f17b116101c75780635083f17b1461057f57806356e1221c1461059f5780635b0d2d8c146105bf5780635b2f3c8e146105d4576102f3565b8063486af96a146105285780634b3dd5b5146105555780634e71d92d1461056a576102f3565b80632ae27071146104685780632bcf161c14610488578063328d8f72146104a857806335771fe0146104c85780633e0a322d146104e857806344886d7014610508576102f3565b80631fa36cbe116102865780631fa36cbe146103a4578063211aea02146103b95780632365d7bc146103e6578063238dafe0146104065780632702dfe714610428578063277e531614610448576102f3565b8063059f8b16146102f857806305c4744b1461032357806305d6bbf41461033a57806312065fe01461034f5780631d1c7b4e146103645780631ed5c6c214610384576102f3565b366102f35760405162461bcd60e51b81526004016102ea90612126565b60405180910390fd5b600080fd5b34801561030457600080fd5b5061030d61087e565b60405161031a91906122ae565b60405180910390f35b34801561032f57600080fd5b5061033861088a565b005b34801561034657600080fd5b5061030d6108cb565b34801561035b57600080fd5b5061030d6108d1565b34801561037057600080fd5b5061030d61037f366004611ea2565b610961565b34801561039057600080fd5b5061033861039f366004611ea2565b610973565b3480156103b057600080fd5b5061030d6109a2565b3480156103c557600080fd5b506103d96103d4366004611ea2565b610a05565b60405161031a9190611f0f565b3480156103f257600080fd5b5061030d610401366004611ea2565b610a2c565b34801561041257600080fd5b5061041b610a4a565b60405161031a9190611fbe565b34801561043457600080fd5b50610338610443366004611d86565b610a53565b34801561045457600080fd5b5061030d610463366004611d1c565b610b16565b34801561047457600080fd5b50610338610483366004611e13565b610b9e565b34801561049457600080fd5b5061030d6104a3366004611d1c565b610c15565b3480156104b457600080fd5b506103386104c3366004611e6a565b610cba565b3480156104d457600080fd5b5061030d6104e3366004611ea2565b610cf7565b3480156104f457600080fd5b50610338610503366004611ea2565b610d04565b34801561051457600080fd5b5061041b610523366004611d1c565b610d33565b34801561053457600080fd5b50610548610543366004611d1c565b610d63565b60405161031a9190611f7a565b34801561056157600080fd5b5061030d610e2e565b34801561057657600080fd5b50610338610e97565b34801561058b57600080fd5b5061033861059a366004611d38565b610fa0565b3480156105ab57600080fd5b506103386105ba366004611ea2565b61107a565b3480156105cb57600080fd5b5061030d6110a9565b3480156105e057600080fd5b506103386110c5565b3480156105f557600080fd5b5061030d6110e8565b34801561060a57600080fd5b5061030d610619366004611d1c565b6110ee565b34801561062a57600080fd5b50610338610639366004611ea2565b611140565b34801561064a57600080fd5b5061054861116f565b34801561065f57600080fd5b5061033861066e366004611ea2565b611209565b34801561067f57600080fd5b5061030d611238565b34801561069457600080fd5b5061030d61123e565b3480156106a957600080fd5b5061030d611244565b3480156106be57600080fd5b506103d961124a565b3480156106d357600080fd5b506103386106e2366004611d1c565b611262565b3480156106f357600080fd5b5061030d610702366004611d1c565b6112d4565b34801561071357600080fd5b50610338610722366004611de8565b611330565b34801561073357600080fd5b50610338610742366004611ed2565b611374565b34801561075357600080fd5b50610767610762366004611d1c565b611759565b60405161031a939291906122d6565b34801561078257600080fd5b5061030d61177a565b34801561079757600080fd5b5061030d6107a6366004611de8565b611780565b3480156107b757600080fd5b5061030d6107c6366004611de8565b61179d565b3480156107d757600080fd5b5061030d6117c5565b3480156107ec57600080fd5b5061030d6117cb565b34801561080157600080fd5b5061030d6117d1565b34801561081657600080fd5b5061030d610825366004611d1c565b6117d7565b34801561083657600080fd5b5061030d611806565b34801561084b57600080fd5b5061030d61180c565b34801561086057600080fd5b50610338611812565b34801561087557600080fd5b5061030d611899565b678ac7230489e8000081565b600a54156108c957600254600a546108c3917382845b52b53c80595bbf78129126bd3e6fc2c1df916001600160a01b039091169061189f565b6000600a555b565b60095481565b6040516370a0823160e01b81526000907382845b52b53c80595bbf78129126bd3e6fc2c1df906370a082319061090b903090600401611f0f565b60206040518083038186803b15801561092357600080fd5b505afa158015610937573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095b9190611eba565b90505b90565b60056020526000908152604090205481565b6002546001600160a01b0316331461099d5760405162461bcd60e51b81526004016102ea90611ffc565b601055565b600080805b6000548110156109ff5760008181526005602052604081205481546109f5926109ee9291859081106109d557fe5b90600052602060002001546118f590919063ffffffff16565b8390611936565b91506001016109a7565b50905090565b60068181548110610a1257fe5b6000918252602090912001546001600160a01b0316905081565b60008181548110610a3957fe5b600091825260209091200154905081565b60125460ff1681565b6002546001600160a01b03163314610a7d5760405162461bcd60e51b81526004016102ea90611ffc565b80516001600160a01b038316600090815260036020526040902054600754610ab09291610aaa919061195b565b90611936565b6007556020808201516001600160a01b03841660009081526003909252604090912060010154600854610ae89291610aaa919061195b565b60085580516001600160a01b0390921660009081526003602090815260409091209283550151600190910155565b6000610b2182610d33565b15610b2e57506000610b99565b6001600160a01b038216600090815260036020526040812060020154600d54610b569161195b565b90506000610b7f678ac7230489e80000610b7984610b73886110ee565b906118f5565b9061199d565b90506009548111610b905780610b94565b6009545b925050505b919050565b6002546001600160a01b03163314610bc85760405162461bcd60e51b81526004016102ea90611ffc565b8051825114610be95760405162461bcd60e51b81526004016102ea906121e2565b8151610bfc906000906020850190611c3c565b508051610c10906001906020840190611c3c565b505050565b6001600160a01b038116600090815260036020526040812054610c3a57506000610b99565b6000610c67610c5e610c4a6109a2565b610b79610c56876110ee565b610b73610e2e565b610aaa85610b16565b6001600160a01b038416600090815260036020526040812060010154919250610c8f856117d7565b905080610c9c8385611936565b11610ca75782610cb1565b610cb1818361195b565b95945050505050565b6002546001600160a01b03163314610ce45760405162461bcd60e51b81526004016102ea90611ffc565b6012805460ff1916911515919091179055565b60018181548110610a3957fe5b6002546001600160a01b03163314610d2e5760405162461bcd60e51b81526004016102ea90611ffc565b601155565b6000610d3e826117d7565b6001600160a01b03831660009081526003602052604090206001015410159050919050565b600054606090819067ffffffffffffffff81118015610d8157600080fd5b50604051908082528060200260200182016040528015610dab578160200160208202803683370190505b50905060005b600054811015610e27576001600160a01b03841660009081526004602090815260408083208484529091529020548251610e089190849084908110610df257fe5b602002602001015161193690919063ffffffff16565b828281518110610e1457fe5b6020908102919091010152600101610db1565b5092915050565b6000426010541015610e91576000610e446110a9565b90506000610e5d6010544261195b90919063ffffffff16565b90506000610e7a600f54610b7985856118f590919063ffffffff16565b905082811115610e875750815b925061095e915050565b50600090565b610e9f6110c5565b336000610eab82610b16565b90508015610f9c57600954610ec0908261195b565b6009556001600160a01b03821660009081526003602052604081206001015490610ee9846117d7565b905080610ef68385611936565b1115610f0957610f06818361195b565b92505b6001600160a01b038416600090815260036020526040902060010154610f2f9084611936565b6001600160a01b038516600090815260036020526040902060010155600854610f589084611936565b600855610f7a7382845b52b53c80595bbf78129126bd3e6fc2c1df858561189f565b5050600d546001600160a01b0383166000908152600360205260409020600201555b5050565b6002546001600160a01b03163314610fca5760405162461bcd60e51b81526004016102ea90611ffc565b60005b8151811015610c1057611026828281518110610fe557fe5b6020908102919091018101516001600160a01b038616600090815260048352604080822086835284528082205460059094529020549091610aaa919061195b565b600082815260056020526040902055815182908290811061104357fe5b6020908102919091018101516001600160a01b03851660009081526004835260408082208583529093529190912055600101610fcd565b6002546001600160a01b031633146110a45760405162461bcd60e51b81526004016102ea90611ffc565b600b55565b600061095b600a546110bf6009546110bf6108d1565b9061195b565b60006110cf610e2e565b905080156110e5576110e0816119df565b426010555b50565b600b5481565b600080805b600054811015610e27576001600160a01b03841660009081526004602090815260408083208484529091528120548154611136926109ee9291859081106109d557fe5b91506001016110f3565b6002546001600160a01b0316331461116a5760405162461bcd60e51b81526004016102ea90611ffc565b600f55565b600054606090819067ffffffffffffffff8111801561118d57600080fd5b506040519080825280602002602001820160405280156111b7578160200160208202803683370190505b50905060005b6000548110156109ff576111ea6005600083815260200190815260200160002054838381518110610df257fe5b8282815181106111f657fe5b60209081029190910101526001016111bd565b6002546001600160a01b031633146112335760405162461bcd60e51b81526004016102ea90611ffc565b600e55565b60085481565b600e5481565b60115481565b7382845b52b53c80595bbf78129126bd3e6fc2c1df81565b6002546001600160a01b0316331461128c5760405162461bcd60e51b81526004016102ea90611ffc565b6001600160a01b0381166112b25760405162461bcd60e51b81526004016102ea90612151565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000806112e0836110ee565b1180156112f357506112f182610d33565b155b6112fe57600061132a565b61132a600f54610b7961130f6109a2565b610b7961131b876110ee565b610b7362015180610b736110a9565b92915050565b6002546001600160a01b0316331461135a5760405162461bcd60e51b81526004016102ea90611ffc565b600254610f9c906001600160a01b0384811691168361189f565b601254339060ff16801561138a57506011544210155b6113a65760405162461bcd60e51b81526004016102ea9061220b565b600054831080156113b8575060015483105b6113d45760405162461bcd60e51b81526004016102ea90612177565b6113dc610e97565b6001600160a01b0381166000908152600360205260409020546114595760068054600181019091557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b038316908117909155600d54600091825260036020526040909120600201555b6001600160a01b03811660009081526003602052604090205415801590611484575061148481610d33565b156114a957600d546001600160a01b0382166000908152600360205260409020600201555b60006114bc83600186815481106109d557fe5b6040516370a0823160e01b815290915081907382845b52b53c80595bbf78129126bd3e6fc2c1df906370a08231906114f8908690600401611f0f565b60206040518083038186803b15801561151057600080fd5b505afa158015611524573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115489190611eba565b10156115665760405162461bcd60e51b81526004016102ea906120c3565b604051636eb1769f60e11b815281907382845b52b53c80595bbf78129126bd3e6fc2c1df9063dd62ed3e906115a19086903090600401611f23565b60206040518083038186803b1580156115b957600080fd5b505afa1580156115cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f19190611eba565b101561160f5760405162461bcd60e51b81526004016102ea90612093565b61162f7382845b52b53c80595bbf78129126bd3e6fc2c1df833084611a34565b6001600160a01b0382166000908152600360205260409020546116529082611936565b6001600160a01b0383166000908152600360205260409020556007546116789082611936565b600755600b5461169d9061169490606490610b799085906118f5565b600a5490611936565b600a556001600160a01b03821660009081526004602090815260408083208784529091529020546116ce9084611936565b6001600160a01b03831660009081526004602090815260408083208884528252808320939093556005905220546117059084611936565b6000858152600560205260409081902091909155517fddc82401ab579d868e816af720a563cdf9f9d0350abb3fa3266bcf33dd4f48ab9061174b904290859087906122b7565b60405180910390a150505050565b60036020526000908152604090208054600182015460029092015490919083565b600a5481565b600460209081526000928352604080842090915290825290205481565b6001600160a01b03919091166000908152600460209081526040808320938352929052205490565b600d5481565b600f5481565b60075481565b600e546001600160a01b038216600090815260036020526040812054909161132a91606491610b7991906118f5565b60065490565b600c5481565b600061181d33610c15565b9050600160008154811061182d57fe5b90600052602060002001548110156118575760405162461bcd60e51b81526004016102ea9061202c565b6000611884600160008154811061186a57fe5b90600052602060002001548361199d90919063ffffffff16565b905061188e610e97565b610f9c600082611a5b565b60105481565b610c108363a9059cbb60e01b84846040516024016118be929190611f61565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611abb565b6000826119045750600061132a565b8282028284828161191157fe5b041461192f5760405162461bcd60e51b81526004016102ea906121a1565b9392505050565b60008282018381101561192f5760405162461bcd60e51b81526004016102ea9061205c565b600061192f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ba0565b600061192f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bcc565b80156110e557611a0e611a056119f36109a2565b610b7984678ac7230489e800006118f5565b600d5490611936565b600d55600c54611a1e9082611936565b600c55600954611a2e9082611936565b60095550565b611a55846323b872dd60e01b8585856040516024016118be93929190611f3d565b50505050565b601254339060ff168015611a7157506011544210155b611a8d5760405162461bcd60e51b81526004016102ea9061220b565b60005483108015611a9f575060015483105b6113dc5760405162461bcd60e51b81526004016102ea90612177565b611acd826001600160a01b0316611c03565b611ae95760405162461bcd60e51b81526004016102ea90612277565b60006060836001600160a01b031683604051611b059190611ef3565b6000604051808303816000865af19150503d8060008114611b42576040519150601f19603f3d011682016040523d82523d6000602084013e611b47565b606091505b509150915081611b695760405162461bcd60e51b81526004016102ea906120f1565b805115611a555780806020019051810190611b849190611e86565b611a555760405162461bcd60e51b81526004016102ea9061222d565b60008184841115611bc45760405162461bcd60e51b81526004016102ea9190611fc9565b505050900390565b60008183611bed5760405162461bcd60e51b81526004016102ea9190611fc9565b506000838581611bf957fe5b0495945050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610b94575050151592915050565b828054828255906000526020600020908101928215611c77579160200282015b82811115611c77578251825591602001919060010190611c5c565b50611c83929150611c87565b5090565b5b80821115611c835760008155600101611c88565b600082601f830112611cac578081fd5b813567ffffffffffffffff811115611cc2578182fd5b6020808202611cd28282016122ec565b83815293508184018583018287018401881015611cee57600080fd5b600092505b84831015611d11578035825260019290920191908301908301611cf3565b505050505092915050565b600060208284031215611d2d578081fd5b813561192f8161233f565b60008060408385031215611d4a578081fd5b8235611d558161233f565b9150602083013567ffffffffffffffff811115611d70578182fd5b611d7c85828601611c9c565b9150509250929050565b6000808284036080811215611d99578283fd5b8335611da48161233f565b92506060601f1982011215611db7578182fd5b50611dc260606122ec565b602084013581526040840135602082015260608401356040820152809150509250929050565b60008060408385031215611dfa578182fd5b8235611e058161233f565b946020939093013593505050565b60008060408385031215611e25578182fd5b823567ffffffffffffffff80821115611e3c578384fd5b611e4886838701611c9c565b93506020850135915080821115611e5d578283fd5b50611d7c85828601611c9c565b600060208284031215611e7b578081fd5b813561192f81612354565b600060208284031215611e97578081fd5b815161192f81612354565b600060208284031215611eb3578081fd5b5035919050565b600060208284031215611ecb578081fd5b5051919050565b60008060408385031215611ee4578182fd5b50508035926020909101359150565b60008251611f05818460208701612313565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015611fb257835183529284019291840191600101611f96565b50909695505050505050565b901515815260200190565b6000602082528251806020840152611fe8816040850160208701612313565b601f01601f19169190910160400192915050565b60208082526016908201527543616c6c6572206973206e6f7420746865206465762160501b604082015260600190565b602080825260169082015275139bdd08195b9bdd59da081d1bc818dbdb5c1bdd5b9960521b604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b602080825260169082015275496e73756666696369656e7420616c6c6f77616e636560501b604082015260600190565b602080825260149082015273496e73756666696369656e742062616c616e636560601b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252601190820152702237903737ba1039b2b7321020ab20ac1760791b604082015260600190565b6020808252600c908201526b5a65726f206164647265737360a01b604082015260600190565b60208082526010908201526f24b73b30b634b2103737b232aa34b2b960811b604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252600f908201526e098cadccee8d040dad2e6dac2e8c6d608b1b604082015260600190565b602080825260089082015267111a5cd8589b195960c21b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601f908201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604082015260600190565b90815260200190565b9283526001600160a01b03919091166020830152604082015260600190565b9283526020830191909152604082015260600190565b60405181810167ffffffffffffffff8111828210171561230b57600080fd5b604052919050565b60005b8381101561232e578181015183820152602001612316565b83811115611a555750506000910152565b6001600160a01b03811681146110e557600080fd5b80151581146110e557600080fdfea264697066735822122063fe2f38ec3145cd5643344b76ed7c5b02459f6b79ae87fa548a4fb053513d6f64736f6c634300060c00330000000000000000000000000000000000000000000000000000000062921cd0
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000062921cd0
-----Decoded View---------------
Arg [0] : _startTime (uint256): 1653742800
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000062921cd0
Deployed ByteCode Sourcemap
14908:12335:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16505:27;;-1:-1:-1;;;16505:27:0;;;;;;;:::i;:::-;;;;;;;;14908:12335;;;;16088:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16813:191;;;;;;;;;;;;;:::i;:::-;;15729:28;;;;;;;;;;;;;:::i;26852:116::-;;;;;;;;;;;;;:::i;15568:45::-;;;;;;;;;;-1:-1:-1;15568:45:0;;;;;:::i;:::-;;:::i;17439:104::-;;;;;;;;;;-1:-1:-1;17439:104:0;;;;;:::i;:::-;;:::i;18635:263::-;;;;;;;;;;;;;:::i;15620:28::-;;;;;;;;;;-1:-1:-1;15620:28:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;15085:62::-;;;;;;;;;;-1:-1:-1;15085:62:0;;;;;:::i;:::-;;:::i;16062:19::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;17956:392::-;;;;;;;;;;-1:-1:-1;17956:392:0;;;;;:::i;:::-;;:::i;19191:394::-;;;;;;;;;;-1:-1:-1;19191:394:0;;;;;:::i;:::-;;:::i;17667:281::-;;;;;;;;;;-1:-1:-1;17667:281:0;;;;;:::i;:::-;;:::i;19597:540::-;;;;;;;;;;-1:-1:-1;19597:540:0;;;;;:::i;:::-;;:::i;17124:89::-;;;;;;;;;;-1:-1:-1;17124:89:0;;;;;:::i;:::-;;:::i;15154:64::-;;;;;;;;;;-1:-1:-1;15154:64:0;;;;;:::i;:::-;;:::i;17012:100::-;;;;;;;;;;-1:-1:-1;17012:100:0;;;;;:::i;:::-;;:::i;24412:140::-;;;;;;;;;;-1:-1:-1;24412:140:0;;;;;:::i;:::-;;:::i;26202:328::-;;;;;;;;;;-1:-1:-1;26202:328:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;25101:460::-;;;;;;;;;;;;;:::i;21620:864::-;;;;;;;;;;;;;:::i;18356:271::-;;;;;;;;;;-1:-1:-1;18356:271:0;;;;;:::i;:::-;;:::i;17221:112::-;;;;;;;;;;-1:-1:-1;17221:112:0;;;;;:::i;:::-;;:::i;26977:135::-;;;;;;;;;;;;;:::i;24901:192::-;;;;;;;;;;;;;:::i;15802:33::-;;;;;;;;;;;;;:::i;18906:277::-;;;;;;;;;;-1:-1:-1;18906:277:0;;;;;:::i;:::-;;:::i;17341:86::-;;;;;;;;;;-1:-1:-1;17341:86:0;;;;;:::i;:::-;;:::i;26542:302::-;;;;;;;;;;;;;:::i;17551:108::-;;;;;;;;;;-1:-1:-1;17551:108:0;;;;;:::i;:::-;;:::i;15694:28::-;;;;;;;;;;;;;:::i;15929:31::-;;;;;;;;;;;;;:::i;16031:24::-;;;;;;;;;;;;;:::i;14997:81::-;;;;;;;;;;;;;:::i;16658:147::-;;;;;;;;;;-1:-1:-1;16658:147:0;;;;;:::i;:::-;;:::i;25569:377::-;;;;;;;;;;-1:-1:-1;25569:377:0;;;;;:::i;:::-;;:::i;27120:120::-;;;;;;;;;;-1:-1:-1;27120:120:0;;;;;:::i;:::-;;:::i;20147:1465::-;;;;;;;;;;-1:-1:-1;20147:1465:0;;;;;:::i;:::-;;:::i;15457:37::-;;;;;;;;;;-1:-1:-1;15457:37:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;15764:31::-;;;;;;;;;;;;;:::i;15501:60::-;;;;;;;;;;-1:-1:-1;15501:60:0;;;;;:::i;:::-;;:::i;26061:133::-;;;;;;;;;;-1:-1:-1;26061:133:0;;;;;:::i;:::-;;:::i;15886:36::-;;;;;;;;;;;;;:::i;15967:23::-;;;;;;;;;;;;;:::i;15657:30::-;;;;;;;;;;;;;:::i;24252:152::-;;;;;;;;;;-1:-1:-1;24252:152:0;;;;;:::i;:::-;;:::i;25954:99::-;;;;;;;;;;;;;:::i;15842:37::-;;;;;;;;;;;;;:::i;23951:291::-;;;;;;;;;;;;;:::i;15997:27::-;;;;;;;;;;;;;:::i;16088:42::-;16125:5;16088:42;:::o;16813:191::-;16869:16;;:20;16865:129;;16925:3;;16930:16;;16906:41;;15035:42;;-1:-1:-1;;;;;16925:3:0;;;;16906:18;:41::i;:::-;16981:1;16962:16;:20;16865:129;16813:191::o;15729:28::-;;;;:::o;26852:116::-;26922:38;;-1:-1:-1;;;26922:38:0;;26895:7;;15035:42;;26922:23;;:38;;26954:4;;26922:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26915:45;;26852:116;;:::o;15568:45::-;;;;;;;;;;;;;:::o;17439:104::-;16600:3;;-1:-1:-1;;;;;16600:3:0;16586:10;:17;16578:52;;;;-1:-1:-1;;;16578:52:0;;;;;;;:::i;:::-;17511:12:::1;:24:::0;17439:104::o;18635:263::-;18684:7;;;18732:136;18756:15;:22;18752:26;;18732:136;;;18841:13;;;;:10;:13;;;;;;18818:18;;18808:48;;18818:37;;18841:13;18852:1;;18818:18;;;;;;;;;;;;;;:22;;:37;;;;:::i;:::-;18808:5;;:9;:48::i;:::-;18800:56;-1:-1:-1;18780:3:0;;18732:136;;;-1:-1:-1;18885:5:0;-1:-1:-1;18635:263:0;:::o;15620:28::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15620:28:0;;-1:-1:-1;15620:28:0;:::o;15085:62::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15085:62:0;:::o;16062:19::-;;;;;;:::o;17956:392::-;16600:3;;-1:-1:-1;;;;;16600:3:0;16586:10;:17;16578:52;;;;-1:-1:-1;;;16578:52:0;;;;;;;:::i;:::-;18106:20;;-1:-1:-1;;;;;18073:12:0;::::1;18106:20;18073:12:::0;;;:5:::1;:12;::::0;;;;:27;18053:15:::1;::::0;:74:::1;::::0;18106:20;18053:48:::1;::::0;:15;:19:::1;:48::i;:::-;:52:::0;::::1;:74::i;:::-;18035:15;:92:::0;18203:18:::1;::::0;;::::1;::::0;-1:-1:-1;;;;;18172:12:0;::::1;;::::0;;;:5:::1;:12:::0;;;;;;;:25:::1;;::::0;18154:13:::1;::::0;:68:::1;::::0;18203:18;18154:44:::1;::::0;:13;:17:::1;:44::i;:68::-;18138:13;:84:::0;18263:20;;-1:-1:-1;;;;;18233:12:0;;::::1;18263:20;18233:12:::0;;;:5:::1;:12;::::0;;;;;;;:50;;;18322:18:::1;::::0;18294:25:::1;::::0;;::::1;:46:::0;17956:392::o;19191:394::-;19261:7;19285:20;19297:7;19285:11;:20::i;:::-;19281:34;;;-1:-1:-1;19314:1:0;19307:8;;19281:34;-1:-1:-1;;;;;19382:14:0;;19328:25;19382:14;;;:5;:14;;;;;:30;;;19356:21;;:57;;:25;:57::i;:::-;19328:85;;19424:18;19445:59;16125:5;19445:43;19470:17;19445:20;19457:7;19445:11;:20::i;:::-;:24;;:43::i;:::-;:47;;:59::i;:::-;19424:80;;19535:13;;19522:10;:26;:55;;19567:10;19522:55;;;19551:13;;19522:55;19515:62;;;;19191:394;;;;:::o;17667:281::-;16600:3;;-1:-1:-1;;;;;16600:3:0;16586:10;:17;16578:52;;;;-1:-1:-1;;;16578:52:0;;;;;;;:::i;:::-;17819:12:::1;:19;17792:16;:23;:46;17784:74;;;;-1:-1:-1::0;;;17784:74:0::1;;;;;;;:::i;:::-;17869:34:::0;;::::1;::::0;:15:::1;::::0;:34:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;17914:26:0;;::::1;::::0;:11:::1;::::0;:26:::1;::::0;::::1;::::0;::::1;:::i;:::-;;17667:281:::0;;:::o;19597:540::-;-1:-1:-1;;;;;19684:14:0;;19660:7;19684:14;;;:5;:14;;;;;:29;19680:62;;-1:-1:-1;19741:1:0;19734:8;;19680:62;19763:15;19781:102;19817:65;19863:18;:16;:18::i;:::-;19817:41;19837:20;19849:7;19837:11;:20::i;:::-;19817:15;:13;:15::i;:65::-;19781:31;19804:7;19781:22;:31::i;:102::-;-1:-1:-1;;;;;19916:14:0;;19894:19;19916:14;;;:5;:14;;;;;:27;;;19763:120;;-1:-1:-1;19971:18:0;19922:7;19971:9;:18::i;:::-;19954:35;-1:-1:-1;19954:35:0;20060:24;:11;20076:7;20060:15;:24::i;:::-;:33;:69;;20122:7;20060:69;;;20096:23;:6;20107:11;20096:10;:23::i;:::-;20053:76;19597:540;-1:-1:-1;;;;;19597:540:0:o;17124:89::-;16600:3;;-1:-1:-1;;;;;16600:3:0;16586:10;:17;16578:52;;;;-1:-1:-1;;;16578:52:0;;;;;;;:::i;:::-;17187:7:::1;:18:::0;;-1:-1:-1;;17187:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17124:89::o;15154:64::-;;;;;;;;;;17012:100;16600:3;;-1:-1:-1;;;;;16600:3:0;16586:10;:17;16578:52;;;;-1:-1:-1;;;16578:52:0;;;;;;;:::i;:::-;17082:9:::1;:22:::0;17012:100::o;24412:140::-;24471:4;24526:18;24536:7;24526:9;:18::i;:::-;-1:-1:-1;;;;;24495:14:0;;;;;;:5;:14;;;;;:27;;;:49;;;-1:-1:-1;24412:140:0;;;:::o;26202:328::-;26332:15;:22;26260:16;;;;26318:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26318:37:0;;26289:66;;26371:9;26366:130;26390:15;:22;26386:26;;26366:130;;;-1:-1:-1;;;;;26466:14:0;;;;;;:5;:14;;;;;;;;:17;;;;;;;;;26449:12;;:35;;26466:17;26449:9;;26481:1;;26449:12;;;;;;;;;;;;:16;;:35;;;;:::i;:::-;26434:9;26444:1;26434:12;;;;;;;;;;;;;;;;;:50;26414:3;;26366:130;;;-1:-1:-1;26513:9:0;26202:328;-1:-1:-1;;26202:328:0:o;25101:460::-;25147:7;25186:15;25171:12;;:30;25167:368;;;25218:19;25240:16;:14;:16::i;:::-;25218:38;;25271:21;25295:33;25315:12;;25295:15;:19;;:33;;;;:::i;:::-;25271:57;;25343:12;25358:44;25393:8;;25358:30;25376:11;25358:13;:17;;:30;;;;:::i;:44::-;25343:59;;25430:11;25423:4;:18;25419:77;;;-1:-1:-1;25469:11:0;25419:77;25519:4;-1:-1:-1;25512:11:0;;-1:-1:-1;;25512:11:0;25167:368;-1:-1:-1;25552:1:0;25101:460;:::o;21620:864::-;21655:13;:11;:13::i;:::-;21699:10;21681:15;21739:31;21699:10;21739:22;:31::i;:::-;21720:50;-1:-1:-1;21795:12:0;;21791:686;;21854:13;;:27;;21872:8;21854:17;:27::i;:::-;21838:13;:43;-1:-1:-1;;;;;21918:14:0;;21896:19;21918:14;;;:5;:14;;;;;:27;;;;21977:18;21924:7;21977:9;:18::i;:::-;21960:35;-1:-1:-1;21960:35:0;22070:25;:11;22086:8;22070:15;:25::i;:::-;:34;22067:108;;;22136:23;:6;22147:11;22136:10;:23::i;:::-;22125:34;;22067:108;-1:-1:-1;;;;;22221:14:0;;;;;;:5;:14;;;;;:27;;;:41;;22253:8;22221:31;:41::i;:::-;-1:-1:-1;;;;;22191:14:0;;;;;;:5;:14;;;;;:27;;:71;22293:13;;:27;;22311:8;22293:17;:27::i;:::-;22277:13;:43;22337:45;15035:42;22364:7;22373:8;22337:26;:45::i;:::-;-1:-1:-1;;22444:21:0;;-1:-1:-1;;;;;22411:14:0;;;;;;:5;:14;;;;;:30;;:54;21791:686;21620:864;;:::o;18356:271::-;16600:3;;-1:-1:-1;;;;;16600:3:0;16586:10;:17;16578:52;;;;-1:-1:-1;;;16578:52:0;;;;;;;:::i;:::-;18446:9:::1;18442:178;18465:6;:13;18461:1;:17;18442:178;;;18516:50;18556:6;18563:1;18556:9;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;18534:12:0;::::1;;::::0;;;:5:::1;:12:::0;;;;;;:15;;;;;;;;;18516:10:::1;:13:::0;;;;;;18556:9;;18516:34:::1;::::0;:13;:17:::1;:34::i;:50::-;18500:13;::::0;;;:10:::1;:13;::::0;;;;:66;18599:9;;:6;;18511:1;;18599:9;::::1;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;18581:12:0;::::1;;::::0;;;:5:::1;:12:::0;;;;;;:15;;;;;;;;;;:27;18480:3:::1;;18442:178;;17221:112:::0;16600:3;;-1:-1:-1;;;;;16600:3:0;16586:10;:17;16578:52;;;;-1:-1:-1;;;16578:52:0;;;;;;;:::i;:::-;17297:18:::1;:28:::0;17221:112::o;26977:135::-;27024:7;27051:53;27087:16;;27051:31;27068:13;;27051:12;:10;:12::i;:::-;:16;;:31::i;24901:192::-;24942:12;24957:15;:13;:15::i;:::-;24942:30;-1:-1:-1;24989:8:0;;24985:101;;25014:15;25024:4;25014:9;:15::i;:::-;25059;25044:12;:30;24985:101;24901:192;:::o;15802:33::-;;;;:::o;18906:277::-;18965:7;;;19013:140;19037:15;:22;19033:26;;19013:140;;;-1:-1:-1;;;;;19122:14:0;;;;;;:5;:14;;;;;;;;:17;;;;;;;;;19099:18;;19089:52;;19099:41;;19122:17;19137:1;;19099:18;;;;;19089:52;19081:60;-1:-1:-1;19061:3:0;;19013:140;;17341:86;16600:3;;-1:-1:-1;;;;;16600:3:0;16586:10;:17;16578:52;;;;-1:-1:-1;;;16578:52:0;;;;;;;:::i;:::-;17404:8:::1;:15:::0;17341:86::o;26542:302::-;26659:15;:22;26590:16;;;;26645:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26645:37:0;;26619:63;;26698:9;26693:120;26717:15;:22;26713:26;;26693:120;;;26773:28;26787:10;:13;26798:1;26787:13;;;;;;;;;;;;26773:6;26780:1;26773:9;;;;;;;:28;26761:6;26768:1;26761:9;;;;;;;;;;;;;;;;;:40;26741:3;;26693:120;;17551:108;16600:3;;-1:-1:-1;;;;;16600:3:0;16586:10;:17;16578:52;;;;-1:-1:-1;;;16578:52:0;;;;;;;:::i;:::-;17625:16:::1;:26:::0;17551:108::o;15694:28::-;;;;:::o;15929:31::-;;;;:::o;16031:24::-;;;;:::o;14997:81::-;15035:42;14997:81;:::o;16658:147::-;16600:3;;-1:-1:-1;;;;;16600:3:0;16586:10;:17;16578:52;;;;-1:-1:-1;;;16578:52:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16737:20:0;::::1;16729:45;;;;-1:-1:-1::0;;;16729:45:0::1;;;;;;;:::i;:::-;16785:3;:12:::0;;-1:-1:-1;;;;;;16785:12:0::1;-1:-1:-1::0;;;;;16785:12:0;;;::::1;::::0;;;::::1;::::0;;16658:147::o;25569:377::-;25635:7;25696:1;25675:18;25687:5;25675:11;:18::i;:::-;:22;:45;;;;;25702:18;25714:5;25702:11;:18::i;:::-;25701:19;25675:45;:263;;25937:1;25675:263;;;25740:177;25908:8;;25740:141;25862:18;:16;:18::i;:::-;25740:95;25816:18;25828:5;25816:11;:18::i;:::-;25740:49;25783:5;25740:16;:14;:16::i;:177::-;25655:283;25569:377;-1:-1:-1;;25569:377:0:o;27120:120::-;16600:3;;-1:-1:-1;;;;;16600:3:0;16586:10;:17;16578:52;;;;-1:-1:-1;;;16578:52:0;;;;;;;:::i;:::-;27222:3:::1;::::0;27203:29:::1;::::0;-1:-1:-1;;;;;27203:18:0;;::::1;::::0;27222:3:::1;27227:4:::0;27203:18:::1;:29::i;20147:1465::-:0;20266:7;;20237:10;;20266:7;;:39;;;;;20296:9;;20277:15;:28;;20266:39;20258:60;;;;-1:-1:-1;;;20258:60:0;;;;;;;:::i;:::-;20348:15;:22;20337:33;;:66;;;;-1:-1:-1;20385:11:0;:18;20374:29;;20337:66;20329:95;;;;-1:-1:-1;;;20329:95:0;;;;;;;:::i;:::-;20437:7;:5;:7::i;:::-;-1:-1:-1;;;;;20461:14:0;;;;;;:5;:14;;;;;:29;20457:173;;20512:11;:25;;;;;;;;;;;;-1:-1:-1;;;;;;20512:25:0;-1:-1:-1;;;;;20512:25:0;;;;;;;;20597:21;;-1:-1:-1;20564:14:0;;;:5;20512:25;20564:14;;;;;:30;;:54;20457:173;-1:-1:-1;;;;;20645:14:0;;;;;;:5;:14;;;;;:29;:34;;;;:58;;;20683:20;20695:7;20683:11;:20::i;:::-;20641:145;;;20753:21;;-1:-1:-1;;;;;20720:14:0;;;;;;:5;:14;;;;;:30;;:54;20641:145;20798:17;20818:35;20844:8;20818:11;20830:8;20818:21;;;;;;;:35;20882:24;;-1:-1:-1;;;20882:24:0;;20798:55;;-1:-1:-1;20798:55:0;;15035:42;;20882:15;;:24;;20898:7;;20882:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:37;;20874:70;;;;-1:-1:-1;;;20874:70:0;;;;;;;:::i;:::-;20963:39;;-1:-1:-1;;;20963:39:0;;21006:9;;15035:42;;20963:15;;:39;;20979:7;;20996:4;;20963:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;;20955:87;;;;-1:-1:-1;;;20955:87:0;;;;;;;:::i;:::-;21053:57;15035:42;21076:7;21093:4;21100:9;21053:22;:57::i;:::-;-1:-1:-1;;;;;21155:14:0;;;;;;:5;:14;;;;;:29;:44;;21189:9;21155:33;:44::i;:::-;-1:-1:-1;;;;;21123:14:0;;;;;;:5;:14;;;;;:76;21238:15;;:30;;21258:9;21238:19;:30::i;:::-;21220:15;:48;21347:18;;21298:88;;21333:42;;21371:3;;21333:33;;:9;;:13;:33::i;:42::-;21298:16;;;:20;:88::i;:::-;21279:16;:107;-1:-1:-1;;;;;21434:14:0;;;;;;:5;:14;;;;;;;;:24;;;;;;;;;:38;;21463:8;21434:28;:38::i;:::-;-1:-1:-1;;;;;21407:14:0;;;;;;:5;:14;;;;;;;;:24;;;;;;;;:65;;;;21506:10;:20;;;;:34;;21531:8;21506:24;:34::i;:::-;21483:20;;;;:10;:20;;;;;;;:57;;;;21558:46;;;;;21569:15;;21586:7;;21595:8;;21558:46;:::i;:::-;;;;;;;;20147:1465;;;;:::o;15457:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15764:31::-;;;;:::o;15501:60::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;26061:133::-;-1:-1:-1;;;;;26163:14:0;;;;26136:7;26163:14;;;:5;:14;;;;;;;;:23;;;;;;;;;26061:133::o;15886:36::-;;;;:::o;15967:23::-;;;;:::o;15657:30::-;;;;:::o;24252:152::-;24370:16;;-1:-1:-1;;;;;24336:14:0;;24309:7;24336:14;;;:5;:14;;;;;:29;24309:7;;24336:60;;24392:3;;24336:51;;:29;:33;:51::i;25954:99::-;26027:11;:18;25954:99;:::o;15842:37::-;;;;:::o;23951:291::-;23987:22;24012:27;24028:10;24012:15;:27::i;:::-;23987:52;;24076:11;24088:1;24076:14;;;;;;;;;;;;;;;;24058;:32;;24050:67;;;;-1:-1:-1;;;24050:67:0;;;;;;;:::i;:::-;24128:19;24150:34;24169:11;24181:1;24169:14;;;;;;;;;;;;;;;;24150;:18;;:34;;;;:::i;:::-;24128:56;;24193:7;:5;:7::i;:::-;24209:25;24219:1;24222:11;24209:9;:25::i;15997:27::-;;;;:::o;11635:177::-;11718:86;11738:5;11768:23;;;11793:2;11797:5;11745:58;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;11745:58:0;;;;;;;;;;;;;;-1:-1:-1;;;;;11745:58:0;-1:-1:-1;;;;;;11745:58:0;;;;;;;;;;11718:19;:86::i;5099:471::-;5157:7;5402:6;5398:47;;-1:-1:-1;5432:1:0;5425:8;;5398:47;5469:5;;;5473:1;5469;:5;:1;5493:5;;;;;:10;5485:56;;;;-1:-1:-1;;;5485:56:0;;;;;;;:::i;:::-;5561:1;5099:471;-1:-1:-1;;;5099:471:0:o;3769:181::-;3827:7;3859:5;;;3883:6;;;;3875:46;;;;-1:-1:-1;;;3875:46:0;;;;;;;:::i;4225:136::-;4283:7;4310:43;4314:1;4317;4310:43;;;;;;;;;;;;;;;;;:3;:43::i;6038:132::-;6096:7;6123:39;6127:1;6130;6123:39;;;;;;;;;;;;;;;;;:3;:39::i;24560:333::-;24619:10;;24615:271;;24671:73;24697:46;24724:18;:16;:18::i;:::-;24697:22;:6;16125:5;24697:10;:22::i;:46::-;24671:21;;;:25;:73::i;:::-;24647:21;:97;24784:22;;:34;;24811:6;24784:26;:34::i;:::-;24759:22;:59;24849:13;;:25;;24867:6;24849:17;:25::i;:::-;24833:13;:41;24560:333;:::o;11820:205::-;11921:96;11941:5;11971:27;;;12000:4;12006:2;12010:5;11948:68;;;;;;;;;;:::i;11921:96::-;11820:205;;;;:::o;22495:1448::-;22617:7;;22588:10;;22617:7;;:39;;;;;22647:9;;22628:15;:28;;22617:39;22609:60;;;;-1:-1:-1;;;22609:60:0;;;;;;;:::i;:::-;22699:15;:22;22688:33;;:66;;;;-1:-1:-1;22736:11:0;:18;22725:29;;22688:66;22680:95;;;;-1:-1:-1;;;22680:95:0;;;;;;;:::i;13679:1115::-;14284:27;14292:5;-1:-1:-1;;;;;14284:25:0;;:27::i;:::-;14276:71;;;;-1:-1:-1;;;14276:71:0;;;;;;;:::i;:::-;14421:12;14435:23;14470:5;-1:-1:-1;;;;;14462:19:0;14482:4;14462:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14420:67;;;;14506:7;14498:52;;;;-1:-1:-1;;;14498:52:0;;;;;;;:::i;:::-;14567:17;;:21;14563:224;;14709:10;14698:30;;;;;;;;;;;;:::i;:::-;14690:85;;;;-1:-1:-1;;;14690:85:0;;;;;;;:::i;4656:192::-;4742:7;4778:12;4770:6;;;;4762:29;;;;-1:-1:-1;;;4762:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;4814:5:0;;;4656:192::o;6658:345::-;6744:7;6846:12;6839:5;6831:28;;;;-1:-1:-1;;;6831:28:0;;;;;;;;:::i;:::-;;6870:9;6886:1;6882;:5;;;;;;;6658:345;-1:-1:-1;;;;;6658:345:0:o;9014:619::-;9074:4;9542:20;;9385:66;9582:23;;;;;;:42;;-1:-1:-1;;9609:15:0;;;9014:619;-1:-1:-1;;9014: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;24307:18;24299:6;24296:30;24293:2;;;-1:-1;;24329:12;24293:2;24374:4;;24366:6;24362:17;507:80;24374:4;24362:17;24427: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;13767:271::-;;8103:5;24720:12;8214:52;8259:6;8254:3;8247:4;8240:5;8236:16;8214:52;:::i;:::-;8278:16;;;;;13901:137;-1:-1;;13901:137::o;14045:222::-;-1:-1;;;;;26114:54;;;;7054:37;;14172:2;14157:18;;14143:124::o;14519:349::-;-1:-1;;;;;26114:54;;;7054:37;;26114:54;;14854:2;14839:18;;6913:58;14682:2;14667:18;;14653:215::o;14875:444::-;-1:-1;;;;;26114:54;;;7054:37;;26114:54;;;;15222:2;15207:18;;7054:37;15305:2;15290:18;;13598:37;;;;15058:2;15043:18;;15029:290::o;15326:333::-;-1:-1;;;;;26114:54;;;;7054:37;;15645:2;15630:18;;13598:37;15481:2;15466:18;;15452:207::o;15666:370::-;15843:2;15857:47;;;24720:12;;15828:18;;;25252:19;;;15666:370;;15843:2;24574:14;;;;25292;;;;15666:370;7542:260;7567:6;7564:1;7561:13;7542:260;;;7628:13;;13598:37;;25107:14;;;;6806;;;;7589:1;7582:9;7542:260;;;-1:-1;15910:116;;15814:222;-1:-1;;;;;;15814:222::o;16043:210::-;25915:13;;25908:21;7897:34;;16164:2;16149:18;;16135:118::o;16515:310::-;;16662:2;16683:17;16676:47;8610:5;24720:12;25264:6;16662:2;16651:9;16647:18;25252:19;8704:52;8749:6;25292:14;16651:9;25292:14;16662:2;8730:5;8726:16;8704:52;:::i;:::-;1569:19;27265:14;-1:-1;;27261:28;8768:39;;;;25292:14;8768:39;;16633:192;-1:-1;;16633:192::o;16832:416::-;17032:2;17046:47;;;9044:2;17017:18;;;25252:19;-1:-1;;;25292:14;;;9060:45;9124:12;;;17003:245::o;17255:416::-;17455:2;17469:47;;;9375:2;17440:18;;;25252:19;-1:-1;;;25292:14;;;9391:45;9455:12;;;17426:245::o;17678:416::-;17878:2;17892:47;;;9706:2;17863:18;;;25252:19;9742:29;25292:14;;;9722:50;9791:12;;;17849:245::o;18101:416::-;18301:2;18315:47;;;10042:2;18286:18;;;25252:19;-1:-1;;;25292:14;;;10058:45;10122:12;;;18272:245::o;18524:416::-;18724:2;18738:47;;;10373:2;18709:18;;;25252:19;-1:-1;;;25292:14;;;10389:43;10451:12;;;18695:245::o;18947:416::-;19147:2;19161:47;;;19132:18;;;25252:19;10738:34;25292:14;;;10718:55;10792:12;;;19118:245::o;19370:416::-;19570:2;19584:47;;;11043:2;19555:18;;;25252:19;-1:-1;;;25292:14;;;11059:40;11118:12;;;19541:245::o;19793:416::-;19993:2;20007:47;;;11369:2;19978:18;;;25252:19;-1:-1;;;25292:14;;;11385:35;11439:12;;;19964:245::o;20216:416::-;20416:2;20430:47;;;11690:2;20401:18;;;25252:19;-1:-1;;;25292:14;;;11706:39;11764:12;;;20387:245::o;20639:416::-;20839:2;20853:47;;;12015:2;20824:18;;;25252:19;12051:34;25292:14;;;12031:55;-1:-1;;;12106:12;;;12099:25;12143:12;;;20810:245::o;21062:416::-;21262:2;21276:47;;;12394:2;21247:18;;;25252:19;-1:-1;;;25292:14;;;12410:38;12467:12;;;21233:245::o;21485:416::-;21685:2;21699:47;;;12718:1;21670:18;;;25252:19;-1:-1;;;25292:14;;;12733:31;12783:12;;;21656:245::o;21908:416::-;22108:2;22122:47;;;13034:2;22093:18;;;25252:19;13070:34;25292:14;;;13050:55;-1:-1;;;13125:12;;;13118:34;13171:12;;;22079:245::o;22331:416::-;22531:2;22545:47;;;13422:2;22516:18;;;25252:19;13458:33;25292:14;;;13438:54;13511:12;;;22502:245::o;22754:222::-;13598:37;;;22881:2;22866:18;;22852:124::o;22983:444::-;13598:37;;;-1:-1;;;;;26114:54;;;;23330:2;23315:18;;7054:37;23413:2;23398:18;;13598:37;23166:2;23151:18;;23137:290::o;23434:444::-;13598:37;;;23781:2;23766:18;;13598:37;;;;23864:2;23849:18;;13598:37;23617:2;23602:18;;23588:290::o;23885:256::-;23947:2;23941:9;23973:17;;;24048:18;24033:34;;24069:22;;;24030:62;24027:2;;;24105:1;;24095:12;24027:2;23947;24114:22;23925:216;;-1:-1;23925:216::o;26921:268::-;26986:1;26993:101;27007:6;27004:1;27001:13;26993:101;;;27074:11;;;27068:18;27055:11;;;27048:39;27029:2;27022:10;26993:101;;;27109:6;27106:1;27103:13;27100:2;;;-1:-1;;26986:1;27156:16;;27149:27;26970:219::o;27302:117::-;-1:-1;;;;;26114:54;;27361:35;;27351:2;;27410:1;;27400:12;27566:111;27647:5;25915:13;25908:21;27625:5;27622:32;27612:2;;27668:1;;27658:12
Swarm Source
ipfs://63fe2f38ec3145cd5643344b76ed7c5b02459f6b79ae87fa548a4fb053513d6f
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.