More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 49 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Enable Anticipat... | 44264915 | 21 days ago | IN | 0.00246664 BNB | 0.00037447 | ||||
Enable Anticipat... | 44091044 | 27 days ago | IN | 0.00245706 BNB | 0.00014142 | ||||
Anticipate | 43802897 | 37 days ago | IN | 0 BNB | 0.0010247 | ||||
Anticipate | 39289328 | 194 days ago | IN | 0 BNB | 0.00109983 | ||||
Withdraw Deposit | 38823843 | 211 days ago | IN | 0 BNB | 0.00027544 | ||||
Withdraw Earning... | 38823838 | 211 days ago | IN | 0 BNB | 0.00032158 | ||||
Deposit | 37790505 | 246 days ago | IN | 0.000367 BNB | 0.00041892 | ||||
Deposit | 37714158 | 249 days ago | IN | 0.005 BNB | 0.00040687 | ||||
Enable Anticipat... | 37714129 | 249 days ago | IN | 0.008963 BNB | 0.00037447 | ||||
Enable Anticipat... | 37713461 | 249 days ago | IN | 0.008847 BNB | 0.00112343 | ||||
Anticipate | 37546192 | 255 days ago | IN | 0 BNB | 0.00036221 | ||||
Withdraw Deposit | 37495748 | 257 days ago | IN | 0 BNB | 0.0003 | ||||
Anticipate | 37495710 | 257 days ago | IN | 0 BNB | 0.00034713 | ||||
Deposit | 37495668 | 257 days ago | IN | 0.02 BNB | 0.00043676 | ||||
Withdraw Deposit | 36919589 | 277 days ago | IN | 0 BNB | 0.00041128 | ||||
Anticipate | 36919578 | 277 days ago | IN | 0 BNB | 0.00102117 | ||||
Deposit | 36919495 | 277 days ago | IN | 0.02 BNB | 0.00122763 | ||||
Anticipate | 36590320 | 288 days ago | IN | 0 BNB | 0.00101103 | ||||
Anticipate | 35909547 | 312 days ago | IN | 0 BNB | 0.00099782 | ||||
Anticipate | 35078533 | 341 days ago | IN | 0 BNB | 0.00100385 | ||||
Anticipate | 35078503 | 341 days ago | IN | 0 BNB | 0.00021025 | ||||
Anticipate | 34203250 | 371 days ago | IN | 0 BNB | 0.00111956 | ||||
Withdraw Deposit | 33698843 | 389 days ago | IN | 0 BNB | 0.00033948 | ||||
Deposit | 33247129 | 405 days ago | IN | 0.0001 BNB | 0.00118561 | ||||
Deposit | 33247120 | 405 days ago | IN | 0.001 BNB | 0.00122256 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
44449909 | 15 days ago | 0.00050067 BNB | ||||
44449875 | 15 days ago | 0.00000257 BNB | ||||
44449875 | 15 days ago | 0.00000644 BNB | ||||
44449875 | 15 days ago | 0.00000644 BNB | ||||
44449875 | 15 days ago | 0.00000644 BNB | ||||
44449875 | 15 days ago | 0.00005157 BNB | ||||
44449875 | 15 days ago | 0.00000001 BNB | ||||
44449875 | 15 days ago | 0.0000905 BNB | ||||
44449875 | 15 days ago | 0.0000905 BNB | ||||
44449875 | 15 days ago | 0.0000905 BNB | ||||
44449875 | 15 days ago | 0.00199104 BNB | ||||
44449875 | 15 days ago | 0.00006977 BNB | ||||
44449858 | 15 days ago | 0.00000276 BNB | ||||
44449858 | 15 days ago | 0.00000692 BNB | ||||
44449858 | 15 days ago | 0.00000692 BNB | ||||
44449858 | 15 days ago | 0.00000692 BNB | ||||
44449858 | 15 days ago | 0.00005537 BNB | ||||
44449858 | 15 days ago | 0.00004769 BNB | ||||
44449858 | 15 days ago | 0.00004769 BNB | ||||
44449858 | 15 days ago | 0.00004769 BNB | ||||
44449858 | 15 days ago | 0.00953901 BNB | ||||
44449828 | 15 days ago | 0.00004552 BNB | ||||
44264915 | 21 days ago | 0.00000797 BNB | ||||
44264915 | 21 days ago | 0.00001992 BNB | ||||
44264915 | 21 days ago | 0.00001992 BNB |
Loading...
Loading
Contract Name:
Employer
Compiler Version
v0.8.0+commit.c7dfd78e
Optimization Enabled:
Yes with 2000000 runs
Other Settings:
byzantium EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./ITimeToken.sol"; /** * @title TIME Token Employer contract * @dev Smart contract used to model the first Use Case for TIME Token - The Employer. It pays some interest over the native cryptocurrency deposited from investors **/ contract Employer { bool private _isOperationLocked; address public constant DEVELOPER_ADDRESS = 0x731591207791A93fB0Ec481186fb086E16A7d6D0; address public immutable TIME_TOKEN_ADDRESS; uint256 public constant D = 10**18; uint256 public constant FACTOR = 10**18; uint256 public immutable FIRST_BLOCK; uint256 public immutable ONE_YEAR; uint256 public availableNative; uint256 public currentDepositedNative; uint256 public totalAnticipatedTime; uint256 public totalBurnedTime; uint256 public totalDepositedNative; uint256 public totalDepositedTime; uint256 public totalEarnedNative; uint256 public totalTimeSaved; mapping (address => bool) public anticipationEnabled; mapping (address => uint256) public deposited; mapping (address => uint256) public earned; mapping (address => uint256) public lastBlock; mapping (address => uint256) public remainingTime; constructor(address timeTokenAddress_) { FIRST_BLOCK = block.number; TIME_TOKEN_ADDRESS = timeTokenAddress_; ONE_YEAR = ITimeToken(timeTokenAddress_).TIME_BASE_LIQUIDITY() * 52; } /** * @dev Implement security to avoid reentrancy attacks **/ modifier nonReentrant() { require(!_isOperationLocked, "Operation is locked"); _isOperationLocked = true; _; _isOperationLocked = false; } /** * @dev Update the blocks from caller (msg.sender), contract address, and burn TIME tokens accordingly. It also extracts ETH from TIME contract, compounds and transfer earnings to depositants **/ modifier update(bool mustCompound) { if (lastBlock[address(this)] == 0 && block.number != 0) lastBlock[address(this)] = block.number; if ((lastBlock[msg.sender] == 0 && block.number != 0) || remainingTime[msg.sender] == 0) lastBlock[msg.sender] = block.number; uint256 timeToBurn = (block.number - lastBlock[address(this)]) * D; uint256 timeToBurnDepositant = (block.number - lastBlock[msg.sender]) * D; earned[msg.sender] += queryEarnings(msg.sender); _; if (mustCompound) _compoundDepositantEarnings(msg.sender); else _transferDepositantEarnings(msg.sender); ITimeToken timeToken = ITimeToken(TIME_TOKEN_ADDRESS); _earnInterestAndAllocate(timeToken); if (timeToBurn > remainingTime[address(this)]) timeToBurn = remainingTime[address(this)]; if (timeToBurnDepositant > remainingTime[msg.sender]) timeToBurnDepositant = remainingTime[msg.sender]; if (timeToBurn > 0) _burnTime(timeToken, address(this), timeToBurn); if (timeToBurnDepositant > 0) _burnTime(timeToken, msg.sender, timeToBurnDepositant); lastBlock[address(this)] = block.number; lastBlock[msg.sender] = block.number; } fallback() external payable { require(msg.data.length == 0); } receive() external payable { if (msg.sender != TIME_TOKEN_ADDRESS) { require(msg.value > 0, "Please deposit some amount"); availableNative += msg.value; } } /** * @dev Common function to anticipate gains earned from investments from deposited amount * @param timeAmount TIME token amount used to anticipate the earnings in terms of blocks **/ function _anticipateEarnings(uint256 timeAmount) private { earned[msg.sender] += queryAnticipatedEarnings(msg.sender, timeAmount); totalAnticipatedTime += timeAmount; remainingTime[address(this)] += timeAmount; } /** * @dev Burn TIME according to the amount set from selected depositant * @param timeToken The instance of TIME Token contract * @param depositant Address of depositant account * @param amount Amount to be burned **/ function _burnTime(ITimeToken timeToken, address depositant, uint256 amount) private { if (amount > timeToken.balanceOf(address(this))) amount = timeToken.balanceOf(address(this)); try timeToken.burn(amount) { totalBurnedTime += amount; remainingTime[depositant] -= amount; } catch { revert("Unable to burn TIME"); } } /** * @dev Claim the withdrawable amount earned from the TIME Community Pool * @param timeToken The instance of TIME Token contract * @return earnings The amount earned from TIME Token Community Pool **/ function _claimEarningsFromTime(ITimeToken timeToken) private returns (uint256 earnings) { uint256 currentBalance = address(this).balance; if (timeToken.withdrawableShareBalance(address(this)) > 0) { try timeToken.withdrawShare() { earnings = (address(this).balance - currentBalance); _payComission(earnings / 2); earnings /= 2; return earnings; } catch { return earnings; } } else { return earnings; } } /** * @dev Compound earned amount from selected depositant * @param depositant Address of depositant account **/ function _compoundDepositantEarnings(address depositant) private { if (earned[depositant] > 0) { require(availableNative >= earned[depositant], "Not enough amount to transfer"); availableNative -= earned[depositant]; deposited[depositant] += earned[depositant]; currentDepositedNative += earned[depositant]; earned[depositant] = 0; } } /** * @dev Claim earnings from TIME contract and buy 10% of them in TIME tokens * @param timeToken The instance of TIME Token contract **/ function _earnInterestAndAllocate(ITimeToken timeToken) private { uint256 earnedNative = _claimEarningsFromTime(timeToken); totalEarnedNative += earnedNative; _saveTime(timeToken, earnedNative / 10); availableNative += (earnedNative - (earnedNative / 10)); } /** * @notice Called when need to pay comission for miner (block.coinbase) and developer * @param comissionAmount The total comission amount in ETH which will be paid **/ function _payComission(uint256 comissionAmount) private { if (comissionAmount > 0) { uint256 share = comissionAmount / 4; _saveTime(ITimeToken(TIME_TOKEN_ADDRESS), share); payable(DEVELOPER_ADDRESS).transfer(share); availableNative += share; totalEarnedNative += share; if (block.coinbase == address(0)) payable(DEVELOPER_ADDRESS).transfer(share); else payable(block.coinbase).transfer(share); } } /** * @dev Buy (save) TIME tokens from the TIME Token contract and update the amount to be burned * @param timeToken The instance of TIME Token contract * @param amountToSave Amount to be bought **/ function _saveTime(ITimeToken timeToken, uint256 amountToSave) private { if (amountToSave > 0) { require(address(this).balance >= amountToSave, "Not enough amount to save TIME"); uint256 currentTime = timeToken.balanceOf(address(this)); try timeToken.saveTime{value: amountToSave}() { uint256 timeSaved = (timeToken.balanceOf(address(this)) - currentTime); remainingTime[address(this)] += timeSaved; totalTimeSaved += timeSaved; } catch { revert("Not able to save TIME"); } } } /** * @dev Withdraw all available earnings to the depositant address * @param depositant Address of depositant account **/ function _transferDepositantEarnings(address depositant) private { if (earned[depositant] > 0) { require(availableNative >= earned[depositant], "Not enough amount to transfer"); availableNative -= earned[depositant]; payable(depositant).transfer(earned[depositant]); earned[depositant] = 0; } } /** * @dev Withdraw all deposited amount to the depositant address and transfer the deposited TIME from depositant to the Employer account **/ function _withdraw() private { require(deposited[msg.sender] > 0, "Depositant does not have any amount to withdraw"); require(currentDepositedNative >= deposited[msg.sender], "Not enough in contract to withdraw"); remainingTime[address(this)] += remainingTime[msg.sender]; remainingTime[msg.sender] = 0; currentDepositedNative -= deposited[msg.sender]; payable(msg.sender).transfer(deposited[msg.sender]); deposited[msg.sender] = 0; } /** * @dev Deposit only TIME in order to anticipate interest over previous deposited ETH * @notice Pre-condition: the depositant must have previous deposited ETH and also should approve (allow to spend) the TIME tokens to deposit. Anticipation is mandatory in this case * @param timeAmount The amount in TIME an investor should deposit to anticipate **/ function anticipate(uint256 timeAmount) public payable nonReentrant update(false) { require(deposited[msg.sender] > 0, "Depositant does not have any amount to anticipate"); require(timeAmount > 0, "Please deposit some TIME amount"); ITimeToken timeToken = ITimeToken(TIME_TOKEN_ADDRESS); require(timeToken.allowance(msg.sender, address(this)) >= timeAmount, "Should allow TIME to be spent"); try timeToken.transferFrom(msg.sender, address(this), timeAmount) { totalDepositedTime += timeAmount; _anticipateEarnings(timeAmount); } catch { revert("Problem when transferring TIME"); } } /** * @dev Calculate the anticipation fee an investor needs to pay in order to anticipate TIME Tokens in the Employer contract * @return fee The fee amount calculated **/ function anticipationFee() public view returns (uint256) { return (ITimeToken(TIME_TOKEN_ADDRESS).fee() * 11); } /** * @dev Compound available earnings into the depositant account * @notice Pre-condition: the depositant should approve (allow to spend) the TIME tokens to deposit. Also, if they want to anticipate yield, they must enabled anticipation before the function call * @param timeAmount (Optional. Can be zero) The amount of TIME Tokens an investor wants to continue receiveing or anticipating earnings * @param mustAnticipateTime Informs whether an investor wants to anticipate earnings to be compounded **/ function compound(uint256 timeAmount, bool mustAnticipateTime) public nonReentrant update(true) { require(deposited[msg.sender] > 0, "Depositant does not have any amount to compound"); if (mustAnticipateTime) require(anticipationEnabled[msg.sender], "Depositant is not enabled to anticipate TIME"); if (timeAmount > 0) { ITimeToken timeToken = ITimeToken(TIME_TOKEN_ADDRESS); require(timeToken.allowance(msg.sender, address(this)) >= timeAmount, "Should allow TIME to be spent"); try timeToken.transferFrom(msg.sender, address(this), timeAmount) { totalDepositedTime += timeAmount; if (mustAnticipateTime) { _anticipateEarnings(timeAmount); } else { remainingTime[msg.sender] += timeAmount; } } catch { revert("Problem when transferring TIME"); } } } /** * @dev Deposit ETH and TIME in order to earn interest over them * @notice Pre-condition: the depositant should approve (allow to spend) the TIME tokens to deposit. Also, if they want to anticipate yield, they must enabled anticipation before the function call * @param timeAmount The amount in TIME an investor should deposit * @param mustAnticipateTime Informs if the depositant wants to anticipate the yield or not **/ function deposit(uint256 timeAmount, bool mustAnticipateTime) public payable nonReentrant update(false) { require(msg.value > 0, "Please deposit some amount"); require(timeAmount > 0, "Please deposit some TIME amount"); if (mustAnticipateTime) require(anticipationEnabled[msg.sender], "Depositant is not enabled to anticipate TIME"); ITimeToken timeToken = ITimeToken(TIME_TOKEN_ADDRESS); require(timeToken.allowance(msg.sender, address(this)) >= timeAmount, "Should allow TIME to be spent"); uint256 comission = msg.value / 50; uint256 depositAmount = msg.value - comission; deposited[msg.sender] += depositAmount; currentDepositedNative += depositAmount; totalDepositedNative += msg.value; try timeToken.transferFrom(msg.sender, address(this), timeAmount) { totalDepositedTime += timeAmount; if (mustAnticipateTime) { _anticipateEarnings(timeAmount); } else { remainingTime[msg.sender] += timeAmount; } _payComission(comission); } catch { revert("Problem when transferring TIME"); } } /** * @dev Public call for earning interest for Employer (if it has any to receive) **/ function earn() public nonReentrant { _earnInterestAndAllocate(ITimeToken(TIME_TOKEN_ADDRESS)); } /** * @dev Enable an investor to anticipate yields using TIME tokens **/ function enableAnticipation() public payable nonReentrant update(false) { require(!anticipationEnabled[msg.sender], "Address is already enabled for TIME anticipation"); uint256 fee = ITimeToken(TIME_TOKEN_ADDRESS).fee() * 10; require(msg.value >= fee, "Please provide the enough fee amount to enable TIME anticipation"); uint256 comission = fee / 5; _payComission(comission); totalEarnedNative += msg.value; availableNative += (msg.value - comission); anticipationEnabled[msg.sender] = true; } /** * @dev Inform the current Return Of Investment the Employer contract is giving * @return roi The current amount returned to investors **/ function getCurrentROI() public view returns (uint256) { if (availableNative == 0) return 0; if (currentDepositedNative == 0) return 10**50; return ((availableNative * FACTOR) / currentDepositedNative); } /** * @dev Inform the current Return Of Investment per Block the Employer contract is giving * @return roi The current amount per block returned to investors **/ function getCurrentROIPerBlock() public view returns (uint256) { return ((getCurrentROI() * FACTOR) / ONE_YEAR); } /** * @dev Inform the historical Return Of Investment the Employer contract is giving * @return roi The historical amount returned to investors **/ function getROI() public view returns (uint256) { if (totalEarnedNative == 0) return 0; if (totalDepositedNative == 0) return 10**50; return ((totalEarnedNative * FACTOR) / totalDepositedNative); } /** * @dev Inform the historical Return Of Investment per Block the Employer contract is giving * @return roi The historical amount per block returned to investors **/ function getROIPerBlock() public view returns (uint256) { return ((getROI() * FACTOR) / ONE_YEAR); } /** * @dev Inform the earnings an investor can anticipate (without waiting for a given time) according to the informed TIME amount * @param depositant Address of the depositant account * @param anticipatedTime Amount of TIME informed by a depositant as anticipation * @return earnings Amount a depositant can anticipate **/ function queryAnticipatedEarnings(address depositant, uint256 anticipatedTime) public view returns (uint256) { return ((availableNative * anticipatedTime * deposited[depositant]) / ((ONE_YEAR * currentDepositedNative) + 1)); } /** * @dev Inform the earnings an investor can currently receive * @param depositant Address of the depositant account * @return earnings Amount a depositant can receive **/ function queryEarnings(address depositant) public view returns (uint256) { uint256 numberOfBlocks = (block.number - lastBlock[depositant]) * D; if (numberOfBlocks <= remainingTime[depositant]) { return ((availableNative * numberOfBlocks * deposited[depositant]) / ((ONE_YEAR * currentDepositedNative) + 1)); } else { return ((availableNative * remainingTime[depositant] * deposited[depositant]) / ((ONE_YEAR * currentDepositedNative) + 1)); } } /** * @dev Withdraw earnings (only) of a depositant (msg.sender) * @notice All functions are in modifiers. It only checks if the depositant has earning something **/ function withdrawEarnings() public nonReentrant update(false) { require(earned[msg.sender] > 0, "Depositant does not have any earnings to withdraw"); } /** * @dev Withdraw all deposited values of a depositant (msg.sender) **/ function withdrawDeposit() public nonReentrant update(false) { _withdraw(); } /** * @dev Withdraw all deposited values of a depositant (msg.sender) without any check for earnings (emergency) **/ function withdrawDepositEmergency() public nonReentrant { _withdraw(); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface ITimeToken { function DEVELOPER_ADDRESS() external returns (address); function BASE_FEE() external returns (uint256); function COMISSION_RATE() external returns (uint256); function SHARE_RATE() external returns (uint256); function TIME_BASE_LIQUIDITY() external returns (uint256); function TIME_BASE_FEE() external returns (uint256); function TOLERANCE() external returns (uint256); function dividendPerToken() external returns (uint256); function firstBlock() external returns (uint256); function liquidityFactorNative() external returns (uint256); function liquidityFactorTime() external returns (uint256); function numberOfHolders() external returns (uint256); function numberOfMiners() external returns (uint256); function sharedBalance() external returns (uint256); function poolBalance() external returns (uint256); function totalMinted() external returns (uint256); function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function burn(uint256 amount) external; function transfer(address to, uint256 amount) external returns (bool success); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool); function increaseAllowance(address spender, uint256 addedValue) external returns (bool); function transferFrom( address from, address to, uint256 amount ) external returns (bool success); function averageMiningRate() external view returns (uint256); function donateEth() external payable; function enableMining() external payable; function enableMiningWithTimeToken() external; function fee() external view returns (uint256); function feeInTime() external view returns (uint256); function mining() external; function saveTime() external payable returns (bool success); function spendTime(uint256 timeAmount) external returns (bool success); function swapPriceNative(uint256 amountNative) external view returns (uint256); function swapPriceTimeInverse(uint256 amountTime) external view returns (uint256); function accountShareBalance(address account) external view returns (uint256); function withdrawableShareBalance(address account) external view returns (uint256); function withdrawShare() external; }
{ "evmVersion": "byzantium", "optimizer": { "enabled": true, "runs": 2000000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"timeTokenAddress_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"D","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEVELOPER_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FACTOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FIRST_BLOCK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ONE_YEAR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TIME_TOKEN_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"timeAmount","type":"uint256"}],"name":"anticipate","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"anticipationEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"anticipationFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"availableNative","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"timeAmount","type":"uint256"},{"internalType":"bool","name":"mustAnticipateTime","type":"bool"}],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentDepositedNative","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"timeAmount","type":"uint256"},{"internalType":"bool","name":"mustAnticipateTime","type":"bool"}],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"deposited","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableAnticipation","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getCurrentROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentROIPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getROIPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"depositant","type":"address"},{"internalType":"uint256","name":"anticipatedTime","type":"uint256"}],"name":"queryAnticipatedEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"depositant","type":"address"}],"name":"queryEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"remainingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAnticipatedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurnedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDepositedNative","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDepositedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEarnedNative","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTimeSaved","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawDepositEmergency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEarnings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e06040523480156200001157600080fd5b5060405162003963380380620039638339810160408190526200003491620000f9565b4360a052600160a060020a0381166c010000000000000000000000008102608052604080517fc3497b09000000000000000000000000000000000000000000000000000000008152905163c3497b09916004808201926020929091908290030181600087803b158015620000a757600080fd5b505af1158015620000bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e2919062000129565b620000ef90603462000142565b60c0525062000187565b6000602082840312156200010b578081fd5b8151600160a060020a038116811462000122578182fd5b9392505050565b6000602082840312156200013b578081fd5b5051919050565b600081600019048311821515161562000182577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b500290565b6080516c01000000000000000000000000900460a05160c05161372c62000237600039600081816108b701528181610aaf01528181610b3701528181610bc60152818161216b015261225d015260006108db015260008181610256015281816107cf0152818161096801528181610e3a01528181611078015281816113220152818161175b01528181611c2201528181611e600152818161206e015281816122080152612a8e015261372c6000f3fe608060405260043610610239576000357c0100000000000000000000000000000000000000000000000000000000900480638576ea3a1161013a578063b841a3e8116100cd578063cebca0601161009c578063d3bff50c11610081578063d3bff50c146105c5578063d90bb24c146105e5578063e6f2a029146105fa576102d8565b8063cebca0601461059b578063d389800f146105b0576102d8565b8063b841a3e81461053e578063bd94319c14610553578063bfde682c14610568578063cb13cddb1461057b576102d8565b80639a408321116101095780639a408321146104ec578063aa436105146104ff578063aefb79f914610514578063b73c6ce914610529576102d8565b80638576ea3a146104755780638d88f48d146104a257806393b8840e146104b7578063952ca92c146104cc576102d8565b806335815b95116101cd578063454e66c81161019c57806350a8242b1161018157806350a8242b1461042d578063561acaf01461044d5780637d523aad14610455576102d8565b8063454e66c8146103f6578063456ca60c14610418576102d8565b806335815b951461032e578063377d9088146103ac57806337de6e20146103c15780634306cc3f146103d6576102d8565b806316d3bfbb1161020957806316d3bfbb14610358578063249b16de1461036d578063269d7b051461038257806332f23fe114610397576102d8565b80628cc262146102e35780630d814d04146103195780630f529ba21461032e578063117df08814610343576102d8565b366102d8573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102d657600034116102be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613474565b60405180910390fd5b34600160008282546102d09190613614565b90915550505b005b36156102d657600080fd5b3480156102ef57600080fd5b506103036102fe366004612ff1565b61060f565b604051610310919061360b565b60405180910390f35b34801561032557600080fd5b50610303610621565b34801561033a57600080fd5b50610303610627565b34801561034f57600080fd5b506102d6610633565b34801561036457600080fd5b506103036108b5565b34801561037957600080fd5b506103036108d9565b34801561038e57600080fd5b506103036108fd565b3480156103a357600080fd5b5061030361095e565b3480156103b857600080fd5b50610303610964565b3480156103cd57600080fd5b50610303610a2b565b3480156103e257600080fd5b506103036103f1366004612ff1565b610a31565b34801561040257600080fd5b5061040b610baa565b60405161031091906130af565b34801561042457600080fd5b50610303610bc2565b34801561043957600080fd5b506102d6610448366004613080565b610c00565b6102d6611160565b34801561046157600080fd5b50610303610470366004612ff1565b6114ba565b34801561048157600080fd5b50610495610490366004612ff1565b6114cc565b6040516103109190613128565b3480156104ae57600080fd5b506103036114e1565b3480156104c357600080fd5b506103036114e7565b3480156104d857600080fd5b506103036104e7366004612ff1565b6114ed565b6102d66104fa366004613080565b6114ff565b34801561050b57600080fd5b50610303611a09565b34801561052057600080fd5b50610303611a0f565b34801561053557600080fd5b506102d6611a60565b34801561054a57600080fd5b50610303611c1a565b34801561055f57600080fd5b5061040b611c20565b6102d6610576366004613050565b611c44565b34801561058757600080fd5b50610303610596366004612ff1565b612155565b3480156105a757600080fd5b50610303612167565b3480156105bc57600080fd5b506102d661219b565b3480156105d157600080fd5b506103036105e036600461300b565b612256565b3480156105f157600080fd5b506103036122e0565b34801561060657600080fd5b506102d66122e6565b600b6020526000908152604090205481565b60065481565b670de0b6b3a764000081565b60005460ff1615610670576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001178155308152600c60205260408120541580156106b457504315155b156106cc57306000908152600c602052604090204390555b336000908152600c60205260409020541580156106e857504315155b806107005750336000908152600d6020526040902054155b1561071857336000908152600c602052604090204390555b306000908152600c6020526040812054670de0b6b3a76400009061073c90436136a2565b6107469190613665565b336000908152600c602052604081205491925090670de0b6b3a76400009061076e90436136a2565b6107789190613665565b905061078333610a31565b336000908152600b6020526040812080549091906107a2908490613614565b909155506107b09050612352565b82156107c4576107bf3361248f565b6107cd565b6107cd33612607565b7f00000000000000000000000000000000000000000000000000000000000000006107f781612746565b306000908152600d602052604090205483111561082157306000908152600d602052604090205492505b336000908152600d602052604090205482111561084b57336000908152600d602052604090205491505b821561085c5761085c8130856127ae565b811561086d5761086d8133846127ae565b5050306000908152600c602052604080822043908190553383529082205580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600754600014156109125750600061095b565b600554610935575074446c3b15f9926687d2c40534fdb56400000000000061095b565b600554670de0b6b3a764000060075461094e9190613665565b610958919061362c565b90505b90565b60025481565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddca3f436040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156109e857600080fd5b505afa1580156109fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a209190613068565b61095890600b613665565b60085481565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600c60205260408120548190670de0b6b3a764000090610a6d90436136a2565b610a779190613665565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600d60205260409020549091508111610b2e57600254610ad3907f0000000000000000000000000000000000000000000000000000000000000000613665565b610ade906001613614565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600a6020526040902054600154610b12908490613665565b610b1c9190613665565b610b26919061362c565b915050610ba5565b600254610b5b907f0000000000000000000000000000000000000000000000000000000000000000613665565b610b66906001613614565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600a6020908152604080832054600d90925290912054600154610b129190613665565b919050565b73731591207791a93fb0ec481186fb086e16a7d6d081565b60007f0000000000000000000000000000000000000000000000000000000000000000670de0b6b3a7640000610bf66108fd565b61094e9190613665565b60005460ff1615610c3d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081178255308252600c602052604090912054158015610c8457504315155b15610c9c57306000908152600c602052604090204390555b336000908152600c6020526040902054158015610cb857504315155b80610cd05750336000908152600d6020526040902054155b15610ce857336000908152600c602052604090204390555b306000908152600c6020526040812054670de0b6b3a764000090610d0c90436136a2565b610d169190613665565b336000908152600c602052604081205491925090670de0b6b3a764000090610d3e90436136a2565b610d489190613665565b9050610d5333610a31565b336000908152600b602052604081208054909190610d72908490613614565b9091555050336000908152600a6020526040902054610dbd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613326565b8315610e0c573360009081526009602052604090205460ff16610e0c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b5906131c7565b8415611059576040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000090869073ffffffffffffffffffffffffffffffffffffffff83169063dd62ed3e90610e8a90339030906004016130d0565b60206040518083038186803b158015610ea257600080fd5b505afa158015610eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eda9190613068565b1015610f12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b5906132b8565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216906323b872dd90610f6890339030908b906004016130f7565b602060405180830381600087803b158015610f8257600080fd5b505af1925050508015610fd0575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610fcd91810190613034565b60015b611006576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613576565b5085600660008282546110199190613614565b909155505084156110325761102d86612a06565b611057565b336000908152600d602052604081208054889290611051908490613614565b90915550505b505b821561106d576110683361248f565b611076565b61107633612607565b7f00000000000000000000000000000000000000000000000000000000000000006110a081612746565b306000908152600d60205260409020548311156110ca57306000908152600d602052604090205492505b336000908152600d60205260409020548211156110f457336000908152600d602052604090205491505b8215611105576111058130856127ae565b8115611116576111168133846127ae565b5050306000908152600c602052604080822043908190553383529082205580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905550505050565b60005460ff161561119d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001178155308152600c60205260408120541580156111e157504315155b156111f957306000908152600c602052604090204390555b336000908152600c602052604090205415801561121557504315155b8061122d5750336000908152600d6020526040902054155b1561124557336000908152600c602052604090204390555b306000908152600c6020526040812054670de0b6b3a76400009061126990436136a2565b6112739190613665565b336000908152600c602052604081205491925090670de0b6b3a76400009061129b90436136a2565b6112a59190613665565b90506112b033610a31565b336000908152600b6020526040812080549091906112cf908490613614565b90915550503360009081526009602052604090205460ff161561131e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b5906134ab565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddca3f436040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156113a257600080fd5b505afa1580156113b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113da9190613068565b6113e590600a613665565b905080341015611421576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b5906135ad565b600061142e60058361362c565b905061143981612a74565b346007600082825461144b9190613614565b9091555061145b905081346136a2565b6001600082825461146c9190613614565b909155505033600090815260096020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055505082156107c4576107bf3361248f565b600d6020526000908152604090205481565b60096020526000908152604090205460ff1681565b60075481565b60045481565b600c6020526000908152604090205481565b60005460ff161561153c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001178155308152600c602052604081205415801561158057504315155b1561159857306000908152600c602052604090204390555b336000908152600c60205260409020541580156115b457504315155b806115cc5750336000908152600d6020526040902054155b156115e457336000908152600c602052604090204390555b306000908152600c6020526040812054670de0b6b3a76400009061160890436136a2565b6116129190613665565b336000908152600c602052604081205491925090670de0b6b3a76400009061163a90436136a2565b6116449190613665565b905061164f33610a31565b336000908152600b60205260408120805490919061166e908490613614565b9091555050346116aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613474565b600085116116e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613508565b8315611733573360009081526009602052604090205460ff16611733576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b5906131c7565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000090869073ffffffffffffffffffffffffffffffffffffffff83169063dd62ed3e906117ab90339030906004016130d0565b60206040518083038186803b1580156117c357600080fd5b505afa1580156117d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117fb9190613068565b1015611833576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b5906132b8565b600061184060323461362c565b9050600061184e82346136a2565b336000908152600a6020526040812080549293508392909190611872908490613614565b92505081905550806002600082825461188b9190613614565b9250508190555034600560008282546118a49190613614565b90915550506040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416906323b872dd906118ff90339030908d906004016130f7565b602060405180830381600087803b15801561191957600080fd5b505af1925050508015611967575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261196491810190613034565b60015b61199d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613576565b5087600660008282546119b09190613614565b909155505086156119c9576119c488612a06565b6119ee565b336000908152600d6020526040812080548a92906119e8908490613614565b90915550505b6119f782612a74565b505050821561106d576110683361248f565b60035481565b600060015460001415611a245750600061095b565b600254611a47575074446c3b15f9926687d2c40534fdb56400000000000061095b565b600254670de0b6b3a764000060015461094e9190613665565b60005460ff1615611a9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001178155308152600c6020526040812054158015611ae157504315155b15611af957306000908152600c602052604090204390555b336000908152600c6020526040902054158015611b1557504315155b80611b2d5750336000908152600d6020526040902054155b15611b4557336000908152600c602052604090204390555b306000908152600c6020526040812054670de0b6b3a764000090611b6990436136a2565b611b739190613665565b336000908152600c602052604081205491925090670de0b6b3a764000090611b9b90436136a2565b611ba59190613665565b9050611bb033610a31565b336000908152600b602052604081208054909190611bcf908490613614565b9091555050336000908152600b60205260409020546107b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613383565b60015481565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005460ff1615611c81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001178155308152600c6020526040812054158015611cc557504315155b15611cdd57306000908152600c602052604090204390555b336000908152600c6020526040902054158015611cf957504315155b80611d115750336000908152600d6020526040902054155b15611d2957336000908152600c602052604090204390555b306000908152600c6020526040812054670de0b6b3a764000090611d4d90436136a2565b611d579190613665565b336000908152600c602052604081205491925090670de0b6b3a764000090611d7f90436136a2565b611d899190613665565b9050611d9433610a31565b336000908152600b602052604081208054909190611db3908490613614565b9091555050336000908152600a6020526040902054611dfe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b59061325b565b60008411611e38576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613508565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000090859073ffffffffffffffffffffffffffffffffffffffff83169063dd62ed3e90611eb090339030906004016130d0565b60206040518083038186803b158015611ec857600080fd5b505afa158015611edc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f009190613068565b1015611f38576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b5906132b8565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216906323b872dd90611f8e90339030908a906004016130f7565b602060405180830381600087803b158015611fa857600080fd5b505af1925050508015611ff6575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611ff391810190613034565b60015b61202c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613576565b50846006600082825461203f9190613614565b9091555061204e905085612a06565b5082156120635761205e3361248f565b61206c565b61206c33612607565b7f000000000000000000000000000000000000000000000000000000000000000061209681612746565b306000908152600d60205260409020548311156120c057306000908152600d602052604090205492505b336000908152600d60205260409020548211156120ea57336000908152600d602052604090205491505b82156120fb576120fb8130856127ae565b811561210c5761210c8133846127ae565b5050306000908152600c602052604080822043908190553383529082205580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055505050565b600a6020526000908152604090205481565b60007f0000000000000000000000000000000000000000000000000000000000000000670de0b6b3a7640000610bf6611a0f565b60005460ff16156121d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561222c7f0000000000000000000000000000000000000000000000000000000000000000612746565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b60006002547f00000000000000000000000000000000000000000000000000000000000000006122869190613665565b612291906001613614565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600a60205260409020546001546122c5908590613665565b6122cf9190613665565b6122d9919061362c565b9392505050565b60055481565b60005460ff1615612323576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561222c5b336000908152600a6020526040902054612398576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b5906133e0565b336000908152600a602052604090205460025410156123e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613133565b336000908152600d60205260408082205430835290822080549192909161240b908490613614565b9091555050336000908152600d60209081526040808320839055600a90915281205460028054919290916124409084906136a2565b9091555050336000818152600a602052604080822054905181156108fc0292818181858888f1935050505015801561247c573d6000803e3d6000fd5b50336000908152600a6020526040812055565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b6020526040902054156126045773ffffffffffffffffffffffffffffffffffffffff81166000908152600b6020526040902054600154101561251b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613190565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b602052604081205460018054919290916125549084906136a2565b909155505073ffffffffffffffffffffffffffffffffffffffff81166000908152600b6020908152604080832054600a909252822080549192909161259a908490613614565b909155505073ffffffffffffffffffffffffffffffffffffffff81166000908152600b602052604081205460028054919290916125d8908490613614565b909155505073ffffffffffffffffffffffffffffffffffffffff81166000908152600b60205260408120555b50565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b6020526040902054156126045773ffffffffffffffffffffffffffffffffffffffff81166000908152600b60205260409020546001541015612693576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613190565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b602052604081205460018054919290916126cc9084906136a2565b909155505073ffffffffffffffffffffffffffffffffffffffff81166000818152600b602052604080822054905181156108fc0292818181858888f1935050505015801561271e573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff166000908152600b6020526040812055565b600061275182612ba2565b905080600760008282546127659190613614565b9091555061277f90508261277a600a8461362c565b612d01565b61278a600a8261362c565b61279490826136a2565b600160008282546127a59190613614565b90915550505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416906370a08231906128009030906004016130af565b60206040518083038186803b15801561281857600080fd5b505afa15801561282c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128509190613068565b8111156128fc576040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416906370a08231906128a99030906004016130af565b60206040518083038186803b1580156128c157600080fd5b505afa1580156128d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f99190613068565b90505b6040517f42966c6800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416906342966c689061294e90849060040161360b565b600060405180830381600087803b15801561296857600080fd5b505af1925050508015612979575060015b6129af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b59061353f565b80600460008282546129c19190613614565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000908152600d6020526040812080548392906129fb9084906136a2565b90915550505b505050565b612a103382612256565b336000908152600b602052604081208054909190612a2f908490613614565b925050819055508060036000828254612a489190613614565b9091555050306000908152600d602052604081208054839290612a6c908490613614565b909155505050565b8015612604576000612a8760048361362c565b9050612ab37f000000000000000000000000000000000000000000000000000000000000000082612d01565b60405173731591207791a93fb0ec481186fb086e16a7d6d09082156108fc029083906000818181858888f19350505050158015612af4573d6000803e3d6000fd5b508060016000828254612b079190613614565b925050819055508060076000828254612b209190613614565b909155505041612b715760405173731591207791a93fb0ec481186fb086e16a7d6d09082156108fc029083906000818181858888f19350505050158015612b6b573d6000803e3d6000fd5b50612b9e565b604051419082156108fc029083906000818181858888f19350505050158015612a01573d6000803e3d6000fd5b5050565b6040517f901362bd00000000000000000000000000000000000000000000000000000000815260009030803191839173ffffffffffffffffffffffffffffffffffffffff86169163901362bd91612bfb916004016130af565b60206040518083038186803b158015612c1357600080fd5b505afa158015612c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4b9190613068565b1115612cfb578273ffffffffffffffffffffffffffffffffffffffff1663243496716040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015612cb557600080fd5b505af1925050508015612cc6575060015b612cd05750610ba5565b612cdb8130316136a2565b9150612cf0612ceb60028461362c565b612a74565b610b2660028361362c565b50610ba5565b8015612b9e573031811115612d42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b59061343d565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190612d979030906004016130af565b60206040518083038186803b158015612daf57600080fd5b505afa158015612dc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de79190613068565b90508273ffffffffffffffffffffffffffffffffffffffff166310e7b9f2836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016020604051808303818588803b158015612e4d57600080fd5b505af193505050508015612e9c575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252612e9991810190613034565b60015b612ed2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b5906132ef565b506000818473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401612f2b91906130af565b60206040518083038186803b158015612f4357600080fd5b505afa158015612f57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f7b9190613068565b612f8591906136a2565b306000908152600d6020526040812080549293508392909190612fa9908490613614565b925050819055508060086000828254612fc29190613614565b909155505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ba557600080fd5b600060208284031215613002578081fd5b6122d982612fcd565b6000806040838503121561301d578081fd5b61302683612fcd565b946020939093013593505050565b600060208284031215613045578081fd5b81516122d9816136e8565b600060208284031215613061578081fd5b5035919050565b600060208284031215613079578081fd5b5051919050565b60008060408385031215613092578182fd5b8235915060208301356130a4816136e8565b809150509250929050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b901515815260200190565b60208082526022908201527f4e6f7420656e6f75676820696e20636f6e747261637420746f2077697468647260408201527f6177000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601d908201527f4e6f7420656e6f75676820616d6f756e7420746f207472616e73666572000000604082015260600190565b6020808252602c908201527f4465706f736974616e74206973206e6f7420656e61626c656420746f20616e7460408201527f696369706174652054494d450000000000000000000000000000000000000000606082015260800190565b60208082526013908201527f4f7065726174696f6e206973206c6f636b656400000000000000000000000000604082015260600190565b60208082526031908201527f4465706f736974616e7420646f6573206e6f74206861766520616e7920616d6f60408201527f756e7420746f20616e7469636970617465000000000000000000000000000000606082015260800190565b6020808252601d908201527f53686f756c6420616c6c6f772054494d4520746f206265207370656e74000000604082015260600190565b60208082526015908201527f4e6f742061626c6520746f20736176652054494d450000000000000000000000604082015260600190565b6020808252602f908201527f4465706f736974616e7420646f6573206e6f74206861766520616e7920616d6f60408201527f756e7420746f20636f6d706f756e640000000000000000000000000000000000606082015260800190565b60208082526031908201527f4465706f736974616e7420646f6573206e6f74206861766520616e792065617260408201527f6e696e677320746f207769746864726177000000000000000000000000000000606082015260800190565b6020808252602f908201527f4465706f736974616e7420646f6573206e6f74206861766520616e7920616d6f60408201527f756e7420746f2077697468647261770000000000000000000000000000000000606082015260800190565b6020808252601e908201527f4e6f7420656e6f75676820616d6f756e7420746f20736176652054494d450000604082015260600190565b6020808252601a908201527f506c65617365206465706f73697420736f6d6520616d6f756e74000000000000604082015260600190565b60208082526030908201527f4164647265737320697320616c726561647920656e61626c656420666f72205460408201527f494d4520616e74696369706174696f6e00000000000000000000000000000000606082015260800190565b6020808252601f908201527f506c65617365206465706f73697420736f6d652054494d4520616d6f756e7400604082015260600190565b60208082526013908201527f556e61626c6520746f206275726e2054494d4500000000000000000000000000604082015260600190565b6020808252601e908201527f50726f626c656d207768656e207472616e7366657272696e672054494d450000604082015260600190565b602080825260409082018190527f506c656173652070726f766964652074686520656e6f7567682066656520616d908201527f6f756e7420746f20656e61626c652054494d4520616e74696369706174696f6e606082015260800190565b90815260200190565b60008219821115613627576136276136b9565b500190565b600082613660577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561369d5761369d6136b9565b500290565b6000828210156136b4576136b46136b9565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b801515811461260457600080fdfea26469706673582212206d2c1fac4629eff89ef72b9b8f9938e6f2c6313915e84dbb9e04f62b1161b4d464736f6c634300080000330000000000000000000000000f8f39b92776d9136408280c7209bebe4351123b
Deployed Bytecode
0x608060405260043610610239576000357c0100000000000000000000000000000000000000000000000000000000900480638576ea3a1161013a578063b841a3e8116100cd578063cebca0601161009c578063d3bff50c11610081578063d3bff50c146105c5578063d90bb24c146105e5578063e6f2a029146105fa576102d8565b8063cebca0601461059b578063d389800f146105b0576102d8565b8063b841a3e81461053e578063bd94319c14610553578063bfde682c14610568578063cb13cddb1461057b576102d8565b80639a408321116101095780639a408321146104ec578063aa436105146104ff578063aefb79f914610514578063b73c6ce914610529576102d8565b80638576ea3a146104755780638d88f48d146104a257806393b8840e146104b7578063952ca92c146104cc576102d8565b806335815b95116101cd578063454e66c81161019c57806350a8242b1161018157806350a8242b1461042d578063561acaf01461044d5780637d523aad14610455576102d8565b8063454e66c8146103f6578063456ca60c14610418576102d8565b806335815b951461032e578063377d9088146103ac57806337de6e20146103c15780634306cc3f146103d6576102d8565b806316d3bfbb1161020957806316d3bfbb14610358578063249b16de1461036d578063269d7b051461038257806332f23fe114610397576102d8565b80628cc262146102e35780630d814d04146103195780630f529ba21461032e578063117df08814610343576102d8565b366102d8573373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000f8f39b92776d9136408280c7209bebe4351123b16146102d657600034116102be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613474565b60405180910390fd5b34600160008282546102d09190613614565b90915550505b005b36156102d657600080fd5b3480156102ef57600080fd5b506103036102fe366004612ff1565b61060f565b604051610310919061360b565b60405180910390f35b34801561032557600080fd5b50610303610621565b34801561033a57600080fd5b50610303610627565b34801561034f57600080fd5b506102d6610633565b34801561036457600080fd5b506103036108b5565b34801561037957600080fd5b506103036108d9565b34801561038e57600080fd5b506103036108fd565b3480156103a357600080fd5b5061030361095e565b3480156103b857600080fd5b50610303610964565b3480156103cd57600080fd5b50610303610a2b565b3480156103e257600080fd5b506103036103f1366004612ff1565b610a31565b34801561040257600080fd5b5061040b610baa565b60405161031091906130af565b34801561042457600080fd5b50610303610bc2565b34801561043957600080fd5b506102d6610448366004613080565b610c00565b6102d6611160565b34801561046157600080fd5b50610303610470366004612ff1565b6114ba565b34801561048157600080fd5b50610495610490366004612ff1565b6114cc565b6040516103109190613128565b3480156104ae57600080fd5b506103036114e1565b3480156104c357600080fd5b506103036114e7565b3480156104d857600080fd5b506103036104e7366004612ff1565b6114ed565b6102d66104fa366004613080565b6114ff565b34801561050b57600080fd5b50610303611a09565b34801561052057600080fd5b50610303611a0f565b34801561053557600080fd5b506102d6611a60565b34801561054a57600080fd5b50610303611c1a565b34801561055f57600080fd5b5061040b611c20565b6102d6610576366004613050565b611c44565b34801561058757600080fd5b50610303610596366004612ff1565b612155565b3480156105a757600080fd5b50610303612167565b3480156105bc57600080fd5b506102d661219b565b3480156105d157600080fd5b506103036105e036600461300b565b612256565b3480156105f157600080fd5b506103036122e0565b34801561060657600080fd5b506102d66122e6565b600b6020526000908152604090205481565b60065481565b670de0b6b3a764000081565b60005460ff1615610670576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001178155308152600c60205260408120541580156106b457504315155b156106cc57306000908152600c602052604090204390555b336000908152600c60205260409020541580156106e857504315155b806107005750336000908152600d6020526040902054155b1561071857336000908152600c602052604090204390555b306000908152600c6020526040812054670de0b6b3a76400009061073c90436136a2565b6107469190613665565b336000908152600c602052604081205491925090670de0b6b3a76400009061076e90436136a2565b6107789190613665565b905061078333610a31565b336000908152600b6020526040812080549091906107a2908490613614565b909155506107b09050612352565b82156107c4576107bf3361248f565b6107cd565b6107cd33612607565b7f0000000000000000000000000f8f39b92776d9136408280c7209bebe4351123b6107f781612746565b306000908152600d602052604090205483111561082157306000908152600d602052604090205492505b336000908152600d602052604090205482111561084b57336000908152600d602052604090205491505b821561085c5761085c8130856127ae565b811561086d5761086d8133846127ae565b5050306000908152600c602052604080822043908190553383529082205580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555050565b7f000000000000000000000000000000000000000000089a49213386742400000081565b7f0000000000000000000000000000000000000000000000000000000001a1044b81565b6000600754600014156109125750600061095b565b600554610935575074446c3b15f9926687d2c40534fdb56400000000000061095b565b600554670de0b6b3a764000060075461094e9190613665565b610958919061362c565b90505b90565b60025481565b60007f0000000000000000000000000f8f39b92776d9136408280c7209bebe4351123b73ffffffffffffffffffffffffffffffffffffffff1663ddca3f436040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156109e857600080fd5b505afa1580156109fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a209190613068565b61095890600b613665565b60085481565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600c60205260408120548190670de0b6b3a764000090610a6d90436136a2565b610a779190613665565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600d60205260409020549091508111610b2e57600254610ad3907f000000000000000000000000000000000000000000089a492133867424000000613665565b610ade906001613614565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600a6020526040902054600154610b12908490613665565b610b1c9190613665565b610b26919061362c565b915050610ba5565b600254610b5b907f000000000000000000000000000000000000000000089a492133867424000000613665565b610b66906001613614565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600a6020908152604080832054600d90925290912054600154610b129190613665565b919050565b73731591207791a93fb0ec481186fb086e16a7d6d081565b60007f000000000000000000000000000000000000000000089a492133867424000000670de0b6b3a7640000610bf66108fd565b61094e9190613665565b60005460ff1615610c3d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081178255308252600c602052604090912054158015610c8457504315155b15610c9c57306000908152600c602052604090204390555b336000908152600c6020526040902054158015610cb857504315155b80610cd05750336000908152600d6020526040902054155b15610ce857336000908152600c602052604090204390555b306000908152600c6020526040812054670de0b6b3a764000090610d0c90436136a2565b610d169190613665565b336000908152600c602052604081205491925090670de0b6b3a764000090610d3e90436136a2565b610d489190613665565b9050610d5333610a31565b336000908152600b602052604081208054909190610d72908490613614565b9091555050336000908152600a6020526040902054610dbd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613326565b8315610e0c573360009081526009602052604090205460ff16610e0c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b5906131c7565b8415611059576040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000f8f39b92776d9136408280c7209bebe4351123b90869073ffffffffffffffffffffffffffffffffffffffff83169063dd62ed3e90610e8a90339030906004016130d0565b60206040518083038186803b158015610ea257600080fd5b505afa158015610eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eda9190613068565b1015610f12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b5906132b8565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216906323b872dd90610f6890339030908b906004016130f7565b602060405180830381600087803b158015610f8257600080fd5b505af1925050508015610fd0575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610fcd91810190613034565b60015b611006576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613576565b5085600660008282546110199190613614565b909155505084156110325761102d86612a06565b611057565b336000908152600d602052604081208054889290611051908490613614565b90915550505b505b821561106d576110683361248f565b611076565b61107633612607565b7f0000000000000000000000000f8f39b92776d9136408280c7209bebe4351123b6110a081612746565b306000908152600d60205260409020548311156110ca57306000908152600d602052604090205492505b336000908152600d60205260409020548211156110f457336000908152600d602052604090205491505b8215611105576111058130856127ae565b8115611116576111168133846127ae565b5050306000908152600c602052604080822043908190553383529082205580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905550505050565b60005460ff161561119d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001178155308152600c60205260408120541580156111e157504315155b156111f957306000908152600c602052604090204390555b336000908152600c602052604090205415801561121557504315155b8061122d5750336000908152600d6020526040902054155b1561124557336000908152600c602052604090204390555b306000908152600c6020526040812054670de0b6b3a76400009061126990436136a2565b6112739190613665565b336000908152600c602052604081205491925090670de0b6b3a76400009061129b90436136a2565b6112a59190613665565b90506112b033610a31565b336000908152600b6020526040812080549091906112cf908490613614565b90915550503360009081526009602052604090205460ff161561131e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b5906134ab565b60007f0000000000000000000000000f8f39b92776d9136408280c7209bebe4351123b73ffffffffffffffffffffffffffffffffffffffff1663ddca3f436040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156113a257600080fd5b505afa1580156113b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113da9190613068565b6113e590600a613665565b905080341015611421576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b5906135ad565b600061142e60058361362c565b905061143981612a74565b346007600082825461144b9190613614565b9091555061145b905081346136a2565b6001600082825461146c9190613614565b909155505033600090815260096020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055505082156107c4576107bf3361248f565b600d6020526000908152604090205481565b60096020526000908152604090205460ff1681565b60075481565b60045481565b600c6020526000908152604090205481565b60005460ff161561153c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001178155308152600c602052604081205415801561158057504315155b1561159857306000908152600c602052604090204390555b336000908152600c60205260409020541580156115b457504315155b806115cc5750336000908152600d6020526040902054155b156115e457336000908152600c602052604090204390555b306000908152600c6020526040812054670de0b6b3a76400009061160890436136a2565b6116129190613665565b336000908152600c602052604081205491925090670de0b6b3a76400009061163a90436136a2565b6116449190613665565b905061164f33610a31565b336000908152600b60205260408120805490919061166e908490613614565b9091555050346116aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613474565b600085116116e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613508565b8315611733573360009081526009602052604090205460ff16611733576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b5906131c7565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000f8f39b92776d9136408280c7209bebe4351123b90869073ffffffffffffffffffffffffffffffffffffffff83169063dd62ed3e906117ab90339030906004016130d0565b60206040518083038186803b1580156117c357600080fd5b505afa1580156117d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117fb9190613068565b1015611833576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b5906132b8565b600061184060323461362c565b9050600061184e82346136a2565b336000908152600a6020526040812080549293508392909190611872908490613614565b92505081905550806002600082825461188b9190613614565b9250508190555034600560008282546118a49190613614565b90915550506040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416906323b872dd906118ff90339030908d906004016130f7565b602060405180830381600087803b15801561191957600080fd5b505af1925050508015611967575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261196491810190613034565b60015b61199d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613576565b5087600660008282546119b09190613614565b909155505086156119c9576119c488612a06565b6119ee565b336000908152600d6020526040812080548a92906119e8908490613614565b90915550505b6119f782612a74565b505050821561106d576110683361248f565b60035481565b600060015460001415611a245750600061095b565b600254611a47575074446c3b15f9926687d2c40534fdb56400000000000061095b565b600254670de0b6b3a764000060015461094e9190613665565b60005460ff1615611a9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001178155308152600c6020526040812054158015611ae157504315155b15611af957306000908152600c602052604090204390555b336000908152600c6020526040902054158015611b1557504315155b80611b2d5750336000908152600d6020526040902054155b15611b4557336000908152600c602052604090204390555b306000908152600c6020526040812054670de0b6b3a764000090611b6990436136a2565b611b739190613665565b336000908152600c602052604081205491925090670de0b6b3a764000090611b9b90436136a2565b611ba59190613665565b9050611bb033610a31565b336000908152600b602052604081208054909190611bcf908490613614565b9091555050336000908152600b60205260409020546107b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613383565b60015481565b7f0000000000000000000000000f8f39b92776d9136408280c7209bebe4351123b81565b60005460ff1615611c81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001178155308152600c6020526040812054158015611cc557504315155b15611cdd57306000908152600c602052604090204390555b336000908152600c6020526040902054158015611cf957504315155b80611d115750336000908152600d6020526040902054155b15611d2957336000908152600c602052604090204390555b306000908152600c6020526040812054670de0b6b3a764000090611d4d90436136a2565b611d579190613665565b336000908152600c602052604081205491925090670de0b6b3a764000090611d7f90436136a2565b611d899190613665565b9050611d9433610a31565b336000908152600b602052604081208054909190611db3908490613614565b9091555050336000908152600a6020526040902054611dfe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b59061325b565b60008411611e38576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613508565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000f8f39b92776d9136408280c7209bebe4351123b90859073ffffffffffffffffffffffffffffffffffffffff83169063dd62ed3e90611eb090339030906004016130d0565b60206040518083038186803b158015611ec857600080fd5b505afa158015611edc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f009190613068565b1015611f38576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b5906132b8565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216906323b872dd90611f8e90339030908a906004016130f7565b602060405180830381600087803b158015611fa857600080fd5b505af1925050508015611ff6575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611ff391810190613034565b60015b61202c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613576565b50846006600082825461203f9190613614565b9091555061204e905085612a06565b5082156120635761205e3361248f565b61206c565b61206c33612607565b7f0000000000000000000000000f8f39b92776d9136408280c7209bebe4351123b61209681612746565b306000908152600d60205260409020548311156120c057306000908152600d602052604090205492505b336000908152600d60205260409020548211156120ea57336000908152600d602052604090205491505b82156120fb576120fb8130856127ae565b811561210c5761210c8133846127ae565b5050306000908152600c602052604080822043908190553383529082205580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055505050565b600a6020526000908152604090205481565b60007f000000000000000000000000000000000000000000089a492133867424000000670de0b6b3a7640000610bf6611a0f565b60005460ff16156121d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561222c7f0000000000000000000000000f8f39b92776d9136408280c7209bebe4351123b612746565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b60006002547f000000000000000000000000000000000000000000089a4921338674240000006122869190613665565b612291906001613614565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600a60205260409020546001546122c5908590613665565b6122cf9190613665565b6122d9919061362c565b9392505050565b60055481565b60005460ff1615612323576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561222c5b336000908152600a6020526040902054612398576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b5906133e0565b336000908152600a602052604090205460025410156123e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613133565b336000908152600d60205260408082205430835290822080549192909161240b908490613614565b9091555050336000908152600d60209081526040808320839055600a90915281205460028054919290916124409084906136a2565b9091555050336000818152600a602052604080822054905181156108fc0292818181858888f1935050505015801561247c573d6000803e3d6000fd5b50336000908152600a6020526040812055565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b6020526040902054156126045773ffffffffffffffffffffffffffffffffffffffff81166000908152600b6020526040902054600154101561251b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613190565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b602052604081205460018054919290916125549084906136a2565b909155505073ffffffffffffffffffffffffffffffffffffffff81166000908152600b6020908152604080832054600a909252822080549192909161259a908490613614565b909155505073ffffffffffffffffffffffffffffffffffffffff81166000908152600b602052604081205460028054919290916125d8908490613614565b909155505073ffffffffffffffffffffffffffffffffffffffff81166000908152600b60205260408120555b50565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b6020526040902054156126045773ffffffffffffffffffffffffffffffffffffffff81166000908152600b60205260409020546001541015612693576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b590613190565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b602052604081205460018054919290916126cc9084906136a2565b909155505073ffffffffffffffffffffffffffffffffffffffff81166000818152600b602052604080822054905181156108fc0292818181858888f1935050505015801561271e573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff166000908152600b6020526040812055565b600061275182612ba2565b905080600760008282546127659190613614565b9091555061277f90508261277a600a8461362c565b612d01565b61278a600a8261362c565b61279490826136a2565b600160008282546127a59190613614565b90915550505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416906370a08231906128009030906004016130af565b60206040518083038186803b15801561281857600080fd5b505afa15801561282c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128509190613068565b8111156128fc576040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416906370a08231906128a99030906004016130af565b60206040518083038186803b1580156128c157600080fd5b505afa1580156128d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f99190613068565b90505b6040517f42966c6800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416906342966c689061294e90849060040161360b565b600060405180830381600087803b15801561296857600080fd5b505af1925050508015612979575060015b6129af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b59061353f565b80600460008282546129c19190613614565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000908152600d6020526040812080548392906129fb9084906136a2565b90915550505b505050565b612a103382612256565b336000908152600b602052604081208054909190612a2f908490613614565b925050819055508060036000828254612a489190613614565b9091555050306000908152600d602052604081208054839290612a6c908490613614565b909155505050565b8015612604576000612a8760048361362c565b9050612ab37f0000000000000000000000000f8f39b92776d9136408280c7209bebe4351123b82612d01565b60405173731591207791a93fb0ec481186fb086e16a7d6d09082156108fc029083906000818181858888f19350505050158015612af4573d6000803e3d6000fd5b508060016000828254612b079190613614565b925050819055508060076000828254612b209190613614565b909155505041612b715760405173731591207791a93fb0ec481186fb086e16a7d6d09082156108fc029083906000818181858888f19350505050158015612b6b573d6000803e3d6000fd5b50612b9e565b604051419082156108fc029083906000818181858888f19350505050158015612a01573d6000803e3d6000fd5b5050565b6040517f901362bd00000000000000000000000000000000000000000000000000000000815260009030803191839173ffffffffffffffffffffffffffffffffffffffff86169163901362bd91612bfb916004016130af565b60206040518083038186803b158015612c1357600080fd5b505afa158015612c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4b9190613068565b1115612cfb578273ffffffffffffffffffffffffffffffffffffffff1663243496716040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015612cb557600080fd5b505af1925050508015612cc6575060015b612cd05750610ba5565b612cdb8130316136a2565b9150612cf0612ceb60028461362c565b612a74565b610b2660028361362c565b50610ba5565b8015612b9e573031811115612d42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b59061343d565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190612d979030906004016130af565b60206040518083038186803b158015612daf57600080fd5b505afa158015612dc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de79190613068565b90508273ffffffffffffffffffffffffffffffffffffffff166310e7b9f2836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016020604051808303818588803b158015612e4d57600080fd5b505af193505050508015612e9c575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252612e9991810190613034565b60015b612ed2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b5906132ef565b506000818473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401612f2b91906130af565b60206040518083038186803b158015612f4357600080fd5b505afa158015612f57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f7b9190613068565b612f8591906136a2565b306000908152600d6020526040812080549293508392909190612fa9908490613614565b925050819055508060086000828254612fc29190613614565b909155505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ba557600080fd5b600060208284031215613002578081fd5b6122d982612fcd565b6000806040838503121561301d578081fd5b61302683612fcd565b946020939093013593505050565b600060208284031215613045578081fd5b81516122d9816136e8565b600060208284031215613061578081fd5b5035919050565b600060208284031215613079578081fd5b5051919050565b60008060408385031215613092578182fd5b8235915060208301356130a4816136e8565b809150509250929050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b901515815260200190565b60208082526022908201527f4e6f7420656e6f75676820696e20636f6e747261637420746f2077697468647260408201527f6177000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601d908201527f4e6f7420656e6f75676820616d6f756e7420746f207472616e73666572000000604082015260600190565b6020808252602c908201527f4465706f736974616e74206973206e6f7420656e61626c656420746f20616e7460408201527f696369706174652054494d450000000000000000000000000000000000000000606082015260800190565b60208082526013908201527f4f7065726174696f6e206973206c6f636b656400000000000000000000000000604082015260600190565b60208082526031908201527f4465706f736974616e7420646f6573206e6f74206861766520616e7920616d6f60408201527f756e7420746f20616e7469636970617465000000000000000000000000000000606082015260800190565b6020808252601d908201527f53686f756c6420616c6c6f772054494d4520746f206265207370656e74000000604082015260600190565b60208082526015908201527f4e6f742061626c6520746f20736176652054494d450000000000000000000000604082015260600190565b6020808252602f908201527f4465706f736974616e7420646f6573206e6f74206861766520616e7920616d6f60408201527f756e7420746f20636f6d706f756e640000000000000000000000000000000000606082015260800190565b60208082526031908201527f4465706f736974616e7420646f6573206e6f74206861766520616e792065617260408201527f6e696e677320746f207769746864726177000000000000000000000000000000606082015260800190565b6020808252602f908201527f4465706f736974616e7420646f6573206e6f74206861766520616e7920616d6f60408201527f756e7420746f2077697468647261770000000000000000000000000000000000606082015260800190565b6020808252601e908201527f4e6f7420656e6f75676820616d6f756e7420746f20736176652054494d450000604082015260600190565b6020808252601a908201527f506c65617365206465706f73697420736f6d6520616d6f756e74000000000000604082015260600190565b60208082526030908201527f4164647265737320697320616c726561647920656e61626c656420666f72205460408201527f494d4520616e74696369706174696f6e00000000000000000000000000000000606082015260800190565b6020808252601f908201527f506c65617365206465706f73697420736f6d652054494d4520616d6f756e7400604082015260600190565b60208082526013908201527f556e61626c6520746f206275726e2054494d4500000000000000000000000000604082015260600190565b6020808252601e908201527f50726f626c656d207768656e207472616e7366657272696e672054494d450000604082015260600190565b602080825260409082018190527f506c656173652070726f766964652074686520656e6f7567682066656520616d908201527f6f756e7420746f20656e61626c652054494d4520616e74696369706174696f6e606082015260800190565b90815260200190565b60008219821115613627576136276136b9565b500190565b600082613660577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561369d5761369d6136b9565b500290565b6000828210156136b4576136b46136b9565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b801515811461260457600080fdfea26469706673582212206d2c1fac4629eff89ef72b9b8f9938e6f2c6313915e84dbb9e04f62b1161b4d464736f6c63430008000033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000f8f39b92776d9136408280c7209bebe4351123b
-----Decoded View---------------
Arg [0] : timeTokenAddress_ (address): 0x0f8F39B92776D9136408280C7209BeBE4351123B
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000f8f39b92776d9136408280c7209bebe4351123b
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.