Latest 25 from a total of 233 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Exit | 14472124 | 1432 days ago | IN | 0 ETH | 0.00426493 | ||||
| Exit | 14438861 | 1437 days ago | IN | 0 ETH | 0.00436052 | ||||
| Exit | 13861831 | 1527 days ago | IN | 0 ETH | 0.0050098 | ||||
| Exit | 13842865 | 1530 days ago | IN | 0 ETH | 0.0073058 | ||||
| Withdraw Remaini... | 13841908 | 1530 days ago | IN | 0 ETH | 0.00198523 | ||||
| Exit | 13841224 | 1530 days ago | IN | 0 ETH | 0.00554927 | ||||
| Exit | 13836120 | 1531 days ago | IN | 0 ETH | 0.00759841 | ||||
| Exit | 13829409 | 1532 days ago | IN | 0 ETH | 0.00406266 | ||||
| Exit | 13827347 | 1532 days ago | IN | 0 ETH | 0.0067903 | ||||
| Exit | 13826989 | 1532 days ago | IN | 0 ETH | 0.00807543 | ||||
| Exit | 13802856 | 1536 days ago | IN | 0 ETH | 0.00589849 | ||||
| Exit | 13783929 | 1539 days ago | IN | 0 ETH | 0.00530157 | ||||
| Exit | 13757539 | 1543 days ago | IN | 0 ETH | 0.00929432 | ||||
| Exit | 13752476 | 1544 days ago | IN | 0 ETH | 0.00395461 | ||||
| Exit | 13752306 | 1544 days ago | IN | 0 ETH | 0.00962472 | ||||
| Exit | 13752280 | 1544 days ago | IN | 0 ETH | 0.00809198 | ||||
| Exit | 13647015 | 1561 days ago | IN | 0 ETH | 0.01836772 | ||||
| Exit | 13646052 | 1561 days ago | IN | 0 ETH | 0.01537917 | ||||
| Exit | 13645836 | 1561 days ago | IN | 0 ETH | 0.01465913 | ||||
| Stake | 13589150 | 1570 days ago | IN | 0 ETH | 0.01582619 | ||||
| Stake | 13431382 | 1594 days ago | IN | 0 ETH | 0.00822388 | ||||
| Get Reward | 13431326 | 1594 days ago | IN | 0 ETH | 0.00720621 | ||||
| Get Reward | 13431325 | 1594 days ago | IN | 0 ETH | 0.00502005 | ||||
| Stake | 13404485 | 1599 days ago | IN | 0 ETH | 0.01020226 | ||||
| Exit | 13404319 | 1599 days ago | IN | 0 ETH | 0.00745102 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
WolfStakingRewards
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2021-01-23
*/
pragma solidity ^0.5.16;
/** _ __
| |/ _|
__ _____ _ __ _____ _____ | | |_
\ \ /\ / / _ \ '__/ _ \ \ /\ / / _ \| | _|
\ V V / __/ | | __/\ V V / (_) | | |
\_/\_/ \___|_| \___| \_/\_/ \___/|_|_|
+-------------------+-----------+-------------+--------------------+
| Staking Moon Name | Moon Date | WWC Reward | WWC Reward per day |
+===================+===========+=============+====================+
| Wolf Moon | 28-Jan | 1386538.462 | 277307.6923 |
| Snow Moon | 27-Feb | 2773076.923 | 79230.76923 |
| Worm Moon | 28-Mar | 4159615.385 | 64993.99038 |
| Pink Moon | 26-Apr | 5546153.846 | 59636.06286 |
| Flower Moon | 26-May | 6932692.308 | 56363.35209 |
| Strawberry Moon | 24-Jun | 8319230.769 | 54731.78138 |
| Buck Moon | 23-Jul | 9705769.231 | 53623.03442 |
| Sturgeon Moon | 22-Aug | 11092307.69 | 52570.17864 |
| Corn Moon | 20-Sep | 12478846.15 | 51995.19231 |
| Harvest Moon | 20-Oct | 13865384.62 | 51353.27635 |
| Beaver Moon | 19-Nov | 15251923.08 | 50839.74359 |
| Cold Moon | 18-Dec | 16638461.54 | 50572.83142 |
+-------------------+-----------+-------------+--------------------+
*/
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 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;
}
}
/**
* @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);
}
/**
* @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;
}
}
/**
* @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;
}
}
/**
* @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");
}
}
}
/**
* @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");
}
}
// Inheritancea
interface IStakingRewards {
// Views
function lastTimeRewardApplicable(uint256 pool) external view returns (uint256);
function rewardPerToken(uint256 pool) external view returns (uint256);
function earned(address account, uint256 pool) external view returns (uint256);
function getRewardForDuration(uint256 pool) external view returns (uint256);
function totalSupplyPerPool(uint256 pool) external view returns (uint256);
function balanceOfPerPool(address account, uint256 pool) external view returns (uint256);
// Mutative
function stake(uint256 amount, uint256 pool) external;
function withdraw(uint256 amount, uint256 pool) external;
function getReward(uint256 pool) external;
function exit(uint256 pool) external;
}
contract RewardsDistributionRecipient {
address public rewardsDistribution;
function notifyRewardAmount(uint256 reward, uint256 pool) internal;
function updateNotifyRewardAmount(uint256[] calldata reward) external;
modifier onlyRewardsDistribution() {
require(msg.sender == rewardsDistribution, "Caller is not RewardsDistribution contract");
_;
}
}
contract WolfStakingRewards is IStakingRewards, RewardsDistributionRecipient, ReentrancyGuard {
using SafeMath for uint256;
using SafeERC20 for IERC20;
/* ========== STATE VARIABLES ========== */
IERC20 public rewardsToken;
IERC20 public stakingToken;
uint256[] public rewardsDuration = [1611861360,1614413820,1616957280,1619407860,1622027640,1624560000,1627007820,1629633720,1632182100,1634741820,1637312280,1639802160];
address public owner;
uint public genesisEventEnd = 1639802160;
mapping(address => mapping(uint256 => uint256)) public userRewardPerTokenPaid;
mapping(address => mapping(uint256 => uint256)) public rewards;
mapping(uint256 => uint256) public rewardRate;
mapping(uint256 => uint256) public periodFinish;
mapping(uint256 => uint256) public lastUpdateTime;
mapping(uint256 => uint256) public rewardPerTokenStored;
mapping(uint256 => uint256) public _totalSupplyPerPool;
mapping(address => uint256) private _balances;
mapping(address => mapping(uint256 => uint256)) private _balancesPerPool;
/* ========== CONSTRUCTOR ========== */
constructor(
address _rewardsDistribution,
address _rewardsToken,
address _stakingToken
) public {
rewardsToken = IERC20(_rewardsToken);
stakingToken = IERC20(_stakingToken);
rewardsDistribution = _rewardsDistribution;
owner = msg.sender;
}
/* ========== VIEWS ========== */
function totalSupplyPerPool(uint256 pool) external view returns (uint256) {
return _totalSupplyPerPool[pool];
}
function balanceOfPerPool(address account, uint256 pool) external view returns (uint256) {
return _balancesPerPool[account][pool];
}
function lastTimeRewardApplicable(uint256 pool) public view returns (uint256) {
return Math.min(block.timestamp, periodFinish[pool]);
}
function rewardPerToken(uint256 pool) public view returns (uint256) {
if (_totalSupplyPerPool[pool] == 0) {
return rewardPerTokenStored[pool];
}
return
rewardPerTokenStored[pool].add(
lastTimeRewardApplicable(pool).sub(lastUpdateTime[pool]).mul(rewardRate[pool]).mul(1e18).div(_totalSupplyPerPool[pool])
);
}
function earned(address account, uint256 pool) public view returns (uint256) {
return _balancesPerPool[account][pool].mul(rewardPerToken(pool).sub(userRewardPerTokenPaid[account][pool])).div(1e18).add(rewards[account][pool]);
}
function getRewardForDuration(uint256 pool) external view returns (uint256) {
return rewardRate[pool].mul(rewardsDuration[pool]);
}
/* ========== MUTATIVE FUNCTIONS ========== */
function stake(uint256 amount, uint pool) external nonReentrant updateReward(msg.sender, pool) {
require(amount > 0, "Cannot stake 0");
_totalSupplyPerPool[pool] = _totalSupplyPerPool[pool].add(amount);
_balancesPerPool[msg.sender][pool] = _balancesPerPool[msg.sender][pool].add(amount);
stakingToken.safeTransferFrom(msg.sender, address(this), amount);
emit Staked(msg.sender, amount, pool);
}
function withdraw(uint256 amount, uint pool) public nonReentrant updateReward(msg.sender, pool) {
require(amount > 0, "Cannot withdraw 0");
require(now > rewardsDuration[pool], "Pool duration is not over yet!");
_totalSupplyPerPool[pool] = _totalSupplyPerPool[pool].sub(amount);
_balancesPerPool[msg.sender][pool] = _balancesPerPool[msg.sender][pool].sub(amount);
stakingToken.safeTransfer(msg.sender, amount);
emit Withdrawn(msg.sender, amount, pool);
}
function getReward(uint pool) public nonReentrant updateReward(msg.sender, pool) {
uint256 reward = rewards[msg.sender][pool];
if (reward > 0) {
rewards[msg.sender][pool] = 0;
rewardsToken.safeTransfer(msg.sender, reward);
emit RewardPaid(msg.sender, reward, pool);
}
}
function exit(uint256 pool) external {
require(now > rewardsDuration[pool], "Pool duration is not over yet!");
withdraw(_balancesPerPool[msg.sender][pool], pool);
getReward(pool);
}
/* ========== RESTRICTED FUNCTIONS ========== */
function updateNotifyRewardAmount(uint256[] calldata reward) external onlyRewardsDistribution onlyOwner {
require(reward.length > 0, "Reward amount should be for all pool");
for (uint256 pool = 0; pool < reward.length; pool++) {
notifyRewardAmount(reward[pool], pool);
}
}
function notifyRewardAmount(uint256 reward, uint256 pool) internal onlyRewardsDistribution updateReward(address(0), pool) {
if (block.timestamp >= periodFinish[pool]) {
rewardRate[pool] = reward.div(rewardsDuration[pool]);
} else {
uint256 remaining = periodFinish[pool].sub(block.timestamp);
uint256 leftover = remaining.mul(rewardRate[pool]);
rewardRate[pool] = reward.add(leftover).div(rewardsDuration[pool]);
}
uint balance = rewardsToken.balanceOf(address(this));
require(rewardRate[pool] <= balance.div(rewardsDuration[pool]), "Provided reward too high");
lastUpdateTime[pool] = block.timestamp;
periodFinish[pool] = block.timestamp.add(rewardsDuration[pool]);
emit RewardAdded(reward, pool);
}
function withdrawRemainingBalance(uint256 amount, uint pool) external onlyOwner updateReward(address(0), pool){
require(amount > 0, "Cannot withdraw 0");
require(now > genesisEventEnd, "Genesis Event is Not Over!");
rewardsToken.safeTransfer(owner, amount);
}
/* ========== MODIFIERS ========== */
modifier updateReward(address account, uint256 pool) {
rewardPerTokenStored[pool] = rewardPerToken(pool);
lastUpdateTime[pool] = lastTimeRewardApplicable(pool);
if (account != address(0)) {
rewards[account][pool] = earned(account, pool);
userRewardPerTokenPaid[account][pool] = rewardPerTokenStored[pool];
}
_;
}
modifier onlyOwner(){
require(msg.sender == owner, "Caller is not an admin contract");
_;
}
/* ========== EVENTS ========== */
event RewardAdded(uint256 reward, uint256 pool);
event Staked(address indexed user, uint256 amount, uint256 pool);
event Withdrawn(address indexed user, uint256 amount, uint256 pool);
event RewardPaid(address indexed user, uint256 reward, uint256 pool);
}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"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"pool","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"},{"indexed":false,"internalType":"uint256","name":"pool","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"},{"indexed":false,"internalType":"uint256","name":"pool","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"},{"indexed":false,"internalType":"uint256","name":"pool","type":"uint256"}],"name":"Withdrawn","type":"event"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_totalSupplyPerPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"pool","type":"uint256"}],"name":"balanceOfPerPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"pool","type":"uint256"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"pool","type":"uint256"}],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"genesisEventEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"pool","type":"uint256"}],"name":"getReward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"pool","type":"uint256"}],"name":"getRewardForDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"pool","type":"uint256"}],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lastUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"periodFinish","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"pool","type":"uint256"}],"name":"rewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewardsDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardsToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"pool","type":"uint256"}],"name":"stake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stakingToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"pool","type":"uint256"}],"name":"totalSupplyPerPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256[]","name":"reward","type":"uint256[]"}],"name":"updateNotifyRewardAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"userRewardPerTokenPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"pool","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"pool","type":"uint256"}],"name":"withdrawRemainingBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
6102006040526360130d706080908152636039fffc60a052636060cf6060c05263608633f460e0526360ae2d78610100526360d4d180610120526360fa2b4c610140526361223cb8610160526361491f54610180526361702e3c6101a05263619767186101c0526361bd65306101e0526200007f90600490600c6200011f565b506361bd65306006553480156200009557600080fd5b5060405162001aa338038062001aa383398181016040526060811015620000bb57600080fd5b508051602082015160409092015160018055600280546001600160a01b039485166001600160a01b03199182161790915560038054928516928216929092179091556000805493909216928116929092179055600580549091163317905562000197565b82805482825590600052602060002090810192821562000165579160200282015b8281111562000165578251829063ffffffff1690559160200191906001019062000140565b506200017392915062000177565b5090565b6200019491905b808211156200017357600081556001016200017e565b90565b6118fc80620001a76000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80637b0472f0116100de578063b933ceac11610097578063cea0196211610071578063cea019621461046b578063d1af0c7d14610488578063e48702a614610490578063eeca15621461049857610173565b8063b933ceac146103ff578063c989971a1461042b578063ce3fccf81461044857610173565b80637b0472f0146103605780637f8661a11461038357806386f4700c146103a0578063874c120b146103bd578063882324b4146103da5780638da5cb5b146103f757610173565b80634969938c116101305780634969938c146102a95780634bcddb1f146102c657806363d53032146102e35780636bc9b561146103005780637282db351461032c57806372f702f31461035857610173565b80630e213a3d146101785780631c4b774b146101a75780631fac1c2f146101c65780633e491d47146102365780633fc6df6e14610262578063441a3e7014610286575b600080fd5b6101956004803603602081101561018e57600080fd5b50356104b5565b60408051918252519081900360200190f35b6101c4600480360360208110156101bd57600080fd5b50356104f7565b005b6101c4600480360360208110156101dc57600080fd5b8101906020810181356401000000008111156101f757600080fd5b82018360208201111561020957600080fd5b8035906020019184602083028401116401000000008311171561022b57600080fd5b50909250905061067d565b6101956004803603604081101561024c57600080fd5b506001600160a01b038135169060200135610795565b61026a61084e565b604080516001600160a01b039092168252519081900360200190f35b6101c46004803603604081101561029c57600080fd5b508035906020013561085d565b610195600480360360208110156102bf57600080fd5b5035610ac8565b610195600480360360208110156102dc57600080fd5b5035610ae6565b610195600480360360208110156102f957600080fd5b5035610af8565b6101956004803603604081101561031657600080fd5b506001600160a01b038135169060200135610b0a565b6101956004803603604081101561034257600080fd5b506001600160a01b038135169060200135610b27565b61026a610b4f565b6101c46004803603604081101561037657600080fd5b5080359060200135610b5e565b6101c46004803603602081101561039957600080fd5b5035610d5c565b610195600480360360208110156103b657600080fd5b5035610df8565b610195600480360360208110156103d357600080fd5b5035610e0a565b610195600480360360208110156103f057600080fd5b5035610ea3565b61026a610eb5565b6101956004803603604081101561041557600080fd5b506001600160a01b038135169060200135610ec4565b6101956004803603602081101561044157600080fd5b5035610ee1565b6101c46004803603604081101561045e57600080fd5b5080359060200135610ef3565b6101956004803603602081101561048157600080fd5b50356110aa565b61026a6110bc565b6101956110cb565b610195600480360360208110156104ae57600080fd5b50356110d1565b60006104ef600483815481106104c757fe5b600091825260208083209091015485835260099091526040909120549063ffffffff6110eb16565b90505b919050565b60018054810190819055338261050c81610e0a565b6000828152600c6020526040902055610524816110d1565b6000828152600b60205260409020556001600160a01b038216156105905761054c8282610795565b6001600160a01b0383166000818152600860209081526040808320868452825280832094909455600c81528382205492825260078152838220858352905291909120555b3360009081526008602090815260408083208784529091529020548015610620573360008181526008602090815260408083208984529091528120556002546105e5916001600160a01b039091169083611144565b6040805182815260208101879052815133927fd6f2c8500df5b44f11e9e48b91ff9f1b9d81bc496d55570c2b1b75bf65243f51928290030190a25b5050506001548114610679576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b5050565b6000546001600160a01b031633146106c65760405162461bcd60e51b815260040180806020018281038252602a815260200180611874602a913960400191505060405180910390fd5b6005546001600160a01b03163314610725576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f7420616e2061646d696e20636f6e747261637400604482015290519081900360640190fd5b806107615760405162461bcd60e51b815260040180806020018281038252602481526020018061182f6024913960400191505060405180910390fd5b60005b818110156107905761078883838381811061077b57fe5b9050602002013582611196565b600101610764565b505050565b6001600160a01b03821660008181526008602090815260408083208584528252808320549383526007825280832085845290915281205490916108459161083990670de0b6b3a76400009061082d906107fd906107f189610e0a565b9063ffffffff6114df16565b6001600160a01b0389166000908152600f602090815260408083208b84529091529020549063ffffffff6110eb16565b9063ffffffff61153c16565b9063ffffffff6115a616565b90505b92915050565b6000546001600160a01b031681565b60018054810190819055338261087281610e0a565b6000828152600c602052604090205561088a816110d1565b6000828152600b60205260409020556001600160a01b038216156108f6576108b28282610795565b6001600160a01b0383166000818152600860209081526040808320868452825280832094909455600c81528382205492825260078152838220858352905291909120555b6000851161093f576040805162461bcd60e51b8152602060048201526011602482015270043616e6e6f74207769746864726177203607c1b604482015290519081900360640190fd5b6004848154811061094c57fe5b906000526020600020015442116109aa576040805162461bcd60e51b815260206004820152601e60248201527f506f6f6c206475726174696f6e206973206e6f74206f76657220796574210000604482015290519081900360640190fd5b6000848152600d60205260409020546109c9908663ffffffff6114df16565b6000858152600d6020908152604080832093909355338252600f8152828220878352905220546109ff908663ffffffff6114df16565b336000818152600f60209081526040808320898452909152902091909155600354610a36916001600160a01b039091169087611144565b6040805186815260208101869052815133927f92ccf450a286a957af52509bc1c9939d1a6a481783e142e41e2499f0bb66ebc6928290030190a250506001548114610790576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60048181548110610ad557fe5b600091825260209091200154905081565b600b6020526000908152604090205481565b600d6020526000908152604090205481565b600760209081526000928352604080842090915290825290205481565b6001600160a01b03919091166000908152600f60209081526040808320938352929052205490565b6003546001600160a01b031681565b600180548101908190553382610b7381610e0a565b6000828152600c6020526040902055610b8b816110d1565b6000828152600b60205260409020556001600160a01b03821615610bf757610bb38282610795565b6001600160a01b0383166000818152600860209081526040808320868452825280832094909455600c81528382205492825260078152838220858352905291909120555b60008511610c3d576040805162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b604482015290519081900360640190fd5b6000848152600d6020526040902054610c5c908663ffffffff6115a616565b6000858152600d6020908152604080832093909355338252600f815282822087835290522054610c92908663ffffffff6115a616565b336000818152600f60209081526040808320898452909152902091909155600354610cca916001600160a01b03909116903088611600565b6040805186815260208101869052815133927f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee90928290030190a250506001548114610790576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60048181548110610d6957fe5b90600052602060002001544211610dc7576040805162461bcd60e51b815260206004820152601e60248201527f506f6f6c206475726174696f6e206973206e6f74206f76657220796574210000604482015290519081900360640190fd5b336000908152600f60209081526040808320848452909152902054610dec908261085d565b610df5816104f7565b50565b600a6020526000908152604090205481565b6000818152600d6020526040812054610e3257506000818152600c60205260409020546104f2565b6000828152600d60209081526040808320546009835281842054600b9093529220546104ef92610e8892909161082d91670de0b6b3a764000091610e7c919082906107f18b6110d1565b9063ffffffff6110eb16565b6000848152600c60205260409020549063ffffffff6115a616565b600c6020526000908152604090205481565b6005546001600160a01b031681565b600860209081526000928352604080842090915290825290205481565b6000908152600d602052604090205490565b6005546001600160a01b03163314610f52576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f7420616e2061646d696e20636f6e747261637400604482015290519081900360640190fd5b600081610f5e81610e0a565b6000828152600c6020526040902055610f76816110d1565b6000828152600b60205260409020556001600160a01b03821615610fe257610f9e8282610795565b6001600160a01b0383166000818152600860209081526040808320868452825280832094909455600c81528382205492825260078152838220858352905291909120555b6000841161102b576040805162461bcd60e51b8152602060048201526011602482015270043616e6e6f74207769746864726177203607c1b604482015290519081900360640190fd5b6006544211611081576040805162461bcd60e51b815260206004820152601a60248201527f47656e65736973204576656e74206973204e6f74204f76657221000000000000604482015290519081900360640190fd5b6005546002546110a4916001600160a01b0391821691168663ffffffff61114416565b50505050565b60096020526000908152604090205481565b6002546001600160a01b031681565b60065481565b6000818152600a60205260408120546104ef90429061165a565b6000826110fa57506000610848565b8282028284828161110757fe5b04146108455760405162461bcd60e51b81526004018080602001828103825260218152602001806118536021913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610790908490611670565b6000546001600160a01b031633146111df5760405162461bcd60e51b815260040180806020018281038252602a815260200180611874602a913960400191505060405180910390fd5b6000816111eb81610e0a565b6000828152600c6020526040902055611203816110d1565b6000828152600b60205260409020556001600160a01b0382161561126f5761122b8282610795565b6001600160a01b0383166000818152600860209081526040808320868452825280832094909455600c81528382205492825260078152838220858352905291909120555b6000838152600a602052604090205442106112c2576112ae6004848154811061129457fe5b90600052602060002001548561153c90919063ffffffff16565b600084815260096020526040902055611345565b6000838152600a60205260408120546112e1904263ffffffff6114df16565b6000858152600960205260408120549192509061130590839063ffffffff6110eb16565b90506113336004868154811061131757fe5b60009182526020909120015461082d888463ffffffff6115a616565b60008681526009602052604090205550505b600254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561139057600080fd5b505afa1580156113a4573d6000803e3d6000fd5b505050506040513d60208110156113ba57600080fd5b5051600480549192506113eb91869081106113d157fe5b90600052602060002001548261153c90919063ffffffff16565b600085815260096020526040902054111561144d576040805162461bcd60e51b815260206004820152601860248201527f50726f76696465642072657761726420746f6f20686967680000000000000000604482015290519081900360640190fd5b6000848152600b602052604090204290556004805461148b91908690811061147157fe5b9060005260206000200154426115a690919063ffffffff16565b6000858152600a602090815260409182902092909255805187815291820186905280517f6c07ee05dcf262f13abf9d87b846ee789d2f90fe991d495acd7d7fc109ee1f559281900390910190a15050505050565b600082821115611536576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000808211611592576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161159d57fe5b04949350505050565b600082820183811015610845576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526110a4908590611670565b60008183106116695781610845565b5090919050565b611682826001600160a01b0316611828565b6116d3576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106117115780518252601f1990920191602091820191016116f2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611773576040519150601f19603f3d011682016040523d82523d6000602084013e611778565b606091505b5091509150816117cf576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156110a4578080602001905160208110156117eb57600080fd5b50516110a45760405162461bcd60e51b815260040180806020018281038252602a81526020018061189e602a913960400191505060405180910390fd5b3b15159056fe52657761726420616d6f756e742073686f756c6420626520666f7220616c6c20706f6f6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743616c6c6572206973206e6f742052657761726473446973747269627574696f6e20636f6e74726163745361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a723158205010f0ee41404ada9e38baaf1170b924e8f3ae94344f791d4dce12616408b91264736f6c63430005110032000000000000000000000000f19417bfa6023c21bee565f121817454e957ab6a00000000000000000000000038118bdb3b480f570837a4c2e88fac6e83be66890000000000000000000000007f13dbb949c48f2a377fa4db4f2d5221ecbf3df9
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101735760003560e01c80637b0472f0116100de578063b933ceac11610097578063cea0196211610071578063cea019621461046b578063d1af0c7d14610488578063e48702a614610490578063eeca15621461049857610173565b8063b933ceac146103ff578063c989971a1461042b578063ce3fccf81461044857610173565b80637b0472f0146103605780637f8661a11461038357806386f4700c146103a0578063874c120b146103bd578063882324b4146103da5780638da5cb5b146103f757610173565b80634969938c116101305780634969938c146102a95780634bcddb1f146102c657806363d53032146102e35780636bc9b561146103005780637282db351461032c57806372f702f31461035857610173565b80630e213a3d146101785780631c4b774b146101a75780631fac1c2f146101c65780633e491d47146102365780633fc6df6e14610262578063441a3e7014610286575b600080fd5b6101956004803603602081101561018e57600080fd5b50356104b5565b60408051918252519081900360200190f35b6101c4600480360360208110156101bd57600080fd5b50356104f7565b005b6101c4600480360360208110156101dc57600080fd5b8101906020810181356401000000008111156101f757600080fd5b82018360208201111561020957600080fd5b8035906020019184602083028401116401000000008311171561022b57600080fd5b50909250905061067d565b6101956004803603604081101561024c57600080fd5b506001600160a01b038135169060200135610795565b61026a61084e565b604080516001600160a01b039092168252519081900360200190f35b6101c46004803603604081101561029c57600080fd5b508035906020013561085d565b610195600480360360208110156102bf57600080fd5b5035610ac8565b610195600480360360208110156102dc57600080fd5b5035610ae6565b610195600480360360208110156102f957600080fd5b5035610af8565b6101956004803603604081101561031657600080fd5b506001600160a01b038135169060200135610b0a565b6101956004803603604081101561034257600080fd5b506001600160a01b038135169060200135610b27565b61026a610b4f565b6101c46004803603604081101561037657600080fd5b5080359060200135610b5e565b6101c46004803603602081101561039957600080fd5b5035610d5c565b610195600480360360208110156103b657600080fd5b5035610df8565b610195600480360360208110156103d357600080fd5b5035610e0a565b610195600480360360208110156103f057600080fd5b5035610ea3565b61026a610eb5565b6101956004803603604081101561041557600080fd5b506001600160a01b038135169060200135610ec4565b6101956004803603602081101561044157600080fd5b5035610ee1565b6101c46004803603604081101561045e57600080fd5b5080359060200135610ef3565b6101956004803603602081101561048157600080fd5b50356110aa565b61026a6110bc565b6101956110cb565b610195600480360360208110156104ae57600080fd5b50356110d1565b60006104ef600483815481106104c757fe5b600091825260208083209091015485835260099091526040909120549063ffffffff6110eb16565b90505b919050565b60018054810190819055338261050c81610e0a565b6000828152600c6020526040902055610524816110d1565b6000828152600b60205260409020556001600160a01b038216156105905761054c8282610795565b6001600160a01b0383166000818152600860209081526040808320868452825280832094909455600c81528382205492825260078152838220858352905291909120555b3360009081526008602090815260408083208784529091529020548015610620573360008181526008602090815260408083208984529091528120556002546105e5916001600160a01b039091169083611144565b6040805182815260208101879052815133927fd6f2c8500df5b44f11e9e48b91ff9f1b9d81bc496d55570c2b1b75bf65243f51928290030190a25b5050506001548114610679576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b5050565b6000546001600160a01b031633146106c65760405162461bcd60e51b815260040180806020018281038252602a815260200180611874602a913960400191505060405180910390fd5b6005546001600160a01b03163314610725576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f7420616e2061646d696e20636f6e747261637400604482015290519081900360640190fd5b806107615760405162461bcd60e51b815260040180806020018281038252602481526020018061182f6024913960400191505060405180910390fd5b60005b818110156107905761078883838381811061077b57fe5b9050602002013582611196565b600101610764565b505050565b6001600160a01b03821660008181526008602090815260408083208584528252808320549383526007825280832085845290915281205490916108459161083990670de0b6b3a76400009061082d906107fd906107f189610e0a565b9063ffffffff6114df16565b6001600160a01b0389166000908152600f602090815260408083208b84529091529020549063ffffffff6110eb16565b9063ffffffff61153c16565b9063ffffffff6115a616565b90505b92915050565b6000546001600160a01b031681565b60018054810190819055338261087281610e0a565b6000828152600c602052604090205561088a816110d1565b6000828152600b60205260409020556001600160a01b038216156108f6576108b28282610795565b6001600160a01b0383166000818152600860209081526040808320868452825280832094909455600c81528382205492825260078152838220858352905291909120555b6000851161093f576040805162461bcd60e51b8152602060048201526011602482015270043616e6e6f74207769746864726177203607c1b604482015290519081900360640190fd5b6004848154811061094c57fe5b906000526020600020015442116109aa576040805162461bcd60e51b815260206004820152601e60248201527f506f6f6c206475726174696f6e206973206e6f74206f76657220796574210000604482015290519081900360640190fd5b6000848152600d60205260409020546109c9908663ffffffff6114df16565b6000858152600d6020908152604080832093909355338252600f8152828220878352905220546109ff908663ffffffff6114df16565b336000818152600f60209081526040808320898452909152902091909155600354610a36916001600160a01b039091169087611144565b6040805186815260208101869052815133927f92ccf450a286a957af52509bc1c9939d1a6a481783e142e41e2499f0bb66ebc6928290030190a250506001548114610790576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60048181548110610ad557fe5b600091825260209091200154905081565b600b6020526000908152604090205481565b600d6020526000908152604090205481565b600760209081526000928352604080842090915290825290205481565b6001600160a01b03919091166000908152600f60209081526040808320938352929052205490565b6003546001600160a01b031681565b600180548101908190553382610b7381610e0a565b6000828152600c6020526040902055610b8b816110d1565b6000828152600b60205260409020556001600160a01b03821615610bf757610bb38282610795565b6001600160a01b0383166000818152600860209081526040808320868452825280832094909455600c81528382205492825260078152838220858352905291909120555b60008511610c3d576040805162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b604482015290519081900360640190fd5b6000848152600d6020526040902054610c5c908663ffffffff6115a616565b6000858152600d6020908152604080832093909355338252600f815282822087835290522054610c92908663ffffffff6115a616565b336000818152600f60209081526040808320898452909152902091909155600354610cca916001600160a01b03909116903088611600565b6040805186815260208101869052815133927f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee90928290030190a250506001548114610790576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60048181548110610d6957fe5b90600052602060002001544211610dc7576040805162461bcd60e51b815260206004820152601e60248201527f506f6f6c206475726174696f6e206973206e6f74206f76657220796574210000604482015290519081900360640190fd5b336000908152600f60209081526040808320848452909152902054610dec908261085d565b610df5816104f7565b50565b600a6020526000908152604090205481565b6000818152600d6020526040812054610e3257506000818152600c60205260409020546104f2565b6000828152600d60209081526040808320546009835281842054600b9093529220546104ef92610e8892909161082d91670de0b6b3a764000091610e7c919082906107f18b6110d1565b9063ffffffff6110eb16565b6000848152600c60205260409020549063ffffffff6115a616565b600c6020526000908152604090205481565b6005546001600160a01b031681565b600860209081526000928352604080842090915290825290205481565b6000908152600d602052604090205490565b6005546001600160a01b03163314610f52576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f7420616e2061646d696e20636f6e747261637400604482015290519081900360640190fd5b600081610f5e81610e0a565b6000828152600c6020526040902055610f76816110d1565b6000828152600b60205260409020556001600160a01b03821615610fe257610f9e8282610795565b6001600160a01b0383166000818152600860209081526040808320868452825280832094909455600c81528382205492825260078152838220858352905291909120555b6000841161102b576040805162461bcd60e51b8152602060048201526011602482015270043616e6e6f74207769746864726177203607c1b604482015290519081900360640190fd5b6006544211611081576040805162461bcd60e51b815260206004820152601a60248201527f47656e65736973204576656e74206973204e6f74204f76657221000000000000604482015290519081900360640190fd5b6005546002546110a4916001600160a01b0391821691168663ffffffff61114416565b50505050565b60096020526000908152604090205481565b6002546001600160a01b031681565b60065481565b6000818152600a60205260408120546104ef90429061165a565b6000826110fa57506000610848565b8282028284828161110757fe5b04146108455760405162461bcd60e51b81526004018080602001828103825260218152602001806118536021913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610790908490611670565b6000546001600160a01b031633146111df5760405162461bcd60e51b815260040180806020018281038252602a815260200180611874602a913960400191505060405180910390fd5b6000816111eb81610e0a565b6000828152600c6020526040902055611203816110d1565b6000828152600b60205260409020556001600160a01b0382161561126f5761122b8282610795565b6001600160a01b0383166000818152600860209081526040808320868452825280832094909455600c81528382205492825260078152838220858352905291909120555b6000838152600a602052604090205442106112c2576112ae6004848154811061129457fe5b90600052602060002001548561153c90919063ffffffff16565b600084815260096020526040902055611345565b6000838152600a60205260408120546112e1904263ffffffff6114df16565b6000858152600960205260408120549192509061130590839063ffffffff6110eb16565b90506113336004868154811061131757fe5b60009182526020909120015461082d888463ffffffff6115a616565b60008681526009602052604090205550505b600254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561139057600080fd5b505afa1580156113a4573d6000803e3d6000fd5b505050506040513d60208110156113ba57600080fd5b5051600480549192506113eb91869081106113d157fe5b90600052602060002001548261153c90919063ffffffff16565b600085815260096020526040902054111561144d576040805162461bcd60e51b815260206004820152601860248201527f50726f76696465642072657761726420746f6f20686967680000000000000000604482015290519081900360640190fd5b6000848152600b602052604090204290556004805461148b91908690811061147157fe5b9060005260206000200154426115a690919063ffffffff16565b6000858152600a602090815260409182902092909255805187815291820186905280517f6c07ee05dcf262f13abf9d87b846ee789d2f90fe991d495acd7d7fc109ee1f559281900390910190a15050505050565b600082821115611536576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000808211611592576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161159d57fe5b04949350505050565b600082820183811015610845576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526110a4908590611670565b60008183106116695781610845565b5090919050565b611682826001600160a01b0316611828565b6116d3576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106117115780518252601f1990920191602091820191016116f2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611773576040519150601f19603f3d011682016040523d82523d6000602084013e611778565b606091505b5091509150816117cf576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156110a4578080602001905160208110156117eb57600080fd5b50516110a45760405162461bcd60e51b815260040180806020018281038252602a81526020018061189e602a913960400191505060405180910390fd5b3b15159056fe52657761726420616d6f756e742073686f756c6420626520666f7220616c6c20706f6f6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743616c6c6572206973206e6f742052657761726473446973747269627574696f6e20636f6e74726163745361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a723158205010f0ee41404ada9e38baaf1170b924e8f3ae94344f791d4dce12616408b91264736f6c63430005110032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f19417bfa6023c21bee565f121817454e957ab6a00000000000000000000000038118bdb3b480f570837a4c2e88fac6e83be66890000000000000000000000007f13dbb949c48f2a377fa4db4f2d5221ecbf3df9
-----Decoded View---------------
Arg [0] : _rewardsDistribution (address): 0xF19417BfA6023C21bEE565F121817454e957aB6A
Arg [1] : _rewardsToken (address): 0x38118BDB3B480F570837A4c2e88faC6E83BE6689
Arg [2] : _stakingToken (address): 0x7F13Dbb949C48f2A377FA4Db4f2d5221eCBF3dF9
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000f19417bfa6023c21bee565f121817454e957ab6a
Arg [1] : 00000000000000000000000038118bdb3b480f570837a4c2e88fac6e83be6689
Arg [2] : 0000000000000000000000007f13dbb949c48f2a377fa4db4f2d5221ecbf3df9
Deployed Bytecode Sourcemap
17429:6784:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17429:6784:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20059:145;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20059:145:0;;:::i;:::-;;;;;;;;;;;;;;;;21239:340;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21239:340:0;;:::i;:::-;;21868:317;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21868:317:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;21868:317:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;21868:317:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;21868:317:0;;-1:-1:-1;21868:317:0;-1:-1:-1;21868:317:0;:::i;19806:245::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;19806:245:0;;;;;;;;:::i;17068:34::-;;;:::i;:::-;;;;-1:-1:-1;;;;;17068:34:0;;;;;;;;;;;;;;20718:513;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20718:513:0;;;;;;;:::i;17715:168::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17715:168:0;;:::i;18231:49::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18231:49:0;;:::i;18349:54::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18349:54:0;;:::i;17972:77::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;17972:77:0;;;;;;;;:::i;19091:146::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;19091:146:0;;;;;;;;:::i;17682:26::-;;;:::i;20266:444::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20266:444:0;;;;;;;:::i;21587:213::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21587:213:0;;:::i;18177:47::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18177:47:0;;:::i;19402:396::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19402:396:0;;:::i;18287:55::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18287:55:0;;:::i;17890:20::-;;;:::i;18056:62::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18056:62:0;;;;;;;;:::i;18958:125::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18958:125:0;;:::i;23034:291::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23034:291:0;;;;;;;:::i;18125:45::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18125:45:0;;:::i;17649:26::-;;;:::i;17923:40::-;;;:::i;19245:149::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19245:149:0;;:::i;20059:145::-;20126:7;20153:43;20174:15;20190:4;20174:21;;;;;;;;;;;;;;;;;;;;20153:16;;;:10;:16;;;;;;;;;:43;:20;:43;:::i;:::-;20146:50;;20059:145;;;;:::o;21239:340::-;16044:1;16027:18;;;;;;;;21302:10;21314:4;23471:20;21314:4;23471:14;:20::i;:::-;23442:26;;;;:20;:26;;;;;:49;23525:30;23463:4;23525:24;:30::i;:::-;23502:20;;;;:14;:20;;;;;:53;-1:-1:-1;;;;;23570:21:0;;;23566:181;;23633:21;23640:7;23649:4;23633:6;:21::i;:::-;-1:-1:-1;;;;;23608:16:0;;;;;;:7;:16;;;;;;;;:22;;;;;;;;:46;;;;23709:20;:26;;;;;;23669:31;;;:22;:31;;;;;:37;;;;;;;;;:66;23566:181;21356:10;21331:14;21348:19;;;:7;:19;;;;;;;;:25;;;;;;;;;21388:10;;21384:188;;21423:10;21443:1;21415:19;;;:7;:19;;;;;;;;:25;;;;;;;;:29;21459:12;;:45;;-1:-1:-1;;;;;21459:12:0;;;;21497:6;21459:25;:45::i;:::-;21524:36;;;;;;;;;;;;;;21535:10;;21524:36;;;;;;;;21384:188;23757:1;16103;;16139:13;;16123:12;:29;16115:73;;;;;-1:-1:-1;;;16115:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21239:340;;:::o;21868:317::-;17336:19;;-1:-1:-1;;;;;17336:19:0;17322:10;:33;17314:88;;;;-1:-1:-1;;;17314:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23831:5;;-1:-1:-1;;;;;23831:5:0;23817:10;:19;23809:63;;;;;-1:-1:-1;;;23809:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21991:17;21983:66;;;;-1:-1:-1;;;21983:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22065:12;22060:118;22083:20;;;22060:118;;;22128:38;22147:6;;22154:4;22147:12;;;;;;;;;;;;;22161:4;22128:18;:38::i;:::-;22105:6;;22060:118;;;;21868:317;;:::o;19806:245::-;-1:-1:-1;;;;;20020:16:0;;19874:7;20020:16;;;:7;:16;;;;;;;;:22;;;;;;;;;19966:31;;;:22;:31;;;;;:37;;;;;;;;;19874:7;;19905:138;;:110;;20010:4;;19905:100;;19941:63;;:20;20037:4;19941:14;:20::i;:::-;:24;:63;:24;:63;:::i;:::-;-1:-1:-1;;;;;19905:25:0;;;;;;:16;:25;;;;;;;;:31;;;;;;;;;;:100;:35;:100;:::i;:::-;:104;:110;:104;:110;:::i;:::-;:114;:138;:114;:138;:::i;:::-;19898:145;;19806:245;;;;;:::o;17068:34::-;;;-1:-1:-1;;;;;17068:34:0;;:::o;20718:513::-;16044:1;16027:18;;;;;;;;20796:10;20808:4;23471:20;20808:4;23471:14;:20::i;:::-;23442:26;;;;:20;:26;;;;;:49;23525:30;23463:4;23525:24;:30::i;:::-;23502:20;;;;:14;:20;;;;;:53;-1:-1:-1;;;;;23570:21:0;;;23566:181;;23633:21;23640:7;23649:4;23633:6;:21::i;:::-;-1:-1:-1;;;;;23608:16:0;;;;;;:7;:16;;;;;;;;:22;;;;;;;;:46;;;;23709:20;:26;;;;;;23669:31;;;:22;:31;;;;;:37;;;;;;;;;:66;23566:181;20842:1;20833:6;:10;20825:40;;;;;-1:-1:-1;;;20825:40:0;;;;;;;;;;;;-1:-1:-1;;;20825:40:0;;;;;;;;;;;;;;;20890:15;20906:4;20890:21;;;;;;;;;;;;;;;;20884:3;:27;20876:70;;;;;-1:-1:-1;;;20876:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;20985:25;;;;:19;:25;;;;;;:37;;21015:6;20985:37;:29;:37;:::i;:::-;20957:25;;;;:19;:25;;;;;;;;:65;;;;21087:10;21070:28;;:16;:28;;;;;:34;;;;;;;:46;;21109:6;21070:46;:38;:46;:::i;:::-;21050:10;21033:28;;;;:16;:28;;;;;;;;:34;;;;;;;;:83;;;;21127:12;;:45;;-1:-1:-1;;;;;21127:12:0;;;;21165:6;21127:25;:45::i;:::-;21188:35;;;;;;;;;;;;;;21198:10;;21188:35;;;;;;;;16103:1;;16139:13;;16123:12;:29;16115:73;;;;;-1:-1:-1;;;16115:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;17715:168;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17715:168:0;:::o;18231:49::-;;;;;;;;;;;;;:::o;18349:54::-;;;;;;;;;;;;;:::o;17972:77::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;19091:146::-;-1:-1:-1;;;;;19198:25:0;;;;19171:7;19198:25;;;:16;:25;;;;;;;;:31;;;;;;;;;19091:146::o;17682:26::-;;;-1:-1:-1;;;;;17682:26:0;;:::o;20266:444::-;16044:1;16027:18;;;;;;;;20343:10;20355:4;23471:20;20355:4;23471:14;:20::i;:::-;23442:26;;;;:20;:26;;;;;:49;23525:30;23463:4;23525:24;:30::i;:::-;23502:20;;;;:14;:20;;;;;:53;-1:-1:-1;;;;;23570:21:0;;;23566:181;;23633:21;23640:7;23649:4;23633:6;:21::i;:::-;-1:-1:-1;;;;;23608:16:0;;;;;;:7;:16;;;;;;;;:22;;;;;;;;:46;;;;23709:20;:26;;;;;;23669:31;;;:22;:31;;;;;:37;;;;;;;;;:66;23566:181;20389:1;20380:6;:10;20372:37;;;;;-1:-1:-1;;;20372:37:0;;;;;;;;;;;;-1:-1:-1;;;20372:37:0;;;;;;;;;;;;;;;20448:25;;;;:19;:25;;;;;;:37;;20478:6;20448:37;:29;:37;:::i;:::-;20420:25;;;;:19;:25;;;;;;;;:65;;;;20550:10;20533:28;;:16;:28;;;;;:34;;;;;;;:46;;20572:6;20533:46;:38;:46;:::i;:::-;20513:10;20496:28;;;;:16;:28;;;;;;;;:34;;;;;;;;:83;;;;20590:12;;:64;;-1:-1:-1;;;;;20590:12:0;;;;20640:4;20647:6;20590:29;:64::i;:::-;20670:32;;;;;;;;;;;;;;20677:10;;20670:32;;;;;;;;16103:1;;16139:13;;16123:12;:29;16115:73;;;;;-1:-1:-1;;;16115:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;21587:213;21649:15;21665:4;21649:21;;;;;;;;;;;;;;;;21643:3;:27;21635:70;;;;;-1:-1:-1;;;21635:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21742:10;21725:28;;;;:16;:28;;;;;;;;:34;;;;;;;;;21716:50;;21754:4;21716:8;:50::i;:::-;21777:15;21787:4;21777:9;:15::i;:::-;21587:213;:::o;18177:47::-;;;;;;;;;;;;;:::o;19402:396::-;19461:7;19485:25;;;:19;:25;;;;;;19481:96;;-1:-1:-1;19539:26:0;;;;:20;:26;;;;;;19532:33;;19481:96;19749:25;;;;:19;:25;;;;;;;;;19717:10;:16;;;;;;19691:14;:20;;;;;;19607:183;;19656:119;;19749:25;;19656:88;;19739:4;;19656:78;;19717:16;19656:78;;:30;19769:4;19656:24;:30::i;:56::-;:60;:78;:60;:78;:::i;:119::-;19607:26;;;;:20;:26;;;;;;;:183;:30;:183;:::i;18287:55::-;;;;;;;;;;;;;:::o;17890:20::-;;;-1:-1:-1;;;;;17890:20:0;;:::o;18056:62::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;18958:125::-;19023:7;19050:25;;;:19;:25;;;;;;;18958:125::o;23034:291::-;23831:5;;-1:-1:-1;;;;;23831:5:0;23817:10;:19;23809:63;;;;;-1:-1:-1;;;23809:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;23135:1;23139:4;23471:20;23486:4;23471:14;:20::i;:::-;23442:26;;;;:20;:26;;;;;:49;23525:30;23463:4;23525:24;:30::i;:::-;23502:20;;;;:14;:20;;;;;:53;-1:-1:-1;;;;;23570:21:0;;;23566:181;;23633:21;23640:7;23649:4;23633:6;:21::i;:::-;-1:-1:-1;;;;;23608:16:0;;;;;;:7;:16;;;;;;;;:22;;;;;;;;:46;;;;23709:20;:26;;;;;;23669:31;;;:22;:31;;;;;:37;;;;;;;;;:66;23566:181;23172:1;23163:6;:10;23155:40;;;;;-1:-1:-1;;;23155:40:0;;;;;;;;;;;;-1:-1:-1;;;23155:40:0;;;;;;;;;;;;;;;23220:15;;23214:3;:21;23206:60;;;;;-1:-1:-1;;;23206:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;23303:5;;23277:12;;:40;;-1:-1:-1;;;;;23277:12:0;;;;23303:5;23310:6;23277:40;:25;:40;:::i;:::-;23883:1;;23034:291;;:::o;18125:45::-;;;;;;;;;;;;;:::o;17649:26::-;;;-1:-1:-1;;;;;17649:26:0;;:::o;17923:40::-;;;;:::o;19245:149::-;19314:7;19367:18;;;:12;:18;;;;;;19341:45;;19350:15;;19341:8;:45::i;3849:470::-;3907:7;4151:6;4147:47;;-1:-1:-1;4181:1:0;4174:8;;4147:47;4218:5;;;4222:1;4218;:5;:1;4242:5;;;;;:10;4234:56;;;;-1:-1:-1;;;4234:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11606:176;11715:58;;;-1:-1:-1;;;;;11715:58:0;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;11715:58:0;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;11689:85:0;;11708:5;;11689:18;:85::i;22193:829::-;17336:19;;-1:-1:-1;;;;;17336:19:0;17322:10;:33;17314:88;;;;-1:-1:-1;;;17314:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22305:1;22309:4;23471:20;23486:4;23471:14;:20::i;:::-;23442:26;;;;:20;:26;;;;;:49;23525:30;23463:4;23525:24;:30::i;:::-;23502:20;;;;:14;:20;;;;;:53;-1:-1:-1;;;;;23570:21:0;;;23566:181;;23633:21;23640:7;23649:4;23633:6;:21::i;:::-;-1:-1:-1;;;;;23608:16:0;;;;;;:7;:16;;;;;;;;:22;;;;;;;;:46;;;;23709:20;:26;;;;;;23669:31;;;:22;:31;;;;;:37;;;;;;;;;:66;23566:181;22349:18;;;;:12;:18;;;;;;22330:15;:37;22326:360;;22403:33;22414:15;22430:4;22414:21;;;;;;;;;;;;;;;;22403:6;:10;;:33;;;;:::i;:::-;22384:16;;;;:10;:16;;;;;:52;22326:360;;;22469:17;22489:18;;;:12;:18;;;;;;:39;;22512:15;22489:39;:22;:39;:::i;:::-;22543:16;22576;;;:10;:16;;;;;;22469:59;;-1:-1:-1;22543:16:0;22562:31;;22469:59;;22562:31;:13;:31;:::i;:::-;22543:50;;22627:47;22652:15;22668:4;22652:21;;;;;;;;;;;;;;;;;;22627:20;:6;22638:8;22627:20;:10;:20;:::i;:47::-;22608:16;;;;:10;:16;;;;;:66;-1:-1:-1;;22326:360:0;22711:12;;:37;;;-1:-1:-1;;;22711:37:0;;22742:4;22711:37;;;;;;22696:12;;-1:-1:-1;;;;;22711:12:0;;:22;;:37;;;;;;;;;;;;;;:12;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;22711:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22711:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22711:37:0;22799:15;:21;;22711:37;;-1:-1:-1;22787:34:0;;22815:4;;22799:21;;;;;;;;;;;;;;22787:7;:11;;:34;;;;:::i;:::-;22767:16;;;;:10;:16;;;;;;:54;;22759:91;;;;;-1:-1:-1;;;22759:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;22861:20;;;;:14;:20;;;;;22884:15;22861:38;;22951:15;:21;;22931:42;;22951:15;22876:4;;22951:21;;;;;;;;;;;;;;22931:15;:19;;:42;;;;:::i;:::-;22910:18;;;;:12;:18;;;;;;;;;:63;;;;22989:25;;;;;;;;;;;;;;;;;;;;;;;23757:1;17413;;22193:829;;:::o;3414:184::-;3472:7;3505:1;3500;:6;;3492:49;;;;;-1:-1:-1;;;3492:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3564:5:0;;;3414:184::o;4787:333::-;4845:7;4944:1;4940;:5;4932:44;;;;;-1:-1:-1;;;4932:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4987:9;5003:1;4999;:5;;;;;;;4787:333;-1:-1:-1;;;;4787:333:0:o;2958:181::-;3016:7;3048:5;;;3072:6;;;;3064:46;;;;;-1:-1:-1;;;3064:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11790:204;11917:68;;;-1:-1:-1;;;;;11917:68:0;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;11917:68:0;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;11891:95:0;;11910:5;;11891:18;:95::i;1701:106::-;1759:7;1790:1;1786;:5;:13;;1798:1;1786:13;;;-1:-1:-1;1794:1:0;;1701:106;-1:-1:-1;1701:106:0:o;13600:1114::-;14204:27;14212:5;-1:-1:-1;;;;;14204:25:0;;:27::i;:::-;14196:71;;;;;-1:-1:-1;;;14196:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14341:12;14355:23;14390:5;-1:-1:-1;;;;;14382:19:0;14402:4;14382:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;14382: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;;14340:67:0;;;;14426:7;14418:52;;;;;-1:-1:-1;;;14418:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14487:17;;:21;14483:224;;14629:10;14618:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14618:30:0;14610:85;;;;-1:-1:-1;;;14610:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10619:422;10986:20;11025:8;;;10619:422::o
Swarm Source
bzzr://5010f0ee41404ada9e38baaf1170b924e8f3ae94344f791d4dce12616408b912
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.