Source Code
Latest 25 from a total of 229 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Exit | 15489123 | 1158 days ago | IN | 0 ETH | 0.0022033 | ||||
| Get Reward | 12964487 | 1556 days ago | IN | 0 ETH | 0.00247237 | ||||
| Exit | 12431090 | 1639 days ago | IN | 0 ETH | 0.01082062 | ||||
| Exit | 12348228 | 1652 days ago | IN | 0 ETH | 0.00305826 | ||||
| Exit | 12346563 | 1653 days ago | IN | 0 ETH | 0.00325922 | ||||
| Exit | 12306463 | 1659 days ago | IN | 0 ETH | 0.00554068 | ||||
| Exit | 12009119 | 1705 days ago | IN | 0 ETH | 0.01149371 | ||||
| Exit | 11925316 | 1717 days ago | IN | 0 ETH | 0.02000204 | ||||
| Get Reward | 11902394 | 1721 days ago | IN | 0 ETH | 0.00838942 | ||||
| Get Reward | 11844341 | 1730 days ago | IN | 0 ETH | 0.0098063 | ||||
| Get Reward | 11839071 | 1731 days ago | IN | 0 ETH | 0.00635562 | ||||
| Exit | 11839058 | 1731 days ago | IN | 0 ETH | 0.00617212 | ||||
| Exit | 11839038 | 1731 days ago | IN | 0 ETH | 0.01865862 | ||||
| Exit | 11825714 | 1733 days ago | IN | 0 ETH | 0.0107214 | ||||
| Get Reward | 11825575 | 1733 days ago | IN | 0 ETH | 0.01310651 | ||||
| Get Reward | 11823832 | 1733 days ago | IN | 0 ETH | 0.01240618 | ||||
| Get Reward | 11823827 | 1733 days ago | IN | 0 ETH | 0.01225364 | ||||
| Exit | 11820823 | 1733 days ago | IN | 0 ETH | 0.02418157 | ||||
| Exit | 11814436 | 1734 days ago | IN | 0 ETH | 0.01343421 | ||||
| Exit | 11811323 | 1735 days ago | IN | 0 ETH | 0.01821081 | ||||
| Stake | 11807776 | 1735 days ago | IN | 0 ETH | 0.00876666 | ||||
| Exit | 11784019 | 1739 days ago | IN | 0 ETH | 0.02797073 | ||||
| Exit | 11767313 | 1742 days ago | IN | 0 ETH | 0.00884515 | ||||
| Get Reward | 11767313 | 1742 days ago | IN | 0 ETH | 0.0067777 | ||||
| Exit | 11763394 | 1742 days ago | IN | 0 ETH | 0.00970248 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
To
|
|||
|---|---|---|---|---|---|---|---|
| - | 11667219 | 1757 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
StakingRewards
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2021-01-19
*/
// File: openzeppelin-solidity-2.3.0/contracts/math/Math.sol
pragma solidity ^0.5.0;
/**
* @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);
}
}
// File: openzeppelin-solidity-2.3.0/contracts/math/SafeMath.sol
pragma solidity ^0.5.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, 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;
}
}
// File: openzeppelin-solidity-2.3.0/contracts/token/ERC20/IERC20.sol
pragma solidity ^0.5.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP. Does not include
* the optional functions; to access them see `ERC20Detailed`.
*/
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);
}
// File: openzeppelin-solidity-2.3.0/contracts/token/ERC20/ERC20Detailed.sol
pragma solidity ^0.5.0;
/**
* @dev Optional functions from the ERC20 standard.
*/
contract ERC20Detailed is IERC20 {
string private _name;
string private _symbol;
uint8 private _decimals;
/**
* @dev Sets the values for `name`, `symbol`, and `decimals`. All three of
* these values are immutable: they can only be set once during
* construction.
*/
constructor (string memory name, string memory symbol, uint8 decimals) public {
_name = name;
_symbol = symbol;
_decimals = decimals;
}
/**
* @dev Returns the name of the token.
*/
function name() public view returns (string memory) {
return _name;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view returns (string memory) {
return _symbol;
}
/**
* @dev Returns the number of decimals used to get its user representation.
* For example, if `decimals` equals `2`, a balance of `505` tokens should
* be displayed to a user as `5,05` (`505 / 10 ** 2`).
*
* Tokens usually opt for a value of 18, imitating the relationship between
* Ether and Wei.
*
* > Note that this information is only used for _display_ purposes: it in
* no way affects any of the arithmetic of the contract, including
* `IERC20.balanceOf` and `IERC20.transfer`.
*/
function decimals() public view returns (uint8) {
return _decimals;
}
}
// File: openzeppelin-solidity-2.3.0/contracts/utils/Address.sol
pragma solidity ^0.5.0;
/**
* @dev Collection of functions related to the address type,
*/
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;
}
}
// File: openzeppelin-solidity-2.3.0/contracts/token/ERC20/SafeERC20.sol
pragma solidity ^0.5.0;
/**
* @title SafeERC20
* @dev Wrappers around ERC20 operations that throw on failure (when the token
* contract returns false). Tokens that return no value (and instead revert or
* throw on failure) are also supported, non-reverting calls are assumed to be
* successful.
* To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,
* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
*/
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");
}
}
}
// File: openzeppelin-solidity-2.3.0/contracts/utils/ReentrancyGuard.sol
pragma solidity ^0.5.0;
/**
* @dev Contract module that helps prevent reentrant calls to a function.
*
* Inheriting from `ReentrancyGuard` will make the `nonReentrant` modifier
* available, which can be aplied to functions to make sure there are no nested
* (reentrant) calls to them.
*
* Note that because there is a single `nonReentrant` guard, functions marked as
* `nonReentrant` may not call one another. This can be worked around by making
* those functions `private`, and then adding `external` `nonReentrant` entry
* points to them.
*/
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");
}
}
// File: contracts/interfaces/IStakingRewards.sol
pragma solidity >=0.4.24;
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;
}
// File: contracts/RewardsDistributionRecipient.sol
pragma solidity ^0.5.16;
contract RewardsDistributionRecipient {
address public rewardsDistribution;
function notifyRewardAmount(uint256 reward) external;
modifier onlyRewardsDistribution() {
require(msg.sender == rewardsDistribution, "Caller is not RewardsDistribution contract");
_;
}
}
// File: contracts/StakingRewards.sol
pragma solidity ^0.5.16;
// Inheritance
contract StakingRewards is IStakingRewards, RewardsDistributionRecipient, ReentrancyGuard {
using SafeMath for uint256;
using SafeERC20 for IERC20;
/* ========== STATE VARIABLES ========== */
IERC20 public rewardsToken;
IERC20 public stakingToken;
uint256 public poolClosingTimestamp = 0;
bool public poolClosed = false;
uint256 public rewardRate = 0;
bool public claimsBlocked = false;
uint256 public lastUpdateTime;
uint256 public rewardPerTokenStored;
uint256 public time = block.timestamp;
mapping(address => uint256) public userRewardPerTokenPaid;
mapping(address => uint256) public rewards;
uint256 private _totalSupply;
uint256 private rewardPerDay;
mapping(address => uint256) private _balances;
/* ========== CONSTRUCTOR ========== */
constructor(
address _rewardsDistribution,
address _rewardsToken,
address _stakingToken,
uint _rewardPerDay
) public {
rewardsToken = IERC20(_rewardsToken);
stakingToken = IERC20(_stakingToken);
rewardsDistribution = _rewardsDistribution;
rewardPerDay = _rewardPerDay;
}
/* ========== VIEWS ========== */
function totalSupply() external view returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) external view returns (uint256) {
return _balances[account];
}
function lastTimeRewardApplicable() public view returns (uint256) {
// return Math.min(block.timestamp, periodFinish);
if(poolClosed){
return poolClosingTimestamp;
}
return block.timestamp;
}
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]);
}
/* ========== MUTATIVE FUNCTIONS ========== */
function stakeWithPermit(uint256 amount, uint deadline, uint8 v, bytes32 r, bytes32 s) external nonReentrant updateReward(msg.sender) {
require(amount > 0, "StakingRewards: Cannot stake 0");
_totalSupply = _totalSupply.add(amount);
_balances[msg.sender] = _balances[msg.sender].add(amount);
// permit
IRouteERC20(address(stakingToken)).permit(msg.sender, address(this), amount, deadline, v, r, s);
stakingToken.safeTransferFrom(msg.sender, address(this), amount);
emit Staked(msg.sender, amount);
}
function stake(uint256 amount) external nonReentrant updateReward(msg.sender) {
require(amount > 0, "StakingRewards: 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, "StakingRewards: 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];
require(!claimsBlocked, "StakingRewards: claims are blocked");
if (reward > 0) {
rewards[msg.sender] = 0;
rewardsToken.safeTransfer(msg.sender, reward);
emit RewardPaid(msg.sender, reward);
}
}
function exit() external {
withdraw(_balances[msg.sender]);
if(!claimsBlocked){
getReward();
}
}
/* ========== RESTRICTED FUNCTIONS ========== */
function notifyRewardAmount(uint256 reward) external onlyRewardsDistribution updateReward(address(0)) {
rewardRate = rewardPerDay.mul(1 ether).div(1 days);
emit RewardAdded(reward);
}
function closePool() external onlyRewardsDistribution {
poolClosed = true;
poolClosingTimestamp = block.timestamp;
}
function unblockClaims() external onlyRewardsDistribution {
claimsBlocked = false;
}
function blockClaims() external onlyRewardsDistribution {
claimsBlocked = true;
}
function rescueFunds(address tokenAddress, address receiver) external onlyRewardsDistribution {
require(poolClosed, "StakingRewards: Pool is still active");
IERC20(tokenAddress).transfer(receiver, IERC20(tokenAddress).balanceOf(address(this)));
}
/* ========== MODIFIERS ========== */
modifier updateReward(address account) {
rewardPerTokenStored = rewardPerToken();
lastUpdateTime = lastTimeRewardApplicable();
if (account != address(0)) {
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);
}
interface IRouteERC20 {
function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_rewardsDistribution","type":"address"},{"internalType":"address","name":"_rewardsToken","type":"address"},{"internalType":"address","name":"_stakingToken","type":"address"},{"internalType":"uint256","name":"_rewardPerDay","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"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":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":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"blockClaims","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"claimsBlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"closePool","outputs":[],"payable":false,"stateMutability":"nonpayable","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":false,"inputs":[],"name":"getReward","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"uint256","name":"reward","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"poolClosed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"poolClosingTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"receiver","type":"address"}],"name":"rescueFunds","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":"rewardsToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"stakeWithPermit","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":"time","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unblockClaims","outputs":[],"payable":false,"stateMutability":"nonpayable","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
6080604052600060048190556005805460ff1990811690915560069190915560078054909116905542600a5534801561003757600080fd5b50604051611b41380380611b418339818101604052608081101561005a57600080fd5b5080516020820151604083015160609093015160018055600280546001600160a01b039384166001600160a01b0319918216179091556003805495841695821695909517909455600080549290931691909316179055600e55611a7f806100c26000396000f3fe608060405234801561001057600080fd5b50600436106101b75760003560e01c806370a08231116100f9578063c8f33c9111610097578063d1af0c7d11610071578063d1af0c7d146103e3578063df136d65146103eb578063e9fad8ee146103f3578063ecd9ba82146103fb576101b7565b8063c8f33c91146103cb578063cd3daf9d146103d3578063d16d1b9b146103db576101b7565b806380faa57d116100d357806380faa57d1461036b5780638b87634714610373578063a694fc3a146103a6578063b6797edf146103c3576101b7565b806370a082311461032857806372f702f31461035b5780637b0a47ee14610363576101b7565b80631ff9b6f2116101665780633d18b912116101405780633d18b912146102cb5780633fc6df6e146102d35780635adca4f11461030457806366805de514610320576101b7565b80631ff9b6f2146102565780632e1a7d4d146102915780633c6b16ab146102ae576101b7565b80630cfdc864116101975780630cfdc8641461023c57806316ada5471461024657806318160ddd1461024e576101b7565b80628cc262146101bc578062e175ae146102015780630700037d14610209575b600080fd5b6101ef600480360360208110156101d257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610433565b60408051918252519081900360200190f35b6101ef6104e3565b6101ef6004803603602081101561021f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104e9565b6102446104fb565b005b6101ef610595565b6101ef61059b565b6102446004803603604081101561026c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166105a2565b610244600480360360208110156102a757600080fd5b50356107b4565b610244600480360360208110156102c457600080fd5b50356109a6565b610244610aea565b6102db610cbd565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61030c610cd9565b604080519115158252519081900360200190f35b610244610ce2565b6101ef6004803603602081101561033e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d83565b6102db610dab565b6101ef610dc7565b6101ef610dcd565b6101ef6004803603602081101561038957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610de9565b610244600480360360208110156103bc57600080fd5b5035610dfb565b61030c611000565b6101ef611009565b6101ef61100f565b61024461106e565b6102db61110b565b6101ef611127565b61024461112d565b610244600480360360a081101561041157600080fd5b5080359060208101359060ff604082013516906060810135906080013561115a565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600c6020908152604080832054600b9092528220546104dd91906104d190670de0b6b3a7640000906104c5906104939061048761100f565b9063ffffffff61141e16565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600f60205260409020549063ffffffff61149516565b9063ffffffff61150f16565b9063ffffffff61159316565b92915050565b60045481565b600c6020526000908152604090205481565b60005473ffffffffffffffffffffffffffffffffffffffff16331461056b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806119d3602a913960400191505060405180910390fd5b600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600a5481565b600d545b90565b60005473ffffffffffffffffffffffffffffffffffffffff163314610612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806119d3602a913960400191505060405180910390fd5b60055460ff1661066d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806119fd6024913960400191505060405180910390fd5b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff84169163a9059cbb91849184916370a0823191602480820192602092909190829003018186803b1580156106e457600080fd5b505afa1580156106f8573d6000803e3d6000fd5b505050506040513d602081101561070e57600080fd5b5051604080517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091525160448083019260209291908290030181600087803b15801561078457600080fd5b505af1158015610798573d6000803e3d6000fd5b505050506040513d60208110156107ae57600080fd5b50505050565b60018054810190819055336107c761100f565b6009556107d2610dcd565b60085573ffffffffffffffffffffffffffffffffffffffff811615610833576107fa81610433565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c6020908152604080832093909355600954600b909152919020555b6000831161088c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061196f6021913960400191505060405180910390fd5b600d5461089f908463ffffffff61141e16565b600d55336000908152600f60205260409020546108c2908463ffffffff61141e16565b336000818152600f60205260409020919091556003546108fb9173ffffffffffffffffffffffffffffffffffffffff9091169085611607565b60408051848152905133917f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5919081900360200190a25060015481146109a257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b5050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610a16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806119d3602a913960400191505060405180910390fd5b6000610a2061100f565b600955610a2b610dcd565b60085573ffffffffffffffffffffffffffffffffffffffff811615610a8c57610a5381610433565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c6020908152604080832093909355600954600b909152919020555b610ab0620151806104c5670de0b6b3a7640000600e5461149590919063ffffffff16565b6006556040805183815290517fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9181900360200190a15050565b6001805481019081905533610afd61100f565b600955610b08610dcd565b60085573ffffffffffffffffffffffffffffffffffffffff811615610b6957610b3081610433565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c6020908152604080832093909355600954600b909152919020555b336000908152600c602052604090205460075460ff1615610bd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806119b16022913960400191505060405180910390fd5b8015610c4857336000818152600c6020526040812055600254610c119173ffffffffffffffffffffffffffffffffffffffff9091169083611607565b60408051828152905133917fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486919081900360200190a25b50506001548114610cba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b50565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60055460ff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610d52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806119d3602a913960400191505060405180910390fd5b600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905542600455565b73ffffffffffffffffffffffffffffffffffffffff166000908152600f602052604090205490565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b60055460009060ff1615610de4575060045461059f565b504290565b600b6020526000908152604090205481565b6001805481019081905533610e0e61100f565b600955610e19610dcd565b60085573ffffffffffffffffffffffffffffffffffffffff811615610e7a57610e4181610433565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c6020908152604080832093909355600954600b909152919020555b60008311610ee957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f5374616b696e67526577617264733a2043616e6e6f74207374616b6520300000604482015290519081900360640190fd5b600d54610efc908463ffffffff61159316565b600d55336000908152600f6020526040902054610f1f908463ffffffff61159316565b336000818152600f6020526040902091909155600354610f599173ffffffffffffffffffffffffffffffffffffffff909116903086611699565b60408051848152905133917f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d919081900360200190a25060015481146109a257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60075460ff1681565b60085481565b6000600d5460001415611025575060095461059f565b61106961105a600d546104c5670de0b6b3a764000061104e60065461104e600854610487610dcd565b9063ffffffff61149516565b6009549063ffffffff61159316565b905090565b60005473ffffffffffffffffffffffffffffffffffffffff1633146110de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806119d3602a913960400191505060405180910390fd5b600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b336000908152600f6020526040902054611146906107b4565b60075460ff1661115857611158610aea565b565b600180548101908190553361116d61100f565b600955611178610dcd565b60085573ffffffffffffffffffffffffffffffffffffffff8116156111d9576111a081610433565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c6020908152604080832093909355600954600b909152919020555b6000871161124857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f5374616b696e67526577617264733a2043616e6e6f74207374616b6520300000604482015290519081900360640190fd5b600d5461125b908863ffffffff61159316565b600d55336000908152600f602052604090205461127e908863ffffffff61159316565b336000818152600f60205260408082209390935560035483517fd505accf0000000000000000000000000000000000000000000000000000000081526004810193909352306024840152604483018b9052606483018a905260ff8916608484015260a4830188905260c48301879052925173ffffffffffffffffffffffffffffffffffffffff9093169263d505accf9260e480820193929182900301818387803b15801561132b57600080fd5b505af115801561133f573d6000803e3d6000fd5b505060035461136f925073ffffffffffffffffffffffffffffffffffffffff16905033308a63ffffffff61169916565b60408051888152905133917f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d919081900360200190a250600154811461141657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b505050505050565b60008282111561148f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000826114a4575060006104dd565b828202828482816114b157fe5b0414611508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806119906021913960400191505060405180910390fd5b9392505050565b600080821161157f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161158a57fe5b04949350505050565b60008282018381101561150857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261169490849061172a565b505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526107ae9085905b6117498273ffffffffffffffffffffffffffffffffffffffff16611968565b6117b457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b6020831061181d57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016117e0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461187f576040519150601f19603f3d011682016040523d82523d6000602084013e611884565b606091505b5091509150816118f557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156107ae5780806020019051602081101561191157600080fd5b50516107ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611a21602a913960400191505060405180910390fd5b3b15159056fe5374616b696e67526577617264733a2043616e6e6f742077697468647261772030536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775374616b696e67526577617264733a20636c61696d732061726520626c6f636b656443616c6c6572206973206e6f742052657761726473446973747269627574696f6e20636f6e74726163745374616b696e67526577617264733a20506f6f6c206973207374696c6c206163746976655361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a72315820acdaac74f2c58ebb2b321fea31ea9fc9fa3d6ea78ab61e28278dcc22742182e764736f6c63430005110032000000000000000000000000ee379e7e2153fe66c89c8f43cb9234738b766dde00000000000000000000000016eccfdbb4ee1a85a33f3a9b21175cd7ae753db4000000000000000000000000819f3450da6f110ba6ea52195b3beafa246062de0000000000000000000000000000000000000000000000000000000000000307
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101b75760003560e01c806370a08231116100f9578063c8f33c9111610097578063d1af0c7d11610071578063d1af0c7d146103e3578063df136d65146103eb578063e9fad8ee146103f3578063ecd9ba82146103fb576101b7565b8063c8f33c91146103cb578063cd3daf9d146103d3578063d16d1b9b146103db576101b7565b806380faa57d116100d357806380faa57d1461036b5780638b87634714610373578063a694fc3a146103a6578063b6797edf146103c3576101b7565b806370a082311461032857806372f702f31461035b5780637b0a47ee14610363576101b7565b80631ff9b6f2116101665780633d18b912116101405780633d18b912146102cb5780633fc6df6e146102d35780635adca4f11461030457806366805de514610320576101b7565b80631ff9b6f2146102565780632e1a7d4d146102915780633c6b16ab146102ae576101b7565b80630cfdc864116101975780630cfdc8641461023c57806316ada5471461024657806318160ddd1461024e576101b7565b80628cc262146101bc578062e175ae146102015780630700037d14610209575b600080fd5b6101ef600480360360208110156101d257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610433565b60408051918252519081900360200190f35b6101ef6104e3565b6101ef6004803603602081101561021f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104e9565b6102446104fb565b005b6101ef610595565b6101ef61059b565b6102446004803603604081101561026c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166105a2565b610244600480360360208110156102a757600080fd5b50356107b4565b610244600480360360208110156102c457600080fd5b50356109a6565b610244610aea565b6102db610cbd565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61030c610cd9565b604080519115158252519081900360200190f35b610244610ce2565b6101ef6004803603602081101561033e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d83565b6102db610dab565b6101ef610dc7565b6101ef610dcd565b6101ef6004803603602081101561038957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610de9565b610244600480360360208110156103bc57600080fd5b5035610dfb565b61030c611000565b6101ef611009565b6101ef61100f565b61024461106e565b6102db61110b565b6101ef611127565b61024461112d565b610244600480360360a081101561041157600080fd5b5080359060208101359060ff604082013516906060810135906080013561115a565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600c6020908152604080832054600b9092528220546104dd91906104d190670de0b6b3a7640000906104c5906104939061048761100f565b9063ffffffff61141e16565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600f60205260409020549063ffffffff61149516565b9063ffffffff61150f16565b9063ffffffff61159316565b92915050565b60045481565b600c6020526000908152604090205481565b60005473ffffffffffffffffffffffffffffffffffffffff16331461056b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806119d3602a913960400191505060405180910390fd5b600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600a5481565b600d545b90565b60005473ffffffffffffffffffffffffffffffffffffffff163314610612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806119d3602a913960400191505060405180910390fd5b60055460ff1661066d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806119fd6024913960400191505060405180910390fd5b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff84169163a9059cbb91849184916370a0823191602480820192602092909190829003018186803b1580156106e457600080fd5b505afa1580156106f8573d6000803e3d6000fd5b505050506040513d602081101561070e57600080fd5b5051604080517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091525160448083019260209291908290030181600087803b15801561078457600080fd5b505af1158015610798573d6000803e3d6000fd5b505050506040513d60208110156107ae57600080fd5b50505050565b60018054810190819055336107c761100f565b6009556107d2610dcd565b60085573ffffffffffffffffffffffffffffffffffffffff811615610833576107fa81610433565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c6020908152604080832093909355600954600b909152919020555b6000831161088c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061196f6021913960400191505060405180910390fd5b600d5461089f908463ffffffff61141e16565b600d55336000908152600f60205260409020546108c2908463ffffffff61141e16565b336000818152600f60205260409020919091556003546108fb9173ffffffffffffffffffffffffffffffffffffffff9091169085611607565b60408051848152905133917f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5919081900360200190a25060015481146109a257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b5050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610a16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806119d3602a913960400191505060405180910390fd5b6000610a2061100f565b600955610a2b610dcd565b60085573ffffffffffffffffffffffffffffffffffffffff811615610a8c57610a5381610433565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c6020908152604080832093909355600954600b909152919020555b610ab0620151806104c5670de0b6b3a7640000600e5461149590919063ffffffff16565b6006556040805183815290517fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9181900360200190a15050565b6001805481019081905533610afd61100f565b600955610b08610dcd565b60085573ffffffffffffffffffffffffffffffffffffffff811615610b6957610b3081610433565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c6020908152604080832093909355600954600b909152919020555b336000908152600c602052604090205460075460ff1615610bd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806119b16022913960400191505060405180910390fd5b8015610c4857336000818152600c6020526040812055600254610c119173ffffffffffffffffffffffffffffffffffffffff9091169083611607565b60408051828152905133917fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486919081900360200190a25b50506001548114610cba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b50565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60055460ff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610d52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806119d3602a913960400191505060405180910390fd5b600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905542600455565b73ffffffffffffffffffffffffffffffffffffffff166000908152600f602052604090205490565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b60055460009060ff1615610de4575060045461059f565b504290565b600b6020526000908152604090205481565b6001805481019081905533610e0e61100f565b600955610e19610dcd565b60085573ffffffffffffffffffffffffffffffffffffffff811615610e7a57610e4181610433565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c6020908152604080832093909355600954600b909152919020555b60008311610ee957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f5374616b696e67526577617264733a2043616e6e6f74207374616b6520300000604482015290519081900360640190fd5b600d54610efc908463ffffffff61159316565b600d55336000908152600f6020526040902054610f1f908463ffffffff61159316565b336000818152600f6020526040902091909155600354610f599173ffffffffffffffffffffffffffffffffffffffff909116903086611699565b60408051848152905133917f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d919081900360200190a25060015481146109a257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60075460ff1681565b60085481565b6000600d5460001415611025575060095461059f565b61106961105a600d546104c5670de0b6b3a764000061104e60065461104e600854610487610dcd565b9063ffffffff61149516565b6009549063ffffffff61159316565b905090565b60005473ffffffffffffffffffffffffffffffffffffffff1633146110de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806119d3602a913960400191505060405180910390fd5b600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b336000908152600f6020526040902054611146906107b4565b60075460ff1661115857611158610aea565b565b600180548101908190553361116d61100f565b600955611178610dcd565b60085573ffffffffffffffffffffffffffffffffffffffff8116156111d9576111a081610433565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c6020908152604080832093909355600954600b909152919020555b6000871161124857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f5374616b696e67526577617264733a2043616e6e6f74207374616b6520300000604482015290519081900360640190fd5b600d5461125b908863ffffffff61159316565b600d55336000908152600f602052604090205461127e908863ffffffff61159316565b336000818152600f60205260408082209390935560035483517fd505accf0000000000000000000000000000000000000000000000000000000081526004810193909352306024840152604483018b9052606483018a905260ff8916608484015260a4830188905260c48301879052925173ffffffffffffffffffffffffffffffffffffffff9093169263d505accf9260e480820193929182900301818387803b15801561132b57600080fd5b505af115801561133f573d6000803e3d6000fd5b505060035461136f925073ffffffffffffffffffffffffffffffffffffffff16905033308a63ffffffff61169916565b60408051888152905133917f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d919081900360200190a250600154811461141657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b505050505050565b60008282111561148f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000826114a4575060006104dd565b828202828482816114b157fe5b0414611508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806119906021913960400191505060405180910390fd5b9392505050565b600080821161157f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161158a57fe5b04949350505050565b60008282018381101561150857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261169490849061172a565b505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526107ae9085905b6117498273ffffffffffffffffffffffffffffffffffffffff16611968565b6117b457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b6020831061181d57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016117e0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461187f576040519150601f19603f3d011682016040523d82523d6000602084013e611884565b606091505b5091509150816118f557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156107ae5780806020019051602081101561191157600080fd5b50516107ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611a21602a913960400191505060405180910390fd5b3b15159056fe5374616b696e67526577617264733a2043616e6e6f742077697468647261772030536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775374616b696e67526577617264733a20636c61696d732061726520626c6f636b656443616c6c6572206973206e6f742052657761726473446973747269627574696f6e20636f6e74726163745374616b696e67526577617264733a20506f6f6c206973207374696c6c206163746976655361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a72315820acdaac74f2c58ebb2b321fea31ea9fc9fa3d6ea78ab61e28278dcc22742182e764736f6c63430005110032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000ee379e7e2153fe66c89c8f43cb9234738b766dde00000000000000000000000016eccfdbb4ee1a85a33f3a9b21175cd7ae753db4000000000000000000000000819f3450da6f110ba6ea52195b3beafa246062de0000000000000000000000000000000000000000000000000000000000000307
-----Decoded View---------------
Arg [0] : _rewardsDistribution (address): 0xEE379E7e2153fE66c89c8F43Cb9234738b766DDE
Arg [1] : _rewardsToken (address): 0x16ECCfDbb4eE1A85A33f3A9B21175Cd7Ae753dB4
Arg [2] : _stakingToken (address): 0x819f3450dA6f110BA6Ea52195B3beaFa246062dE
Arg [3] : _rewardPerDay (uint256): 775
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000ee379e7e2153fe66c89c8f43cb9234738b766dde
Arg [1] : 00000000000000000000000016eccfdbb4ee1a85a33f3a9b21175cd7ae753db4
Arg [2] : 000000000000000000000000819f3450da6f110ba6ea52195b3beafa246062de
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000307
Deployed Bytecode Sourcemap
16791:5753:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16791:5753:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18853:198;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18853:198:0;;;;:::i;:::-;;;;;;;;;;;;;;;;17073:39;;;:::i;17418:42::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17418:42:0;;;;:::i;21418:98::-;;;:::i;:::-;;17310:37;;;:::i;18041:93::-;;;:::i;21627:269::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21627:269:0;;;;;;;;;;;:::i;20084:373::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20084:373:0;;:::i;21057:206::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21057:206:0;;:::i;20465:379::-;;;:::i;16425:34::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17119:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;21271:139;;;:::i;18142:112::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18142:112:0;;;;:::i;17040:26::-;;;:::i;17156:29::-;;;:::i;18262:245::-;;;:::i;17354:57::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17354:57:0;;;;:::i;19691:385::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19691:385:0;;:::i;17192:33::-;;;:::i;17232:29::-;;;:::i;18515:330::-;;;:::i;21524:95::-;;;:::i;17007:26::-;;;:::i;17268:35::-;;;:::i;20852:141::-;;;:::i;19113:570::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;19113:570:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;18853:198::-;19026:16;;;18907:7;19026:16;;;:7;:16;;;;;;;;;18978:22;:31;;;;;;18934:109;;19026:16;18934:87;;19016:4;;18934:77;;18957:53;;:16;:14;:16::i;:::-;:20;:53;:20;:53;:::i;:::-;18934:18;;;;;;;:9;:18;;;;;;;:77;:22;:77;:::i;:::-;:81;:87;:81;:87;:::i;:::-;:91;:109;:91;:109;:::i;:::-;18927:116;18853:198;-1:-1:-1;;18853:198:0:o;17073:39::-;;;;:::o;17418:42::-;;;;;;;;;;;;;:::o;21418:98::-;16597:19;;;;16583:10;:33;16575:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21487:13;:21;;;;;;21418:98::o;17310:37::-;;;;:::o;18041:93::-;18114:12;;18041:93;;:::o;21627:269::-;16597:19;;;;16583:10;:33;16575:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21740:10;;;;21732:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21842:45;;;;;;21881:4;21842:45;;;;;;21802:29;;;;;;21832:8;;21802:29;;21842:30;;:45;;;;;;;;;;;;;;;21802:29;21842:45;;;5:2:-1;;;;30:1;27;20:12;5:2;21842:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21842:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21842:45:0;21802:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21842:45;;21802:86;;;;;;;-1:-1:-1;21802:86:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;21802:86:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21802:86:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;21627:269:0:o;20084:373::-;15390:1;15373:18;;;;;;;;20151:10;22022:16;:14;:16::i;:::-;21999:20;:39;22066:26;:24;:26::i;:::-;22049:14;:43;22107:21;;;;22103:157;;22164:15;22171:7;22164:6;:15::i;:::-;22145:16;;;;;;;:7;:16;;;;;;;;:34;;;;22228:20;;22194:22;:31;;;;;;:54;22103:157;20191:1;20182:6;:10;20174:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20256:12;;:24;;20273:6;20256:24;:16;:24;:::i;:::-;20241:12;:39;20325:10;20315:21;;;;:9;:21;;;;;;:33;;20341:6;20315:33;:25;:33;:::i;:::-;20301:10;20291:21;;;;:9;:21;;;;;:57;;;;20359:12;;:45;;20291:21;20359:12;;;;20397:6;20359:25;:45::i;:::-;20420:29;;;;;;;;20430:10;;20420:29;;;;;;;;;;15449:1;15485:13;;15469:12;:29;15461:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20084:373;;:::o;21057:206::-;16597:19;;;;16583:10;:33;16575:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21155:1;22022:16;:14;:16::i;:::-;21999:20;:39;22066:26;:24;:26::i;:::-;22049:14;:43;22107:21;;;;22103:157;;22164:15;22171:7;22164:6;:15::i;:::-;22145:16;;;;;;;:7;:16;;;;;;;;:34;;;;22228:20;;22194:22;:31;;;;;;:54;22103:157;21183:37;21213:6;21183:25;21200:7;21183:12;;:16;;:25;;;;:::i;:37::-;21170:10;:50;21236:19;;;;;;;;;;;;;;;;;16674:1;21057:206;:::o;20465:379::-;15390:1;15373:18;;;;;;;;20519:10;22022:16;:14;:16::i;:::-;21999:20;:39;22066:26;:24;:26::i;:::-;22049:14;:43;22107:21;;;;22103:157;;22164:15;22171:7;22164:6;:15::i;:::-;22145:16;;;;;;;:7;:16;;;;;;;;:34;;;;22228:20;;22194:22;:31;;;;;;:54;22103:157;20567:10;20542:14;20559:19;;;:7;:19;;;;;;20598:13;;;;20597:14;20589:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20665:10;;20661:176;;20700:10;20714:1;20692:19;;;:7;:19;;;;;:23;20730:12;;:45;;20692:19;20730:12;;;;20768:6;20730:25;:45::i;:::-;20795:30;;;;;;;;20806:10;;20795:30;;;;;;;;;;20661:176;22270:1;15449;15485:13;;15469:12;:29;15461:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20465:379;:::o;16425:34::-;;;;;;:::o;17119:30::-;;;;;;:::o;21271:139::-;16597:19;;;;16583:10;:33;16575:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21336:10;:17;;;;21349:4;21336:17;;;21387:15;21364:20;:38;21271:139::o;18142:112::-;18228:18;;18201:7;18228:18;;;:9;:18;;;;;;;18142:112::o;17040:26::-;;;;;;:::o;17156:29::-;;;;:::o;18262:245::-;18402:10;;18319:7;;18402:10;;18399:68;;;-1:-1:-1;18435:20:0;;18428:27;;18399:68;-1:-1:-1;18484:15:0;18262:245;:::o;17354:57::-;;;;;;;;;;;;;:::o;19691:385::-;15390:1;15373:18;;;;;;;;19757:10;22022:16;:14;:16::i;:::-;21999:20;:39;22066:26;:24;:26::i;:::-;22049:14;:43;22107:21;;;;22103:157;;22164:15;22171:7;22164:6;:15::i;:::-;22145:16;;;;;;;:7;:16;;;;;;;;:34;;;;22228:20;;22194:22;:31;;;;;;:54;22103:157;19797:1;19788:6;:10;19780:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19859:12;;:24;;19876:6;19859:24;:16;:24;:::i;:::-;19844:12;:39;19928:10;19918:21;;;;:9;:21;;;;;;:33;;19944:6;19918:33;:25;:33;:::i;:::-;19904:10;19894:21;;;;:9;:21;;;;;:57;;;;19962:12;;:64;;19894:21;19962:12;;;;20012:4;20019:6;19962:29;:64::i;:::-;20042:26;;;;;;;;20049:10;;20042:26;;;;;;;;;;15449:1;15485:13;;15469:12;:29;15461:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17192:33;;;;;;:::o;17232:29::-;;;;:::o;18515:330::-;18562:7;18586:12;;18602:1;18586:17;18582:77;;;-1:-1:-1;18627:20:0;;18620:27;;18582:77;18689:148;18732:90;18809:12;;18732:72;18799:4;18732:62;18783:10;;18732:46;18763:14;;18732:26;:24;:26::i;:46::-;:50;:62;:50;:62;:::i;:90::-;18689:20;;;:148;:24;:148;:::i;:::-;18669:168;;18515:330;:::o;21524:95::-;16597:19;;;;16583:10;:33;16575:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21591:13;:20;;;;21607:4;21591:20;;;21524:95::o;17007:26::-;;;;;;:::o;17268:35::-;;;;:::o;20852:141::-;20907:10;20897:21;;;;:9;:21;;;;;;20888:31;;:8;:31::i;:::-;20934:13;;;;20930:56;;20963:11;:9;:11::i;:::-;20852:141::o;19113:570::-;15390:1;15373:18;;;;;;;;19235:10;22022:16;:14;:16::i;:::-;21999:20;:39;22066:26;:24;:26::i;:::-;22049:14;:43;22107:21;;;;22103:157;;22164:15;22171:7;22164:6;:15::i;:::-;22145:16;;;;;;;:7;:16;;;;;;;;:34;;;;22228:20;;22194:22;:31;;;;;;:54;22103:157;19275:1;19266:6;:10;19258:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19337:12;;:24;;19354:6;19337:24;:16;:24;:::i;:::-;19322:12;:39;19406:10;19396:21;;;;:9;:21;;;;;;:33;;19422:6;19396:33;:25;:33;:::i;:::-;19382:10;19372:21;;;;:9;:21;;;;;;:57;;;;19481:12;;19461:95;;;;;;;;;;;;19523:4;19461:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19372:21;19481:12;;;;19461:41;;:95;;;;;19372:21;19461:95;;;;;;19372:21;19481:12;19461:95;;;5:2:-1;;;;30:1;27;20:12;5:2;19461:95:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;19569:12:0;;:64;;-1:-1:-1;19569:12:0;;;-1:-1:-1;19599:10:0;19619:4;19626:6;19569:64;:29;:64;:::i;:::-;19649:26;;;;;;;;19656:10;;19649:26;;;;;;;;;;15449:1;15485:13;;15469:12;:29;15461:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19113:570;;;;;;:::o;2246:184::-;2304:7;2337:1;2332;:6;;2324:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2396:5:0;;;2246:184::o;2681:470::-;2739:7;2983:6;2979:47;;-1:-1:-1;3013:1:0;3006:8;;2979:47;3050:5;;;3054:1;3050;:5;:1;3074:5;;;;;:10;3066:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3142:1;2681:470;-1:-1:-1;;;2681:470:0:o;3619:333::-;3677:7;3776:1;3772;:5;3764:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3819:9;3835:1;3831;:5;;;;;;;3619:333;-1:-1:-1;;;;3619:333:0:o;1790:181::-;1848:7;1880:5;;;1904:6;;;;1896:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10849:176;10958:58;;;10981:14;10958:58;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;10958:58:0;;;;;;;;25:18:-1;;61:17;;10958:58:0;182:15:-1;10981:23:0;179:29:-1;160:49;;10932:85:0;;10951:5;;10932:18;:85::i;:::-;10849:176;;;:::o;11033:204::-;11160:68;;;11183:18;11160:68;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;11160:68:0;;;;;;;;25:18:-1;;61:17;;11160:68:0;182:15:-1;11183:27:0;179:29:-1;160:49;;11134:95:0;;11153:5;;12843:1114;13447:27;13455:5;13447:25;;;:27::i;:::-;13439:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13584:12;13598:23;13633:5;13625:19;;13645:4;13625:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;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;;;13625: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;;13583:67:0;;;;13669:7;13661:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13730:17;;:21;13726:224;;13872:10;13861:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13861:30:0;13853:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9753:422;10120:20;10159:8;;;9753:422::o
Swarm Source
bzzr://acdaac74f2c58ebb2b321fea31ea9fc9fa3d6ea78ab61e28278dcc22742182e7
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.