More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 3,150 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Stake | 21872794 | 12 hrs ago | IN | 0 ETH | 0.00025273 | ||||
Stake | 21866427 | 34 hrs ago | IN | 0 ETH | 0.00069981 | ||||
Claim | 21866410 | 34 hrs ago | IN | 0 ETH | 0.00018142 | ||||
Claim | 21866408 | 34 hrs ago | IN | 0 ETH | 0.00079338 | ||||
Unstake | 21863815 | 43 hrs ago | IN | 0 ETH | 0.00013366 | ||||
Stake | 21861690 | 2 days ago | IN | 0 ETH | 0.00025744 | ||||
Stake | 21858542 | 2 days ago | IN | 0 ETH | 0.00027557 | ||||
Stake | 21854229 | 3 days ago | IN | 0 ETH | 0.00034553 | ||||
Unstake | 21853886 | 3 days ago | IN | 0 ETH | 0.00006937 | ||||
Unstake | 21853882 | 3 days ago | IN | 0 ETH | 0.00006973 | ||||
Claim | 21852489 | 3 days ago | IN | 0 ETH | 0.00004384 | ||||
Unstake | 21852485 | 3 days ago | IN | 0 ETH | 0.00014148 | ||||
Stake | 21841223 | 4 days ago | IN | 0 ETH | 0.00011326 | ||||
Stake | 21833592 | 6 days ago | IN | 0 ETH | 0.00019109 | ||||
Claim | 21832434 | 6 days ago | IN | 0 ETH | 0.00003249 | ||||
Claim | 21832432 | 6 days ago | IN | 0 ETH | 0.00003165 | ||||
Claim | 21832429 | 6 days ago | IN | 0 ETH | 0.00003259 | ||||
Stake | 21832425 | 6 days ago | IN | 0 ETH | 0.00015523 | ||||
Stake | 21832419 | 6 days ago | IN | 0 ETH | 0.00024245 | ||||
Claim | 21830162 | 6 days ago | IN | 0 ETH | 0.00003826 | ||||
Stake | 21830148 | 6 days ago | IN | 0 ETH | 0.00040475 | ||||
Claim | 21824126 | 7 days ago | IN | 0 ETH | 0.00008925 | ||||
Claim | 21824102 | 7 days ago | IN | 0 ETH | 0.00033534 | ||||
Stake | 21823998 | 7 days ago | IN | 0 ETH | 0.00043021 | ||||
Claim | 21823994 | 7 days ago | IN | 0 ETH | 0.00035376 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
ShadowNodeStakev1
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-03-22 */ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.20; // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.20; /** * @dev Interface of the ERC-20 standard as defined in the ERC. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 value) 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 a `value` amount of tokens 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 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 value) external returns (bool); } /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } } // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) pragma solidity ^0.8.20; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * The initial owner is set to the address provided by the deployer. This can * later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract ShadowNodeStakev1 is Ownable(msg.sender) { IERC20 public shadowNode; IERC20 public rewardToken; uint256 public currentEpoch; uint256 public totalStaked; uint256 public totalRewardsClaimed; uint256 private _antibottime; bool private _paused; struct Staker { uint256 lastClaimedEpoch; uint256 totalStakedAmount; mapping(uint256 => StakeHistory[]) stakeHistory; // Mapping epoch to StakeHistory array } struct EpochData { uint256 epochStart; uint256 epochEnd; uint256 epochRewardRate; } struct StakeHistory { uint256 stakedAmount; uint256 timeofStaking; } mapping(address => Staker) public stakers; mapping(uint256 => EpochData) public epochData; event Staked(address indexed user, uint256 amount); event Unstaked(address indexed user, uint256 amount); event Claimed(address indexed user, uint256 amount); event Epoch(uint256 indexed epoch, uint256 epochStart, uint256 epochEnd, uint256 epochRewardRate); constructor(address _shadowNodeAddress, address _rewardToken) { shadowNode = IERC20(_shadowNodeAddress); rewardToken = IERC20(_rewardToken); currentEpoch = 0; epochData[currentEpoch] = EpochData(block.timestamp, block.timestamp, 0); _antibottime = 2 days; _paused = true; } modifier Active() { require(!_paused, "Contract is paused"); require(currentEpoch > 0, "Initial epoch not started"); _; } function startInitial() external onlyOwner { require(epochData[currentEpoch].epochEnd == epochData[currentEpoch].epochStart, "Initial epoch already started"); currentEpoch++; epochData[currentEpoch] = EpochData(block.timestamp, block.timestamp, 0); _paused = false; } function startNewEpoch(uint256 _rewards) external onlyOwner { require(_rewards > 0, "Rewards must be greater than 0"); epochData[currentEpoch].epochEnd = block.timestamp; if (totalStaked>0){ epochData[currentEpoch].epochRewardRate = (_rewards * 1e18)/totalStaked; }else{ epochData[currentEpoch].epochRewardRate = 0; emit Epoch(currentEpoch, epochData[currentEpoch].epochStart, epochData[currentEpoch].epochEnd, epochData[currentEpoch].epochRewardRate); currentEpoch++; epochData[currentEpoch] = EpochData(block.timestamp, block.timestamp, 0); return; } emit Epoch(currentEpoch, epochData[currentEpoch].epochStart, epochData[currentEpoch].epochEnd, epochData[currentEpoch].epochRewardRate); currentEpoch++; require(rewardToken.transferFrom(msg.sender, address(this), _rewards), "Reward transfer failed"); epochData[currentEpoch] = EpochData(block.timestamp, block.timestamp, 0); } function balanceOf(address user) external view returns (uint256) { return stakers[user].totalStakedAmount; } function setPaused(bool _paused_) external onlyOwner { _paused = _paused_; } function setAntibotTime(uint256 _antibottime_) external onlyOwner { _antibottime = _antibottime_; } function stakersInfo(address[] calldata users) external view returns (uint[][] memory) { uint[][] memory stakersInfo_ = new uint[][](users.length); for (uint256 i = 0; i < users.length; i++) { stakersInfo_[i] = new uint[](2); stakersInfo_[i][0] = stakers[users[i]].totalStakedAmount; stakersInfo_[i][1] = stakers[users[i]].lastClaimedEpoch; } return stakersInfo_; } function stake(uint256 amount) external Active { require(amount > 0, "Amount must be greater than 0"); require(shadowNode.transferFrom(msg.sender, address(this), amount), "Staking transfer failed"); Staker storage staker = stakers[msg.sender]; uint256 lastClaimedEpoch = staker.lastClaimedEpoch; if (staker.totalStakedAmount == 0) { lastClaimedEpoch = currentEpoch - 1; }else{ claim(); } staker.stakeHistory[currentEpoch].push(StakeHistory(amount, block.timestamp)); staker.totalStakedAmount = staker.totalStakedAmount+amount; staker.lastClaimedEpoch = currentEpoch - 1; totalStaked = totalStaked+amount; emit Staked(msg.sender, amount); } function unstake(uint256 amount) external Active { require(amount > 0, "Amount must be greater than 0"); Staker storage staker = stakers[msg.sender]; require(staker.totalStakedAmount >= amount, "Insufficient staked amount"); claim(); staker.totalStakedAmount = staker.totalStakedAmount - amount; staker.lastClaimedEpoch = currentEpoch - 1; totalStaked = totalStaked - amount; if (staker.totalStakedAmount == 0) { staker.lastClaimedEpoch = 0; delete staker.stakeHistory[currentEpoch - 1]; } require(shadowNode.transfer(msg.sender, amount), "Unstaking transfer failed"); emit Unstaked(msg.sender, amount); } function claim() public Active { Staker storage staker = stakers[msg.sender]; uint256 lastClaimedEpoch = staker.lastClaimedEpoch; if (lastClaimedEpoch == currentEpoch - 1 || staker.totalStakedAmount == 0) { return; } uint256 rewards = _calculateRewards(msg.sender, lastClaimedEpoch, currentEpoch - 1); if (rewards > 0) { require(rewardToken.transfer(msg.sender, rewards), "Reward transfer failed"); totalRewardsClaimed = totalRewardsClaimed+rewards; } staker.lastClaimedEpoch = currentEpoch - 1; emit Claimed(msg.sender, rewards); } function _calculateRewards(address user, uint256 startEpoch, uint256 endEpoch) private returns (uint256 rewards) { Staker storage staker = stakers[user]; rewards = 0; if (staker.lastClaimedEpoch != 0) {startEpoch = startEpoch+1;} uint256 stakedAmount = staker.totalStakedAmount; uint128 thresholdTimestamp = uint128(epochData[endEpoch].epochEnd - _antibottime); if (staker.stakeHistory[endEpoch].length > 0 && currentEpoch != 2) { for (uint256 i = staker.stakeHistory[endEpoch].length - 1; i >= 0; i--) { if (staker.stakeHistory[endEpoch][i].timeofStaking < thresholdTimestamp) { break; } if (staker.stakeHistory[endEpoch][i].stakedAmount > stakedAmount) { stakedAmount = 0; break; } stakedAmount = stakedAmount - staker.stakeHistory[endEpoch][i].stakedAmount; if (i == 0) {break;} } } for (uint256 epoch = startEpoch; epoch <= endEpoch; epoch++) { if (epochData[epoch].epochStart == 0 || epochData[epoch].epochEnd == 0) { continue; } uint256 epochRewardRate = epochData[epoch].epochRewardRate; uint256 epochStartTime = epochData[epoch].epochStart; uint256 epochEndTime = epochData[epoch].epochEnd; if (block.timestamp < epochStartTime) { continue; } if (block.timestamp >= epochEndTime) { rewards = rewards + ((epochRewardRate * stakedAmount) / 1e18); } delete staker.stakeHistory[epoch]; } return rewards; } function emergencyWithdraw(address token, uint256 amount, address _to) external onlyOwner { require(IERC20(token).transfer(_to, amount), "Emergency withdraw failed"); } function emergencyWithdrawETH(uint256 amount, address _to) external onlyOwner { (bool success, ) = _to.call{value: amount}(""); require(success, "Emergency withdraw failed"); } function calculateRewards(address user) public view returns (uint256 rewards) { Staker storage staker = stakers[user]; rewards = 0; uint256 stakedAmount = staker.totalStakedAmount; uint128 thresholdTimestamp = uint128(epochData[currentEpoch - 1].epochEnd - _antibottime); if (staker.stakeHistory[currentEpoch - 1].length > 0 && currentEpoch != 2) { for (uint256 i = staker.stakeHistory[currentEpoch - 1].length - 1; i >= 0; i--) { if (staker.stakeHistory[currentEpoch - 1][i].timeofStaking < thresholdTimestamp) { break; } stakedAmount = stakedAmount - staker.stakeHistory[currentEpoch - 1][i].stakedAmount; if (i == 0) {break;} } } for (uint256 epoch = staker.lastClaimedEpoch+1; epoch <= currentEpoch - 1; epoch++) { if (epochData[epoch].epochStart == 0 || epochData[epoch].epochEnd == 0) { continue; } uint256 epochRewardRate = epochData[epoch].epochRewardRate; uint256 epochStartTime = epochData[epoch].epochStart; uint256 epochEndTime = epochData[epoch].epochEnd; if (block.timestamp < epochStartTime) { continue; } if (block.timestamp >= epochEndTime) { rewards = rewards + ((epochRewardRate * stakedAmount) / 1e18); } } return rewards; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_shadowNodeAddress","type":"address"},{"internalType":"address","name":"_rewardToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"epochStart","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"epochEnd","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"epochRewardRate","type":"uint256"}],"name":"Epoch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Unstaked","type":"event"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"calculateRewards","outputs":[{"internalType":"uint256","name":"rewards","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"emergencyWithdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"epochData","outputs":[{"internalType":"uint256","name":"epochStart","type":"uint256"},{"internalType":"uint256","name":"epochEnd","type":"uint256"},{"internalType":"uint256","name":"epochRewardRate","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_antibottime_","type":"uint256"}],"name":"setAntibotTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_paused_","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shadowNode","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakers","outputs":[{"internalType":"uint256","name":"lastClaimedEpoch","type":"uint256"},{"internalType":"uint256","name":"totalStakedAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"}],"name":"stakersInfo","outputs":[{"internalType":"uint256[][]","name":"","type":"uint256[][]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startInitial","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewards","type":"uint256"}],"name":"startNewEpoch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalRewardsClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801562000010575f80fd5b5060405162001b6538038062001b658339810160408190526200003391620001ac565b33806200005957604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b620000648162000141565b50600180546001600160a01b039384166001600160a01b031991821617825560028054939094169216919091179091555f6003819055604080516060810182524280825260208083019182529282018481529380526009909252517fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b55517fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6c55517fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6d556202a3006006556007805460ff19169091179055620001e2565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620001a7575f80fd5b919050565b5f8060408385031215620001be575f80fd5b620001c98362000190565b9150620001d96020840162000190565b90509250929050565b61197580620001f05f395ff3fe608060405234801561000f575f80fd5b506004361061013c575f3560e01c806370a08231116100b45780639168ae72116100795780639168ae72146102c0578063a34b0f76146102fb578063a694fc3a14610304578063c1b4561014610317578063f2fde38b1461032a578063f7c618c11461033d575f80fd5b806370a0823114610257578063715018a614610282578063766718081461028a578063817b1cd2146102935780638da5cb5b1461029c575f80fd5b80633a69fda9116101055780633a69fda9146101965780634bbed396146101bf5780634e71d92d146101d2578063551512de146101da57806364ab8675146101ed5780636e821b2e1461020e575f80fd5b806221e81c14610140578063159450061461014a57806316c38b3c1461015d5780632e17de7814610170578063376ebd4914610183575b5f80fd5b610148610350565b005b610148610158366004611645565b61041f565b61014861016b36600461167c565b6104c7565b61014861017e36600461169e565b6104e2565b61014861019136600461169e565b61074c565b6101a96101a43660046116b5565b610759565b6040516101b69190611724565b60405180910390f35b6101486101cd36600461169e565b610909565b610148610be6565b6101486101e83660046117aa565b610d99565b6102006101fb3660046117e3565b610e59565b6040519081526020016101b6565b61023c61021c36600461169e565b60096020525f908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101b6565b6102006102653660046117e3565b6001600160a01b03165f9081526008602052604090206001015490565b6101486110a3565b61020060035481565b61020060045481565b5f546001600160a01b03165b6040516001600160a01b0390911681526020016101b6565b6102e66102ce3660046117e3565b60086020525f90815260409020805460019091015482565b604080519283526020830191909152016101b6565b61020060055481565b61014861031236600461169e565b6110b4565b6001546102a8906001600160a01b031681565b6101486103383660046117e3565b6112fd565b6002546102a8906001600160a01b031681565b610358611337565b6003545f9081526009602052604090208054600190910154146103c25760405162461bcd60e51b815260206004820152601d60248201527f496e697469616c2065706f636820616c7265616479207374617274656400000060448201526064015b60405180910390fd5b60038054905f6103d183611810565b9091555050604080516060810182524280825260208083019182525f83850181815260035482526009909252939093209151825551600182015590516002909101556007805460ff19169055565b610427611337565b5f816001600160a01b0316836040515f6040518083038185875af1925050503d805f8114610470576040519150601f19603f3d011682016040523d82523d5f602084013e610475565b606091505b50509050806104c25760405162461bcd60e51b8152602060048201526019602482015278115b595c99d95b98de481dda5d1a191c985dc819985a5b1959603a1b60448201526064016103b9565b505050565b6104cf611337565b6007805460ff1916911515919091179055565b60075460ff16156105055760405162461bcd60e51b81526004016103b990611828565b5f600354116105265760405162461bcd60e51b81526004016103b990611854565b5f81116105755760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e203000000060448201526064016103b9565b335f90815260086020526040902060018101548211156105d75760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e74207374616b656420616d6f756e7400000000000060448201526064016103b9565b6105df610be6565b8181600101546105ef919061188b565b81600101819055506001600354610606919061188b565b815560045461061690839061188b565b60045560018101545f03610655575f80825560035460028301919061063d9060019061188b565b81526020019081526020015f205f61065591906115f3565b60015460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303815f875af11580156106a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c7919061189e565b6107135760405162461bcd60e51b815260206004820152601960248201527f556e7374616b696e67207472616e73666572206661696c65640000000000000060448201526064016103b9565b60405182815233907f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f759060200160405180910390a25050565b610754611337565b600655565b60605f8267ffffffffffffffff811115610775576107756118b9565b6040519080825280602002602001820160405280156107a857816020015b60608152602001906001900390816107935790505b5090505f5b838110156108ff576040805160028082526060820183529091602083019080368337019050508282815181106107e5576107e56118cd565b602002602001018190525060085f868684818110610805576108056118cd565b905060200201602081019061081a91906117e3565b6001600160a01b03166001600160a01b031681526020019081526020015f206001015482828151811061084f5761084f6118cd565b60200260200101515f81518110610868576108686118cd565b60200260200101818152505060085f868684818110610889576108896118cd565b905060200201602081019061089e91906117e3565b6001600160a01b03166001600160a01b031681526020019081526020015f205f01548282815181106108d2576108d26118cd565b60200260200101516001815181106108ec576108ec6118cd565b60209081029190910101526001016107ad565b5090505b92915050565b610911611337565b5f81116109605760405162461bcd60e51b815260206004820152601e60248201527f52657761726473206d7573742062652067726561746572207468616e2030000060448201526064016103b9565b6003545f90815260096020526040902042600190910155600454156109b75760045461099482670de0b6b3a76400006118e1565b61099e91906118f8565b6003545f90815260096020526040902060020155610a76565b600380545f9081526009602090815260408083206002908101849055935480845292819020805460018201549190950154825195865292850152830152907ffe5d474912e3b2be23503056830d52e8c142a3e4480fec2f7914f9c4c14e36019060600160405180910390a260038054905f610a3183611810565b9091555050604080516060810182524280825260208083019182525f838501818152600354825260099092529390932091518255516001820155905160029091015550565b6003545f8181526009602090815260409182902080546001820154600290920154845191825292810191909152918201527ffe5d474912e3b2be23503056830d52e8c142a3e4480fec2f7914f9c4c14e36019060600160405180910390a260038054905f610ae383611810565b90915550506002546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303815f875af1158015610b3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b60919061189e565b610ba55760405162461bcd60e51b815260206004820152601660248201527514995dd85c99081d1c985b9cd9995c8819985a5b195960521b60448201526064016103b9565b604080516060810182524280825260208083019182525f83850181815260035482526009909252939093209151825551600182015590516002909101555b50565b60075460ff1615610c095760405162461bcd60e51b81526004016103b990611828565b5f60035411610c2a5760405162461bcd60e51b81526004016103b990611854565b335f9081526008602052604090208054600354610c499060019061188b565b811480610c5857506001820154155b15610c61575050565b5f610c7b33836001600354610c76919061188b565b611363565b90508015610d4c5760025460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015610cd1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf5919061189e565b610d3a5760405162461bcd60e51b815260206004820152601660248201527514995dd85c99081d1c985b9cd9995c8819985a5b195960521b60448201526064016103b9565b80600554610d489190611917565b6005555b6001600354610d5b919061188b565b835560405181815233907fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a906020015b60405180910390a25050505b565b610da1611337565b60405163a9059cbb60e01b81526001600160a01b0382811660048301526024820184905284169063a9059cbb906044016020604051808303815f875af1158015610ded573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e11919061189e565b6104c25760405162461bcd60e51b8152602060048201526019602482015278115b595c99d95b98de481dda5d1a191c985dc819985a5b1959603a1b60448201526064016103b9565b6001600160a01b0381165f908152600860205260408120600180820154600654600354919285926009918491610e8f919061188b565b81526020019081526020015f2060010154610eaa919061188b565b90505f836002015f6001600354610ec1919061188b565b815260208101919091526040015f2054118015610ee15750600354600214155b15610fd3575f6001846002015f6001600354610efd919061188b565b815260208101919091526040015f2054610f17919061188b565b90505b816001600160801b0316846002015f6001600354610f38919061188b565b81526020019081526020015f208281548110610f5657610f566118cd565b905f5260205f2090600202016001015410610fd157836002015f6001600354610f7f919061188b565b81526020019081526020015f208181548110610f9d57610f9d6118cd565b905f5260205f2090600202015f015483610fb7919061188b565b92508015610fd15780610fc98161192a565b915050610f1a565b505b82545f90610fe2906001611917565b90505b6001600354610ff4919061188b565b811161109a575f81815260096020526040902054158061102257505f81815260096020526040902060010154155b611088575f818152600960205260409020600281015481546001909201549091904282111561105357505050611088565b80421061108457670de0b6b3a764000061106d87856118e1565b61107791906118f8565b6110819089611917565b97505b5050505b8061109281611810565b915050610fe5565b50505050919050565b6110ab611337565b610d975f6115a4565b60075460ff16156110d75760405162461bcd60e51b81526004016103b990611828565b5f600354116110f85760405162461bcd60e51b81526004016103b990611854565b5f81116111475760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e203000000060448201526064016103b9565b6001546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303815f875af115801561119b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111bf919061189e565b61120b5760405162461bcd60e51b815260206004820152601760248201527f5374616b696e67207472616e73666572206661696c656400000000000000000060448201526064016103b9565b335f90815260086020526040812080546001820154919290919003611240576001600354611239919061188b565b9050611248565b611248610be6565b6003545f90815260028084016020908152604080842081518083019092528782524282840190815281546001818101845592875293909520915192909302019081559151918101919091558201546112a1908490611917565b826001018190555060016003546112b8919061188b565b82556004546112c8908490611917565b60045560405183815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d90602001610d8b565b611305611337565b6001600160a01b03811661132e57604051631e4fbdf760e01b81525f60048201526024016103b9565b610be3816115a4565b5f546001600160a01b03163314610d975760405163118cdaa760e01b81523360048201526024016103b9565b6001600160a01b0383165f90815260086020526040812080541561138f5761138c846001611917565b93505b6001808201546006545f868152600960205260408120909301549192916113b6919061188b565b5f868152600285016020526040902054909150158015906113da5750600354600214155b156114d8575f8581526002840160205260408120546113fb9060019061188b565b90505b5f868152600285016020526040902080546001600160801b03841691908390811061142b5761142b6118cd565b905f5260205f20906002020160010154106114d6575f8681526002850160205260409020805484919083908110611464576114646118cd565b905f5260205f2090600202015f01541115611481575f92506114d6565b5f86815260028501602052604090208054829081106114a2576114a26118cd565b905f5260205f2090600202015f0154836114bc919061188b565b925080156114d657806114ce8161192a565b9150506113fe565b505b855b858111611599575f81815260096020526040902054158061150957505f81815260096020526040902060010154155b611587575f818152600960205260409020600281015481546001909201549091904282111561153a57505050611587565b80421061156b57670de0b6b3a764000061155487856118e1565b61155e91906118f8565b6115689089611917565b97505b5f8481526002880160205260408120611583916115f3565b5050505b8061159181611810565b9150506114da565b505050509392505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5080545f8255600202905f5260205f2090810190610be391905b80821115611626575f808255600182015560020161160d565b5090565b80356001600160a01b0381168114611640575f80fd5b919050565b5f8060408385031215611656575f80fd5b823591506116666020840161162a565b90509250929050565b8015158114610be3575f80fd5b5f6020828403121561168c575f80fd5b81356116978161166f565b9392505050565b5f602082840312156116ae575f80fd5b5035919050565b5f80602083850312156116c6575f80fd5b823567ffffffffffffffff808211156116dd575f80fd5b818501915085601f8301126116f0575f80fd5b8135818111156116fe575f80fd5b8660208260051b8501011115611712575f80fd5b60209290920196919550909350505050565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b8281101561179d57878503603f190184528151805180875290870190878701905f5b818110156117875783518352928901929189019160010161176b565b5090965050509285019290850190600101611749565b5092979650505050505050565b5f805f606084860312156117bc575f80fd5b6117c58461162a565b9250602084013591506117da6040850161162a565b90509250925092565b5f602082840312156117f3575f80fd5b6116978261162a565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611821576118216117fc565b5060010190565b60208082526012908201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604082015260600190565b60208082526019908201527f496e697469616c2065706f6368206e6f74207374617274656400000000000000604082015260600190565b81810381811115610903576109036117fc565b5f602082840312156118ae575f80fd5b81516116978161166f565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b8082028115828204841417610903576109036117fc565b5f8261191257634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610903576109036117fc565b5f81611938576119386117fc565b505f19019056fea26469706673582212204a0d228195a01b07bc18b2b3c1e8f7e115790d9b048b1b0291fab872081b008d64736f6c63430008180033000000000000000000000000c668695dcbcf682de106da94bde65c9bc79362d3000000000000000000000000c668695dcbcf682de106da94bde65c9bc79362d3
Deployed Bytecode
0x608060405234801561000f575f80fd5b506004361061013c575f3560e01c806370a08231116100b45780639168ae72116100795780639168ae72146102c0578063a34b0f76146102fb578063a694fc3a14610304578063c1b4561014610317578063f2fde38b1461032a578063f7c618c11461033d575f80fd5b806370a0823114610257578063715018a614610282578063766718081461028a578063817b1cd2146102935780638da5cb5b1461029c575f80fd5b80633a69fda9116101055780633a69fda9146101965780634bbed396146101bf5780634e71d92d146101d2578063551512de146101da57806364ab8675146101ed5780636e821b2e1461020e575f80fd5b806221e81c14610140578063159450061461014a57806316c38b3c1461015d5780632e17de7814610170578063376ebd4914610183575b5f80fd5b610148610350565b005b610148610158366004611645565b61041f565b61014861016b36600461167c565b6104c7565b61014861017e36600461169e565b6104e2565b61014861019136600461169e565b61074c565b6101a96101a43660046116b5565b610759565b6040516101b69190611724565b60405180910390f35b6101486101cd36600461169e565b610909565b610148610be6565b6101486101e83660046117aa565b610d99565b6102006101fb3660046117e3565b610e59565b6040519081526020016101b6565b61023c61021c36600461169e565b60096020525f908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101b6565b6102006102653660046117e3565b6001600160a01b03165f9081526008602052604090206001015490565b6101486110a3565b61020060035481565b61020060045481565b5f546001600160a01b03165b6040516001600160a01b0390911681526020016101b6565b6102e66102ce3660046117e3565b60086020525f90815260409020805460019091015482565b604080519283526020830191909152016101b6565b61020060055481565b61014861031236600461169e565b6110b4565b6001546102a8906001600160a01b031681565b6101486103383660046117e3565b6112fd565b6002546102a8906001600160a01b031681565b610358611337565b6003545f9081526009602052604090208054600190910154146103c25760405162461bcd60e51b815260206004820152601d60248201527f496e697469616c2065706f636820616c7265616479207374617274656400000060448201526064015b60405180910390fd5b60038054905f6103d183611810565b9091555050604080516060810182524280825260208083019182525f83850181815260035482526009909252939093209151825551600182015590516002909101556007805460ff19169055565b610427611337565b5f816001600160a01b0316836040515f6040518083038185875af1925050503d805f8114610470576040519150601f19603f3d011682016040523d82523d5f602084013e610475565b606091505b50509050806104c25760405162461bcd60e51b8152602060048201526019602482015278115b595c99d95b98de481dda5d1a191c985dc819985a5b1959603a1b60448201526064016103b9565b505050565b6104cf611337565b6007805460ff1916911515919091179055565b60075460ff16156105055760405162461bcd60e51b81526004016103b990611828565b5f600354116105265760405162461bcd60e51b81526004016103b990611854565b5f81116105755760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e203000000060448201526064016103b9565b335f90815260086020526040902060018101548211156105d75760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e74207374616b656420616d6f756e7400000000000060448201526064016103b9565b6105df610be6565b8181600101546105ef919061188b565b81600101819055506001600354610606919061188b565b815560045461061690839061188b565b60045560018101545f03610655575f80825560035460028301919061063d9060019061188b565b81526020019081526020015f205f61065591906115f3565b60015460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303815f875af11580156106a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c7919061189e565b6107135760405162461bcd60e51b815260206004820152601960248201527f556e7374616b696e67207472616e73666572206661696c65640000000000000060448201526064016103b9565b60405182815233907f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f759060200160405180910390a25050565b610754611337565b600655565b60605f8267ffffffffffffffff811115610775576107756118b9565b6040519080825280602002602001820160405280156107a857816020015b60608152602001906001900390816107935790505b5090505f5b838110156108ff576040805160028082526060820183529091602083019080368337019050508282815181106107e5576107e56118cd565b602002602001018190525060085f868684818110610805576108056118cd565b905060200201602081019061081a91906117e3565b6001600160a01b03166001600160a01b031681526020019081526020015f206001015482828151811061084f5761084f6118cd565b60200260200101515f81518110610868576108686118cd565b60200260200101818152505060085f868684818110610889576108896118cd565b905060200201602081019061089e91906117e3565b6001600160a01b03166001600160a01b031681526020019081526020015f205f01548282815181106108d2576108d26118cd565b60200260200101516001815181106108ec576108ec6118cd565b60209081029190910101526001016107ad565b5090505b92915050565b610911611337565b5f81116109605760405162461bcd60e51b815260206004820152601e60248201527f52657761726473206d7573742062652067726561746572207468616e2030000060448201526064016103b9565b6003545f90815260096020526040902042600190910155600454156109b75760045461099482670de0b6b3a76400006118e1565b61099e91906118f8565b6003545f90815260096020526040902060020155610a76565b600380545f9081526009602090815260408083206002908101849055935480845292819020805460018201549190950154825195865292850152830152907ffe5d474912e3b2be23503056830d52e8c142a3e4480fec2f7914f9c4c14e36019060600160405180910390a260038054905f610a3183611810565b9091555050604080516060810182524280825260208083019182525f838501818152600354825260099092529390932091518255516001820155905160029091015550565b6003545f8181526009602090815260409182902080546001820154600290920154845191825292810191909152918201527ffe5d474912e3b2be23503056830d52e8c142a3e4480fec2f7914f9c4c14e36019060600160405180910390a260038054905f610ae383611810565b90915550506002546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303815f875af1158015610b3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b60919061189e565b610ba55760405162461bcd60e51b815260206004820152601660248201527514995dd85c99081d1c985b9cd9995c8819985a5b195960521b60448201526064016103b9565b604080516060810182524280825260208083019182525f83850181815260035482526009909252939093209151825551600182015590516002909101555b50565b60075460ff1615610c095760405162461bcd60e51b81526004016103b990611828565b5f60035411610c2a5760405162461bcd60e51b81526004016103b990611854565b335f9081526008602052604090208054600354610c499060019061188b565b811480610c5857506001820154155b15610c61575050565b5f610c7b33836001600354610c76919061188b565b611363565b90508015610d4c5760025460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015610cd1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf5919061189e565b610d3a5760405162461bcd60e51b815260206004820152601660248201527514995dd85c99081d1c985b9cd9995c8819985a5b195960521b60448201526064016103b9565b80600554610d489190611917565b6005555b6001600354610d5b919061188b565b835560405181815233907fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a906020015b60405180910390a25050505b565b610da1611337565b60405163a9059cbb60e01b81526001600160a01b0382811660048301526024820184905284169063a9059cbb906044016020604051808303815f875af1158015610ded573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e11919061189e565b6104c25760405162461bcd60e51b8152602060048201526019602482015278115b595c99d95b98de481dda5d1a191c985dc819985a5b1959603a1b60448201526064016103b9565b6001600160a01b0381165f908152600860205260408120600180820154600654600354919285926009918491610e8f919061188b565b81526020019081526020015f2060010154610eaa919061188b565b90505f836002015f6001600354610ec1919061188b565b815260208101919091526040015f2054118015610ee15750600354600214155b15610fd3575f6001846002015f6001600354610efd919061188b565b815260208101919091526040015f2054610f17919061188b565b90505b816001600160801b0316846002015f6001600354610f38919061188b565b81526020019081526020015f208281548110610f5657610f566118cd565b905f5260205f2090600202016001015410610fd157836002015f6001600354610f7f919061188b565b81526020019081526020015f208181548110610f9d57610f9d6118cd565b905f5260205f2090600202015f015483610fb7919061188b565b92508015610fd15780610fc98161192a565b915050610f1a565b505b82545f90610fe2906001611917565b90505b6001600354610ff4919061188b565b811161109a575f81815260096020526040902054158061102257505f81815260096020526040902060010154155b611088575f818152600960205260409020600281015481546001909201549091904282111561105357505050611088565b80421061108457670de0b6b3a764000061106d87856118e1565b61107791906118f8565b6110819089611917565b97505b5050505b8061109281611810565b915050610fe5565b50505050919050565b6110ab611337565b610d975f6115a4565b60075460ff16156110d75760405162461bcd60e51b81526004016103b990611828565b5f600354116110f85760405162461bcd60e51b81526004016103b990611854565b5f81116111475760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e203000000060448201526064016103b9565b6001546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303815f875af115801561119b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111bf919061189e565b61120b5760405162461bcd60e51b815260206004820152601760248201527f5374616b696e67207472616e73666572206661696c656400000000000000000060448201526064016103b9565b335f90815260086020526040812080546001820154919290919003611240576001600354611239919061188b565b9050611248565b611248610be6565b6003545f90815260028084016020908152604080842081518083019092528782524282840190815281546001818101845592875293909520915192909302019081559151918101919091558201546112a1908490611917565b826001018190555060016003546112b8919061188b565b82556004546112c8908490611917565b60045560405183815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d90602001610d8b565b611305611337565b6001600160a01b03811661132e57604051631e4fbdf760e01b81525f60048201526024016103b9565b610be3816115a4565b5f546001600160a01b03163314610d975760405163118cdaa760e01b81523360048201526024016103b9565b6001600160a01b0383165f90815260086020526040812080541561138f5761138c846001611917565b93505b6001808201546006545f868152600960205260408120909301549192916113b6919061188b565b5f868152600285016020526040902054909150158015906113da5750600354600214155b156114d8575f8581526002840160205260408120546113fb9060019061188b565b90505b5f868152600285016020526040902080546001600160801b03841691908390811061142b5761142b6118cd565b905f5260205f20906002020160010154106114d6575f8681526002850160205260409020805484919083908110611464576114646118cd565b905f5260205f2090600202015f01541115611481575f92506114d6565b5f86815260028501602052604090208054829081106114a2576114a26118cd565b905f5260205f2090600202015f0154836114bc919061188b565b925080156114d657806114ce8161192a565b9150506113fe565b505b855b858111611599575f81815260096020526040902054158061150957505f81815260096020526040902060010154155b611587575f818152600960205260409020600281015481546001909201549091904282111561153a57505050611587565b80421061156b57670de0b6b3a764000061155487856118e1565b61155e91906118f8565b6115689089611917565b97505b5f8481526002880160205260408120611583916115f3565b5050505b8061159181611810565b9150506114da565b505050509392505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5080545f8255600202905f5260205f2090810190610be391905b80821115611626575f808255600182015560020161160d565b5090565b80356001600160a01b0381168114611640575f80fd5b919050565b5f8060408385031215611656575f80fd5b823591506116666020840161162a565b90509250929050565b8015158114610be3575f80fd5b5f6020828403121561168c575f80fd5b81356116978161166f565b9392505050565b5f602082840312156116ae575f80fd5b5035919050565b5f80602083850312156116c6575f80fd5b823567ffffffffffffffff808211156116dd575f80fd5b818501915085601f8301126116f0575f80fd5b8135818111156116fe575f80fd5b8660208260051b8501011115611712575f80fd5b60209290920196919550909350505050565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b8281101561179d57878503603f190184528151805180875290870190878701905f5b818110156117875783518352928901929189019160010161176b565b5090965050509285019290850190600101611749565b5092979650505050505050565b5f805f606084860312156117bc575f80fd5b6117c58461162a565b9250602084013591506117da6040850161162a565b90509250925092565b5f602082840312156117f3575f80fd5b6116978261162a565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611821576118216117fc565b5060010190565b60208082526012908201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604082015260600190565b60208082526019908201527f496e697469616c2065706f6368206e6f74207374617274656400000000000000604082015260600190565b81810381811115610903576109036117fc565b5f602082840312156118ae575f80fd5b81516116978161166f565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b8082028115828204841417610903576109036117fc565b5f8261191257634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610903576109036117fc565b5f81611938576119386117fc565b505f19019056fea26469706673582212204a0d228195a01b07bc18b2b3c1e8f7e115790d9b048b1b0291fab872081b008d64736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c668695dcbcf682de106da94bde65c9bc79362d3000000000000000000000000c668695dcbcf682de106da94bde65c9bc79362d3
-----Decoded View---------------
Arg [0] : _shadowNodeAddress (address): 0xc668695dcbCf682dE106Da94bDE65c9bc79362d3
Arg [1] : _rewardToken (address): 0xc668695dcbCf682dE106Da94bDE65c9bc79362d3
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c668695dcbcf682de106da94bde65c9bc79362d3
Arg [1] : 000000000000000000000000c668695dcbcf682de106da94bde65c9bc79362d3
Deployed Bytecode Sourcemap
6887:9720:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8489:308;;;:::i;:::-;;14868:199;;;;;;:::i;:::-;;:::i;9986:90::-;;;;;;:::i;:::-;;:::i;11448:739::-;;;;;;:::i;:::-;;:::i;10084:113::-;;;;;;:::i;:::-;;:::i;10205:445::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8805:1043;;;;;;:::i;:::-;;:::i;12195:663::-;;;:::i;14678:182::-;;;;;;:::i;:::-;;:::i;15075:1529::-;;;;;;:::i;:::-;;:::i;:::-;;;3565:25:1;;;3553:2;3538:18;15075:1529:0;3419:177:1;7653:46:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3803:25:1;;;3859:2;3844:18;;3837:34;;;;3887:18;;;3880:34;3791:2;3776:18;7653:46:0;3601:319:1;9856:122:0;;;;;;:::i;:::-;-1:-1:-1;;;;;9939:13:0;9912:7;9939:13;;;:7;:13;;;;;:31;;;;9856:122;6049:103;;;:::i;7011:27::-;;;;;;7045:26;;;;;;5374:87;5420:7;5447:6;-1:-1:-1;;;;;5447:6:0;5374:87;;;-1:-1:-1;;;;;4089:32:1;;;4071:51;;4059:2;4044:18;5374:87:0;3925:203:1;7605:41:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;4307:25:1;;;4363:2;4348:18;;4341:34;;;;4280:18;7605:41:0;4133:248:1;7078:34:0;;;;;;10658:782;;;;;;:::i;:::-;;:::i;6946:24::-;;;;;-1:-1:-1;;;;;6946:24:0;;;6307:220;;;;;;:::i;:::-;;:::i;6977:25::-;;;;;-1:-1:-1;;;;;6977:25:0;;;8489:308;5260:13;:11;:13::i;:::-;8597:12:::1;::::0;8587:23:::1;::::0;;;:9:::1;:23;::::0;;;;:34;;8551:32:::1;::::0;;::::1;::::0;:70:::1;8543:112;;;::::0;-1:-1:-1;;;8543:112:0;;4809:2:1;8543:112:0::1;::::0;::::1;4791:21:1::0;4848:2;4828:18;;;4821:30;4887:31;4867:18;;;4860:59;4936:18;;8543:112:0::1;;;;;;;;;8666:12;:14:::0;;;:12:::1;:14;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;8717:46:0::1;::::0;;::::1;::::0;::::1;::::0;;8727:15:::1;8717:46:::0;;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;8717:46:0;;;;;;8701:12:::1;::::0;8691:23;;:9:::1;:23:::0;;;;;;;:72;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;8774:7:::1;:15:::0;;-1:-1:-1;;8774:15:0::1;::::0;;8489:308::o;14868:199::-;5260:13;:11;:13::i;:::-;14958:12:::1;14976:3;-1:-1:-1::0;;;;;14976:8:0::1;14992:6;14976:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14957:46;;;15022:7;15014:45;;;::::0;-1:-1:-1;;;15014:45:0;;5649:2:1;15014:45:0::1;::::0;::::1;5631:21:1::0;5688:2;5668:18;;;5661:30;-1:-1:-1;;;5707:18:1;;;5700:55;5772:18;;15014:45:0::1;5447:349:1::0;15014:45:0::1;14946:121;14868:199:::0;;:::o;9986:90::-;5260:13;:11;:13::i;:::-;10050:7:::1;:18:::0;;-1:-1:-1;;10050:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9986:90::o;11448:739::-;8366:7;;;;8365:8;8357:39;;;;-1:-1:-1;;;8357:39:0;;;;;;;:::i;:::-;8430:1;8415:12;;:16;8407:54;;;;-1:-1:-1;;;8407:54:0;;;;;;;:::i;:::-;11525:1:::1;11516:6;:10;11508:52;;;::::0;-1:-1:-1;;;11508:52:0;;6704:2:1;11508:52:0::1;::::0;::::1;6686:21:1::0;6743:2;6723:18;;;6716:30;6782:31;6762:18;;;6755:59;6831:18;;11508:52:0::1;6502:353:1::0;11508:52:0::1;11603:10;11571:21;11595:19:::0;;;:7:::1;:19;::::0;;;;11633:24:::1;::::0;::::1;::::0;:34;-1:-1:-1;11633:34:0::1;11625:73;;;::::0;-1:-1:-1;;;11625:73:0;;7062:2:1;11625:73:0::1;::::0;::::1;7044:21:1::0;7101:2;7081:18;;;7074:30;7140:28;7120:18;;;7113:56;7186:18;;11625:73:0::1;6860:350:1::0;11625:73:0::1;11709:7;:5;:7::i;:::-;11781:6;11754;:24;;;:33;;;;:::i;:::-;11727:6;:24;;:60;;;;11839:1;11824:12;;:16;;;;:::i;:::-;11798:42:::0;;11865:11:::1;::::0;:20:::1;::::0;11879:6;;11865:20:::1;:::i;:::-;11851:11;:34:::0;11902:24:::1;::::0;::::1;::::0;11930:1:::1;11902:29:::0;11898:148:::1;;11974:1;11948:27:::0;;;12017:12:::1;::::0;11997:19:::1;::::0;::::1;::::0;11974:1;12017:16:::1;::::0;12032:1:::1;::::0;12017:16:::1;:::i;:::-;11997:37;;;;;;;;;;;;11990:44;;;;:::i;:::-;12064:10;::::0;:39:::1;::::0;-1:-1:-1;;;12064:39:0;;12084:10:::1;12064:39;::::0;::::1;7522:51:1::0;7589:18;;;7582:34;;;-1:-1:-1;;;;;12064:10:0;;::::1;::::0;:19:::1;::::0;7495:18:1;;12064:39:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12056:77;;;::::0;-1:-1:-1;;;12056:77:0;;8079:2:1;12056:77:0::1;::::0;::::1;8061:21:1::0;8118:2;8098:18;;;8091:30;8157:27;8137:18;;;8130:55;8202:18;;12056:77:0::1;7877:349:1::0;12056:77:0::1;12151:28;::::0;3565:25:1;;;12160:10:0::1;::::0;12151:28:::1;::::0;3553:2:1;3538:18;12151:28:0::1;;;;;;;11497:690;11448:739:::0;:::o;10084:113::-;5260:13;:11;:13::i;:::-;10161:12:::1;:28:::0;10084:113::o;10205:445::-;10275:15;10303:28;10347:5;10334:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10303:57;;10376:9;10371:242;10391:16;;;10371:242;;;10447:13;;;10458:1;10447:13;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10447:13:0;10429:12;10442:1;10429:15;;;;;;;;:::i;:::-;;;;;;:31;;;;10496:7;:17;10504:5;;10510:1;10504:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10496:17:0;-1:-1:-1;;;;;10496:17:0;;;;;;;;;;;;:35;;;10475:12;10488:1;10475:15;;;;;;;;:::i;:::-;;;;;;;10491:1;10475:18;;;;;;;;:::i;:::-;;;;;;:56;;;;;10567:7;:17;10575:5;;10581:1;10575:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10567:17:0;-1:-1:-1;;;;;10567:17:0;;;;;;;;;;;;:34;;;10546:12;10559:1;10546:15;;;;;;;;:::i;:::-;;;;;;;10562:1;10546:18;;;;;;;;:::i;:::-;;;;;;;;;;:55;10409:3;;10371:242;;;-1:-1:-1;10630:12:0;-1:-1:-1;10205:445:0;;;;;:::o;8805:1043::-;5260:13;:11;:13::i;:::-;8895:1:::1;8884:8;:12;8876:55;;;::::0;-1:-1:-1;;;8876:55:0;;8697:2:1;8876:55:0::1;::::0;::::1;8679:21:1::0;8736:2;8716:18;;;8709:30;8775:32;8755:18;;;8748:60;8825:18;;8876:55:0::1;8495:354:1::0;8876:55:0::1;8952:12;::::0;8942:23:::1;::::0;;;:9:::1;:23;::::0;;;;8977:15:::1;8942:32;::::0;;::::1;:50:::0;9007:11:::1;::::0;:13;9003:477:::1;;9096:11;::::0;9079:15:::1;:8:::0;9090:4:::1;9079:15;:::i;:::-;9078:29;;;;:::i;:::-;9046:12;::::0;9036:23:::1;::::0;;;:9:::1;:23;::::0;;;;:39:::1;;:71:::0;9003:477:::1;;;9148:12;::::0;;9180:1:::1;9138:23:::0;;;:9:::1;:23;::::0;;;;;;;:39:::1;::::0;;::::1;:43:::0;;;9207:12;;9221:23;;;;;;;:34;;9257:32:::1;::::0;::::1;::::0;9291:39;;;::::1;::::0;9201:130;;3803:25:1;;;3844:18;;;3837:34;3887:18;;3880:34;9207:12:0;9201:130:::1;::::0;3791:2:1;3776:18;9201:130:0::1;;;;;;;9346:12;:14:::0;;;:12:::1;:14;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;9401:46:0::1;::::0;;::::1;::::0;::::1;::::0;;9411:15:::1;9401:46:::0;;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;9401:46:0;;;;;;9385:12:::1;::::0;9375:23;;:9:::1;:23:::0;;;;;;;:72;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;8805:1043;:::o;9003:477::-:1;9501:12;::::0;9515:23:::1;::::0;;;:9:::1;:23;::::0;;;;;;;;:34;;9551:32:::1;::::0;::::1;::::0;9585:39:::1;::::0;;::::1;::::0;9495:130;;3803:25:1;;;3844:18;;;3837:34;;;;3887:18;;;3880:34;9495:130:0::1;::::0;3791:2:1;3776:18;9495:130:0::1;;;;;;;9636:12;:14:::0;;;:12:::1;:14;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;9669:11:0::1;::::0;:61:::1;::::0;-1:-1:-1;;;9669:61:0;;9694:10:::1;9669:61;::::0;::::1;9489:34:1::0;9714:4:0::1;9539:18:1::0;;;9532:43;9591:18;;;9584:34;;;-1:-1:-1;;;;;9669:11:0;;::::1;::::0;:24:::1;::::0;9424:18:1;;9669:61:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9661:96;;;::::0;-1:-1:-1;;;9661:96:0;;9831:2:1;9661:96:0::1;::::0;::::1;9813:21:1::0;9870:2;9850:18;;;9843:30;-1:-1:-1;;;9889:18:1;;;9882:52;9951:18;;9661:96:0::1;9629:346:1::0;9661:96:0::1;9794:46;::::0;;::::1;::::0;::::1;::::0;;9804:15:::1;9794:46:::0;;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;9794:46:0;;;;;;9778:12:::1;::::0;9768:23;;:9:::1;:23:::0;;;;;;;:72;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;5284:1:::1;8805:1043:::0;:::o;12195:663::-;8366:7;;;;8365:8;8357:39;;;;-1:-1:-1;;;8357:39:0;;;;;;;:::i;:::-;8430:1;8415:12;;:16;8407:54;;;;-1:-1:-1;;;8407:54:0;;;;;;;:::i;:::-;12269:10:::1;12237:21;12261:19:::0;;;:7:::1;:19;::::0;;;;12318:23;;12378:12:::1;::::0;:16:::1;::::0;12393:1:::1;::::0;12378:16:::1;:::i;:::-;12358;:36;:69;;;-1:-1:-1::0;12398:24:0::1;::::0;::::1;::::0;:29;12358:69:::1;12354:108;;;12444:7;;12195:663::o:0;12354:108::-:1;12472:15;12490:65;12508:10;12520:16;12553:1;12538:12;;:16;;;;:::i;:::-;12490:17;:65::i;:::-;12472:83:::0;-1:-1:-1;12572:11:0;;12568:186:::1;;12610:11;::::0;:41:::1;::::0;-1:-1:-1;;;12610:41:0;;12631:10:::1;12610:41;::::0;::::1;7522:51:1::0;7589:18;;;7582:34;;;-1:-1:-1;;;;;12610:11:0;;::::1;::::0;:20:::1;::::0;7495:18:1;;12610:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12602:76;;;::::0;-1:-1:-1;;;12602:76:0;;9831:2:1;12602:76:0::1;::::0;::::1;9813:21:1::0;9870:2;9850:18;;;9843:30;-1:-1:-1;;;9889:18:1;;;9882:52;9951:18;;12602:76:0::1;9629:346:1::0;12602:76:0::1;12735:7;12715:19;;:27;;;;:::i;:::-;12693:19;:49:::0;12568:186:::1;12805:1;12790:12;;:16;;;;:::i;:::-;12764:42:::0;;12822:28:::1;::::0;3565:25:1;;;12830:10:0::1;::::0;12822:28:::1;::::0;3553:2:1;3538:18;12822:28:0::1;;;;;;;;12226:632;;;8472:1;12195:663::o:0;14678:182::-;5260:13;:11;:13::i;:::-;14787:35:::1;::::0;-1:-1:-1;;;14787:35:0;;-1:-1:-1;;;;;7540:32:1;;;14787:35:0::1;::::0;::::1;7522:51:1::0;7589:18;;;7582:34;;;14787:22:0;::::1;::::0;::::1;::::0;7495:18:1;;14787:35:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14779:73;;;::::0;-1:-1:-1;;;14779:73:0;;5649:2:1;14779:73:0::1;::::0;::::1;5631:21:1::0;5688:2;5668:18;;;5661:30;-1:-1:-1;;;5707:18:1;;;5700:55;5772:18;;14779:73:0::1;5447:349:1::0;15075:1529:0;-1:-1:-1;;;;;15188:13:0;;15136:15;15188:13;;;:7;:13;;;;;15259:24;;;;;15380:12;;15351;;15259:24;;15136:15;;15341:9;;15136:15;;15351:16;;15259:24;15351:16;:::i;:::-;15341:27;;;;;;;;;;;:36;;;:51;;;;:::i;:::-;15304:89;;15455:1;15408:6;:19;;:37;15443:1;15428:12;;:16;;;;:::i;:::-;15408:37;;;;;;;;;;;-1:-1:-1;15408:37:0;:44;:48;:69;;;;;15460:12;;15476:1;15460:17;;15408:69;15404:484;;;15499:9;15558:1;15511:6;:19;;:37;15546:1;15531:12;;:16;;;;:::i;:::-;15511:37;;;;;;;;;;;-1:-1:-1;15511:37:0;:44;:48;;;;:::i;:::-;15499:60;;15494:383;15654:18;-1:-1:-1;;;;;15597:75:0;:6;:19;;:37;15632:1;15617:12;;:16;;;;:::i;:::-;15597:37;;;;;;;;;;;15635:1;15597:40;;;;;;;;:::i;:::-;;;;;;;;;;;:54;;;:75;15697:5;15593:129;15770:6;:19;;:37;15805:1;15790:12;;:16;;;;:::i;:::-;15770:37;;;;;;;;;;;15808:1;15770:40;;;;;;;;:::i;:::-;;;;;;;;;;;:53;;;15755:12;:68;;;;:::i;:::-;15740:83;-1:-1:-1;15842:20:0;;15855:5;15842:20;15569:3;;;;:::i;:::-;;;;15494:383;;;;15404:484;15921:23;;15905:13;;15921:25;;15945:1;15921:25;:::i;:::-;15905:41;;15900:672;15972:1;15957:12;;:16;;;;:::i;:::-;15948:5;:25;15900:672;;16003:16;;;;:9;:16;;;;;:27;:32;;:66;;-1:-1:-1;16039:16:0;;;;:9;:16;;;;;:25;;;:30;16003:66;16090:8;15999:115;16128:23;16154:16;;;:9;:16;;;;;:32;;;;16226:27;;16291:25;;;;;16154:32;;16226:27;16337:15;:32;-1:-1:-1;16333:81:0;;;16390:8;;;;;16333:81;16451:12;16432:15;:31;16428:133;;16540:4;16506:30;16524:12;16506:15;:30;:::i;:::-;16505:39;;;;:::i;:::-;16494:51;;:7;:51;:::i;:::-;16484:61;;16428:133;15984:588;;;15900:672;15975:7;;;;:::i;:::-;;;;15900:672;;;;16582:14;;;15075:1529;;;:::o;6049:103::-;5260:13;:11;:13::i;:::-;6114:30:::1;6141:1;6114:18;:30::i;10658:782::-:0;8366:7;;;;8365:8;8357:39;;;;-1:-1:-1;;;8357:39:0;;;;;;;:::i;:::-;8430:1;8415:12;;:16;8407:54;;;;-1:-1:-1;;;8407:54:0;;;;;;;:::i;:::-;10733:1:::1;10724:6;:10;10716:52;;;::::0;-1:-1:-1;;;10716:52:0;;6704:2:1;10716:52:0::1;::::0;::::1;6686:21:1::0;6743:2;6723:18;;;6716:30;6782:31;6762:18;;;6755:59;6831:18;;10716:52:0::1;6502:353:1::0;10716:52:0::1;10787:10;::::0;:58:::1;::::0;-1:-1:-1;;;10787:58:0;;10811:10:::1;10787:58;::::0;::::1;9489:34:1::0;10831:4:0::1;9539:18:1::0;;;9532:43;9591:18;;;9584:34;;;-1:-1:-1;;;;;10787:10:0;;::::1;::::0;:23:::1;::::0;9424:18:1;;10787:58:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10779:94;;;::::0;-1:-1:-1;;;10779:94:0;;10453:2:1;10779:94:0::1;::::0;::::1;10435:21:1::0;10492:2;10472:18;;;10465:30;10531:25;10511:18;;;10504:53;10574:18;;10779:94:0::1;10251:347:1::0;10779:94:0::1;10916:10;10884:21;10908:19:::0;;;:7:::1;:19;::::0;;;;10965:23;;11005:24:::1;::::0;::::1;::::0;10908:19;;10965:23;;11005:29;;11001:135:::1;;11085:1;11070:12;;:16;;;;:::i;:::-;11051:35;;11001:135;;;11117:7;:5;:7::i;:::-;11166:12;::::0;11146:33:::1;::::0;;;:19:::1;::::0;;::::1;:33;::::0;;;;;;;11185:37;;;;::::1;::::0;;;;;;11206:15:::1;11185:37:::0;;::::1;::::0;;;11146:77;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;;;::::1;;::::0;;;;;;;::::1;::::0;;;;11261:24;::::1;::::0;:31:::1;::::0;11198:6;;11261:31:::1;:::i;:::-;11234:6;:24;;:58;;;;11344:1;11329:12;;:16;;;;:::i;:::-;11303:42:::0;;11370:11:::1;::::0;:18:::1;::::0;11382:6;;11370:18:::1;:::i;:::-;11356:11;:32:::0;11406:26:::1;::::0;3565:25:1;;;11413:10:0::1;::::0;11406:26:::1;::::0;3553:2:1;3538:18;11406:26:0::1;3419:177:1::0;6307:220:0;5260:13;:11;:13::i;:::-;-1:-1:-1;;;;;6392:22:0;::::1;6388:93;;6438:31;::::0;-1:-1:-1;;;6438:31:0;;6466:1:::1;6438:31;::::0;::::1;4071:51:1::0;4044:18;;6438:31:0::1;3925:203:1::0;6388:93:0::1;6491:28;6510:8;6491:18;:28::i;5539:166::-:0;5420:7;5447:6;-1:-1:-1;;;;;5447:6:0;3520:10;5599:23;5595:103;;5646:40;;-1:-1:-1;;;5646:40:0;;3520:10;5646:40;;;4071:51:1;4044:18;;5646:40:0;3925:203:1;12866:1804:0;-1:-1:-1;;;;;13014:13:0;;12962:15;13014:13;;;:7;:13;;;;;13066:23;;:28;13062:62;;13110:12;:10;13121:1;13110:12;:::i;:::-;13097:25;;13062:62;13159:24;;;;;13272:12;;13136:20;13241:19;;;:9;:19;;;;;:28;;;;13159:24;;13136:20;13241:43;;13272:12;13241:43;:::i;:::-;13349:1;13310:29;;;:19;;;:29;;;;;:36;13204:81;;-1:-1:-1;13310:40:0;;;;:61;;;13354:12;;13370:1;13354:17;;13310:61;13306:623;;;13393:9;13405:29;;;:19;;;:29;;;;;:36;:40;;13444:1;;13405:40;:::i;:::-;13393:52;;13388:530;13483:29;;;;:19;;;:29;;;;;:32;;-1:-1:-1;;;;;13483:67:0;;;:29;13513:1;;13483:32;;;;;;:::i;:::-;;;;;;;;;;;:46;;;:67;13575:5;13479:121;13622:29;;;;:19;;;:29;;;;;:32;;13670:12;;13622:29;13652:1;;13622:32;;;;;;:::i;:::-;;;;;;;;;;;:45;;;:60;13618:153;;;13722:1;13707:16;;13746:5;;13618:153;13819:29;;;;:19;;;:29;;;;;:32;;13849:1;;13819:32;;;;;;:::i;:::-;;;;;;;;;;;:45;;;13804:12;:60;;;;:::i;:::-;13789:75;-1:-1:-1;13883:20:0;;13896:5;13883:20;13455:3;;;;:::i;:::-;;;;13388:530;;;;13306:623;13962:10;13941:697;13983:8;13974:5;:17;13941:697;;14021:16;;;;:9;:16;;;;;:27;:32;;:66;;-1:-1:-1;14057:16:0;;;;:9;:16;;;;;:25;;;:30;14021:66;14108:8;14017:115;14146:23;14172:16;;;:9;:16;;;;;:32;;;;14244:27;;14309:25;;;;;14172:32;;14244:27;14355:15;:32;-1:-1:-1;14351:81:0;;;14408:8;;;;;14351:81;14469:12;14450:15;:31;14446:133;;14558:4;14524:30;14542:12;14524:15;:30;:::i;:::-;14523:39;;;;:::i;:::-;14512:51;;:7;:51;:::i;:::-;14502:61;;14446:133;14600:26;;;;:19;;;:26;;;;;14593:33;;;:::i;:::-;14002:636;;;13941:697;13993:7;;;;:::i;:::-;;;;13941:697;;;;14648:14;;;12866:1804;;;;;:::o;6687:191::-;6761:16;6780:6;;-1:-1:-1;;;;;6797:17:0;;;-1:-1:-1;;;;;;6797:17:0;;;;;;6830:40;;6780:6;;;;;;;6830:40;;6761:16;6830:40;6750:128;6687:191;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:254::-;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;373:9;360:23;350:33;;402:38;436:2;425:9;421:18;402:38;:::i;:::-;392:48;;192:254;;;;;:::o;451:118::-;537:5;530:13;523:21;516:5;513:32;503:60;;559:1;556;549:12;574:241;630:6;683:2;671:9;662:7;658:23;654:32;651:52;;;699:1;696;689:12;651:52;738:9;725:23;757:28;779:5;757:28;:::i;:::-;804:5;574:241;-1:-1:-1;;;574:241:1:o;820:180::-;879:6;932:2;920:9;911:7;907:23;903:32;900:52;;;948:1;945;938:12;900:52;-1:-1:-1;971:23:1;;820:180;-1:-1:-1;820:180:1:o;1005:615::-;1091:6;1099;1152:2;1140:9;1131:7;1127:23;1123:32;1120:52;;;1168:1;1165;1158:12;1120:52;1208:9;1195:23;1237:18;1278:2;1270:6;1267:14;1264:34;;;1294:1;1291;1284:12;1264:34;1332:6;1321:9;1317:22;1307:32;;1377:7;1370:4;1366:2;1362:13;1358:27;1348:55;;1399:1;1396;1389:12;1348:55;1439:2;1426:16;1465:2;1457:6;1454:14;1451:34;;;1481:1;1478;1471:12;1451:34;1534:7;1529:2;1519:6;1516:1;1512:14;1508:2;1504:23;1500:32;1497:45;1494:65;;;1555:1;1552;1545:12;1494:65;1586:2;1578:11;;;;;1608:6;;-1:-1:-1;1005:615:1;;-1:-1:-1;;;;1005:615:1:o;1625:1265::-;1817:4;1846:2;1886;1875:9;1871:18;1916:2;1905:9;1898:21;1939:6;1974;1968:13;2005:6;1997;1990:22;2043:2;2032:9;2028:18;2021:25;;2105:2;2095:6;2092:1;2088:14;2077:9;2073:30;2069:39;2055:53;;2143:2;2135:6;2131:15;2164:1;2174:687;2188:6;2185:1;2182:13;2174:687;;;2253:22;;;-1:-1:-1;;2249:36:1;2237:49;;2309:13;;2383:9;;2405:24;;;2495:11;;;;2451:15;;;;2530:1;2544:209;2560:8;2555:3;2552:17;2544:209;;;2637:15;;2623:30;;2722:17;;;;2679:14;;;;2588:1;2579:11;2544:209;;;-1:-1:-1;2776:5:1;;-1:-1:-1;;;2839:12:1;;;;2804:15;;;;2210:1;2203:9;2174:687;;;-1:-1:-1;2878:6:1;;1625:1265;-1:-1:-1;;;;;;;1625:1265:1:o;2895:328::-;2972:6;2980;2988;3041:2;3029:9;3020:7;3016:23;3012:32;3009:52;;;3057:1;3054;3047:12;3009:52;3080:29;3099:9;3080:29;:::i;:::-;3070:39;;3156:2;3145:9;3141:18;3128:32;3118:42;;3179:38;3213:2;3202:9;3198:18;3179:38;:::i;:::-;3169:48;;2895:328;;;;;:::o;3228:186::-;3287:6;3340:2;3328:9;3319:7;3315:23;3311:32;3308:52;;;3356:1;3353;3346:12;3308:52;3379:29;3398:9;3379:29;:::i;4965:127::-;5026:10;5021:3;5017:20;5014:1;5007:31;5057:4;5054:1;5047:15;5081:4;5078:1;5071:15;5097:135;5136:3;5157:17;;;5154:43;;5177:18;;:::i;:::-;-1:-1:-1;5224:1:1;5213:13;;5097:135::o;5801:342::-;6003:2;5985:21;;;6042:2;6022:18;;;6015:30;-1:-1:-1;;;6076:2:1;6061:18;;6054:48;6134:2;6119:18;;5801:342::o;6148:349::-;6350:2;6332:21;;;6389:2;6369:18;;;6362:30;6428:27;6423:2;6408:18;;6401:55;6488:2;6473:18;;6148:349::o;7215:128::-;7282:9;;;7303:11;;;7300:37;;;7317:18;;:::i;7627:245::-;7694:6;7747:2;7735:9;7726:7;7722:23;7718:32;7715:52;;;7763:1;7760;7753:12;7715:52;7795:9;7789:16;7814:28;7836:5;7814:28;:::i;8231:127::-;8292:10;8287:3;8283:20;8280:1;8273:31;8323:4;8320:1;8313:15;8347:4;8344:1;8337:15;8363:127;8424:10;8419:3;8415:20;8412:1;8405:31;8455:4;8452:1;8445:15;8479:4;8476:1;8469:15;8854:168;8927:9;;;8958;;8975:15;;;8969:22;;8955:37;8945:71;;8996:18;;:::i;9027:217::-;9067:1;9093;9083:132;;9137:10;9132:3;9128:20;9125:1;9118:31;9172:4;9169:1;9162:15;9200:4;9197:1;9190:15;9083:132;-1:-1:-1;9229:9:1;;9027:217::o;9980:125::-;10045:9;;;10066:10;;;10063:36;;;10079:18;;:::i;10110:136::-;10149:3;10177:5;10167:39;;10186:18;;:::i;:::-;-1:-1:-1;;;10222:18:1;;10110:136::o
Swarm Source
ipfs://4a0d228195a01b07bc18b2b3c1e8f7e115790d9b048b1b0291fab872081b008d
Loading...
Loading
Loading...
Loading
OVERVIEW
This is contract for staking v1 of Shadow Node.Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.001167 | 104,837,161.5433 | $122,339.92 |
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.