More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,456 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Exit | 21186744 | 8 days ago | IN | 0 ETH | 0.00467116 | ||||
Exit | 20696157 | 77 days ago | IN | 0 ETH | 0.0001421 | ||||
Exit | 19859943 | 193 days ago | IN | 0 ETH | 0.00086109 | ||||
Exit | 19510346 | 242 days ago | IN | 0 ETH | 0.00229429 | ||||
Exit | 19266122 | 277 days ago | IN | 0 ETH | 0.00219076 | ||||
Exit | 18386194 | 400 days ago | IN | 0 ETH | 0.00128946 | ||||
Exit | 17733677 | 491 days ago | IN | 0 ETH | 0.00342369 | ||||
Exit | 16955787 | 601 days ago | IN | 0 ETH | 0.00103556 | ||||
Exit | 16955787 | 601 days ago | IN | 0 ETH | 0.00223076 | ||||
Exit | 16761132 | 628 days ago | IN | 0 ETH | 0.001572 | ||||
Get Reward | 16761112 | 628 days ago | IN | 0 ETH | 0.00160178 | ||||
Exit | 16522371 | 662 days ago | IN | 0 ETH | 0.00184037 | ||||
Exit | 16354985 | 685 days ago | IN | 0 ETH | 0.0017773 | ||||
Exit | 16307191 | 692 days ago | IN | 0 ETH | 0.00183951 | ||||
Exit | 16081738 | 723 days ago | IN | 0 ETH | 0.00148082 | ||||
Exit | 15852158 | 756 days ago | IN | 0 ETH | 0.0011652 | ||||
Exit | 15655181 | 783 days ago | IN | 0 ETH | 0.00100399 | ||||
Exit | 15552725 | 797 days ago | IN | 0 ETH | 0.00076698 | ||||
Exit | 15396665 | 822 days ago | IN | 0 ETH | 0.00082304 | ||||
Exit | 15384145 | 824 days ago | IN | 0 ETH | 0.00090305 | ||||
Get Reward | 15384111 | 824 days ago | IN | 0 ETH | 0.00069861 | ||||
Exit | 15353884 | 829 days ago | IN | 0 ETH | 0.00109767 | ||||
Exit | 15336405 | 832 days ago | IN | 0 ETH | 0.00081838 | ||||
Exit | 15303711 | 837 days ago | IN | 0 ETH | 0.00210805 | ||||
Exit | 15303711 | 837 days ago | IN | 0 ETH | 0.00210805 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
11695688 | 1402 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
StakingRewards
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-02-25 */ /** *Submitted for verification at Etherscan.io on 2021-01-18 */ // SPDX-License-Identifier: MIT pragma solidity 0.5.17; /* * Copied from: https://github.com/iamdefinitelyahuman/unipool-fork/blob/262a574/contracts/StakingRewards.sol * // _________ _______ ________ __ __ _________ __ // / _____/ \ \ \_____ \/ \ / \/ _____// |_ ___________ _____ // \_____ \ / | \ / | \ \/\/ /\_____ \\ __\/ _ \_ __ \/ \ // / \/ | \/ | \ / / \| | ( <_> ) | \/ Y Y \ // /_______ /\____|__ /\_______ /\__/\ / /_______ /|__| \____/|__| |__|_| / // \/ \/ \/ \/ \/ \/ // Snowstorm token geyser factory // Based off SNX and UNI staking contracts * Synthetix: StakingRewards.sol * * Docs: https://docs.synthetix.io/ * * * MIT License * =========== * * Copyright (c) 2020 Synthetix * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE */ library Address { /** * @dev Returns true if `account` is a contract. * * This test is non-exhaustive, and there may be false-negatives: during the * execution of a contract's constructor, its address will be reported as * not containing a contract. * * > It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. */ function isContract(address account) internal view returns (bool) { // This method relies in extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } } interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a `Transfer` event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through `transferFrom`. This is * zero by default. * * This value changes when `approve` or `transferFrom` are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * > Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an `Approval` event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a `Transfer` event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to `approve`. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } interface IStakingRewards { // Views function lastTimeRewardApplicable() external view returns (uint256); function rewardPerToken() external view returns (uint256); function earned(address account) external view returns (uint256); function getRewardForDuration() external view returns (uint256); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); // Mutative function stake(uint256 amount) external; function withdraw(uint256 amount) external; function getReward() external; function exit() external; } library Math { /** * @dev Returns the largest of two numbers. */ function max(uint256 a, uint256 b) internal pure returns (uint256) { return a >= b ? a : b; } /** * @dev Returns the smallest of two numbers. */ function min(uint256 a, uint256 b) internal pure returns (uint256) { return a < b ? a : b; } /** * @dev Returns the average of two numbers. The result is rounded towards * zero. */ function average(uint256 a, uint256 b) internal pure returns (uint256) { // (a + b) / 2 can overflow, so we distribute return (a / 2) + (b / 2) + ((a % 2 + b % 2) / 2); } } contract Owned { address public owner; address public nominatedOwner; constructor(address _owner) public { require(_owner != address(0), "Owner address cannot be 0"); owner = _owner; emit OwnerChanged(address(0), _owner); } function nominateNewOwner(address _owner) external onlyOwner { nominatedOwner = _owner; emit OwnerNominated(_owner); } function acceptOwnership() external { require(msg.sender == nominatedOwner, "You must be nominated before you can accept ownership"); emit OwnerChanged(owner, nominatedOwner); owner = nominatedOwner; nominatedOwner = address(0); } modifier onlyOwner { _onlyOwner(); _; } function _onlyOwner() private view { require(msg.sender == owner, "Only the contract owner may perform this action"); } event OwnerNominated(address newOwner); event OwnerChanged(address oldOwner, address newOwner); } contract Pausable is Owned { uint public lastPauseTime; bool public paused; constructor() internal { // This contract is abstract, and thus cannot be instantiated directly require(owner != address(0), "Owner must be set"); // Paused will be false, and lastPauseTime will be 0 upon initialisation } /** * @notice Change the paused state of the contract * @dev Only the contract owner may call this. */ function setPaused(bool _paused) external onlyOwner { // Ensure we're actually changing the state before we do anything if (_paused == paused) { return; } // Set our paused state. paused = _paused; // If applicable, set the last pause time. if (paused) { lastPauseTime = now; } // Let everyone know that our pause state has changed. emit PauseChanged(paused); } event PauseChanged(bool isPaused); modifier notPaused { require(!paused, "This action cannot be performed while the contract is paused"); _; } } contract ReentrancyGuard { /// @dev counter to allow mutex lock with only one SSTORE operation uint256 private _guardCounter; constructor () internal { // The counter starts at one to prevent changing it from zero to a non-zero // value, which is a more expensive operation. _guardCounter = 1; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and make it call a * `private` function that does the actual work. */ modifier nonReentrant() { _guardCounter += 1; uint256 localCounter = _guardCounter; _; require(localCounter == _guardCounter, "ReentrancyGuard: reentrant call"); } } contract RewardsDistributionRecipient is Owned { address public rewardsDistribution; function notifyRewardAmount(uint256 reward, address rewardHolder) external; modifier onlyRewardsDistribution() { require(msg.sender == rewardsDistribution, "Caller is not RewardsDistribution contract"); _; } function setRewardsDistribution(address _rewardsDistribution) external onlyOwner { rewardsDistribution = _rewardsDistribution; } } library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function safeApprove(IERC20 token, address spender, uint256 value) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' // solhint-disable-next-line max-line-length require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).add(value); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).sub(value); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. // A Solidity high level call has three parts: // 1. The target address is checked to verify it contains contract code // 2. The call itself is made, and success asserted // 3. The return value is decoded, which in turn checks the size of the returned data. // solhint-disable-next-line max-line-length require(address(token).isContract(), "SafeERC20: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = address(token).call(data); require(success, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, "SafeMath: division by zero"); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0, "SafeMath: modulo by zero"); return a % b; } } interface IChainLinkFeed { function latestAnswer() external view returns (int256); } contract StakingRewards is IStakingRewards, RewardsDistributionRecipient, ReentrancyGuard, Pausable { using SafeMath for uint256; using SafeERC20 for IERC20; /* ========== STATE VARIABLES ========== */ IChainLinkFeed public constant FASTGAS = IChainLinkFeed(0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C); IERC20 public rewardsToken; IERC20 public stakingToken; uint256 public periodFinish = 0; uint256 public rewardRate = 0; uint256 public rewardsDuration; uint256 public lastUpdateTime; uint256 public rewardPerTokenStored; uint256 public boostPrct; mapping(address => uint256) public userRewardPerTokenPaid; mapping(address => uint256) public rewards; uint256 private _totalSupply; mapping(address => uint256) private _balances; /* ========== CONSTRUCTOR ========== */ constructor( address _owner, address _rewardsDistribution, address _rewardsToken, address _stakingToken, uint256 _rewardsDuration, uint _boostPrct ) public Owned(_owner) { rewardsToken = IERC20(_rewardsToken); stakingToken = IERC20(_stakingToken); rewardsDistribution = _rewardsDistribution; rewardsDuration = _rewardsDuration; boostPrct = _boostPrct; } /* ========== VIEWS ========== */ function totalSupply() external view returns (uint256) { return _totalSupply; } function getFastGas() external view returns (uint) { return uint(FASTGAS.latestAnswer()); } function balanceOf(address account) external view returns (uint256) { return _balances[account]; } function lastTimeRewardApplicable() public view returns (uint256) { return Math.min(block.timestamp, periodFinish); } function rewardPerToken() public view returns (uint256) { if (_totalSupply == 0) { return rewardPerTokenStored; } return rewardPerTokenStored.add( lastTimeRewardApplicable().sub(lastUpdateTime).mul(rewardRate).mul(1e18).div(_totalSupply) ); } function earned(address account) public view returns (uint256) { return _balances[account].mul(rewardPerToken().sub(userRewardPerTokenPaid[account])).div(1e18).add(rewards[account]); } function getRewardForDuration() external view returns (uint256) { return rewardRate.mul(rewardsDuration); } /* ========== MUTATIVE FUNCTIONS ========== */ function stake(uint256 amount) external nonReentrant notPaused updateReward(msg.sender) { require(amount > 0, "Cannot stake 0"); _totalSupply = _totalSupply.add(amount); _balances[msg.sender] = _balances[msg.sender].add(amount); stakingToken.safeTransferFrom(msg.sender, address(this), amount); emit Staked(msg.sender, amount); } function withdraw(uint256 amount) public nonReentrant updateReward(msg.sender) { require(amount > 0, "Cannot withdraw 0"); _totalSupply = _totalSupply.sub(amount); _balances[msg.sender] = _balances[msg.sender].sub(amount); stakingToken.safeTransfer(msg.sender, amount); emit Withdrawn(msg.sender, amount); } function getReward() public nonReentrant updateReward(msg.sender) { uint256 reward = rewards[msg.sender]; if (reward > 0) { // Safe gaurd against error if reward is greater than balance in contract uint balance = rewardsToken.balanceOf(address(this)); if (rewards[msg.sender] > balance) { reward = balance; } rewards[msg.sender] = 0; rewardsToken.safeTransfer(msg.sender, reward); emit RewardPaid(msg.sender, reward); } } function exit() external { withdraw(_balances[msg.sender]); getReward(); } /* ========== RESTRICTED FUNCTIONS ========== */ function notifyRewardAmount(uint256 reward, address rewardHolder) external onlyRewardsDistribution updateReward(address(0)) { // handle the transfer of reward tokens via `transferFrom` to reduce the number // of transactions required and ensure correctness of the reward amount rewardsToken.safeTransferFrom(rewardHolder, address(this), reward); if (block.timestamp >= periodFinish) { rewardRate = reward.div(rewardsDuration); } else { uint256 remaining = periodFinish.sub(block.timestamp); uint256 leftover = remaining.mul(rewardRate); rewardRate = reward.add(leftover).div(rewardsDuration); } lastUpdateTime = block.timestamp; periodFinish = block.timestamp.add(rewardsDuration); emit RewardAdded(reward); } // Added to support recovering LP Rewards from other systems such as BAL to be distributed to holders function recoverERC20(address tokenAddress, uint256 tokenAmount) external onlyOwner { require(tokenAddress != address(stakingToken), "Cannot withdraw the staking token"); IERC20(tokenAddress).safeTransfer(owner, tokenAmount); emit Recovered(tokenAddress, tokenAmount); } function setRewardsDuration(uint256 _rewardsDuration) external onlyOwner { require( block.timestamp > periodFinish, "Previous rewards period must be complete before changing the duration for the new period" ); rewardsDuration = _rewardsDuration; emit RewardsDurationUpdated(rewardsDuration); } /* ========== MODIFIERS ========== */ modifier updateReward(address account) { rewardPerTokenStored = rewardPerToken(); lastUpdateTime = lastTimeRewardApplicable(); if (account != address(0)) { // bonus intial liquidity to bootstrap curve and create more realistic APYs if (_totalSupply == 0) { rewards[account] = rewardRate .mul(rewardsDuration) .mul(boostPrct) .div(100) .add(earned(account)); // Based on notifyRewardAmount. Internally adjust reward rate to account for boost uint256 rewardsLeft = rewardRate.mul(rewardsDuration) - rewards[account]; uint256 remaining = periodFinish.sub(block.timestamp); rewardRate = rewardsLeft.div(remaining); // Ensure the provided reward amount is not more than the balance in the contract. // This keeps the reward rate in the right range, preventing overflows due to // very high values of rewardRate in the earned and rewardsPerToken functions; // Reward + leftover must be less than 2^256 / 10^18 to avoid overflow. uint balance = rewardsToken.balanceOf(address(this)); require(rewards[account] <= balance, "Provided reward too high"); require(rewardRate <= balance.div(rewardsDuration), "Provided reward too high"); } rewards[account] = earned(account); userRewardPerTokenPaid[account] = rewardPerTokenStored; } _; } /* ========== EVENTS ========== */ event RewardAdded(uint256 reward); event Staked(address indexed user, uint256 amount); event Withdrawn(address indexed user, uint256 amount); event RewardPaid(address indexed user, uint256 reward); event RewardsDurationUpdated(uint256 newDuration); event Recovered(address token, uint256 amount); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_rewardsDistribution","type":"address"},{"internalType":"address","name":"_rewardsToken","type":"address"},{"internalType":"address","name":"_stakingToken","type":"address"},{"internalType":"uint256","name":"_rewardsDuration","type":"uint256"},{"internalType":"uint256","name":"_boostPrct","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"isPaused","type":"bool"}],"name":"PauseChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Recovered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"RewardsDurationUpdated","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":"Withdrawn","type":"event"},{"constant":true,"inputs":[],"name":"FASTGAS","outputs":[{"internalType":"contract IChainLinkFeed","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"boostPrct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getFastGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getReward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getRewardForDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastPauseTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nominatedOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"address","name":"rewardHolder","type":"address"}],"name":"notifyRewardAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"periodFinish","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"recoverERC20","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardsDistribution","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardsDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardsToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"name":"setPaused","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_rewardsDistribution","type":"address"}],"name":"setRewardsDistribution","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_rewardsDuration","type":"uint256"}],"name":"setRewardsDuration","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stakingToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userRewardPerTokenPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526000600755600060085534801561001a57600080fd5b50604051612006380380612006833981810160405260c081101561003d57600080fd5b508051602082015160408301516060840151608085015160a0909501519394929391929091856001600160a01b0381166100be576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a15060016003556000546001600160a01b031661016d576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b60058054610100600160a81b0319166101006001600160a01b0396871602179055600680546001600160a01b03199081169486169490941790556002805490931694909316939093179055600991909155600c5550611e35806101d16000396000f3fe608060405234801561001057600080fd5b50600436106102055760003560e01c80637b0a47ee1161011a578063b6081647116100ad578063d1af0c7d1161007c578063d1af0c7d14610488578063dbbc4a5714610490578063df136d6514610498578063e9fad8ee146104a0578063ebe2b12b146104a857610205565b8063b608164714610453578063c8f33c911461045b578063cc1a378f14610463578063cd3daf9d1461048057610205565b80638da5cb5b116100e95780638da5cb5b1461041e578063904440bd1461042657806391b4ded91461042e578063a694fc3a1461043657610205565b80637b0a47ee146103bc57806380faa57d146103c45780638980f11f146103cc5780638b876347146103f857610205565b8063386a95251161019d5780635c975abb1161016c5780635c975abb1461033e57806368d53c431461035a57806370a082311461038657806372f702f3146103ac57806379ba5097146103b457610205565b8063386a9525146103025780633d18b9121461030a5780633fc6df6e1461031257806353a47bb71461033657610205565b806318160ddd116101d957806318160ddd146102af57806319762143146102b75780631c1f78eb146102dd5780632e1a7d4d146102e557610205565b80628cc2621461020a5780630700037d146102425780631627540c1461026857806316c38b3c14610290575b600080fd5b6102306004803603602081101561022057600080fd5b50356001600160a01b03166104b0565b60408051918252519081900360200190f35b6102306004803603602081101561025857600080fd5b50356001600160a01b0316610546565b61028e6004803603602081101561027e57600080fd5b50356001600160a01b0316610558565b005b61028e600480360360208110156102a657600080fd5b503515156105b4565b61023061062e565b61028e600480360360208110156102cd57600080fd5b50356001600160a01b0316610635565b61023061065f565b61028e600480360360208110156102fb57600080fd5b503561067d565b6102306109f8565b61028e6109fe565b61031a610d82565b604080516001600160a01b039092168252519081900360200190f35b61031a610d91565b610346610da0565b604080519115158252519081900360200190f35b61028e6004803603604081101561037057600080fd5b50803590602001356001600160a01b0316610da9565b6102306004803603602081101561039c57600080fd5b50356001600160a01b03166110de565b61031a6110f9565b61028e611108565b6102306111c4565b6102306111ca565b61028e600480360360408110156103e257600080fd5b506001600160a01b0381351690602001356111d8565b6102306004803603602081101561040e57600080fd5b50356001600160a01b0316611295565b61031a6112a7565b6102306112b6565b610230611336565b61028e6004803603602081101561044c57600080fd5b503561133c565b6102306116c5565b6102306116cb565b61028e6004803603602081101561047957600080fd5b50356116d1565b610230611754565b61031a6117a2565b61031a6117b6565b6102306117ce565b61028e6117d4565b6102306117f7565b6001600160a01b0381166000908152600e6020908152604080832054600d909252822054610540919061053490670de0b6b3a76400009061052890610503906104f7611754565b9063ffffffff6117fd16565b6001600160a01b0388166000908152601060205260409020549063ffffffff61185a16565b9063ffffffff6118ba16565b9063ffffffff61192416565b92915050565b600e6020526000908152604090205481565b61056061197e565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6105bc61197e565b60055460ff16151581151514156105d25761062b565b6005805460ff1916821515179081905560ff16156105ef57426004555b6005546040805160ff90921615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59181900360200190a15b50565b600f545b90565b61063d61197e565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600061067860095460085461185a90919063ffffffff16565b905090565b600380546001019081905533610691611754565b600b5561069c6111ca565b600a556001600160a01b038116156108bc57600f54610887576106ef6106c1826104b0565b6105346064610528600c546106e360095460085461185a90919063ffffffff16565b9063ffffffff61185a16565b6001600160a01b0382166000908152600e602052604081208290556009546008549192916107229163ffffffff61185a16565b039050600061073c426007546117fd90919063ffffffff16565b905061074e828263ffffffff6118ba16565b600855600554604080516370a0823160e01b8152306004820152905160009261010090046001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156107a157600080fd5b505afa1580156107b5573d6000803e3d6000fd5b505050506040513d60208110156107cb57600080fd5b50516001600160a01b0385166000908152600e602052604090205490915081101561082b576040805162461bcd60e51b81526020600482015260186024820152600080516020611ce0833981519152604482015290519081900360640190fd5b60095461083f90829063ffffffff6118ba16565b6008541115610883576040805162461bcd60e51b81526020600482015260186024820152600080516020611ce0833981519152604482015290519081900360640190fd5b5050505b610890816104b0565b6001600160a01b0382166000908152600e6020908152604080832093909355600b54600d909152919020555b60008311610905576040805162461bcd60e51b8152602060048201526011602482015270043616e6e6f74207769746864726177203607c1b604482015290519081900360640190fd5b600f54610918908463ffffffff6117fd16565b600f553360009081526010602052604090205461093b908463ffffffff6117fd16565b33600081815260106020526040902091909155600654610967916001600160a01b0390911690856119c7565b60408051848152905133917f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5919081900360200190a25060035481146109f4576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b5050565b60095481565b600380546001019081905533610a12611754565b600b55610a1d6111ca565b600a556001600160a01b03811615610c0f57600f54610bda57610a426106c1826104b0565b6001600160a01b0382166000908152600e60205260408120829055600954600854919291610a759163ffffffff61185a16565b0390506000610a8f426007546117fd90919063ffffffff16565b9050610aa1828263ffffffff6118ba16565b600855600554604080516370a0823160e01b8152306004820152905160009261010090046001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610af457600080fd5b505afa158015610b08573d6000803e3d6000fd5b505050506040513d6020811015610b1e57600080fd5b50516001600160a01b0385166000908152600e6020526040902054909150811015610b7e576040805162461bcd60e51b81526020600482015260186024820152600080516020611ce0833981519152604482015290519081900360640190fd5b600954610b9290829063ffffffff6118ba16565b6008541115610bd6576040805162461bcd60e51b81526020600482015260186024820152600080516020611ce0833981519152604482015290519081900360640190fd5b5050505b610be3816104b0565b6001600160a01b0382166000908152600e6020908152604080832093909355600b54600d909152919020555b336000908152600e60205260409020548015610d2a57600554604080516370a0823160e01b8152306004820152905160009261010090046001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610c7557600080fd5b505afa158015610c89573d6000803e3d6000fd5b505050506040513d6020811015610c9f57600080fd5b5051336000908152600e6020526040902054909150811015610cbf578091505b336000818152600e6020526040812055600554610cf2916101009091046001600160a01b0316908463ffffffff6119c716565b60408051838152905133917fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486919081900360200190a2505b5050600354811461062b576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002546001600160a01b031681565b6001546001600160a01b031681565b60055460ff1681565b6002546001600160a01b03163314610df25760405162461bcd60e51b815260040180806020018281038252602a815260200180611d8c602a913960400191505060405180910390fd5b6000610dfc611754565b600b55610e076111ca565b600a556001600160a01b03811615610ff957600f54610fc457610e2c6106c1826104b0565b6001600160a01b0382166000908152600e60205260408120829055600954600854919291610e5f9163ffffffff61185a16565b0390506000610e79426007546117fd90919063ffffffff16565b9050610e8b828263ffffffff6118ba16565b600855600554604080516370a0823160e01b8152306004820152905160009261010090046001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610ede57600080fd5b505afa158015610ef2573d6000803e3d6000fd5b505050506040513d6020811015610f0857600080fd5b50516001600160a01b0385166000908152600e6020526040902054909150811015610f68576040805162461bcd60e51b81526020600482015260186024820152600080516020611ce0833981519152604482015290519081900360640190fd5b600954610f7c90829063ffffffff6118ba16565b6008541115610fc0576040805162461bcd60e51b81526020600482015260186024820152600080516020611ce0833981519152604482015290519081900360640190fd5b5050505b610fcd816104b0565b6001600160a01b0382166000908152600e6020908152604080832093909355600b54600d909152919020555b6005546110169061010090046001600160a01b0316833086611a1e565b600754421061103b5760095461103390849063ffffffff6118ba16565b60085561108a565b600754600090611051904263ffffffff6117fd16565b9050600061106a6008548361185a90919063ffffffff16565b60095490915061108490610528878463ffffffff61192416565b60085550505b42600a8190556009546110a3919063ffffffff61192416565b6007556040805184815290517fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9181900360200190a1505050565b6001600160a01b031660009081526010602052604090205490565b6006546001600160a01b031681565b6001546001600160a01b031633146111515760405162461bcd60e51b8152600401808060200182810382526035815260200180611cab6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60085481565b600061067842600754611a7e565b6111e061197e565b6006546001600160a01b038381169116141561122d5760405162461bcd60e51b8152600401808060200182810382526021815260200180611de06021913960400191505060405180910390fd5b60005461124d906001600160a01b0384811691168363ffffffff6119c716565b604080516001600160a01b03841681526020810183905281517f8c1256b8896378cd5044f80c202f9772b9d77dc85c8a6eb51967210b09bfaa28929181900390910190a15050565b600d6020526000908152604090205481565b6000546001600160a01b031681565b600073169e633a2d1e6c10dd91238ba11c4a708dfef37c6001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561130557600080fd5b505afa158015611319573d6000803e3d6000fd5b505050506040513d602081101561132f57600080fd5b5051905090565b60045481565b600380546001019081905560055460ff16156113895760405162461bcd60e51b815260040180806020018281038252603c815260200180611d50603c913960400191505060405180910390fd5b33611392611754565b600b5561139d6111ca565b600a556001600160a01b0381161561158f57600f5461155a576113c26106c1826104b0565b6001600160a01b0382166000908152600e602052604081208290556009546008549192916113f59163ffffffff61185a16565b039050600061140f426007546117fd90919063ffffffff16565b9050611421828263ffffffff6118ba16565b600855600554604080516370a0823160e01b8152306004820152905160009261010090046001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561147457600080fd5b505afa158015611488573d6000803e3d6000fd5b505050506040513d602081101561149e57600080fd5b50516001600160a01b0385166000908152600e60205260409020549091508110156114fe576040805162461bcd60e51b81526020600482015260186024820152600080516020611ce0833981519152604482015290519081900360640190fd5b60095461151290829063ffffffff6118ba16565b6008541115611556576040805162461bcd60e51b81526020600482015260186024820152600080516020611ce0833981519152604482015290519081900360640190fd5b5050505b611563816104b0565b6001600160a01b0382166000908152600e6020908152604080832093909355600b54600d909152919020555b600083116115d5576040805162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b604482015290519081900360640190fd5b600f546115e8908463ffffffff61192416565b600f553360009081526010602052604090205461160b908463ffffffff61192416565b33600081815260106020526040902091909155600654611638916001600160a01b03909116903086611a1e565b60408051848152905133917f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d919081900360200190a25060035481146109f4576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600c5481565b600a5481565b6116d961197e565b60075442116117195760405162461bcd60e51b8152600401808060200182810382526058815260200180611c536058913960600191505060405180910390fd5b60098190556040805182815290517ffb46ca5a5e06d4540d6387b930a7c978bce0db5f449ec6b3f5d07c6e1d44f2d39181900360200190a150565b6000600f546000141561176a5750600b54610632565b610678611793600f54610528670de0b6b3a76400006106e36008546106e3600a546104f76111ca565b600b549063ffffffff61192416565b60055461010090046001600160a01b031681565b73169e633a2d1e6c10dd91238ba11c4a708dfef37c81565b600b5481565b336000908152601060205260409020546117ed9061067d565b6117f56109fe565b565b60075481565b600082821115611854576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008261186957506000610540565b8282028284828161187657fe5b04146118b35760405162461bcd60e51b8152600401808060200182810382526021815260200180611d2f6021913960400191505060405180910390fd5b9392505050565b6000808211611910576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161191b57fe5b04949350505050565b6000828201838110156118b3576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000546001600160a01b031633146117f55760405162461bcd60e51b815260040180806020018281038252602f815260200180611d00602f913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611a19908490611a94565b505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611a78908590611a94565b50505050565b6000818310611a8d57816118b3565b5090919050565b611aa6826001600160a01b0316611c4c565b611af7576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310611b355780518252601f199092019160209182019101611b16565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611b97576040519150601f19603f3d011682016040523d82523d6000602084013e611b9c565b606091505b509150915081611bf3576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115611a7857808060200190516020811015611c0f57600080fd5b5051611a785760405162461bcd60e51b815260040180806020018281038252602a815260200180611db6602a913960400191505060405180910390fd5b3b15159056fe50726576696f7573207265776172647320706572696f64206d75737420626520636f6d706c657465206265666f7265206368616e67696e6720746865206475726174696f6e20666f7220746865206e657720706572696f64596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697050726f76696465642072657761726420746f6f206869676800000000000000004f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775468697320616374696f6e2063616e6e6f7420626520706572666f726d6564207768696c652074686520636f6e74726163742069732070617573656443616c6c6572206973206e6f742052657761726473446973747269627574696f6e20636f6e74726163745361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656443616e6e6f7420776974686472617720746865207374616b696e6720746f6b656ea265627a7a723158207726720502c1220fcc816e636ffe7bc89839a10dad02e7e7a0d47177b0d552de64736f6c6343000511003200000000000000000000000047a44ae76b63b562a1764f6032241d9ba8e11c56000000000000000000000000c6887aa99f58b52df0e3de8d30262314dd681f2b000000000000000000000000fe9a29ab92522d14fc65880d817214261d8479ae000000000000000000000000fe9a29ab92522d14fc65880d817214261d8479ae00000000000000000000000000000000000000000000000000000000015eaf00000000000000000000000000000000000000000000000000000000000000000a
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102055760003560e01c80637b0a47ee1161011a578063b6081647116100ad578063d1af0c7d1161007c578063d1af0c7d14610488578063dbbc4a5714610490578063df136d6514610498578063e9fad8ee146104a0578063ebe2b12b146104a857610205565b8063b608164714610453578063c8f33c911461045b578063cc1a378f14610463578063cd3daf9d1461048057610205565b80638da5cb5b116100e95780638da5cb5b1461041e578063904440bd1461042657806391b4ded91461042e578063a694fc3a1461043657610205565b80637b0a47ee146103bc57806380faa57d146103c45780638980f11f146103cc5780638b876347146103f857610205565b8063386a95251161019d5780635c975abb1161016c5780635c975abb1461033e57806368d53c431461035a57806370a082311461038657806372f702f3146103ac57806379ba5097146103b457610205565b8063386a9525146103025780633d18b9121461030a5780633fc6df6e1461031257806353a47bb71461033657610205565b806318160ddd116101d957806318160ddd146102af57806319762143146102b75780631c1f78eb146102dd5780632e1a7d4d146102e557610205565b80628cc2621461020a5780630700037d146102425780631627540c1461026857806316c38b3c14610290575b600080fd5b6102306004803603602081101561022057600080fd5b50356001600160a01b03166104b0565b60408051918252519081900360200190f35b6102306004803603602081101561025857600080fd5b50356001600160a01b0316610546565b61028e6004803603602081101561027e57600080fd5b50356001600160a01b0316610558565b005b61028e600480360360208110156102a657600080fd5b503515156105b4565b61023061062e565b61028e600480360360208110156102cd57600080fd5b50356001600160a01b0316610635565b61023061065f565b61028e600480360360208110156102fb57600080fd5b503561067d565b6102306109f8565b61028e6109fe565b61031a610d82565b604080516001600160a01b039092168252519081900360200190f35b61031a610d91565b610346610da0565b604080519115158252519081900360200190f35b61028e6004803603604081101561037057600080fd5b50803590602001356001600160a01b0316610da9565b6102306004803603602081101561039c57600080fd5b50356001600160a01b03166110de565b61031a6110f9565b61028e611108565b6102306111c4565b6102306111ca565b61028e600480360360408110156103e257600080fd5b506001600160a01b0381351690602001356111d8565b6102306004803603602081101561040e57600080fd5b50356001600160a01b0316611295565b61031a6112a7565b6102306112b6565b610230611336565b61028e6004803603602081101561044c57600080fd5b503561133c565b6102306116c5565b6102306116cb565b61028e6004803603602081101561047957600080fd5b50356116d1565b610230611754565b61031a6117a2565b61031a6117b6565b6102306117ce565b61028e6117d4565b6102306117f7565b6001600160a01b0381166000908152600e6020908152604080832054600d909252822054610540919061053490670de0b6b3a76400009061052890610503906104f7611754565b9063ffffffff6117fd16565b6001600160a01b0388166000908152601060205260409020549063ffffffff61185a16565b9063ffffffff6118ba16565b9063ffffffff61192416565b92915050565b600e6020526000908152604090205481565b61056061197e565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6105bc61197e565b60055460ff16151581151514156105d25761062b565b6005805460ff1916821515179081905560ff16156105ef57426004555b6005546040805160ff90921615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59181900360200190a15b50565b600f545b90565b61063d61197e565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600061067860095460085461185a90919063ffffffff16565b905090565b600380546001019081905533610691611754565b600b5561069c6111ca565b600a556001600160a01b038116156108bc57600f54610887576106ef6106c1826104b0565b6105346064610528600c546106e360095460085461185a90919063ffffffff16565b9063ffffffff61185a16565b6001600160a01b0382166000908152600e602052604081208290556009546008549192916107229163ffffffff61185a16565b039050600061073c426007546117fd90919063ffffffff16565b905061074e828263ffffffff6118ba16565b600855600554604080516370a0823160e01b8152306004820152905160009261010090046001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156107a157600080fd5b505afa1580156107b5573d6000803e3d6000fd5b505050506040513d60208110156107cb57600080fd5b50516001600160a01b0385166000908152600e602052604090205490915081101561082b576040805162461bcd60e51b81526020600482015260186024820152600080516020611ce0833981519152604482015290519081900360640190fd5b60095461083f90829063ffffffff6118ba16565b6008541115610883576040805162461bcd60e51b81526020600482015260186024820152600080516020611ce0833981519152604482015290519081900360640190fd5b5050505b610890816104b0565b6001600160a01b0382166000908152600e6020908152604080832093909355600b54600d909152919020555b60008311610905576040805162461bcd60e51b8152602060048201526011602482015270043616e6e6f74207769746864726177203607c1b604482015290519081900360640190fd5b600f54610918908463ffffffff6117fd16565b600f553360009081526010602052604090205461093b908463ffffffff6117fd16565b33600081815260106020526040902091909155600654610967916001600160a01b0390911690856119c7565b60408051848152905133917f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5919081900360200190a25060035481146109f4576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b5050565b60095481565b600380546001019081905533610a12611754565b600b55610a1d6111ca565b600a556001600160a01b03811615610c0f57600f54610bda57610a426106c1826104b0565b6001600160a01b0382166000908152600e60205260408120829055600954600854919291610a759163ffffffff61185a16565b0390506000610a8f426007546117fd90919063ffffffff16565b9050610aa1828263ffffffff6118ba16565b600855600554604080516370a0823160e01b8152306004820152905160009261010090046001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610af457600080fd5b505afa158015610b08573d6000803e3d6000fd5b505050506040513d6020811015610b1e57600080fd5b50516001600160a01b0385166000908152600e6020526040902054909150811015610b7e576040805162461bcd60e51b81526020600482015260186024820152600080516020611ce0833981519152604482015290519081900360640190fd5b600954610b9290829063ffffffff6118ba16565b6008541115610bd6576040805162461bcd60e51b81526020600482015260186024820152600080516020611ce0833981519152604482015290519081900360640190fd5b5050505b610be3816104b0565b6001600160a01b0382166000908152600e6020908152604080832093909355600b54600d909152919020555b336000908152600e60205260409020548015610d2a57600554604080516370a0823160e01b8152306004820152905160009261010090046001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610c7557600080fd5b505afa158015610c89573d6000803e3d6000fd5b505050506040513d6020811015610c9f57600080fd5b5051336000908152600e6020526040902054909150811015610cbf578091505b336000818152600e6020526040812055600554610cf2916101009091046001600160a01b0316908463ffffffff6119c716565b60408051838152905133917fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486919081900360200190a2505b5050600354811461062b576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002546001600160a01b031681565b6001546001600160a01b031681565b60055460ff1681565b6002546001600160a01b03163314610df25760405162461bcd60e51b815260040180806020018281038252602a815260200180611d8c602a913960400191505060405180910390fd5b6000610dfc611754565b600b55610e076111ca565b600a556001600160a01b03811615610ff957600f54610fc457610e2c6106c1826104b0565b6001600160a01b0382166000908152600e60205260408120829055600954600854919291610e5f9163ffffffff61185a16565b0390506000610e79426007546117fd90919063ffffffff16565b9050610e8b828263ffffffff6118ba16565b600855600554604080516370a0823160e01b8152306004820152905160009261010090046001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610ede57600080fd5b505afa158015610ef2573d6000803e3d6000fd5b505050506040513d6020811015610f0857600080fd5b50516001600160a01b0385166000908152600e6020526040902054909150811015610f68576040805162461bcd60e51b81526020600482015260186024820152600080516020611ce0833981519152604482015290519081900360640190fd5b600954610f7c90829063ffffffff6118ba16565b6008541115610fc0576040805162461bcd60e51b81526020600482015260186024820152600080516020611ce0833981519152604482015290519081900360640190fd5b5050505b610fcd816104b0565b6001600160a01b0382166000908152600e6020908152604080832093909355600b54600d909152919020555b6005546110169061010090046001600160a01b0316833086611a1e565b600754421061103b5760095461103390849063ffffffff6118ba16565b60085561108a565b600754600090611051904263ffffffff6117fd16565b9050600061106a6008548361185a90919063ffffffff16565b60095490915061108490610528878463ffffffff61192416565b60085550505b42600a8190556009546110a3919063ffffffff61192416565b6007556040805184815290517fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9181900360200190a1505050565b6001600160a01b031660009081526010602052604090205490565b6006546001600160a01b031681565b6001546001600160a01b031633146111515760405162461bcd60e51b8152600401808060200182810382526035815260200180611cab6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60085481565b600061067842600754611a7e565b6111e061197e565b6006546001600160a01b038381169116141561122d5760405162461bcd60e51b8152600401808060200182810382526021815260200180611de06021913960400191505060405180910390fd5b60005461124d906001600160a01b0384811691168363ffffffff6119c716565b604080516001600160a01b03841681526020810183905281517f8c1256b8896378cd5044f80c202f9772b9d77dc85c8a6eb51967210b09bfaa28929181900390910190a15050565b600d6020526000908152604090205481565b6000546001600160a01b031681565b600073169e633a2d1e6c10dd91238ba11c4a708dfef37c6001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561130557600080fd5b505afa158015611319573d6000803e3d6000fd5b505050506040513d602081101561132f57600080fd5b5051905090565b60045481565b600380546001019081905560055460ff16156113895760405162461bcd60e51b815260040180806020018281038252603c815260200180611d50603c913960400191505060405180910390fd5b33611392611754565b600b5561139d6111ca565b600a556001600160a01b0381161561158f57600f5461155a576113c26106c1826104b0565b6001600160a01b0382166000908152600e602052604081208290556009546008549192916113f59163ffffffff61185a16565b039050600061140f426007546117fd90919063ffffffff16565b9050611421828263ffffffff6118ba16565b600855600554604080516370a0823160e01b8152306004820152905160009261010090046001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561147457600080fd5b505afa158015611488573d6000803e3d6000fd5b505050506040513d602081101561149e57600080fd5b50516001600160a01b0385166000908152600e60205260409020549091508110156114fe576040805162461bcd60e51b81526020600482015260186024820152600080516020611ce0833981519152604482015290519081900360640190fd5b60095461151290829063ffffffff6118ba16565b6008541115611556576040805162461bcd60e51b81526020600482015260186024820152600080516020611ce0833981519152604482015290519081900360640190fd5b5050505b611563816104b0565b6001600160a01b0382166000908152600e6020908152604080832093909355600b54600d909152919020555b600083116115d5576040805162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b604482015290519081900360640190fd5b600f546115e8908463ffffffff61192416565b600f553360009081526010602052604090205461160b908463ffffffff61192416565b33600081815260106020526040902091909155600654611638916001600160a01b03909116903086611a1e565b60408051848152905133917f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d919081900360200190a25060035481146109f4576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600c5481565b600a5481565b6116d961197e565b60075442116117195760405162461bcd60e51b8152600401808060200182810382526058815260200180611c536058913960600191505060405180910390fd5b60098190556040805182815290517ffb46ca5a5e06d4540d6387b930a7c978bce0db5f449ec6b3f5d07c6e1d44f2d39181900360200190a150565b6000600f546000141561176a5750600b54610632565b610678611793600f54610528670de0b6b3a76400006106e36008546106e3600a546104f76111ca565b600b549063ffffffff61192416565b60055461010090046001600160a01b031681565b73169e633a2d1e6c10dd91238ba11c4a708dfef37c81565b600b5481565b336000908152601060205260409020546117ed9061067d565b6117f56109fe565b565b60075481565b600082821115611854576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008261186957506000610540565b8282028284828161187657fe5b04146118b35760405162461bcd60e51b8152600401808060200182810382526021815260200180611d2f6021913960400191505060405180910390fd5b9392505050565b6000808211611910576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161191b57fe5b04949350505050565b6000828201838110156118b3576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000546001600160a01b031633146117f55760405162461bcd60e51b815260040180806020018281038252602f815260200180611d00602f913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611a19908490611a94565b505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611a78908590611a94565b50505050565b6000818310611a8d57816118b3565b5090919050565b611aa6826001600160a01b0316611c4c565b611af7576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310611b355780518252601f199092019160209182019101611b16565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611b97576040519150601f19603f3d011682016040523d82523d6000602084013e611b9c565b606091505b509150915081611bf3576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115611a7857808060200190516020811015611c0f57600080fd5b5051611a785760405162461bcd60e51b815260040180806020018281038252602a815260200180611db6602a913960400191505060405180910390fd5b3b15159056fe50726576696f7573207265776172647320706572696f64206d75737420626520636f6d706c657465206265666f7265206368616e67696e6720746865206475726174696f6e20666f7220746865206e657720706572696f64596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697050726f76696465642072657761726420746f6f206869676800000000000000004f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775468697320616374696f6e2063616e6e6f7420626520706572666f726d6564207768696c652074686520636f6e74726163742069732070617573656443616c6c6572206973206e6f742052657761726473446973747269627574696f6e20636f6e74726163745361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656443616e6e6f7420776974686472617720746865207374616b696e6720746f6b656ea265627a7a723158207726720502c1220fcc816e636ffe7bc89839a10dad02e7e7a0d47177b0d552de64736f6c63430005110032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000047a44ae76b63b562a1764f6032241d9ba8e11c56000000000000000000000000c6887aa99f58b52df0e3de8d30262314dd681f2b000000000000000000000000fe9a29ab92522d14fc65880d817214261d8479ae000000000000000000000000fe9a29ab92522d14fc65880d817214261d8479ae00000000000000000000000000000000000000000000000000000000015eaf00000000000000000000000000000000000000000000000000000000000000000a
-----Decoded View---------------
Arg [0] : _owner (address): 0x47a44AE76B63B562a1764F6032241d9BA8e11C56
Arg [1] : _rewardsDistribution (address): 0xC6887Aa99f58B52dF0E3dE8d30262314DD681f2B
Arg [2] : _rewardsToken (address): 0xfe9A29aB92522D14Fc65880d817214261D8479AE
Arg [3] : _stakingToken (address): 0xfe9A29aB92522D14Fc65880d817214261D8479AE
Arg [4] : _rewardsDuration (uint256): 22982400
Arg [5] : _boostPrct (uint256): 10
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 00000000000000000000000047a44ae76b63b562a1764f6032241d9ba8e11c56
Arg [1] : 000000000000000000000000c6887aa99f58b52df0e3de8d30262314dd681f2b
Arg [2] : 000000000000000000000000fe9a29ab92522d14fc65880d817214261d8479ae
Arg [3] : 000000000000000000000000fe9a29ab92522d14fc65880d817214261d8479ae
Arg [4] : 00000000000000000000000000000000000000000000000000000000015eaf00
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000a
Deployed Bytecode Sourcemap
16877:7777:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16877:7777:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19070:198;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19070:198:0;-1:-1:-1;;;;;19070:198:0;;:::i;:::-;;;;;;;;;;;;;;;;17561:42;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17561:42:0;-1:-1:-1;;;;;17561:42:0;;:::i;7212:141::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7212:141:0;-1:-1:-1;;;;;7212:141:0;;:::i;:::-;;8438:488;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8438:488:0;;;;:::i;18259:93::-;;;:::i;10394:142::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10394:142:0;-1:-1:-1;;;;;10394:142:0;;:::i;19276:121::-;;;:::i;19846:357::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19846:357:0;;:::i;17349:30::-;;;:::i;20211:561::-;;;:::i;10106:34::-;;;:::i;:::-;;;;-1:-1:-1;;;;;10106:34:0;;;;;;;;;;;;;;6981:29;;;:::i;8024:18::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;20941:853;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20941:853:0;;;;;;-1:-1:-1;;;;;20941:853:0;;:::i;18473:112::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18473:112:0;-1:-1:-1;;;;;18473:112:0;;:::i;17242:26::-;;;:::i;7361:271::-;;;:::i;17313:29::-;;;:::i;18593:131::-;;;:::i;21909:302::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;21909:302:0;;;;;;;;:::i;17497:57::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17497:57:0;-1:-1:-1;;;;;17497:57:0;;:::i;6954:20::-;;;:::i;18360:105::-;;;:::i;7992:25::-;;;:::i;19459:379::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19459:379:0;;:::i;17464:24::-;;;:::i;17386:29::-;;;:::i;22219:360::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22219:360:0;;:::i;18732:330::-;;;:::i;17209:26::-;;;:::i;17101:99::-;;;:::i;17422:35::-;;;:::i;20780:97::-;;;:::i;17275:31::-;;;:::i;19070:198::-;-1:-1:-1;;;;;19243:16:0;;19124:7;19243:16;;;:7;:16;;;;;;;;;19195:22;:31;;;;;;19151:109;;19243:16;19151:87;;19233:4;;19151:77;;19174:53;;:16;:14;:16::i;:::-;:20;:53;:20;:53;:::i;:::-;-1:-1:-1;;;;;19151:18:0;;;;;;:9;:18;;;;;;;:77;:22;:77;:::i;:::-;:81;:87;:81;:87;:::i;:::-;:91;:109;:91;:109;:::i;:::-;19144:116;19070:198;-1:-1:-1;;19070:198:0:o;17561:42::-;;;;;;;;;;;;;:::o;7212:141::-;7670:12;:10;:12::i;:::-;7284:14;:23;;-1:-1:-1;;;;;7284:23:0;;-1:-1:-1;;;;;;7284:23:0;;;;;;;;7323:22;;;;;;;;;;;;;;;;7212:141;:::o;8438:488::-;7670:12;:10;:12::i;:::-;8591:6;;;;8580:17;;;;;;8576:56;;;8614:7;;8576:56;8678:6;:16;;-1:-1:-1;;8678:16:0;;;;;;;;;;8763:6;8759:58;;;8802:3;8786:13;:19;8759:58;8911:6;;8898:20;;;8911:6;;;;8898:20;;;;;;;;;;;;;;7693:1;8438:488;:::o;18259:93::-;18332:12;;18259:93;;:::o;10394:142::-;7670:12;:10;:12::i;:::-;10486:19;:42;;-1:-1:-1;;;;;;10486:42:0;-1:-1:-1;;;;;10486:42:0;;;;;;;;;;10394:142::o;19276:121::-;19331:7;19358:31;19373:15;;19358:10;;:14;;:31;;;;:::i;:::-;19351:38;;19276:121;:::o;19846:357::-;9876:13;:18;;9893:1;9876:18;;;;;19913:10;22705:16;:14;:16::i;:::-;22682:20;:39;22749:26;:24;:26::i;:::-;22732:14;:43;-1:-1:-1;;;;;22790:21:0;;;22786:1475;;22921:12;;22917:1215;;22978:164;23126:15;23133:7;23126:6;:15::i;:::-;22978:121;23095:3;22978:90;23058:9;;22978:53;23015:15;;22978:10;;:36;;:53;;;;:::i;:::-;:79;:90;:79;:90;:::i;:164::-;-1:-1:-1;;;;;22959:16:0;;;;;;:7;:16;;;;;:183;;;23301:15;;23286:10;;22959:16;;:183;23286:31;;;:14;:31;:::i;:::-;:50;23264:72;;23355:17;23375:33;23392:15;23375:12;;:16;;:33;;;;:::i;:::-;23355:53;-1:-1:-1;23440:26:0;:11;23355:53;23440:26;:15;:26;:::i;:::-;23427:10;:39;23898:12;;:37;;;-1:-1:-1;;;23898:37:0;;23929:4;23898:37;;;;;;-1:-1:-1;;23898:12:0;;;-1:-1:-1;;;;;23898:12:0;;:22;;:37;;;;;;;;;;;;;;:12;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;23898:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23898:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23898:37:0;-1:-1:-1;;;;;23962:16:0;;;;;;:7;23898:37;23962:16;;;;;23898:37;;-1:-1:-1;23962:27:0;-1:-1:-1;23962:27:0;23954:64;;;;;-1:-1:-1;;;23954:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;23954:64:0;;;;;;;;;;;;;;;24071:15;;24059:28;;:7;;:28;:11;:28;:::i;:::-;24045:10;;:42;;24037:79;;;;;-1:-1:-1;;;24037:79:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;24037:79:0;;;;;;;;;;;;;;;22917:1215;;;;24165:15;24172:7;24165:6;:15::i;:::-;-1:-1:-1;;;;;24146:16:0;;;;;;:7;:16;;;;;;;;:34;;;;24229:20;;24195:22;:31;;;;;;:54;22786:1475;19953:1;19944:6;:10;19936:40;;;;;-1:-1:-1;;;19936:40:0;;;;;;;;;;;;-1:-1:-1;;;19936:40:0;;;;;;;;;;;;;;;20002:12;;:24;;20019:6;20002:24;:16;:24;:::i;:::-;19987:12;:39;20071:10;20061:21;;;;:9;:21;;;;;;:33;;20087:6;20061:33;:25;:33;:::i;:::-;20047:10;20037:21;;;;:9;:21;;;;;:57;;;;20105:12;;:45;;-1:-1:-1;;;;;20105:12:0;;;;20143:6;20105:25;:45::i;:::-;20166:29;;;;;;;;20176:10;;20166:29;;;;;;;;;;9952:1;9988:13;;9972:12;:29;9964:73;;;;;-1:-1:-1;;;9964:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19846:357;;:::o;17349:30::-;;;;:::o;20211:561::-;9876:13;:18;;9893:1;9876:18;;;;;20265:10;22705:16;:14;:16::i;:::-;22682:20;:39;22749:26;:24;:26::i;:::-;22732:14;:43;-1:-1:-1;;;;;22790:21:0;;;22786:1475;;22921:12;;22917:1215;;22978:164;23126:15;23133:7;23126:6;:15::i;22978:164::-;-1:-1:-1;;;;;22959:16:0;;;;;;:7;:16;;;;;:183;;;23301:15;;23286:10;;22959:16;;:183;23286:31;;;:14;:31;:::i;:::-;:50;23264:72;;23355:17;23375:33;23392:15;23375:12;;:16;;:33;;;;:::i;:::-;23355:53;-1:-1:-1;23440:26:0;:11;23355:53;23440:26;:15;:26;:::i;:::-;23427:10;:39;23898:12;;:37;;;-1:-1:-1;;;23898:37:0;;23929:4;23898:37;;;;;;-1:-1:-1;;23898:12:0;;;-1:-1:-1;;;;;23898:12:0;;:22;;:37;;;;;;;;;;;;;;:12;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;23898:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23898:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23898:37:0;-1:-1:-1;;;;;23962:16:0;;;;;;:7;23898:37;23962:16;;;;;23898:37;;-1:-1:-1;23962:27:0;-1:-1:-1;23962:27:0;23954:64;;;;;-1:-1:-1;;;23954:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;23954:64:0;;;;;;;;;;;;;;;24071:15;;24059:28;;:7;;:28;:11;:28;:::i;:::-;24045:10;;:42;;24037:79;;;;;-1:-1:-1;;;24037:79:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;24037:79:0;;;;;;;;;;;;;;;22917:1215;;;;24165:15;24172:7;24165:6;:15::i;:::-;-1:-1:-1;;;;;24146:16:0;;;;;;:7;:16;;;;;;;;:34;;;;24229:20;;24195:22;:31;;;;;;:54;22786:1475;20313:10;20288:14;20305:19;;;:7;:19;;;;;;20339:10;;20335:430;;20468:12;;:37;;;-1:-1:-1;;;20468:37:0;;20499:4;20468:37;;;;;;-1:-1:-1;;20468:12:0;;;-1:-1:-1;;;;;20468:12:0;;:22;;:37;;;;;;;;;;;;;;:12;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;20468:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20468:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20468:37:0;20532:10;20524:19;;;;:7;20468:37;20524:19;;;;;20468:37;;-1:-1:-1;20524:29:0;-1:-1:-1;20520:86:0;;;20583:7;20574:16;;20520:86;20628:10;20642:1;20620:19;;;:7;:19;;;;;:23;20658:12;;:45;;:12;;;;-1:-1:-1;;;;;20658:12:0;;20696:6;20658:45;:25;:45;:::i;:::-;20723:30;;;;;;;;20734:10;;20723:30;;;;;;;;;;20335:430;;24271:1;9952;9988:13;;9972:12;:29;9964:73;;;;;-1:-1:-1;;;9964:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;10106:34;;;-1:-1:-1;;;;;10106:34:0;;:::o;6981:29::-;;;-1:-1:-1;;;;;6981:29:0;;:::o;8024:18::-;;;;;;:::o;20941:853::-;10300:19;;-1:-1:-1;;;;;10300:19:0;10286:10;:33;10278:88;;;;-1:-1:-1;;;10278:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21061:1;22705:16;:14;:16::i;:::-;22682:20;:39;22749:26;:24;:26::i;:::-;22732:14;:43;-1:-1:-1;;;;;22790:21:0;;;22786:1475;;22921:12;;22917:1215;;22978:164;23126:15;23133:7;23126:6;:15::i;22978:164::-;-1:-1:-1;;;;;22959:16:0;;;;;;:7;:16;;;;;:183;;;23301:15;;23286:10;;22959:16;;:183;23286:31;;;:14;:31;:::i;:::-;:50;23264:72;;23355:17;23375:33;23392:15;23375:12;;:16;;:33;;;;:::i;:::-;23355:53;-1:-1:-1;23440:26:0;:11;23355:53;23440:26;:15;:26;:::i;:::-;23427:10;:39;23898:12;;:37;;;-1:-1:-1;;;23898:37:0;;23929:4;23898:37;;;;;;-1:-1:-1;;23898:12:0;;;-1:-1:-1;;;;;23898:12:0;;:22;;:37;;;;;;;;;;;;;;:12;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;23898:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23898:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23898:37:0;-1:-1:-1;;;;;23962:16:0;;;;;;:7;23898:37;23962:16;;;;;23898:37;;-1:-1:-1;23962:27:0;-1:-1:-1;23962:27:0;23954:64;;;;;-1:-1:-1;;;23954:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;23954:64:0;;;;;;;;;;;;;;;24071:15;;24059:28;;:7;;:28;:11;:28;:::i;:::-;24045:10;;:42;;24037:79;;;;;-1:-1:-1;;;24037:79:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;24037:79:0;;;;;;;;;;;;;;;22917:1215;;;;24165:15;24172:7;24165:6;:15::i;:::-;-1:-1:-1;;;;;24146:16:0;;;;;;:7;:16;;;;;;;;:34;;;;24229:20;;24195:22;:31;;;;;;:54;22786:1475;21248:12;;:66;;:12;;;-1:-1:-1;;;;;21248:12:0;21278;21300:4;21307:6;21248:29;:66::i;:::-;21350:12;;21331:15;:31;21327:318;;21403:15;;21392:27;;:6;;:27;:10;:27;:::i;:::-;21379:10;:40;21327:318;;;21472:12;;21452:17;;21472:33;;21489:15;21472:33;:16;:33;:::i;:::-;21452:53;;21520:16;21539:25;21553:10;;21539:9;:13;;:25;;;;:::i;:::-;21617:15;;21520:44;;-1:-1:-1;21592:41:0;;:20;:6;21520:44;21592:20;:10;:20;:::i;:41::-;21579:10;:54;-1:-1:-1;;21327:318:0;21674:15;21657:14;:32;;;21735:15;;21715:36;;21674:15;21715:36;:19;:36;:::i;:::-;21700:12;:51;21767:19;;;;;;;;;;;;;;;;;10377:1;20941:853;;:::o;18473:112::-;-1:-1:-1;;;;;18559:18:0;18532:7;18559:18;;;:9;:18;;;;;;;18473:112::o;17242:26::-;;;-1:-1:-1;;;;;17242:26:0;;:::o;7361:271::-;7430:14;;-1:-1:-1;;;;;7430:14:0;7416:10;:28;7408:94;;;;-1:-1:-1;;;7408:94:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7531:5;;;7538:14;7518:35;;;-1:-1:-1;;;;;7531:5:0;;;7518:35;;7538:14;;;;7518:35;;;;;;;;;;;;;;;;7572:14;;;;7564:22;;-1:-1:-1;;;;;;7564:22:0;;;-1:-1:-1;;;;;7572:14:0;;7564:22;;;;7597:27;;;7361:271::o;17313:29::-;;;;:::o;18593:131::-;18650:7;18677:39;18686:15;18703:12;;18677:8;:39::i;21909:302::-;7670:12;:10;:12::i;:::-;22036;;-1:-1:-1;;;;;22012:37:0;;;22036:12;;22012:37;;22004:83;;;;-1:-1:-1;;;22004:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22132:5;;22098:53;;-1:-1:-1;;;;;22098:33:0;;;;22132:5;22139:11;22098:53;:33;:53;:::i;:::-;22167:36;;;-1:-1:-1;;;;;22167:36:0;;;;;;;;;;;;;;;;;;;;;;;21909:302;;:::o;17497:57::-;;;;;;;;;;;;;:::o;6954:20::-;;;-1:-1:-1;;;;;6954:20:0;;:::o;18360:105::-;18405:4;17157:42;-1:-1:-1;;;;;18434:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18434:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18434:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18434:22:0;;-1:-1:-1;18360:105:0;:::o;7992:25::-;;;;:::o;19459:379::-;9876:13;:18;;9893:1;9876:18;;;;;9015:6;;;;9014:7;9006:80;;;;-1:-1:-1;;;9006:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19535:10;22705:16;:14;:16::i;:::-;22682:20;:39;22749:26;:24;:26::i;:::-;22732:14;:43;-1:-1:-1;;;;;22790:21:0;;;22786:1475;;22921:12;;22917:1215;;22978:164;23126:15;23133:7;23126:6;:15::i;22978:164::-;-1:-1:-1;;;;;22959:16:0;;;;;;:7;:16;;;;;:183;;;23301:15;;23286:10;;22959:16;;:183;23286:31;;;:14;:31;:::i;:::-;:50;23264:72;;23355:17;23375:33;23392:15;23375:12;;:16;;:33;;;;:::i;:::-;23355:53;-1:-1:-1;23440:26:0;:11;23355:53;23440:26;:15;:26;:::i;:::-;23427:10;:39;23898:12;;:37;;;-1:-1:-1;;;23898:37:0;;23929:4;23898:37;;;;;;-1:-1:-1;;23898:12:0;;;-1:-1:-1;;;;;23898:12:0;;:22;;:37;;;;;;;;;;;;;;:12;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;23898:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23898:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23898:37:0;-1:-1:-1;;;;;23962:16:0;;;;;;:7;23898:37;23962:16;;;;;23898:37;;-1:-1:-1;23962:27:0;-1:-1:-1;23962:27:0;23954:64;;;;;-1:-1:-1;;;23954:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;23954:64:0;;;;;;;;;;;;;;;24071:15;;24059:28;;:7;;:28;:11;:28;:::i;:::-;24045:10;;:42;;24037:79;;;;;-1:-1:-1;;;24037:79:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;24037:79:0;;;;;;;;;;;;;;;22917:1215;;;;24165:15;24172:7;24165:6;:15::i;:::-;-1:-1:-1;;;;;24146:16:0;;;;;;:7;:16;;;;;;;;:34;;;;24229:20;;24195:22;:31;;;;;;:54;22786:1475;19575:1;19566:6;:10;19558:37;;;;;-1:-1:-1;;;19558:37:0;;;;;;;;;;;;-1:-1:-1;;;19558:37:0;;;;;;;;;;;;;;;19621:12;;:24;;19638:6;19621:24;:16;:24;:::i;:::-;19606:12;:39;19690:10;19680:21;;;;:9;:21;;;;;;:33;;19706:6;19680:33;:25;:33;:::i;:::-;19666:10;19656:21;;;;:9;:21;;;;;:57;;;;19724:12;;:64;;-1:-1:-1;;;;;19724:12:0;;;;19774:4;19781:6;19724:29;:64::i;:::-;19804:26;;;;;;;;19811:10;;19804:26;;;;;;;;;;9097:1;9988:13;;9972:12;:29;9964:73;;;;;-1:-1:-1;;;9964:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;17464:24;;;;:::o;17386:29::-;;;;:::o;22219:360::-;7670:12;:10;:12::i;:::-;22343;;22325:15;:30;22303:168;;;;-1:-1:-1;;;22303:168:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22482:15;:34;;;22532:39;;;;;;;;;;;;;;;;;22219:360;:::o;18732:330::-;18779:7;18803:12;;18819:1;18803:17;18799:77;;;-1:-1:-1;18844:20:0;;18837:27;;18799:77;18906:148;18949:90;19026:12;;18949:72;19016:4;18949:62;19000:10;;18949:46;18980:14;;18949:26;:24;:26::i;:90::-;18906:20;;;:148;:24;:148;:::i;17209:26::-;;;;;;-1:-1:-1;;;;;17209:26:0;;:::o;17101:99::-;17157:42;17101:99;:::o;17422:35::-;;;;:::o;20780:97::-;20835:10;20825:21;;;;:9;:21;;;;;;20816:31;;:8;:31::i;:::-;20858:11;:9;:11::i;:::-;20780:97::o;17275:31::-;;;;:::o;14461:184::-;14519:7;14552:1;14547;:6;;14539:49;;;;;-1:-1:-1;;;14539:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14611:5:0;;;14461:184::o;14896:470::-;14954:7;15198:6;15194:47;;-1:-1:-1;15228:1:0;15221:8;;15194:47;15265:5;;;15269:1;15265;:5;:1;15289:5;;;;;:10;15281:56;;;;-1:-1:-1;;;15281:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15357:1;14896:470;-1:-1:-1;;;14896:470:0:o;15834:333::-;15892:7;15991:1;15987;:5;15979:44;;;;;-1:-1:-1;;;15979:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16034:9;16050:1;16046;:5;;;;;;;15834:333;-1:-1:-1;;;;15834:333:0:o;14005:181::-;14063:7;14095:5;;;14119:6;;;;14111:46;;;;;-1:-1:-1;;;14111:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;7710:133;7778:5;;-1:-1:-1;;;;;7778:5:0;7764:10;:19;7756:79;;;;-1:-1:-1;;;7756:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10635:176;10744:58;;;-1:-1:-1;;;;;10744:58:0;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;10744:58:0;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;10718:85:0;;10737:5;;10718:18;:85::i;:::-;10635:176;;;:::o;10819:204::-;10946:68;;;-1:-1:-1;;;;;10946:68:0;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;10946:68:0;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;10920:95:0;;10939:5;;10920:18;:95::i;:::-;10819:204;;;;:::o;6507:106::-;6565:7;6596:1;6592;:5;:13;;6604:1;6592:13;;;-1:-1:-1;6600:1:0;;6585:20;-1:-1:-1;6507:106:0:o;12629:1114::-;13233:27;13241:5;-1:-1:-1;;;;;13233:25:0;;:27::i;:::-;13225:71;;;;;-1:-1:-1;;;13225:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13370:12;13384:23;13419:5;-1:-1:-1;;;;;13411:19:0;13431:4;13411:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13411:25:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;13369:67:0;;;;13455:7;13447:52;;;;;-1:-1:-1;;;13447:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13516:17;;:21;13512:224;;13658:10;13647:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13647:30:0;13639:85;;;;-1:-1:-1;;;13639:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2517:422;2884:20;2923:8;;;2517:422::o
Swarm Source
bzzr://7726720502c1220fcc816e636ffe7bc89839a10dad02e7e7a0d47177b0d552de
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.233656 | 6,973.3929 | $1,629.38 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.