More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 530 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Unstake | 19982598 | 253 days ago | IN | 0 ETH | 0.00271377 | ||||
Unstake | 19881703 | 268 days ago | IN | 0 ETH | 0.00103165 | ||||
Stake | 19864716 | 270 days ago | IN | 0 ETH | 0.00086164 | ||||
Stake | 19864671 | 270 days ago | IN | 0 ETH | 0.00090012 | ||||
Stake | 19863627 | 270 days ago | IN | 0 ETH | 0.00193866 | ||||
Stake | 19860844 | 270 days ago | IN | 0 ETH | 0.00084336 | ||||
Stake | 19860766 | 270 days ago | IN | 0 ETH | 0.00074941 | ||||
Stake | 19857378 | 271 days ago | IN | 0 ETH | 0.00073414 | ||||
Stake | 19856921 | 271 days ago | IN | 0 ETH | 0.00075349 | ||||
Stake | 19856847 | 271 days ago | IN | 0 ETH | 0.00075732 | ||||
Stake | 19856793 | 271 days ago | IN | 0 ETH | 0.00074101 | ||||
Remove Rewards | 19856616 | 271 days ago | IN | 0 ETH | 0.0003266 | ||||
Remove Rewards | 19856600 | 271 days ago | IN | 0 ETH | 0.0003711 | ||||
Stake | 19852113 | 272 days ago | IN | 0 ETH | 0.00029628 | ||||
Unstake | 19852095 | 272 days ago | IN | 0 ETH | 0.00081328 | ||||
Stake | 19850430 | 272 days ago | IN | 0 ETH | 0.00076514 | ||||
Stake | 19848748 | 272 days ago | IN | 0 ETH | 0.00088174 | ||||
Stake | 19844084 | 273 days ago | IN | 0 ETH | 0.00104722 | ||||
Stake | 19839765 | 273 days ago | IN | 0 ETH | 0.00107305 | ||||
Unstake | 19837873 | 274 days ago | IN | 0 ETH | 0.00010288 | ||||
Unstake | 19837872 | 274 days ago | IN | 0 ETH | 0.00051449 | ||||
Stake | 19837050 | 274 days ago | IN | 0 ETH | 0.00091665 | ||||
Stake | 19835628 | 274 days ago | IN | 0 ETH | 0.00095066 | ||||
Stake | 19835527 | 274 days ago | IN | 0 ETH | 0.00094808 | ||||
Stake | 19835216 | 274 days ago | IN | 0 ETH | 0.00087332 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
StakingV4
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-04-02 */ // SPDX-License-Identifier: MIT // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol) pragma solidity ^0.8.20; /** * @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; } } // File: @openzeppelin/contracts/utils/Pausable.sol // OpenZeppelin Contracts (last updated v5.0.0) (utils/Pausable.sol) pragma solidity ^0.8.20; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { bool private _paused; /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); /** * @dev The operation failed because the contract is paused. */ error EnforcedPause(); /** * @dev The operation failed because the contract is not paused. */ error ExpectedPause(); /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { _requireNotPaused(); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { _requirePaused(); _; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Throws if the contract is paused. */ function _requireNotPaused() internal view virtual { if (paused()) { revert EnforcedPause(); } } /** * @dev Throws if the contract is not paused. */ function _requirePaused() internal view virtual { if (!paused()) { revert ExpectedPause(); } } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } } // File: @openzeppelin/contracts/access/Ownable.sol // 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); } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.20; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ 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); } // File: staking.sol pragma solidity ^0.8.0; contract StakingV4 is Ownable, Pausable { IERC20 public stakingToken; // Events for tracking key contract activities event Staked(address indexed user, uint256 amount); event Unstaked(address indexed user, uint256 amount); event RewardClaimed(address indexed user, uint256 amount); event RewardAdded(uint256 amount); event RewardRemoved(uint256 amount); event APRUpdated(uint256 newAPR); uint256 public apr = 10000; // APR represented in basis points for precision (10000 basis points = 100%). uint256 private constant BASIS_POINTS = 10000; // Struct to hold stake details for each user struct Stake { uint256 amount; // Amount staked by the user uint256 lastUpdate; // Timestamp of the last update uint256 withdrawn; // Amount of rewards withdrawn by the user } mapping(address => Stake) public stakes; // Mapping of user addresses to their stakes uint256 public totalStaked; // Total amount of tokens staked in the contract uint256 public totalRewardsDistributed; // Total rewards distributed uint256 public rewardsPool; // Total rewards available in the pool uint256 public totalUsersStaked; // Total number of users who have staked tokens constructor(address _stakingTokenAddress) Ownable(msg.sender) { stakingToken = IERC20(_stakingTokenAddress); _pause(); // Initialize the contract in the paused state } // Allows a user to stake a specified amount of tokens function stake(uint256 _amount) external whenNotPaused { require(_amount > 0, "Cannot stake 0"); // Ensure the amount to stake is greater than 0 // Transfer the staked tokens from the user to the contract stakingToken.transferFrom(msg.sender, address(this), _amount); if (stakes[msg.sender].amount == 0) totalUsersStaked++; // Increment the total users staked if the user is staking for the first time uint256 reward = calculateReward(msg.sender); // Calculate the reward for the user stakes[msg.sender].lastUpdate = block.timestamp; // Update the last update timestamp for the user stakes[msg.sender].amount += _amount + reward; // Update the user's stake amount totalStaked += _amount; // Update the total staked amount emit Staked(msg.sender, _amount); } // Unstakes all staked tokens plus reward function unstake() external { Stake storage userStake = stakes[msg.sender]; require(userStake.amount > 0, "No tokens staked"); // Calculate the reward for the user uint256 reward = calculateReward(msg.sender); if (reward > rewardsPool) { reward = rewardsPool; // Cap the reward to the available rewards pool } uint256 totalAmount = userStake.amount + reward; // Total amount includes staked tokens and rewards uint256 unstakedAmount = userStake.amount; userStake.amount = 0; // Reset the staked amount for the user userStake.lastUpdate = block.timestamp; // Update the last update timestamp for the user userStake.withdrawn += reward; // Update the withdrawn amount for the user with the reward totalStaked -= totalAmount - reward; // Update the total staked amount by removing the staked amount (excluding reward) if (reward > 0) { rewardsPool -= reward; // Update the rewards pool by removing the claimed reward } totalUsersStaked--; // Decrement the total users staked since the user is unstaking all tokens // Transfer the total amount (staked tokens + reward) back to the user stakingToken.transfer(msg.sender, totalAmount); emit Unstaked(msg.sender, unstakedAmount); if (reward > 0) { totalRewardsDistributed += reward; emit RewardClaimed(msg.sender, reward); } } // Calculates the reward for a given user function calculateReward(address _user) public view returns (uint256) { if (stakes[_user].amount == 0) return 0; // If the user has no stake, the reward is 0 if (rewardsPool == 0) return 0; // If the rewards pool is empty, the reward is 0 uint256 timePassed = block.timestamp - stakes[_user].lastUpdate; // Calculate the time passed since the last update uint256 reward = (stakes[_user].amount * apr * timePassed) / (BASIS_POINTS * 365 days); // Calculate the reward return reward; } // Allows the owner to update the APR function updateApr(uint256 _newApr) external onlyOwner { require(_newApr > 0, "APR must be greater than 0"); apr = _newApr; emit APRUpdated(_newApr); } // Allows the owner to add rewards to the rewards pool function addRewards(uint256 _amount) external onlyOwner { stakingToken.transferFrom(msg.sender, address(this), _amount); rewardsPool += _amount; emit RewardAdded(_amount); } // Allows the owner to remove rewards from the rewards pool function removeRewards(uint256 _amount) external onlyOwner { require(_amount <= rewardsPool, "Amount exceeds the rewards pool"); rewardsPool -= _amount; stakingToken.transfer(msg.sender, _amount); emit RewardRemoved(_amount); } // Allows the owner to pause the contract, preventing any staking or unstaking function pause() external onlyOwner { _pause(); } // Allows the owner to unpause the contract, allowing staking and unstaking function unpause() external onlyOwner { _unpause(); } // Disable the fallback function to prevent users from sending ETH to the contract receive() external payable { revert("ETH not accepted"); } // Fallback function to reject any ether sent to the contract fallback() external { revert("ETH not accepted"); } // Allows the owner to withdraw any ERC20 tokens from the contract, except the staking token function withdrawTokens(address _token, uint256 _amount) external onlyOwner { require( _token != address(stakingToken), "Cannot withdraw staking token" ); IERC20(_token).transfer(msg.sender, _amount); } // Allows owner to change address of the staked token function changeStakedTokenAddress(address _token) external onlyOwner { require( _token != address(stakingToken), "Address is the same" ); require( totalStaked == 0, "There are some stakers, can't change staked token address" ); stakingToken = IERC20(_token); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_stakingTokenAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"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":false,"internalType":"uint256","name":"newAPR","type":"uint256"}],"name":"APRUpdated","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":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardRemoved","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":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","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"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"addRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"apr","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"calculateReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"changeStakedTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"removeRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardsPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"stakes","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"lastUpdate","type":"uint256"},{"internalType":"uint256","name":"withdrawn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewardsDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalUsersStaked","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":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newApr","type":"uint256"}],"name":"updateApr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405261271060025534801562000016575f80fd5b5060405162001ff238038062001ff283398181016040528101906200003c919062000332565b335f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000b0575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000a7919062000373565b60405180910390fd5b620000c1816200013260201b60201c565b505f8060146101000a81548160ff0219169083151502179055508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200012b620001f360201b60201c565b506200038e565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620002036200026760201b60201c565b60015f60146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586200024e620002b160201b60201c565b6040516200025d919062000373565b60405180910390a1565b62000277620002b860201b60201c565b15620002af576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f33905090565b5f8060149054906101000a900460ff16905090565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620002fc82620002d1565b9050919050565b6200030e81620002f0565b811462000319575f80fd5b50565b5f815190506200032c8162000303565b92915050565b5f602082840312156200034a5762000349620002cd565b5b5f62000359848285016200031c565b91505092915050565b6200036d81620002f0565b82525050565b5f602082019050620003885f83018462000362565b92915050565b611c56806200039c5f395ff3fe60806040526004361061012d575f3560e01c806372f702f3116100aa5780639917a6371161006e5780639917a637146103e8578063a694fc3a14610410578063beceed3914610438578063d82e396214610460578063ee1725461461049c578063f2fde38b146104c65761016d565b806372f702f31461032c578063817b1cd2146103565780638456cb59146103805780638552bf90146103965780638da5cb5b146103be5761016d565b80634195fe8a116100f15780634195fe8a1461027057806357ded9c9146102985780635c975abb146102c257806368cc5dae146102ec578063715018a6146103165761016d565b80630359fea9146101b457806306b091f9146101de57806316934fc4146102065780632def6620146102445780633f4ba83a1461025a5761016d565b3661016d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016490611463565b60405180910390fd5b348015610178575f80fd5b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ab90611463565b60405180910390fd5b3480156101bf575f80fd5b506101c86104ee565b6040516101d59190611499565b60405180910390f35b3480156101e9575f80fd5b5061020460048036038101906101ff919061153a565b6104f4565b005b348015610211575f80fd5b5061022c60048036038101906102279190611578565b61060b565b60405161023b939291906115a3565b60405180910390f35b34801561024f575f80fd5b50610258610631565b005b348015610265575f80fd5b5061026e6108d1565b005b34801561027b575f80fd5b50610296600480360381019061029191906115d8565b6108e3565b005b3480156102a3575f80fd5b506102ac610a1f565b6040516102b99190611499565b60405180910390f35b3480156102cd575f80fd5b506102d6610a25565b6040516102e3919061161d565b60405180910390f35b3480156102f7575f80fd5b50610300610a3a565b60405161030d9190611499565b60405180910390f35b348015610321575f80fd5b5061032a610a40565b005b348015610337575f80fd5b50610340610a53565b60405161034d9190611691565b60405180910390f35b348015610361575f80fd5b5061036a610a78565b6040516103779190611499565b60405180910390f35b34801561038b575f80fd5b50610394610a7e565b005b3480156103a1575f80fd5b506103bc60048036038101906103b791906115d8565b610a90565b005b3480156103c9575f80fd5b506103d2610b1b565b6040516103df91906116b9565b60405180910390f35b3480156103f3575f80fd5b5061040e60048036038101906104099190611578565b610b42565b005b34801561041b575f80fd5b50610436600480360381019061043191906115d8565b610c60565b005b348015610443575f80fd5b5061045e600480360381019061045991906115d8565b610ec2565b005b34801561046b575f80fd5b5061048660048036038101906104819190611578565b610fbb565b6040516104939190611499565b60405180910390f35b3480156104a7575f80fd5b506104b06110ec565b6040516104bd9190611499565b60405180910390f35b3480156104d1575f80fd5b506104ec60048036038101906104e79190611578565b6110f2565b005b60065481565b6104fc611176565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361058b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105829061171c565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016105c692919061173a565b6020604051808303815f875af11580156105e2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610606919061178b565b505050565b6003602052805f5260405f205f91509050805f0154908060010154908060020154905083565b5f60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f815f0154116106b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ad90611800565b60405180910390fd5b5f6106c033610fbb565b90506006548111156106d25760065490505b5f81835f01546106e2919061184b565b90505f835f015490505f845f018190555042846001018190555082846002015f82825461070f919061184b565b925050819055508282610722919061187e565b60045f828254610732919061187e565b925050819055505f83111561075a578260065f828254610752919061187e565b925050819055505b60075f81548092919061076c906118b1565b919050555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016107cd92919061173a565b6020604051808303815f875af11580156107e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080d919061178b565b503373ffffffffffffffffffffffffffffffffffffffff167f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f75826040516108549190611499565b60405180910390a25f8311156108cb578260055f828254610875919061184b565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f7241846040516108c29190611499565b60405180910390a25b50505050565b6108d9611176565b6108e16111fd565b565b6108eb611176565b600654811115610930576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092790611922565b60405180910390fd5b8060065f828254610941919061187e565b9250508190555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016109a492919061173a565b6020604051808303815f875af11580156109c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e4919061178b565b507f5d3a571a89edce81bd931e9d740ff7f0560940fc502a27f178f002eca691dfd981604051610a149190611499565b60405180910390a150565b60025481565b5f8060149054906101000a900460ff16905090565b60075481565b610a48611176565b610a515f61125e565b565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b610a86611176565b610a8e61131f565b565b610a98611176565b5f8111610ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad19061198a565b60405180910390fd5b806002819055507f2ec8ccb96042321f3bbdd56e8e4e4339bc07c9c2021e14e18ef12f5db282b37a81604051610b109190611499565b60405180910390a150565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b4a611176565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd0906119f2565b60405180910390fd5b5f60045414610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1490611a80565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610c68611381565b5f8111610caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca190611ae8565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610d0893929190611b06565b6020604051808303815f875af1158015610d24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d48919061178b565b505f60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015403610da75760075f815480929190610da190611b3b565b91905055505b5f610db133610fbb565b90504260035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101819055508082610e04919061184b565b60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f828254610e51919061184b565b925050819055508160045f828254610e69919061184b565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d83604051610eb69190611499565b60405180910390a25050565b610eca611176565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610f2893929190611b06565b6020604051808303815f875af1158015610f44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f68919061178b565b508060065f828254610f7a919061184b565b925050819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d81604051610fb09190611499565b60405180910390a150565b5f8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01540361100a575f90506110e7565b5f6006540361101b575f90506110e7565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001015442611068919061187e565b90505f6301e1338061271061107d9190611b82565b8260025460035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01546110cb9190611b82565b6110d59190611b82565b6110df9190611bf0565b905080925050505b919050565b60055481565b6110fa611176565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361116a575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161116191906116b9565b60405180910390fd5b6111738161125e565b50565b61117e6113c2565b73ffffffffffffffffffffffffffffffffffffffff1661119c610b1b565b73ffffffffffffffffffffffffffffffffffffffff16146111fb576111bf6113c2565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016111f291906116b9565b60405180910390fd5b565b6112056113c9565b5f8060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6112476113c2565b60405161125491906116b9565b60405180910390a1565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611327611381565b60015f60146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861136a6113c2565b60405161137791906116b9565b60405180910390a1565b611389610a25565b156113c0576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f33905090565b6113d1610a25565b611407576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f82825260208201905092915050565b7f455448206e6f74206163636570746564000000000000000000000000000000005f82015250565b5f61144d601083611409565b915061145882611419565b602082019050919050565b5f6020820190508181035f83015261147a81611441565b9050919050565b5f819050919050565b61149381611481565b82525050565b5f6020820190506114ac5f83018461148a565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114df826114b6565b9050919050565b6114ef816114d5565b81146114f9575f80fd5b50565b5f8135905061150a816114e6565b92915050565b61151981611481565b8114611523575f80fd5b50565b5f8135905061153481611510565b92915050565b5f80604083850312156115505761154f6114b2565b5b5f61155d858286016114fc565b925050602061156e85828601611526565b9150509250929050565b5f6020828403121561158d5761158c6114b2565b5b5f61159a848285016114fc565b91505092915050565b5f6060820190506115b65f83018661148a565b6115c3602083018561148a565b6115d0604083018461148a565b949350505050565b5f602082840312156115ed576115ec6114b2565b5b5f6115fa84828501611526565b91505092915050565b5f8115159050919050565b61161781611603565b82525050565b5f6020820190506116305f83018461160e565b92915050565b5f819050919050565b5f61165961165461164f846114b6565b611636565b6114b6565b9050919050565b5f61166a8261163f565b9050919050565b5f61167b82611660565b9050919050565b61168b81611671565b82525050565b5f6020820190506116a45f830184611682565b92915050565b6116b3816114d5565b82525050565b5f6020820190506116cc5f8301846116aa565b92915050565b7f43616e6e6f74207769746864726177207374616b696e6720746f6b656e0000005f82015250565b5f611706601d83611409565b9150611711826116d2565b602082019050919050565b5f6020820190508181035f830152611733816116fa565b9050919050565b5f60408201905061174d5f8301856116aa565b61175a602083018461148a565b9392505050565b61176a81611603565b8114611774575f80fd5b50565b5f8151905061178581611761565b92915050565b5f602082840312156117a05761179f6114b2565b5b5f6117ad84828501611777565b91505092915050565b7f4e6f20746f6b656e73207374616b6564000000000000000000000000000000005f82015250565b5f6117ea601083611409565b91506117f5826117b6565b602082019050919050565b5f6020820190508181035f830152611817816117de565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61185582611481565b915061186083611481565b92508282019050808211156118785761187761181e565b5b92915050565b5f61188882611481565b915061189383611481565b92508282039050818111156118ab576118aa61181e565b5b92915050565b5f6118bb82611481565b91505f82036118cd576118cc61181e565b5b600182039050919050565b7f416d6f756e74206578636565647320746865207265776172647320706f6f6c005f82015250565b5f61190c601f83611409565b9150611917826118d8565b602082019050919050565b5f6020820190508181035f83015261193981611900565b9050919050565b7f415052206d7573742062652067726561746572207468616e20300000000000005f82015250565b5f611974601a83611409565b915061197f82611940565b602082019050919050565b5f6020820190508181035f8301526119a181611968565b9050919050565b7f41646472657373206973207468652073616d65000000000000000000000000005f82015250565b5f6119dc601383611409565b91506119e7826119a8565b602082019050919050565b5f6020820190508181035f830152611a09816119d0565b9050919050565b7f54686572652061726520736f6d65207374616b6572732c2063616e27742063685f8201527f616e6765207374616b656420746f6b656e206164647265737300000000000000602082015250565b5f611a6a603983611409565b9150611a7582611a10565b604082019050919050565b5f6020820190508181035f830152611a9781611a5e565b9050919050565b7f43616e6e6f74207374616b6520300000000000000000000000000000000000005f82015250565b5f611ad2600e83611409565b9150611add82611a9e565b602082019050919050565b5f6020820190508181035f830152611aff81611ac6565b9050919050565b5f606082019050611b195f8301866116aa565b611b2660208301856116aa565b611b33604083018461148a565b949350505050565b5f611b4582611481565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611b7757611b7661181e565b5b600182019050919050565b5f611b8c82611481565b9150611b9783611481565b9250828202611ba581611481565b91508282048414831517611bbc57611bbb61181e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611bfa82611481565b9150611c0583611481565b925082611c1557611c14611bc3565b5b82820490509291505056fea2646970667358221220ad0e43a5d5dfbb640593d8848507b4df5057877197bf92469c7396c751e4e24864736f6c634300081400330000000000000000000000004447743d42680f7fbb56e87b3617463113ca649e
Deployed Bytecode
0x60806040526004361061012d575f3560e01c806372f702f3116100aa5780639917a6371161006e5780639917a637146103e8578063a694fc3a14610410578063beceed3914610438578063d82e396214610460578063ee1725461461049c578063f2fde38b146104c65761016d565b806372f702f31461032c578063817b1cd2146103565780638456cb59146103805780638552bf90146103965780638da5cb5b146103be5761016d565b80634195fe8a116100f15780634195fe8a1461027057806357ded9c9146102985780635c975abb146102c257806368cc5dae146102ec578063715018a6146103165761016d565b80630359fea9146101b457806306b091f9146101de57806316934fc4146102065780632def6620146102445780633f4ba83a1461025a5761016d565b3661016d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016490611463565b60405180910390fd5b348015610178575f80fd5b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ab90611463565b60405180910390fd5b3480156101bf575f80fd5b506101c86104ee565b6040516101d59190611499565b60405180910390f35b3480156101e9575f80fd5b5061020460048036038101906101ff919061153a565b6104f4565b005b348015610211575f80fd5b5061022c60048036038101906102279190611578565b61060b565b60405161023b939291906115a3565b60405180910390f35b34801561024f575f80fd5b50610258610631565b005b348015610265575f80fd5b5061026e6108d1565b005b34801561027b575f80fd5b50610296600480360381019061029191906115d8565b6108e3565b005b3480156102a3575f80fd5b506102ac610a1f565b6040516102b99190611499565b60405180910390f35b3480156102cd575f80fd5b506102d6610a25565b6040516102e3919061161d565b60405180910390f35b3480156102f7575f80fd5b50610300610a3a565b60405161030d9190611499565b60405180910390f35b348015610321575f80fd5b5061032a610a40565b005b348015610337575f80fd5b50610340610a53565b60405161034d9190611691565b60405180910390f35b348015610361575f80fd5b5061036a610a78565b6040516103779190611499565b60405180910390f35b34801561038b575f80fd5b50610394610a7e565b005b3480156103a1575f80fd5b506103bc60048036038101906103b791906115d8565b610a90565b005b3480156103c9575f80fd5b506103d2610b1b565b6040516103df91906116b9565b60405180910390f35b3480156103f3575f80fd5b5061040e60048036038101906104099190611578565b610b42565b005b34801561041b575f80fd5b50610436600480360381019061043191906115d8565b610c60565b005b348015610443575f80fd5b5061045e600480360381019061045991906115d8565b610ec2565b005b34801561046b575f80fd5b5061048660048036038101906104819190611578565b610fbb565b6040516104939190611499565b60405180910390f35b3480156104a7575f80fd5b506104b06110ec565b6040516104bd9190611499565b60405180910390f35b3480156104d1575f80fd5b506104ec60048036038101906104e79190611578565b6110f2565b005b60065481565b6104fc611176565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361058b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105829061171c565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016105c692919061173a565b6020604051808303815f875af11580156105e2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610606919061178b565b505050565b6003602052805f5260405f205f91509050805f0154908060010154908060020154905083565b5f60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f815f0154116106b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ad90611800565b60405180910390fd5b5f6106c033610fbb565b90506006548111156106d25760065490505b5f81835f01546106e2919061184b565b90505f835f015490505f845f018190555042846001018190555082846002015f82825461070f919061184b565b925050819055508282610722919061187e565b60045f828254610732919061187e565b925050819055505f83111561075a578260065f828254610752919061187e565b925050819055505b60075f81548092919061076c906118b1565b919050555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016107cd92919061173a565b6020604051808303815f875af11580156107e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080d919061178b565b503373ffffffffffffffffffffffffffffffffffffffff167f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f75826040516108549190611499565b60405180910390a25f8311156108cb578260055f828254610875919061184b565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f7241846040516108c29190611499565b60405180910390a25b50505050565b6108d9611176565b6108e16111fd565b565b6108eb611176565b600654811115610930576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092790611922565b60405180910390fd5b8060065f828254610941919061187e565b9250508190555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016109a492919061173a565b6020604051808303815f875af11580156109c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e4919061178b565b507f5d3a571a89edce81bd931e9d740ff7f0560940fc502a27f178f002eca691dfd981604051610a149190611499565b60405180910390a150565b60025481565b5f8060149054906101000a900460ff16905090565b60075481565b610a48611176565b610a515f61125e565b565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b610a86611176565b610a8e61131f565b565b610a98611176565b5f8111610ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad19061198a565b60405180910390fd5b806002819055507f2ec8ccb96042321f3bbdd56e8e4e4339bc07c9c2021e14e18ef12f5db282b37a81604051610b109190611499565b60405180910390a150565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b4a611176565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd0906119f2565b60405180910390fd5b5f60045414610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1490611a80565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610c68611381565b5f8111610caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca190611ae8565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610d0893929190611b06565b6020604051808303815f875af1158015610d24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d48919061178b565b505f60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015403610da75760075f815480929190610da190611b3b565b91905055505b5f610db133610fbb565b90504260035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101819055508082610e04919061184b565b60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f828254610e51919061184b565b925050819055508160045f828254610e69919061184b565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d83604051610eb69190611499565b60405180910390a25050565b610eca611176565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610f2893929190611b06565b6020604051808303815f875af1158015610f44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f68919061178b565b508060065f828254610f7a919061184b565b925050819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d81604051610fb09190611499565b60405180910390a150565b5f8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01540361100a575f90506110e7565b5f6006540361101b575f90506110e7565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001015442611068919061187e565b90505f6301e1338061271061107d9190611b82565b8260025460035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01546110cb9190611b82565b6110d59190611b82565b6110df9190611bf0565b905080925050505b919050565b60055481565b6110fa611176565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361116a575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161116191906116b9565b60405180910390fd5b6111738161125e565b50565b61117e6113c2565b73ffffffffffffffffffffffffffffffffffffffff1661119c610b1b565b73ffffffffffffffffffffffffffffffffffffffff16146111fb576111bf6113c2565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016111f291906116b9565b60405180910390fd5b565b6112056113c9565b5f8060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6112476113c2565b60405161125491906116b9565b60405180910390a1565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611327611381565b60015f60146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861136a6113c2565b60405161137791906116b9565b60405180910390a1565b611389610a25565b156113c0576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f33905090565b6113d1610a25565b611407576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f82825260208201905092915050565b7f455448206e6f74206163636570746564000000000000000000000000000000005f82015250565b5f61144d601083611409565b915061145882611419565b602082019050919050565b5f6020820190508181035f83015261147a81611441565b9050919050565b5f819050919050565b61149381611481565b82525050565b5f6020820190506114ac5f83018461148a565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114df826114b6565b9050919050565b6114ef816114d5565b81146114f9575f80fd5b50565b5f8135905061150a816114e6565b92915050565b61151981611481565b8114611523575f80fd5b50565b5f8135905061153481611510565b92915050565b5f80604083850312156115505761154f6114b2565b5b5f61155d858286016114fc565b925050602061156e85828601611526565b9150509250929050565b5f6020828403121561158d5761158c6114b2565b5b5f61159a848285016114fc565b91505092915050565b5f6060820190506115b65f83018661148a565b6115c3602083018561148a565b6115d0604083018461148a565b949350505050565b5f602082840312156115ed576115ec6114b2565b5b5f6115fa84828501611526565b91505092915050565b5f8115159050919050565b61161781611603565b82525050565b5f6020820190506116305f83018461160e565b92915050565b5f819050919050565b5f61165961165461164f846114b6565b611636565b6114b6565b9050919050565b5f61166a8261163f565b9050919050565b5f61167b82611660565b9050919050565b61168b81611671565b82525050565b5f6020820190506116a45f830184611682565b92915050565b6116b3816114d5565b82525050565b5f6020820190506116cc5f8301846116aa565b92915050565b7f43616e6e6f74207769746864726177207374616b696e6720746f6b656e0000005f82015250565b5f611706601d83611409565b9150611711826116d2565b602082019050919050565b5f6020820190508181035f830152611733816116fa565b9050919050565b5f60408201905061174d5f8301856116aa565b61175a602083018461148a565b9392505050565b61176a81611603565b8114611774575f80fd5b50565b5f8151905061178581611761565b92915050565b5f602082840312156117a05761179f6114b2565b5b5f6117ad84828501611777565b91505092915050565b7f4e6f20746f6b656e73207374616b6564000000000000000000000000000000005f82015250565b5f6117ea601083611409565b91506117f5826117b6565b602082019050919050565b5f6020820190508181035f830152611817816117de565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61185582611481565b915061186083611481565b92508282019050808211156118785761187761181e565b5b92915050565b5f61188882611481565b915061189383611481565b92508282039050818111156118ab576118aa61181e565b5b92915050565b5f6118bb82611481565b91505f82036118cd576118cc61181e565b5b600182039050919050565b7f416d6f756e74206578636565647320746865207265776172647320706f6f6c005f82015250565b5f61190c601f83611409565b9150611917826118d8565b602082019050919050565b5f6020820190508181035f83015261193981611900565b9050919050565b7f415052206d7573742062652067726561746572207468616e20300000000000005f82015250565b5f611974601a83611409565b915061197f82611940565b602082019050919050565b5f6020820190508181035f8301526119a181611968565b9050919050565b7f41646472657373206973207468652073616d65000000000000000000000000005f82015250565b5f6119dc601383611409565b91506119e7826119a8565b602082019050919050565b5f6020820190508181035f830152611a09816119d0565b9050919050565b7f54686572652061726520736f6d65207374616b6572732c2063616e27742063685f8201527f616e6765207374616b656420746f6b656e206164647265737300000000000000602082015250565b5f611a6a603983611409565b9150611a7582611a10565b604082019050919050565b5f6020820190508181035f830152611a9781611a5e565b9050919050565b7f43616e6e6f74207374616b6520300000000000000000000000000000000000005f82015250565b5f611ad2600e83611409565b9150611add82611a9e565b602082019050919050565b5f6020820190508181035f830152611aff81611ac6565b9050919050565b5f606082019050611b195f8301866116aa565b611b2660208301856116aa565b611b33604083018461148a565b949350505050565b5f611b4582611481565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611b7757611b7661181e565b5b600182019050919050565b5f611b8c82611481565b9150611b9783611481565b9250828202611ba581611481565b91508282048414831517611bbc57611bbb61181e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611bfa82611481565b9150611c0583611481565b925082611c1557611c14611bc3565b5b82820490509291505056fea2646970667358221220ad0e43a5d5dfbb640593d8848507b4df5057877197bf92469c7396c751e4e24864736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004447743d42680f7fbb56e87b3617463113ca649e
-----Decoded View---------------
Arg [0] : _stakingTokenAddress (address): 0x4447743d42680F7fbB56e87b3617463113ca649E
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000004447743d42680f7fbb56e87b3617463113ca649e
Deployed Bytecode Sourcemap
10205:6838:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16046:26;;;;;;;;;;:::i;:::-;;;;;;;;10205:6838;;;;;;;;;;;16186:26;;;;;;;;;;:::i;:::-;;;;;;;;11320;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16326:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11073:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;12636:1516;;;;;;;;;;;;;:::i;:::-;;15845:67;;;;;;;;;;;;;:::i;:::-;;15333:268;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10642:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2943:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11392:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6337:103;;;;;;;;;;;;;:::i;:::-;;10252:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11164;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15693:63;;;;;;;;;;;;;:::i;:::-;;14804:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5662:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16676:364;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11738:843;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15055:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14207:546;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11246:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6595:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11320:26;;;;:::o;16326:283::-;5548:13;:11;:13::i;:::-;16476:12:::1;;;;;;;;;;;16458:31;;:6;:31;;::::0;16436:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16564:6;16557:23;;;16581:10;16593:7;16557:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16326:283:::0;;:::o;11073:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12636:1516::-;12675:23;12701:6;:18;12708:10;12701:18;;;;;;;;;;;;;;;12675:44;;12757:1;12738:9;:16;;;:20;12730:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;12838:14;12855:27;12871:10;12855:15;:27::i;:::-;12838:44;;12906:11;;12897:6;:20;12893:121;;;12943:11;;12934:20;;12893:121;13026:19;13067:6;13048:9;:16;;;:25;;;;:::i;:::-;13026:47;;13135:22;13160:9;:16;;;13135:41;;13206:1;13187:9;:16;;:20;;;;13281:15;13258:9;:20;;:38;;;;13379:6;13356:9;:19;;;:29;;;;;;;:::i;:::-;;;;;;;;13485:6;13471:11;:20;;;;:::i;:::-;13456:11;;:35;;;;;;;:::i;:::-;;;;;;;;13598:1;13589:6;:10;13585:122;;;13631:6;13616:11;;:21;;;;;;;:::i;:::-;;;;;;;;13585:122;13717:16;;:18;;;;;;;;;:::i;:::-;;;;;;13903:12;;;;;;;;;;;:21;;;13925:10;13937:11;13903:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13976:10;13967:36;;;13988:14;13967:36;;;;;;:::i;:::-;;;;;;;;14029:1;14020:6;:10;14016:129;;;14074:6;14047:23;;:33;;;;;;;:::i;:::-;;;;;;;;14114:10;14100:33;;;14126:6;14100:33;;;;;;:::i;:::-;;;;;;;;14016:129;12664:1488;;;;12636:1516::o;15845:67::-;5548:13;:11;:13::i;:::-;15894:10:::1;:8;:10::i;:::-;15845:67::o:0;15333:268::-;5548:13;:11;:13::i;:::-;15422:11:::1;;15411:7;:22;;15403:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;15495:7;15480:11;;:22;;;;;;;:::i;:::-;;;;;;;;15513:12;;;;;;;;;;;:21;;;15535:10;15547:7;15513:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15571:22;15585:7;15571:22;;;;;;:::i;:::-;;;;;;;;15333:268:::0;:::o;10642:26::-;;;;:::o;2943:86::-;2990:4;3014:7;;;;;;;;;;;3007:14;;2943:86;:::o;11392:31::-;;;;:::o;6337:103::-;5548:13;:11;:13::i;:::-;6402:30:::1;6429:1;6402:18;:30::i;:::-;6337:103::o:0;10252:26::-;;;;;;;;;;;;;:::o;11164:::-;;;;:::o;15693:63::-;5548:13;:11;:13::i;:::-;15740:8:::1;:6;:8::i;:::-;15693:63::o:0;14804:183::-;5548:13;:11;:13::i;:::-;14888:1:::1;14878:7;:11;14870:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;14937:7;14931:3;:13;;;;14960:19;14971:7;14960:19;;;;;;:::i;:::-;;;;;;;;14804:183:::0;:::o;5662:87::-;5708:7;5735:6;;;;;;;;;;;5728:13;;5662:87;:::o;16676:364::-;5548:13;:11;:13::i;:::-;16796:12:::1;;;;;;;;;;;16778:31;;:6;:31;;::::0;16756:100:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16904:1;16889:11;;:16;16867:123;;;;;;;;;;;;:::i;:::-;;;;;;;;;17025:6;17003:12;;:29;;;;;;;;;;;;;;;;;;16676:364:::0;:::o;11738:843::-;2548:19;:17;:19::i;:::-;11822:1:::1;11812:7;:11;11804:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11970:12;;;;;;;;;;;:25;;;11996:10;12016:4;12023:7;11970:61;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12075:1;12046:6;:18;12053:10;12046:18;;;;;;;;;;;;;;;:25;;;:30:::0;12042:54:::1;;12078:16;;:18;;;;;;;;;:::i;:::-;;;;;;12042:54;12185:14;12202:27;12218:10;12202:15;:27::i;:::-;12185:44;;12309:15;12277:6;:18;12284:10;12277:18;;;;;;;;;;;;;;;:29;;:47;;;;12423:6;12413:7;:16;;;;:::i;:::-;12384:6;:18;12391:10;12384:18;;;;;;;;;;;;;;;:25;;;:45;;;;;;;:::i;:::-;;;;;;;;12489:7;12474:11;;:22;;;;;;;:::i;:::-;;;;;;;;12553:10;12546:27;;;12565:7;12546:27;;;;;;:::i;:::-;;;;;;;;11793:788;11738:843:::0;:::o;15055:205::-;5548:13;:11;:13::i;:::-;15122:12:::1;;;;;;;;;;;:25;;;15148:10;15168:4;15175:7;15122:61;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15209:7;15194:11;;:22;;;;;;;:::i;:::-;;;;;;;;15232:20;15244:7;15232:20;;;;;;:::i;:::-;;;;;;;;15055:205:::0;:::o;14207:546::-;14268:7;14316:1;14292:6;:13;14299:5;14292:13;;;;;;;;;;;;;;;:20;;;:25;14288:39;;14326:1;14319:8;;;;14288:39;14402:1;14387:11;;:16;14383:30;;14412:1;14405:8;;;;14383:30;14473:18;14512:6;:13;14519:5;14512:13;;;;;;;;;;;;;;;:24;;;14494:15;:42;;;;:::i;:::-;14473:63;;14598:14;14688:8;10793:5;14673:23;;;;:::i;:::-;14645:10;14639:3;;14616:6;:13;14623:5;14616:13;;;;;;;;;;;;;;;:20;;;:26;;;;:::i;:::-;:39;;;;:::i;:::-;14615:82;;;;:::i;:::-;14598:99;;14739:6;14732:13;;;;14207:546;;;;:::o;11246:38::-;;;;:::o;6595:220::-;5548:13;:11;:13::i;:::-;6700:1:::1;6680:22;;:8;:22;;::::0;6676:93:::1;;6754:1;6726:31;;;;;;;;;;;:::i;:::-;;;;;;;;6676:93;6779:28;6798:8;6779:18;:28::i;:::-;6595:220:::0;:::o;5827:166::-;5898:12;:10;:12::i;:::-;5887:23;;:7;:5;:7::i;:::-;:23;;;5883:103;;5961:12;:10;:12::i;:::-;5934:40;;;;;;;;;;;:::i;:::-;;;;;;;;5883:103;5827:166::o;3844:120::-;2807:16;:14;:16::i;:::-;3913:5:::1;3903:7:::0;::::1;:15;;;;;;;;;;;;;;;;;;3934:22;3943:12;:10;:12::i;:::-;3934:22;;;;;;:::i;:::-;;;;;;;;3844:120::o:0;6975:191::-;7049:16;7068:6;;;;;;;;;;;7049:25;;7094:8;7085:6;;:17;;;;;;;;;;;;;;;;;;7149:8;7118:40;;7139:8;7118:40;;;;;;;;;;;;7038:128;6975:191;:::o;3585:118::-;2548:19;:17;:19::i;:::-;3655:4:::1;3645:7;;:14;;;;;;;;;;;;;;;;;;3675:20;3682:12;:10;:12::i;:::-;3675:20;;;;;;:::i;:::-;;;;;;;;3585:118::o:0;3102:132::-;3168:8;:6;:8::i;:::-;3164:63;;;3200:15;;;;;;;;;;;;;;3164:63;3102:132::o;726:98::-;779:7;806:10;799:17;;726:98;:::o;3311:130::-;3375:8;:6;:8::i;:::-;3370:64;;3407:15;;;;;;;;;;;;;;3370:64;3311:130::o;7:169:1:-;91:11;125:6;120:3;113:19;165:4;160:3;156:14;141:29;;7:169;;;;:::o;182:166::-;322:18;318:1;310:6;306:14;299:42;182:166;:::o;354:366::-;496:3;517:67;581:2;576:3;517:67;:::i;:::-;510:74;;593:93;682:3;593:93;:::i;:::-;711:2;706:3;702:12;695:19;;354:366;;;:::o;726:419::-;892:4;930:2;919:9;915:18;907:26;;979:9;973:4;969:20;965:1;954:9;950:17;943:47;1007:131;1133:4;1007:131;:::i;:::-;999:139;;726:419;;;:::o;1151:77::-;1188:7;1217:5;1206:16;;1151:77;;;:::o;1234:118::-;1321:24;1339:5;1321:24;:::i;:::-;1316:3;1309:37;1234:118;;:::o;1358:222::-;1451:4;1489:2;1478:9;1474:18;1466:26;;1502:71;1570:1;1559:9;1555:17;1546:6;1502:71;:::i;:::-;1358:222;;;;:::o;1667:117::-;1776:1;1773;1766:12;1913:126;1950:7;1990:42;1983:5;1979:54;1968:65;;1913:126;;;:::o;2045:96::-;2082:7;2111:24;2129:5;2111:24;:::i;:::-;2100:35;;2045:96;;;:::o;2147:122::-;2220:24;2238:5;2220:24;:::i;:::-;2213:5;2210:35;2200:63;;2259:1;2256;2249:12;2200:63;2147:122;:::o;2275:139::-;2321:5;2359:6;2346:20;2337:29;;2375:33;2402:5;2375:33;:::i;:::-;2275:139;;;;:::o;2420:122::-;2493:24;2511:5;2493:24;:::i;:::-;2486:5;2483:35;2473:63;;2532:1;2529;2522:12;2473:63;2420:122;:::o;2548:139::-;2594:5;2632:6;2619:20;2610:29;;2648:33;2675:5;2648:33;:::i;:::-;2548:139;;;;:::o;2693:474::-;2761:6;2769;2818:2;2806:9;2797:7;2793:23;2789:32;2786:119;;;2824:79;;:::i;:::-;2786:119;2944:1;2969:53;3014:7;3005:6;2994:9;2990:22;2969:53;:::i;:::-;2959:63;;2915:117;3071:2;3097:53;3142:7;3133:6;3122:9;3118:22;3097:53;:::i;:::-;3087:63;;3042:118;2693:474;;;;;:::o;3173:329::-;3232:6;3281:2;3269:9;3260:7;3256:23;3252:32;3249:119;;;3287:79;;:::i;:::-;3249:119;3407:1;3432:53;3477:7;3468:6;3457:9;3453:22;3432:53;:::i;:::-;3422:63;;3378:117;3173:329;;;;:::o;3508:442::-;3657:4;3695:2;3684:9;3680:18;3672:26;;3708:71;3776:1;3765:9;3761:17;3752:6;3708:71;:::i;:::-;3789:72;3857:2;3846:9;3842:18;3833:6;3789:72;:::i;:::-;3871;3939:2;3928:9;3924:18;3915:6;3871:72;:::i;:::-;3508:442;;;;;;:::o;3956:329::-;4015:6;4064:2;4052:9;4043:7;4039:23;4035:32;4032:119;;;4070:79;;:::i;:::-;4032:119;4190:1;4215:53;4260:7;4251:6;4240:9;4236:22;4215:53;:::i;:::-;4205:63;;4161:117;3956:329;;;;:::o;4291:90::-;4325:7;4368:5;4361:13;4354:21;4343:32;;4291:90;;;:::o;4387:109::-;4468:21;4483:5;4468:21;:::i;:::-;4463:3;4456:34;4387:109;;:::o;4502:210::-;4589:4;4627:2;4616:9;4612:18;4604:26;;4640:65;4702:1;4691:9;4687:17;4678:6;4640:65;:::i;:::-;4502:210;;;;:::o;4718:60::-;4746:3;4767:5;4760:12;;4718:60;;;:::o;4784:142::-;4834:9;4867:53;4885:34;4894:24;4912:5;4894:24;:::i;:::-;4885:34;:::i;:::-;4867:53;:::i;:::-;4854:66;;4784:142;;;:::o;4932:126::-;4982:9;5015:37;5046:5;5015:37;:::i;:::-;5002:50;;4932:126;;;:::o;5064:140::-;5128:9;5161:37;5192:5;5161:37;:::i;:::-;5148:50;;5064:140;;;:::o;5210:159::-;5311:51;5356:5;5311:51;:::i;:::-;5306:3;5299:64;5210:159;;:::o;5375:250::-;5482:4;5520:2;5509:9;5505:18;5497:26;;5533:85;5615:1;5604:9;5600:17;5591:6;5533:85;:::i;:::-;5375:250;;;;:::o;5631:118::-;5718:24;5736:5;5718:24;:::i;:::-;5713:3;5706:37;5631:118;;:::o;5755:222::-;5848:4;5886:2;5875:9;5871:18;5863:26;;5899:71;5967:1;5956:9;5952:17;5943:6;5899:71;:::i;:::-;5755:222;;;;:::o;5983:179::-;6123:31;6119:1;6111:6;6107:14;6100:55;5983:179;:::o;6168:366::-;6310:3;6331:67;6395:2;6390:3;6331:67;:::i;:::-;6324:74;;6407:93;6496:3;6407:93;:::i;:::-;6525:2;6520:3;6516:12;6509:19;;6168:366;;;:::o;6540:419::-;6706:4;6744:2;6733:9;6729:18;6721:26;;6793:9;6787:4;6783:20;6779:1;6768:9;6764:17;6757:47;6821:131;6947:4;6821:131;:::i;:::-;6813:139;;6540:419;;;:::o;6965:332::-;7086:4;7124:2;7113:9;7109:18;7101:26;;7137:71;7205:1;7194:9;7190:17;7181:6;7137:71;:::i;:::-;7218:72;7286:2;7275:9;7271:18;7262:6;7218:72;:::i;:::-;6965:332;;;;;:::o;7303:116::-;7373:21;7388:5;7373:21;:::i;:::-;7366:5;7363:32;7353:60;;7409:1;7406;7399:12;7353:60;7303:116;:::o;7425:137::-;7479:5;7510:6;7504:13;7495:22;;7526:30;7550:5;7526:30;:::i;:::-;7425:137;;;;:::o;7568:345::-;7635:6;7684:2;7672:9;7663:7;7659:23;7655:32;7652:119;;;7690:79;;:::i;:::-;7652:119;7810:1;7835:61;7888:7;7879:6;7868:9;7864:22;7835:61;:::i;:::-;7825:71;;7781:125;7568:345;;;;:::o;7919:166::-;8059:18;8055:1;8047:6;8043:14;8036:42;7919:166;:::o;8091:366::-;8233:3;8254:67;8318:2;8313:3;8254:67;:::i;:::-;8247:74;;8330:93;8419:3;8330:93;:::i;:::-;8448:2;8443:3;8439:12;8432:19;;8091:366;;;:::o;8463:419::-;8629:4;8667:2;8656:9;8652:18;8644:26;;8716:9;8710:4;8706:20;8702:1;8691:9;8687:17;8680:47;8744:131;8870:4;8744:131;:::i;:::-;8736:139;;8463:419;;;:::o;8888:180::-;8936:77;8933:1;8926:88;9033:4;9030:1;9023:15;9057:4;9054:1;9047:15;9074:191;9114:3;9133:20;9151:1;9133:20;:::i;:::-;9128:25;;9167:20;9185:1;9167:20;:::i;:::-;9162:25;;9210:1;9207;9203:9;9196:16;;9231:3;9228:1;9225:10;9222:36;;;9238:18;;:::i;:::-;9222:36;9074:191;;;;:::o;9271:194::-;9311:4;9331:20;9349:1;9331:20;:::i;:::-;9326:25;;9365:20;9383:1;9365:20;:::i;:::-;9360:25;;9409:1;9406;9402:9;9394:17;;9433:1;9427:4;9424:11;9421:37;;;9438:18;;:::i;:::-;9421:37;9271:194;;;;:::o;9471:171::-;9510:3;9533:24;9551:5;9533:24;:::i;:::-;9524:33;;9579:4;9572:5;9569:15;9566:41;;9587:18;;:::i;:::-;9566:41;9634:1;9627:5;9623:13;9616:20;;9471:171;;;:::o;9648:181::-;9788:33;9784:1;9776:6;9772:14;9765:57;9648:181;:::o;9835:366::-;9977:3;9998:67;10062:2;10057:3;9998:67;:::i;:::-;9991:74;;10074:93;10163:3;10074:93;:::i;:::-;10192:2;10187:3;10183:12;10176:19;;9835:366;;;:::o;10207:419::-;10373:4;10411:2;10400:9;10396:18;10388:26;;10460:9;10454:4;10450:20;10446:1;10435:9;10431:17;10424:47;10488:131;10614:4;10488:131;:::i;:::-;10480:139;;10207:419;;;:::o;10632:176::-;10772:28;10768:1;10760:6;10756:14;10749:52;10632:176;:::o;10814:366::-;10956:3;10977:67;11041:2;11036:3;10977:67;:::i;:::-;10970:74;;11053:93;11142:3;11053:93;:::i;:::-;11171:2;11166:3;11162:12;11155:19;;10814:366;;;:::o;11186:419::-;11352:4;11390:2;11379:9;11375:18;11367:26;;11439:9;11433:4;11429:20;11425:1;11414:9;11410:17;11403:47;11467:131;11593:4;11467:131;:::i;:::-;11459:139;;11186:419;;;:::o;11611:169::-;11751:21;11747:1;11739:6;11735:14;11728:45;11611:169;:::o;11786:366::-;11928:3;11949:67;12013:2;12008:3;11949:67;:::i;:::-;11942:74;;12025:93;12114:3;12025:93;:::i;:::-;12143:2;12138:3;12134:12;12127:19;;11786:366;;;:::o;12158:419::-;12324:4;12362:2;12351:9;12347:18;12339:26;;12411:9;12405:4;12401:20;12397:1;12386:9;12382:17;12375:47;12439:131;12565:4;12439:131;:::i;:::-;12431:139;;12158:419;;;:::o;12583:244::-;12723:34;12719:1;12711:6;12707:14;12700:58;12792:27;12787:2;12779:6;12775:15;12768:52;12583:244;:::o;12833:366::-;12975:3;12996:67;13060:2;13055:3;12996:67;:::i;:::-;12989:74;;13072:93;13161:3;13072:93;:::i;:::-;13190:2;13185:3;13181:12;13174:19;;12833:366;;;:::o;13205:419::-;13371:4;13409:2;13398:9;13394:18;13386:26;;13458:9;13452:4;13448:20;13444:1;13433:9;13429:17;13422:47;13486:131;13612:4;13486:131;:::i;:::-;13478:139;;13205:419;;;:::o;13630:164::-;13770:16;13766:1;13758:6;13754:14;13747:40;13630:164;:::o;13800:366::-;13942:3;13963:67;14027:2;14022:3;13963:67;:::i;:::-;13956:74;;14039:93;14128:3;14039:93;:::i;:::-;14157:2;14152:3;14148:12;14141:19;;13800:366;;;:::o;14172:419::-;14338:4;14376:2;14365:9;14361:18;14353:26;;14425:9;14419:4;14415:20;14411:1;14400:9;14396:17;14389:47;14453:131;14579:4;14453:131;:::i;:::-;14445:139;;14172:419;;;:::o;14597:442::-;14746:4;14784:2;14773:9;14769:18;14761:26;;14797:71;14865:1;14854:9;14850:17;14841:6;14797:71;:::i;:::-;14878:72;14946:2;14935:9;14931:18;14922:6;14878:72;:::i;:::-;14960;15028:2;15017:9;15013:18;15004:6;14960:72;:::i;:::-;14597:442;;;;;;:::o;15045:233::-;15084:3;15107:24;15125:5;15107:24;:::i;:::-;15098:33;;15153:66;15146:5;15143:77;15140:103;;15223:18;;:::i;:::-;15140:103;15270:1;15263:5;15259:13;15252:20;;15045:233;;;:::o;15284:410::-;15324:7;15347:20;15365:1;15347:20;:::i;:::-;15342:25;;15381:20;15399:1;15381:20;:::i;:::-;15376:25;;15436:1;15433;15429:9;15458:30;15476:11;15458:30;:::i;:::-;15447:41;;15637:1;15628:7;15624:15;15621:1;15618:22;15598:1;15591:9;15571:83;15548:139;;15667:18;;:::i;:::-;15548:139;15332:362;15284:410;;;;:::o;15700:180::-;15748:77;15745:1;15738:88;15845:4;15842:1;15835:15;15869:4;15866:1;15859:15;15886:185;15926:1;15943:20;15961:1;15943:20;:::i;:::-;15938:25;;15977:20;15995:1;15977:20;:::i;:::-;15972:25;;16016:1;16006:35;;16021:18;;:::i;:::-;16006:35;16063:1;16060;16056:9;16051:14;;15886:185;;;;:::o
Swarm Source
ipfs://ad0e43a5d5dfbb640593d8848507b4df5057877197bf92469c7396c751e4e248
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.000462 | 25,147,748.5803 | $11,610.46 |
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.