Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00Token Holdings
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 15,185 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 19909085 | 46 days ago | IN | 0 ETH | 0.00044541 | ||||
Withdraw | 19828083 | 58 days ago | IN | 0 ETH | 0.00062652 | ||||
Withdraw | 19754221 | 68 days ago | IN | 0 ETH | 0.00074339 | ||||
Withdraw | 19571338 | 94 days ago | IN | 0 ETH | 0.00286542 | ||||
Withdraw | 19483650 | 106 days ago | IN | 0 ETH | 0.00348998 | ||||
Withdraw | 19447208 | 111 days ago | IN | 0 ETH | 0.00386296 | ||||
Withdraw | 19421890 | 115 days ago | IN | 0 ETH | 0.00647927 | ||||
Withdraw | 19403066 | 117 days ago | IN | 0 ETH | 0.00574313 | ||||
Withdraw | 19397400 | 118 days ago | IN | 0 ETH | 0.00534202 | ||||
Withdraw | 19392016 | 119 days ago | IN | 0 ETH | 0.00861491 | ||||
Withdraw | 19380150 | 120 days ago | IN | 0 ETH | 0.00625617 | ||||
Withdraw | 19347485 | 125 days ago | IN | 0 ETH | 0.00384274 | ||||
Withdraw | 19245830 | 139 days ago | IN | 0 ETH | 0.00181268 | ||||
Withdraw | 19245443 | 139 days ago | IN | 0 ETH | 0.00185483 | ||||
Withdraw | 19190891 | 147 days ago | IN | 0 ETH | 0.00944858 | ||||
Withdraw | 18964926 | 179 days ago | IN | 0 ETH | 0.00304401 | ||||
Withdraw | 18801869 | 202 days ago | IN | 0 ETH | 0.00442978 | ||||
Withdraw | 18656190 | 222 days ago | IN | 0 ETH | 0.00285385 | ||||
Withdraw | 18633569 | 225 days ago | IN | 0 ETH | 0.00239363 | ||||
Withdraw | 18490969 | 245 days ago | IN | 0 ETH | 0.00192865 | ||||
Withdraw | 18484382 | 246 days ago | IN | 0 ETH | 0.00160027 | ||||
Withdraw | 18484379 | 246 days ago | IN | 0 ETH | 0.00218288 | ||||
Withdraw | 18435644 | 253 days ago | IN | 0 ETH | 0.00285237 | ||||
Withdraw | 18191053 | 287 days ago | IN | 0 ETH | 0.00080175 | ||||
Withdraw | 18022983 | 311 days ago | IN | 0 ETH | 0.00307473 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Staking
Compiler Version
v0.7.3+commit.9bfce1f6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-04-02 */ // SPDX-License-Identifier: MIT pragma solidity ^0.7.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b > a) return (false, 0); return (true, a - b); } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a / b); } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a % b); } /** * @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"); return a - b; } /** * @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) { 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, reverting 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) { require(b > 0, "SafeMath: division by zero"); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting 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; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryDiv}. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a % b; } } /** * @dev Standard math utilities missing in the Solidity language. */ 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); } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /* * @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 GSN 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 payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @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. * * By default, the owner account will be the one that deploys the contract. 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; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = 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 { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } pragma experimental ABIEncoderV2; contract Staking is Ownable { using SafeMath for uint256; uint256 public _startTime; uint256 public _endTime; uint256 public _getRewardEndTime; uint256 public _rewardRate; uint256 public _releaseInterval = 1 weeks; uint256 public _getRewardInterval = 35 weeks; uint256 lockTimes = 20; IERC20 public _stakingToken; IERC20 public _rewardToken; uint256 public _rewardPerTokenStored; uint256 public _lastUpdateTime; mapping(address => uint256) public _rewards; mapping(address => uint256) public _userRewardPerTokenPaid; mapping(address => uint256) public _receivedRewards; uint256 public _supply; mapping(address => uint256) public _balance; mapping(address => LockAmount) public _lockAmount; struct LockAmount { uint256[] amount; uint256 releaseTime; uint256 pos; } event Staked(address indexed sender, uint256 indexed amount); event Withdrawn(address indexed sender, uint256 indexed amount); event GotReward(address indexed sender, uint256 indexed amount); constructor( uint256 startTime_, uint256 endTime_, uint256 rewardRate_, address stakingToken_, address rewardToken_ ) { _startTime = startTime_; _endTime = endTime_; _getRewardEndTime = startTime_ + _getRewardInterval; _rewardRate = rewardRate_; _stakingToken = IERC20(stakingToken_); _rewardToken = IERC20(rewardToken_); } function balanceOf(address account) public view returns (uint256) { return _balance[account]; } modifier updateReward(address account) { _rewardPerTokenStored = rewardPerToken(); _lastUpdateTime = lastTimeRewardApplicable(); if (account != address(0)) { _rewards[account] = earned(account); _userRewardPerTokenPaid[account] = _rewardPerTokenStored; } _; } function lockedIncomeBalanceOf(address account) public view returns (LockAmount memory) { return _lockAmount[account]; } function rewardPart(address account) public view returns (uint256 unlocked, uint256 locked) { uint256 earn = earned(account); unlocked = unlocked.add(earn.div(lockTimes)); locked = locked.add(earn.sub(earn.div(lockTimes))); LockAmount memory amount = _lockAmount[account]; uint256 lockTime = amount.releaseTime; for (uint256 i = amount.pos; i < amount.amount.length; i++) { if (lockTime < block.timestamp) { unlocked = unlocked.add(amount.amount[i]); } else { locked = locked.add(amount.amount[i]); } lockTime = lockTime.add(_releaseInterval); } } function earned(address account) public view returns (uint256) { return balanceOf(account) .mul(rewardPerToken().sub(_userRewardPerTokenPaid[account])) .div(1e18) .add(_rewards[account]); } function stake(uint256 amount) public updateReward(msg.sender) { require(block.timestamp < _endTime, "the end"); require(amount > 0, "cannot stake 0"); _balance[msg.sender] = _balance[msg.sender].add(amount); _supply = _supply.add(amount); require( _stakingToken.transferFrom(msg.sender, address(this), amount), "transferFrom fail" ); emit Staked(msg.sender, amount); } function withdraw(uint256 amount) public updateReward(msg.sender) { require(amount > 0, "cannot withdraw 0"); require(balanceOf(msg.sender) >= amount, "Insufficient funds"); _balance[msg.sender] = _balance[msg.sender].sub(amount); _supply = _supply.sub(amount); require(_stakingToken.transfer(msg.sender, amount), "withdraw fail"); emit Withdrawn(msg.sender, amount); } function exit() public { withdraw(balanceOf(msg.sender)); getReward(); } function getReward() public updateReward(msg.sender) { require(block.timestamp < _getRewardEndTime, "get reward timeout"); LockAmount storage lockAmount = _lockAmount[msg.sender]; uint256 releaseAmount = 0; for (uint256 i = lockAmount.pos; i < lockAmount.amount.length; i++) { if (lockAmount.releaseTime > block.timestamp) { break; } releaseAmount = releaseAmount.add(lockAmount.amount[i]); lockAmount.releaseTime = lockAmount.releaseTime.add(_releaseInterval); lockAmount.pos = lockAmount.pos.add(1); } uint256 reward = _rewards[msg.sender]; if (reward > 0) { _rewards[msg.sender] = 0; uint256 part = reward.div(lockTimes); releaseAmount = releaseAmount.add(part); if (lockAmount.amount.length == lockAmount.pos) { lockAmount.releaseTime = block.timestamp.add(_releaseInterval); } uint256 pos; for (uint256 i = 0; i < lockTimes - 2; i++) { pos = lockAmount.pos.add(i); if (pos < lockAmount.amount.length) { lockAmount.amount[pos] = lockAmount.amount[pos].add(part); } else { lockAmount.amount.push(part); } } pos = pos.add(1); uint256 lastAmount = reward.sub(part.mul(lockTimes - 1)); if (pos < lockAmount.amount.length) { lockAmount.amount[pos] = lockAmount.amount[pos].add(lastAmount); } else { lockAmount.amount.push(lastAmount); } } if (releaseAmount > 0) { _receivedRewards[msg.sender] = _receivedRewards[msg.sender].add(releaseAmount); require( _rewardToken.transfer(msg.sender, releaseAmount), "reward token fail" ); emit GotReward(msg.sender, releaseAmount); } } function lastTimeRewardApplicable() public view returns (uint256) { return Math.max(_startTime, Math.min(block.timestamp, _endTime)); } function rewardPerToken() public view returns (uint256) { if (_supply == 0) { return _rewardPerTokenStored; } return _rewardPerTokenStored.add( lastTimeRewardApplicable() .sub(_lastUpdateTime) .mul(_rewardRate) .mul(1e18) .div(_supply) ); } function transferERCToken(address tokenContractAddress, address to, uint256 amount) public onlyOwner { require(IERC20(tokenContractAddress).transfer(to, amount), "transfer other token fail"); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint256","name":"startTime_","type":"uint256"},{"internalType":"uint256","name":"endTime_","type":"uint256"},{"internalType":"uint256","name":"rewardRate_","type":"uint256"},{"internalType":"address","name":"stakingToken_","type":"address"},{"internalType":"address","name":"rewardToken_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"GotReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getRewardEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getRewardInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lastUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_lockAmount","outputs":[{"internalType":"uint256","name":"releaseTime","type":"uint256"},{"internalType":"uint256","name":"pos","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_receivedRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_releaseInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_rewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_rewardToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_stakingToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_supply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_userRewardPerTokenPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"lockedIncomeBalanceOf","outputs":[{"components":[{"internalType":"uint256[]","name":"amount","type":"uint256[]"},{"internalType":"uint256","name":"releaseTime","type":"uint256"},{"internalType":"uint256","name":"pos","type":"uint256"}],"internalType":"struct Staking.LockAmount","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"rewardPart","outputs":[{"internalType":"uint256","name":"unlocked","type":"uint256"},{"internalType":"uint256","name":"locked","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerToken","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":"tokenContractAddress","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferERCToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405262093a80600555630142ff8060065560146007553480156200002557600080fd5b50604051620017c8380380620017c8833981016040819052620000489162000108565b600062000054620000e7565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001859055600293909355600654909301600355600455600880546001600160a01b039384166001600160a01b031991821617909155600980549290931691161790556200015c565b3390565b80516001600160a01b03811681146200010357600080fd5b919050565b600080600080600060a0868803121562000120578081fd5b8551945060208601519350604086015192506200014060608701620000eb565b91506200015060808701620000eb565b90509295509295909350565b61165c806200016c6000396000f3fe608060405234801561001057600080fd5b50600436106101d95760003560e01c80637dff841511610104578063c36c92c6116100a2578063e855882011610071578063e855882014610372578063e9fad8ee1461037a578063f2fde38b14610382578063fa1acb5c14610395576101d9565b8063c36c92c61461032f578063cd3daf9d1461034f578063d3aceae214610357578063d55292041461036a576101d9565b80639b80ca5a116100de5780639b80ca5a146102f9578063a694fc3a14610301578063a8ed940814610314578063b59c6e0e14610327576101d9565b80637dff8415146102d657806380faa57d146102e95780638da5cb5b146102f1576101d9565b806340d489581161017c5780636adafab51161014b5780636adafab5146102a057806370a08231146102a8578063715018a6146102bb5780637d6dfb7e146102c3576101d9565b806340d489581461025c5780635c8fd6b21461026457806365d82b8a1461028557806368fd25cd14610298576101d9565b8063240aef7a116101b8578063240aef7a146102175780632421a9f21461022c5780632e1a7d4d146102415780633d18b91214610254576101d9565b80628cc262146101de578063121544b914610207578063159457901461020f575b600080fd5b6101f16101ec3660046111ea565b61039d565b6040516101fe919061160f565b60405180910390f35b6101f161040d565b6101f1610413565b61022a610225366004611204565b610419565b005b610234610502565b6040516101fe9190611277565b61022a61024f36600461125f565b610511565b61022a6106bf565b6101f1610a66565b6102776102723660046111ea565b610a6c565b6040516101fe929190611618565b6101f16102933660046111ea565b610bfd565b6101f1610c0f565b6101f1610c15565b6101f16102b63660046111ea565b610c1b565b61022a610c36565b6101f16102d13660046111ea565b610cbf565b6102776102e43660046111ea565b610cd1565b6101f1610ced565b610234610d0c565b6101f1610d1b565b61022a61030f36600461125f565b610d21565b6101f16103223660046111ea565b610eca565b610234610edc565b61034261033d3660046111ea565b610eeb565b6040516101fe91906115a9565b6101f1610f81565b6101f16103653660046111ea565b610fc9565b6101f1610fdb565b6101f1610fe1565b61022a610fe7565b61022a6103903660046111ea565b610ffd565b6101f16110bd565b6001600160a01b0381166000908152600c6020908152604080832054600d90925282205461040591906103ff90670de0b6b3a7640000906103f9906103ea906103e4610f81565b906110c3565b6103f388610c1b565b906110f0565b90611131565b90611163565b90505b919050565b600a5481565b600f5481565b610421611188565b6001600160a01b0316610432610d0c565b6001600160a01b0316146104615760405162461bcd60e51b815260040161045890611468565b60405180910390fd5b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb9061048f90859085906004016112af565b602060405180830381600087803b1580156104a957600080fd5b505af11580156104bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e1919061123f565b6104fd5760405162461bcd60e51b815260040161045890611546565b505050565b6008546001600160a01b031681565b3361051a610f81565b600a55610525610ced565b600b556001600160a01b0381161561056c576105408161039d565b6001600160a01b0382166000908152600c6020908152604080832093909355600a54600d909152919020555b6000821161058c5760405162461bcd60e51b8152600401610458906114f0565b8161059633610c1b565b10156105b45760405162461bcd60e51b8152600401610458906113da565b336000908152601060205260409020546105ce90836110c3565b33600090815260106020526040902055600f546105eb90836110c3565b600f5560085460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061062090339086906004016112af565b602060405180830381600087803b15801561063a57600080fd5b505af115801561064e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610672919061123f565b61068e5760405162461bcd60e51b8152600401610458906112c8565b604051829033907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d590600090a35050565b336106c8610f81565b600a556106d3610ced565b600b556001600160a01b0381161561071a576106ee8161039d565b6001600160a01b0382166000908152600c6020908152604080832093909355600a54600d909152919020555b600354421061073b5760405162461bcd60e51b81526004016104589061157d565b33600090815260116020526040812060028101549091905b82548110156107d857428360010154111561076d576107d8565b61079983600001828154811061077f57fe5b90600052602060002001548361116390919063ffffffff16565b91506107b4600554846001015461116390919063ffffffff16565b60018085019190915560028401546107cb91611163565b6002840155600101610753565b50336000908152600c6020526040902054801561096057336000908152600c6020526040812081905560075461080f908390611131565b905061081b8382611163565b60028501548554919450141561083f57600554610839904290611163565b60018501555b6000805b6002600754038110156108d557600286015461085f9082611163565b86549092508210156108b7576108978387600001848154811061087e57fe5b906000526020600020015461116390919063ffffffff16565b8660000183815481106108a657fe5b6000918252602090912001556108cd565b8554600181018755600087815260209020018390555b600101610843565b506108e1816001611163565b90506000610907610900600160075403856110f090919063ffffffff16565b85906110c3565b8654909150821015610946576109268187600001848154811061087e57fe5b86600001838154811061093557fe5b60009182526020909120015561095c565b8554600181018755600087815260209020018190555b5050505b8115610a6057336000908152600e60205260409020546109809083611163565b336000818152600e60205260409081902092909255600954915163a9059cbb60e01b81526001600160a01b039092169163a9059cbb916109c49186906004016112af565b602060405180830381600087803b1580156109de57600080fd5b505af11580156109f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a16919061123f565b610a325760405162461bcd60e51b8152600401610458906114c5565b604051829033907f5b2e5d8cfce8958914d620ce6c93ad21c517de1cba305917142145f2e489444290600090a35b50505050565b60025481565b6000806000610a7a8461039d565b9050610a9b610a946007548361113190919063ffffffff16565b8490611163565b9250610ac6610abf610ab86007548461113190919063ffffffff16565b83906110c3565b8390611163565b9150610ad06111b2565b6001600160a01b03851660009081526011602090815260409182902082518154608093810282018401909452606081018481529093919284928491840182828015610b3a57602002820191906000526020600020905b815481526020019060010190808311610b26575b505050505081526020016001820154815260200160028201548152505090506000816020015190506000826040015190505b825151811015610bf45742821015610baf57610ba883600001518281518110610b9157fe5b60200260200101518761116390919063ffffffff16565b9550610bdc565b610bd983600001518281518110610bc257fe5b60200260200101518661116390919063ffffffff16565b94505b600554610bea908390611163565b9150600101610b6c565b50505050915091565b600d6020526000908152604090205481565b60045481565b600b5481565b6001600160a01b031660009081526010602052604090205490565b610c3e611188565b6001600160a01b0316610c4f610d0c565b6001600160a01b031614610c755760405162461bcd60e51b815260040161045890611468565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600c6020526000908152604090205481565b6011602052600090815260409020600181015460029091015482565b6000610d06600154610d014260025461118c565b6111a2565b90505b90565b6000546001600160a01b031690565b60065481565b33610d2a610f81565b600a55610d35610ced565b600b556001600160a01b03811615610d7c57610d508161039d565b6001600160a01b0382166000908152600c6020908152604080832093909355600a54600d909152919020555b6002544210610d9d5760405162461bcd60e51b815260040161045890611406565b60008211610dbd5760405162461bcd60e51b81526004016104589061149d565b33600090815260106020526040902054610dd79083611163565b33600090815260106020526040902055600f54610df49083611163565b600f556008546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90610e2b9033903090879060040161128b565b602060405180830381600087803b158015610e4557600080fd5b505af1158015610e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7d919061123f565b610e995760405162461bcd60e51b81526004016104589061151b565b604051829033907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d90600090a35050565b600e6020526000908152604090205481565b6009546001600160a01b031681565b610ef36111b2565b6001600160a01b03821660009081526011602090815260409182902082518154608093810282018401909452606081018481529093919284928491840182828015610f5d57602002820191906000526020600020905b815481526020019060010190808311610f49575b50505050508152602001600182015481526020016002820154815250509050919050565b6000600f5460001415610f975750600a54610d09565b610d06610fc0600f546103f9670de0b6b3a76400006103f36004546103f3600b546103e4610ced565b600a5490611163565b60106020526000908152604090205481565b60035481565b60055481565b610ff361024f33610c1b565b610ffb6106bf565b565b611005611188565b6001600160a01b0316611016610d0c565b6001600160a01b03161461103c5760405162461bcd60e51b815260040161045890611468565b6001600160a01b0381166110625760405162461bcd60e51b8152600401610458906112ef565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60015481565b6000828211156110e55760405162461bcd60e51b81526004016104589061136c565b508082035b92915050565b6000826110ff575060006110ea565b8282028284828161110c57fe5b041461112a5760405162461bcd60e51b815260040161045890611427565b9392505050565b60008082116111525760405162461bcd60e51b8152600401610458906113a3565b81838161115b57fe5b049392505050565b60008282018381101561112a5760405162461bcd60e51b815260040161045890611335565b3390565b600081831061119b578161112a565b5090919050565b60008183101561119b578161112a565b60405180606001604052806060815260200160008152602001600081525090565b80356001600160a01b038116811461040857600080fd5b6000602082840312156111fb578081fd5b61112a826111d3565b600080600060608486031215611218578182fd5b611221846111d3565b925061122f602085016111d3565b9150604084013590509250925092565b600060208284031215611250578081fd5b8151801515811461112a578182fd5b600060208284031215611270578081fd5b5035919050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6020808252600d908201526c1dda5d1a191c985dc819985a5b609a1b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601e908201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604082015260600190565b6020808252601a908201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604082015260600190565b602080825260129082015271496e73756666696369656e742066756e647360701b604082015260600190565b6020808252600790820152661d1a1948195b9960ca1b604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600e908201526d063616e6e6f74207374616b6520360941b604082015260600190565b6020808252601190820152701c995dd85c99081d1bdad95b8819985a5b607a1b604082015260600190565b602080825260119082015270063616e6e6f74207769746864726177203607c1b604082015260600190565b6020808252601190820152701d1c985b9cd9995c919c9bdb4819985a5b607a1b604082015260600190565b60208082526019908201527f7472616e73666572206f7468657220746f6b656e206661696c00000000000000604082015260600190565b60208082526012908201527119d95d081c995dd85c99081d1a5b595bdd5d60721b604082015260600190565b6020808252825160608383015280516080840181905260009291820190839060a08601905b808310156115ee57835182529284019260019290920191908401906115ce565b50838701516040870152604087015160608701528094505050505092915050565b90815260200190565b91825260208201526040019056fea26469706673582212201d5c1aa04bb25a92b7f31f1797348f35850691815bf6fb06f153143b16070e0064736f6c6343000703003300000000000000000000000000000000000000000000000000000000606bf8e00000000000000000000000000000000000000000000000000000000060c841e00000000000000000000000000000000000000000000000000fe6d158852295550000000000000000000000000fd10b9899882a6f2fcb5c371e17e70fdee00c380000000000000000000000008c15ef5b4b21951d50e53e4fbda8298ffad25057
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101d95760003560e01c80637dff841511610104578063c36c92c6116100a2578063e855882011610071578063e855882014610372578063e9fad8ee1461037a578063f2fde38b14610382578063fa1acb5c14610395576101d9565b8063c36c92c61461032f578063cd3daf9d1461034f578063d3aceae214610357578063d55292041461036a576101d9565b80639b80ca5a116100de5780639b80ca5a146102f9578063a694fc3a14610301578063a8ed940814610314578063b59c6e0e14610327576101d9565b80637dff8415146102d657806380faa57d146102e95780638da5cb5b146102f1576101d9565b806340d489581161017c5780636adafab51161014b5780636adafab5146102a057806370a08231146102a8578063715018a6146102bb5780637d6dfb7e146102c3576101d9565b806340d489581461025c5780635c8fd6b21461026457806365d82b8a1461028557806368fd25cd14610298576101d9565b8063240aef7a116101b8578063240aef7a146102175780632421a9f21461022c5780632e1a7d4d146102415780633d18b91214610254576101d9565b80628cc262146101de578063121544b914610207578063159457901461020f575b600080fd5b6101f16101ec3660046111ea565b61039d565b6040516101fe919061160f565b60405180910390f35b6101f161040d565b6101f1610413565b61022a610225366004611204565b610419565b005b610234610502565b6040516101fe9190611277565b61022a61024f36600461125f565b610511565b61022a6106bf565b6101f1610a66565b6102776102723660046111ea565b610a6c565b6040516101fe929190611618565b6101f16102933660046111ea565b610bfd565b6101f1610c0f565b6101f1610c15565b6101f16102b63660046111ea565b610c1b565b61022a610c36565b6101f16102d13660046111ea565b610cbf565b6102776102e43660046111ea565b610cd1565b6101f1610ced565b610234610d0c565b6101f1610d1b565b61022a61030f36600461125f565b610d21565b6101f16103223660046111ea565b610eca565b610234610edc565b61034261033d3660046111ea565b610eeb565b6040516101fe91906115a9565b6101f1610f81565b6101f16103653660046111ea565b610fc9565b6101f1610fdb565b6101f1610fe1565b61022a610fe7565b61022a6103903660046111ea565b610ffd565b6101f16110bd565b6001600160a01b0381166000908152600c6020908152604080832054600d90925282205461040591906103ff90670de0b6b3a7640000906103f9906103ea906103e4610f81565b906110c3565b6103f388610c1b565b906110f0565b90611131565b90611163565b90505b919050565b600a5481565b600f5481565b610421611188565b6001600160a01b0316610432610d0c565b6001600160a01b0316146104615760405162461bcd60e51b815260040161045890611468565b60405180910390fd5b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb9061048f90859085906004016112af565b602060405180830381600087803b1580156104a957600080fd5b505af11580156104bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e1919061123f565b6104fd5760405162461bcd60e51b815260040161045890611546565b505050565b6008546001600160a01b031681565b3361051a610f81565b600a55610525610ced565b600b556001600160a01b0381161561056c576105408161039d565b6001600160a01b0382166000908152600c6020908152604080832093909355600a54600d909152919020555b6000821161058c5760405162461bcd60e51b8152600401610458906114f0565b8161059633610c1b565b10156105b45760405162461bcd60e51b8152600401610458906113da565b336000908152601060205260409020546105ce90836110c3565b33600090815260106020526040902055600f546105eb90836110c3565b600f5560085460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061062090339086906004016112af565b602060405180830381600087803b15801561063a57600080fd5b505af115801561064e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610672919061123f565b61068e5760405162461bcd60e51b8152600401610458906112c8565b604051829033907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d590600090a35050565b336106c8610f81565b600a556106d3610ced565b600b556001600160a01b0381161561071a576106ee8161039d565b6001600160a01b0382166000908152600c6020908152604080832093909355600a54600d909152919020555b600354421061073b5760405162461bcd60e51b81526004016104589061157d565b33600090815260116020526040812060028101549091905b82548110156107d857428360010154111561076d576107d8565b61079983600001828154811061077f57fe5b90600052602060002001548361116390919063ffffffff16565b91506107b4600554846001015461116390919063ffffffff16565b60018085019190915560028401546107cb91611163565b6002840155600101610753565b50336000908152600c6020526040902054801561096057336000908152600c6020526040812081905560075461080f908390611131565b905061081b8382611163565b60028501548554919450141561083f57600554610839904290611163565b60018501555b6000805b6002600754038110156108d557600286015461085f9082611163565b86549092508210156108b7576108978387600001848154811061087e57fe5b906000526020600020015461116390919063ffffffff16565b8660000183815481106108a657fe5b6000918252602090912001556108cd565b8554600181018755600087815260209020018390555b600101610843565b506108e1816001611163565b90506000610907610900600160075403856110f090919063ffffffff16565b85906110c3565b8654909150821015610946576109268187600001848154811061087e57fe5b86600001838154811061093557fe5b60009182526020909120015561095c565b8554600181018755600087815260209020018190555b5050505b8115610a6057336000908152600e60205260409020546109809083611163565b336000818152600e60205260409081902092909255600954915163a9059cbb60e01b81526001600160a01b039092169163a9059cbb916109c49186906004016112af565b602060405180830381600087803b1580156109de57600080fd5b505af11580156109f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a16919061123f565b610a325760405162461bcd60e51b8152600401610458906114c5565b604051829033907f5b2e5d8cfce8958914d620ce6c93ad21c517de1cba305917142145f2e489444290600090a35b50505050565b60025481565b6000806000610a7a8461039d565b9050610a9b610a946007548361113190919063ffffffff16565b8490611163565b9250610ac6610abf610ab86007548461113190919063ffffffff16565b83906110c3565b8390611163565b9150610ad06111b2565b6001600160a01b03851660009081526011602090815260409182902082518154608093810282018401909452606081018481529093919284928491840182828015610b3a57602002820191906000526020600020905b815481526020019060010190808311610b26575b505050505081526020016001820154815260200160028201548152505090506000816020015190506000826040015190505b825151811015610bf45742821015610baf57610ba883600001518281518110610b9157fe5b60200260200101518761116390919063ffffffff16565b9550610bdc565b610bd983600001518281518110610bc257fe5b60200260200101518661116390919063ffffffff16565b94505b600554610bea908390611163565b9150600101610b6c565b50505050915091565b600d6020526000908152604090205481565b60045481565b600b5481565b6001600160a01b031660009081526010602052604090205490565b610c3e611188565b6001600160a01b0316610c4f610d0c565b6001600160a01b031614610c755760405162461bcd60e51b815260040161045890611468565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600c6020526000908152604090205481565b6011602052600090815260409020600181015460029091015482565b6000610d06600154610d014260025461118c565b6111a2565b90505b90565b6000546001600160a01b031690565b60065481565b33610d2a610f81565b600a55610d35610ced565b600b556001600160a01b03811615610d7c57610d508161039d565b6001600160a01b0382166000908152600c6020908152604080832093909355600a54600d909152919020555b6002544210610d9d5760405162461bcd60e51b815260040161045890611406565b60008211610dbd5760405162461bcd60e51b81526004016104589061149d565b33600090815260106020526040902054610dd79083611163565b33600090815260106020526040902055600f54610df49083611163565b600f556008546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90610e2b9033903090879060040161128b565b602060405180830381600087803b158015610e4557600080fd5b505af1158015610e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7d919061123f565b610e995760405162461bcd60e51b81526004016104589061151b565b604051829033907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d90600090a35050565b600e6020526000908152604090205481565b6009546001600160a01b031681565b610ef36111b2565b6001600160a01b03821660009081526011602090815260409182902082518154608093810282018401909452606081018481529093919284928491840182828015610f5d57602002820191906000526020600020905b815481526020019060010190808311610f49575b50505050508152602001600182015481526020016002820154815250509050919050565b6000600f5460001415610f975750600a54610d09565b610d06610fc0600f546103f9670de0b6b3a76400006103f36004546103f3600b546103e4610ced565b600a5490611163565b60106020526000908152604090205481565b60035481565b60055481565b610ff361024f33610c1b565b610ffb6106bf565b565b611005611188565b6001600160a01b0316611016610d0c565b6001600160a01b03161461103c5760405162461bcd60e51b815260040161045890611468565b6001600160a01b0381166110625760405162461bcd60e51b8152600401610458906112ef565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60015481565b6000828211156110e55760405162461bcd60e51b81526004016104589061136c565b508082035b92915050565b6000826110ff575060006110ea565b8282028284828161110c57fe5b041461112a5760405162461bcd60e51b815260040161045890611427565b9392505050565b60008082116111525760405162461bcd60e51b8152600401610458906113a3565b81838161115b57fe5b049392505050565b60008282018381101561112a5760405162461bcd60e51b815260040161045890611335565b3390565b600081831061119b578161112a565b5090919050565b60008183101561119b578161112a565b60405180606001604052806060815260200160008152602001600081525090565b80356001600160a01b038116811461040857600080fd5b6000602082840312156111fb578081fd5b61112a826111d3565b600080600060608486031215611218578182fd5b611221846111d3565b925061122f602085016111d3565b9150604084013590509250925092565b600060208284031215611250578081fd5b8151801515811461112a578182fd5b600060208284031215611270578081fd5b5035919050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6020808252600d908201526c1dda5d1a191c985dc819985a5b609a1b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601e908201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604082015260600190565b6020808252601a908201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604082015260600190565b602080825260129082015271496e73756666696369656e742066756e647360701b604082015260600190565b6020808252600790820152661d1a1948195b9960ca1b604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600e908201526d063616e6e6f74207374616b6520360941b604082015260600190565b6020808252601190820152701c995dd85c99081d1bdad95b8819985a5b607a1b604082015260600190565b602080825260119082015270063616e6e6f74207769746864726177203607c1b604082015260600190565b6020808252601190820152701d1c985b9cd9995c919c9bdb4819985a5b607a1b604082015260600190565b60208082526019908201527f7472616e73666572206f7468657220746f6b656e206661696c00000000000000604082015260600190565b60208082526012908201527119d95d081c995dd85c99081d1a5b595bdd5d60721b604082015260600190565b6020808252825160608383015280516080840181905260009291820190839060a08601905b808310156115ee57835182529284019260019290920191908401906115ce565b50838701516040870152604087015160608701528094505050505092915050565b90815260200190565b91825260208201526040019056fea26469706673582212201d5c1aa04bb25a92b7f31f1797348f35850691815bf6fb06f153143b16070e0064736f6c63430007030033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000606bf8e00000000000000000000000000000000000000000000000000000000060c841e00000000000000000000000000000000000000000000000000fe6d158852295550000000000000000000000000fd10b9899882a6f2fcb5c371e17e70fdee00c380000000000000000000000008c15ef5b4b21951d50e53e4fbda8298ffad25057
-----Decoded View---------------
Arg [0] : startTime_ (uint256): 1617688800
Arg [1] : endTime_ (uint256): 1623736800
Arg [2] : rewardRate_ (uint256): 1145833333333333333
Arg [3] : stakingToken_ (address): 0x0FD10b9899882a6f2fcb5c371E17e70FdEe00C38
Arg [4] : rewardToken_ (address): 0x8c15Ef5b4B21951d50E53E4fbdA8298FFAD25057
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000606bf8e0
Arg [1] : 0000000000000000000000000000000000000000000000000000000060c841e0
Arg [2] : 0000000000000000000000000000000000000000000000000fe6d15885229555
Arg [3] : 0000000000000000000000000fd10b9899882a6f2fcb5c371e17e70fdee00c38
Arg [4] : 0000000000000000000000008c15ef5b4b21951d50e53e4fbda8298ffad25057
Deployed Bytecode Sourcemap
14096:7126:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16982:267;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14511:36;;;:::i;14768:22::-;;;:::i;21012:207::-;;;;;;:::i;:::-;;:::i;:::-;;14442:27;;;:::i;:::-;;;;;;;:::i;17734:434::-;;;;;;:::i;:::-;;:::i;18279:2146::-;;;:::i;14198:23::-;;;:::i;16271:703::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;14643:58::-;;;;;;:::i;:::-;;:::i;14267:26::-;;;:::i;14554:30::-;;;:::i;15669:109::-;;;;;;:::i;:::-;;:::i;13501:148::-;;;:::i;14593:43::-;;;;;;:::i;:::-;;:::i;14849:49::-;;;;;;:::i;:::-;;:::i;20433:149::-;;;:::i;12850:87::-;;;:::i;14354:44::-;;;:::i;17257:469::-;;;;;;:::i;:::-;;:::i;14708:51::-;;;;;;:::i;:::-;;:::i;14476:26::-;;;:::i;16129:134::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;20590:412::-;;;:::i;14797:43::-;;;;;;:::i;:::-;;:::i;14228:32::-;;;:::i;14306:41::-;;;:::i;18176:95::-;;;:::i;13804:244::-;;;;;;:::i;:::-;;:::i;14166:25::-;;;:::i;16982:267::-;-1:-1:-1;;;;;17223:17:0;;17036:7;17223:17;;;:8;:17;;;;;;;;;17138:23;:32;;;;;;17076:165;;17223:17;17076:124;;17195:4;;17076:96;;17117:54;;:16;:14;:16::i;:::-;:20;;:54::i;:::-;17076:18;17086:7;17076:9;:18::i;:::-;:40;;:96::i;:::-;:118;;:124::i;:::-;:146;;:165::i;:::-;17056:185;;16982:267;;;;:::o;14511:36::-;;;;:::o;14768:22::-;;;;:::o;21012:207::-;13081:12;:10;:12::i;:::-;-1:-1:-1;;;;;13070:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;13070:23:0;;13062:68;;;;-1:-1:-1;;;13062:68:0;;;;;;;:::i;:::-;;;;;;;;;21132:49:::1;::::0;-1:-1:-1;;;21132:49:0;;-1:-1:-1;;;;;21132:37:0;::::1;::::0;::::1;::::0;:49:::1;::::0;21170:2;;21174:6;;21132:49:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21124:87;;;;-1:-1:-1::0;;;21124:87:0::1;;;;;;;:::i;:::-;21012:207:::0;;;:::o;14442:27::-;;;-1:-1:-1;;;;;14442:27:0;;:::o;17734:434::-;17788:10;15860:16;:14;:16::i;:::-;15836:21;:40;15905:26;:24;:26::i;:::-;15887:15;:44;-1:-1:-1;;;;;15946:21:0;;;15942:160;;16004:15;16011:7;16004:6;:15::i;:::-;-1:-1:-1;;;;;15984:17:0;;;;;;:8;:17;;;;;;;;:35;;;;16069:21;;16034:23;:32;;;;;;:56;15942:160;17828:1:::1;17819:6;:10;17811:40;;;;-1:-1:-1::0;;;17811:40:0::1;;;;;;;:::i;:::-;17895:6;17870:21;17880:10;17870:9;:21::i;:::-;:31;;17862:62;;;;-1:-1:-1::0;;;17862:62:0::1;;;;;;;:::i;:::-;17969:10;17960:20;::::0;;;:8:::1;:20;::::0;;;;;:32:::1;::::0;17985:6;17960:24:::1;:32::i;:::-;17946:10;17937:20;::::0;;;:8:::1;:20;::::0;;;;:55;18013:7:::1;::::0;:19:::1;::::0;18025:6;18013:11:::1;:19::i;:::-;18003:7;:29:::0;18053:13:::1;::::0;:42:::1;::::0;-1:-1:-1;;;18053:42:0;;-1:-1:-1;;;;;18053:13:0;;::::1;::::0;:22:::1;::::0;:42:::1;::::0;18076:10:::1;::::0;18088:6;;18053:42:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18045:68;;;;-1:-1:-1::0;;;18045:68:0::1;;;;;;;:::i;:::-;18131:29;::::0;18153:6;;18141:10:::1;::::0;18131:29:::1;::::0;;;::::1;17734:434:::0;;:::o;18279:2146::-;18320:10;15860:16;:14;:16::i;:::-;15836:21;:40;15905:26;:24;:26::i;:::-;15887:15;:44;-1:-1:-1;;;;;15946:21:0;;;15942:160;;16004:15;16011:7;16004:6;:15::i;:::-;-1:-1:-1;;;;;15984:17:0;;;;;;:8;:17;;;;;;;;:35;;;;16069:21;;16034:23;:32;;;;;;:56;15942:160;18369:17:::1;;18351:15;:35;18343:66;;;;-1:-1:-1::0;;;18343:66:0::1;;;;;;;:::i;:::-;18464:10;18420:29;18452:23:::0;;;:11:::1;:23;::::0;;;;18551:14:::1;::::0;::::1;::::0;18452:23;;18420:29;18534:387:::1;18571:24:::0;;18567:28;::::1;18534:387;;;18646:15;18621:10;:22;;;:40;18617:86;;;18682:5;;18617:86;18733:39;18751:10;:17;;18769:1;18751:20;;;;;;;;;;;;;;;;18733:13;:17;;:39;;;;:::i;:::-;18717:55;;18812:44;18839:16;;18812:10;:22;;;:26;;:44;;;;:::i;:::-;18787:22;::::0;;::::1;:69:::0;;;;18888:14:::1;::::0;::::1;::::0;:21:::1;::::0;:18:::1;:21::i;:::-;18871:14;::::0;::::1;:38:::0;18597:3:::1;;18534:387;;;-1:-1:-1::0;18959:10:0::1;18933:14;18950:20:::0;;;:8:::1;:20;::::0;;;;;18985:10;;18981:1095:::1;;19021:10;19035:1;19012:20:::0;;;:8:::1;:20;::::0;;;;:24;;;19091:9:::1;::::0;19080:21:::1;::::0;:6;;:10:::1;:21::i;:::-;19065:36:::0;-1:-1:-1;19146:23:0::1;:13:::0;19065:36;19146:17:::1;:23::i;:::-;19218:14;::::0;::::1;::::0;19190:24;;19130:39;;-1:-1:-1;19190:42:0::1;19186:145;;;19298:16;::::0;19278:37:::1;::::0;:15:::1;::::0;:19:::1;:37::i;:::-;19253:22;::::0;::::1;:62:::0;19186:145:::1;19361:11;::::0;19387:337:::1;19423:1;19411:9;;:13;19407:1;:17;19387:337;;;19456:14;::::0;::::1;::::0;:21:::1;::::0;19475:1;19456:18:::1;:21::i;:::-;19506:24:::0;;19450:27;;-1:-1:-1;19500:30:0;::::1;19496:213;;;19580:32;19607:4;19580:10;:17;;19598:3;19580:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;19555:10;:17;;19573:3;19555:22;;;;;;;;;::::0;;;::::1;::::0;;;::::1;:57:::0;19496:213:::1;;;19661:28:::0;;::::1;::::0;::::1;::::0;;:17:::1;:28:::0;;;::::1;::::0;;::::1;::::0;;;19496:213:::1;19426:3;;19387:337;;;-1:-1:-1::0;19746:10:0::1;:3:::0;19754:1:::1;19746:7;:10::i;:::-;19740:16;;19785:18;19806:35;19817:23;19838:1;19826:9;;:13;19817:4;:8;;:23;;;;:::i;:::-;19806:6:::0;;:10:::1;:35::i;:::-;19866:24:::0;;19785:56;;-1:-1:-1;19860:30:0;::::1;19856:209;;;19936:38;19963:10;19936;:17;;19954:3;19936:22;;;;;;;:38;19911:10;:17;;19929:3;19911:22;;;;;;;;;::::0;;;::::1;::::0;;;::::1;:63:::0;19856:209:::1;;;20015:34:::0;;::::1;::::0;::::1;::::0;;:17:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;19856:209:::1;18981:1095;;;;20092:17:::0;;20088:330:::1;;20174:10;20157:28;::::0;;;:16:::1;:28;::::0;;;;;:47:::1;::::0;20190:13;20157:32:::1;:47::i;:::-;20143:10;20126:28;::::0;;;:16:::1;:28;::::0;;;;;;:78;;;;20247:12:::1;::::0;:48;;-1:-1:-1;;;20247:48:0;;-1:-1:-1;;;;;20247:12:0;;::::1;::::0;:21:::1;::::0;:48:::1;::::0;20281:13;;20247:48:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20221:127;;;;-1:-1:-1::0;;;20221:127:0::1;;;;;;;:::i;:::-;20370:36;::::0;20392:13;;20380:10:::1;::::0;20370:36:::1;::::0;;;::::1;20088:330;16112:1;;;18279:2146:::0;:::o;14198:23::-;;;;:::o;16271:703::-;16329:16;16347:14;16374:12;16389:15;16396:7;16389:6;:15::i;:::-;16374:30;;16426:33;16439:19;16448:9;;16439:4;:8;;:19;;;;:::i;:::-;16426:8;;:12;:33::i;:::-;16415:44;;16479:41;16490:29;16499:19;16508:9;;16499:4;:8;;:19;;;;:::i;:::-;16490:4;;:8;:29::i;:::-;16479:6;;:10;:41::i;:::-;16470:50;;16533:24;;:::i;:::-;-1:-1:-1;;;;;16560:20:0;;;;;;:11;:20;;;;;;;;;16533:47;;;;;;;;;;;;;;;;;;;;;;;16560:20;;16533:47;;16560:20;;16533:47;;16560:20;16533:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16591:16;16610:6;:18;;;16591:37;;16644:9;16656:6;:10;;;16644:22;;16639:328;16672:13;;:20;16668:24;;16639:328;;;16729:15;16718:8;:26;16714:186;;;16776:30;16789:6;:13;;;16803:1;16789:16;;;;;;;;;;;;;;16776:8;:12;;:30;;;;:::i;:::-;16765:41;;16714:186;;;16856:28;16867:6;:13;;;16881:1;16867:16;;;;;;;;;;;;;;16856:6;:10;;:28;;;;:::i;:::-;16847:37;;16714:186;16938:16;;16925:30;;:8;;:12;:30::i;:::-;16914:41;-1:-1:-1;16694:3:0;;16639:328;;;;16271:703;;;;;;:::o;14643:58::-;;;;;;;;;;;;;:::o;14267:26::-;;;;:::o;14554:30::-;;;;:::o;15669:109::-;-1:-1:-1;;;;;15753:17:0;15726:7;15753:17;;;:8;:17;;;;;;;15669:109::o;13501:148::-;13081:12;:10;:12::i;:::-;-1:-1:-1;;;;;13070:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;13070:23:0;;13062:68;;;;-1:-1:-1;;;13062:68:0;;;;;;;:::i;:::-;13608:1:::1;13592:6:::0;;13571:40:::1;::::0;-1:-1:-1;;;;;13592:6:0;;::::1;::::0;13571:40:::1;::::0;13608:1;;13571:40:::1;13639:1;13622:19:::0;;-1:-1:-1;;;;;;13622:19:0::1;::::0;;13501:148::o;14593:43::-;;;;;;;;;;;;;:::o;14849:49::-;;;;;;;;;;;;;;;;;;;;;:::o;20433:149::-;20490:7;20517:57;20526:10;;20538:35;20547:15;20564:8;;20538;:35::i;:::-;20517:8;:57::i;:::-;20510:64;;20433:149;;:::o;12850:87::-;12896:7;12923:6;-1:-1:-1;;;;;12923:6:0;12850:87;:::o;14354:44::-;;;;:::o;17257:469::-;17308:10;15860:16;:14;:16::i;:::-;15836:21;:40;15905:26;:24;:26::i;:::-;15887:15;:44;-1:-1:-1;;;;;15946:21:0;;;15942:160;;16004:15;16011:7;16004:6;:15::i;:::-;-1:-1:-1;;;;;15984:17:0;;;;;;:8;:17;;;;;;;;:35;;;;16069:21;;16034:23;:32;;;;;;:56;15942:160;17357:8:::1;;17339:15;:26;17331:46;;;;-1:-1:-1::0;;;17331:46:0::1;;;;;;;:::i;:::-;17405:1;17396:6;:10;17388:37;;;;-1:-1:-1::0;;;17388:37:0::1;;;;;;;:::i;:::-;17470:10;17461:20;::::0;;;:8:::1;:20;::::0;;;;;:32:::1;::::0;17486:6;17461:24:::1;:32::i;:::-;17447:10;17438:20;::::0;;;:8:::1;:20;::::0;;;;:55;17514:7:::1;::::0;:19:::1;::::0;17526:6;17514:11:::1;:19::i;:::-;17504:7;:29:::0;17568:13:::1;::::0;:61:::1;::::0;-1:-1:-1;;;17568:61:0;;-1:-1:-1;;;;;17568:13:0;;::::1;::::0;:26:::1;::::0;:61:::1;::::0;17595:10:::1;::::0;17615:4:::1;::::0;17622:6;;17568:61:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17546:128;;;;-1:-1:-1::0;;;17546:128:0::1;;;;;;;:::i;:::-;17692:26;::::0;17711:6;;17699:10:::1;::::0;17692:26:::1;::::0;;;::::1;17257:469:::0;;:::o;14708:51::-;;;;;;;;;;;;;:::o;14476:26::-;;;-1:-1:-1;;;;;14476:26:0;;:::o;16129:134::-;16198:17;;:::i;:::-;-1:-1:-1;;;;;16235:20:0;;;;;;:11;:20;;;;;;;;;16228:27;;;;;;;;;;;;;;;;;;;;;;;16235:20;;16228:27;;16235:20;;16228:27;;16235:20;16228:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16129:134;;;:::o;20590:412::-;20637:7;20661;;20672:1;20661:12;20657:73;;;-1:-1:-1;20697:21:0;;20690:28;;20657:73;20760:234;20804:175;20971:7;;20804:140;20939:4;20804:108;20900:11;;20804:69;20857:15;;20804:26;:24;:26::i;:175::-;20760:21;;;:25;:234::i;14797:43::-;;;;;;;;;;;;;:::o;14228:32::-;;;;:::o;14306:41::-;;;;:::o;18176:95::-;18210:31;18219:21;18229:10;18219:9;:21::i;18210:31::-;18252:11;:9;:11::i;:::-;18176:95::o;13804:244::-;13081:12;:10;:12::i;:::-;-1:-1:-1;;;;;13070:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;13070:23:0;;13062:68;;;;-1:-1:-1;;;13062:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13893:22:0;::::1;13885:73;;;;-1:-1:-1::0;;;13885:73:0::1;;;;;;;:::i;:::-;13995:6;::::0;;13974:38:::1;::::0;-1:-1:-1;;;;;13974:38:0;;::::1;::::0;13995:6;::::1;::::0;13974:38:::1;::::0;::::1;14023:6;:17:::0;;-1:-1:-1;;;;;;14023:17:0::1;-1:-1:-1::0;;;;;14023:17:0;;;::::1;::::0;;;::::1;::::0;;13804:244::o;14166:25::-;;;;:::o;3228:158::-;3286:7;3319:1;3314;:6;;3306:49;;;;-1:-1:-1;;;3306:49:0;;;;;;;:::i;:::-;-1:-1:-1;3373:5:0;;;3228:158;;;;;:::o;3645:220::-;3703:7;3727:6;3723:20;;-1:-1:-1;3742:1:0;3735:8;;3723:20;3766:5;;;3770:1;3766;:5;:1;3790:5;;;;;:10;3782:56;;;;-1:-1:-1;;;3782:56:0;;;;;;;:::i;:::-;3856:1;3645:220;-1:-1:-1;;;3645:220:0:o;4343:153::-;4401:7;4433:1;4429;:5;4421:44;;;;-1:-1:-1;;;4421:44:0;;;;;;;:::i;:::-;4487:1;4483;:5;;;;;;;4343:153;-1:-1:-1;;;4343:153:0:o;2766:179::-;2824:7;2856:5;;;2880:6;;;;2872:46;;;;-1:-1:-1;;;2872:46:0;;;;;;;:::i;11473:106::-;11561:10;11473:106;:::o;7784:::-;7842:7;7873:1;7869;:5;:13;;7881:1;7869:13;;;-1:-1:-1;7877:1:0;;7862:20;-1:-1:-1;7784:106:0:o;7601:107::-;7659:7;7691:1;7686;:6;;:14;;7699:1;7686:14;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;397:342::-;;;;543:2;531:9;522:7;518:23;514:32;511:2;;;564:6;556;549:22;511:2;592:31;613:9;592:31;:::i;:::-;582:41;;642:40;678:2;667:9;663:18;642:40;:::i;:::-;632:50;;729:2;718:9;714:18;701:32;691:42;;501:238;;;;;:::o;744:297::-;;864:2;852:9;843:7;839:23;835:32;832:2;;;885:6;877;870:22;832:2;922:9;916:16;975:5;968:13;961:21;954:5;951:32;941:2;;1002:6;994;987:22;1046:190;;1158:2;1146:9;1137:7;1133:23;1129:32;1126:2;;;1179:6;1171;1164:22;1126:2;-1:-1:-1;1207:23:1;;1116:120;-1:-1:-1;1116:120:1:o;1241:203::-;-1:-1:-1;;;;;1405:32:1;;;;1387:51;;1375:2;1360:18;;1342:102::o;1449:383::-;-1:-1:-1;;;;;1715:15:1;;;1697:34;;1767:15;;;;1762:2;1747:18;;1740:43;1814:2;1799:18;;1792:34;;;;1647:2;1632:18;;1614:218::o;1837:282::-;-1:-1:-1;;;;;2037:32:1;;;;2019:51;;2101:2;2086:18;;2079:34;2007:2;1992:18;;1974:145::o;2625:337::-;2827:2;2809:21;;;2866:2;2846:18;;;2839:30;-1:-1:-1;;;2900:2:1;2885:18;;2878:43;2953:2;2938:18;;2799:163::o;2967:402::-;3169:2;3151:21;;;3208:2;3188:18;;;3181:30;3247:34;3242:2;3227:18;;3220:62;-1:-1:-1;;;3313:2:1;3298:18;;3291:36;3359:3;3344:19;;3141:228::o;3374:351::-;3576:2;3558:21;;;3615:2;3595:18;;;3588:30;3654:29;3649:2;3634:18;;3627:57;3716:2;3701:18;;3548:177::o;3730:354::-;3932:2;3914:21;;;3971:2;3951:18;;;3944:30;4010:32;4005:2;3990:18;;3983:60;4075:2;4060:18;;3904:180::o;4089:350::-;4291:2;4273:21;;;4330:2;4310:18;;;4303:30;4369:28;4364:2;4349:18;;4342:56;4430:2;4415:18;;4263:176::o;4444:342::-;4646:2;4628:21;;;4685:2;4665:18;;;4658:30;-1:-1:-1;;;4719:2:1;4704:18;;4697:48;4777:2;4762:18;;4618:168::o;4791:330::-;4993:2;4975:21;;;5032:1;5012:18;;;5005:29;-1:-1:-1;;;5065:2:1;5050:18;;5043:37;5112:2;5097:18;;4965:156::o;5126:397::-;5328:2;5310:21;;;5367:2;5347:18;;;5340:30;5406:34;5401:2;5386:18;;5379:62;-1:-1:-1;;;5472:2:1;5457:18;;5450:31;5513:3;5498:19;;5300:223::o;5528:356::-;5730:2;5712:21;;;5749:18;;;5742:30;5808:34;5803:2;5788:18;;5781:62;5875:2;5860:18;;5702:182::o;5889:338::-;6091:2;6073:21;;;6130:2;6110:18;;;6103:30;-1:-1:-1;;;6164:2:1;6149:18;;6142:44;6218:2;6203:18;;6063:164::o;6232:341::-;6434:2;6416:21;;;6473:2;6453:18;;;6446:30;-1:-1:-1;;;6507:2:1;6492:18;;6485:47;6564:2;6549:18;;6406:167::o;6578:341::-;6780:2;6762:21;;;6819:2;6799:18;;;6792:30;-1:-1:-1;;;6853:2:1;6838:18;;6831:47;6910:2;6895:18;;6752:167::o;6924:341::-;7126:2;7108:21;;;7165:2;7145:18;;;7138:30;-1:-1:-1;;;7199:2:1;7184:18;;7177:47;7256:2;7241:18;;7098:167::o;7270:349::-;7472:2;7454:21;;;7511:2;7491:18;;;7484:30;7550:27;7545:2;7530:18;;7523:55;7610:2;7595:18;;7444:175::o;7624:342::-;7826:2;7808:21;;;7865:2;7845:18;;;7838:30;-1:-1:-1;;;7899:2:1;7884:18;;7877:48;7957:2;7942:18;;7798:168::o;7971:856::-;8146:2;8157:21;;;8249:13;;8298:4;8278:18;;;8271:32;8352:19;;8216:3;8201:19;;8380:22;;;7971:856;;8146:2;8460:21;;;7971:856;;8433:3;8418:19;;;8512:169;8526:6;8523:1;8520:13;8512:169;;;8587:13;;8575:26;;8656:15;;;;8548:1;8541:9;;;;;8621:12;;;;8512:169;;;8516:3;8735:2;8727:6;8723:15;8717:22;8712:2;8701:9;8697:18;8690:50;8796:2;8788:6;8784:15;8778:22;8771:4;8760:9;8756:20;8749:52;8818:3;8810:11;;;;;;8126:701;;;;:::o;8832:177::-;8978:25;;;8966:2;8951:18;;8933:76::o;9014:248::-;9188:25;;;9244:2;9229:18;;9222:34;9176:2;9161:18;;9143:119::o
Swarm Source
ipfs://1d5c1aa04bb25a92b7f31f1797348f35850691815bf6fb06f153143b16070e00
Loading...
Loading
Loading...
Loading
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.