ETH Price: $2,081.17 (-3.02%)

Contract

0x4573dFfca2Fd899793ab2f50B5E4D86cC7Dc28a3
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw120037412021-03-09 10:15:071838 days ago1615284907IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0071879287.8
Stake118544212021-02-14 11:00:301861 days ago1613300430IN
0x4573dFfc...cC7Dc28a3
0 ETH0.01396633128
Withdraw118541162021-02-14 9:54:251861 days ago1613296465IN
0x4573dFfc...cC7Dc28a3
0 ETH0.01410095134
Stake118282602021-02-10 10:37:101865 days ago1612953430IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0204697174.00000145
Stake118282392021-02-10 10:33:491865 days ago1612953229IN
0x4573dFfc...cC7Dc28a3
0 ETH0.005200
Stake117707712021-02-01 14:10:491874 days ago1612188649IN
0x4573dFfc...cC7Dc28a3
0 ETH0.02788295131
Exit116993392021-01-21 14:26:261885 days ago1611239186IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0144072295
Exit116766322021-01-18 2:50:191888 days ago1610938219IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0046462734
Get Reward116232572021-01-09 22:19:071897 days ago1610230747IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0041663149.5
Get Reward115536442020-12-30 5:58:161907 days ago1609307896IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0054907575
Withdraw115536362020-12-30 5:56:231907 days ago1609307783IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0153581772
Exit115536202020-12-30 5:52:451907 days ago1609307565IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0182573
Get Reward114845372020-12-19 15:29:531918 days ago1608391793IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0023904927.1
Withdraw114844672020-12-19 15:16:111918 days ago1608390971IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0030824327.1
Exit114735882020-12-17 23:11:581920 days ago1608246718IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0072551550
Exit114662082020-12-16 19:58:461921 days ago1608148726IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0080051550
Stake114542002020-12-14 23:45:211923 days ago1607989521IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0039779530.0024
Withdraw114453632020-12-13 15:01:351924 days ago1607871695IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0052310746
Stake114428272020-12-13 5:51:351924 days ago1607838695IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0046479921
Withdraw114395752020-12-12 17:48:291925 days ago1607795309IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0022748620
Withdraw114391932020-12-12 16:24:421925 days ago1607790282IN
0x4573dFfc...cC7Dc28a3
0 ETH0.01087550
Stake114373262020-12-12 9:36:341925 days ago1607765794IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0073365333.14706534
Stake114360942020-12-12 5:08:111925 days ago1607749691IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0067667130.00000145
Stake114351852020-12-12 1:34:191925 days ago1607736859IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0043629637.1
Stake114347122020-12-11 23:51:171926 days ago1607730677IN
0x4573dFfc...cC7Dc28a3
0 ETH0.0153383769.3
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
StakingRewards

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-12-11
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.6.12;

library Math {
  function max(uint a, uint b) internal pure returns (uint) {
    return a >= b ? a : b;
  }

  function min(uint a, uint b) internal pure returns (uint) {
    return a < b ? a : b;
  }

  function average(uint a, uint b) internal pure returns (uint) {
    // (a + b) / 2 can overflow, so we distribute
    return (a / 2) + (b / 2) + ((a % 2 + b % 2) / 2);
  }
}

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) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        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-contracts/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) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message 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, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        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) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message 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, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

interface IERC20 {
  function totalSupply() external view returns (uint);
  function balanceOf(address account) external view returns (uint);
  function transfer(address recipient, uint amount) external returns (bool);
  function allowance(address owner, address spender) external view returns (uint);
  function approve(address spender, uint amount) external returns (bool);
  function transferFrom(address sender, address recipient, uint amount) external returns (bool);
}

interface IRewardReceiver {

  function pushRewards() external;
}

contract Ownable {

  address public owner;

  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

  constructor() internal {
    owner = msg.sender;
    emit OwnershipTransferred(address(0), owner);
  }

  modifier onlyOwner() {
    require(isOwner(), "Ownable: caller is not the owner");
    _;
  }

  function isOwner() public view returns (bool) {
    return msg.sender == owner;
  }

  function renounceOwnership() public onlyOwner {
    emit OwnershipTransferred(owner, address(0));
    owner = address(0);
  }

  function transferOwnership(address newOwner) public onlyOwner {
    _transferOwnership(newOwner);
  }

  function _transferOwnership(address newOwner) internal {
    require(newOwner != address(0), "Ownable: new owner is the zero address");
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }
}

contract StakingRewards is Ownable {

  using SafeMath for uint;

  IERC20 public lpt;
  IERC20 public rewardToken;

  uint public totalSupply;
  uint public DURATION = 7 days;
  IRewardReceiver public rewardReceiver;

  uint public starttime;
  uint public periodFinish = 0;
  uint public rewardRate = 0;
  uint public lastUpdateTime;
  uint public rewardPerTokenStored;

  mapping(address => uint) public userRewardPerTokenPaid;
  mapping(address => uint) public rewards;
  mapping(address => uint) public balanceOf;

  event RewardAdded(uint reward);
  event Staked(address indexed user, uint amount);
  event Withdrawn(address indexed user, uint amount);
  event RewardPaid(address indexed user, uint reward);

  constructor(address _rewardToken, address _lptoken, IRewardReceiver _rewardReceiver) public {
    rewardToken  = IERC20(_rewardToken);
    lpt = IERC20(_lptoken);
    rewardReceiver = _rewardReceiver;
    starttime = block.timestamp;
  }

  modifier checkStart() {
    require(block.timestamp >= starttime, "not start");
    _;
  }

  modifier updateReward(address _account) {
    rewardPerTokenStored = rewardPerToken();
    lastUpdateTime = lastTimeRewardApplicable();
    if (_account != address(0)) {
      rewards[_account] = earned(_account);
      userRewardPerTokenPaid[_account] = rewardPerTokenStored;
    }
    _;
  }

  modifier pullRewards() {
    rewardReceiver.pushRewards();
    _;
  }

  function lastTimeRewardApplicable() public view returns (uint) {
    return Math.min(block.timestamp, periodFinish);
  }

  function rewardPerToken() public view returns (uint) {
    if (totalSupply == 0) {
      return rewardPerTokenStored;
    }
    return
      rewardPerTokenStored.add(
        lastTimeRewardApplicable()
          .sub(lastUpdateTime)
          .mul(rewardRate)
          .mul(1e18)
          .div(totalSupply)
      );
  }

  function earned(address _account) public view returns (uint) {
    return
      balanceOf[_account]
        .mul(rewardPerToken().sub(userRewardPerTokenPaid[_account]))
        .div(1e18)
        .add(rewards[_account]);
  }

  // stake visibility is public as overriding LPTokenWrapper's stake() function
  function stake(uint _amount) public pullRewards updateReward(msg.sender) checkStart {
    require(_amount > 0, "Cannot stake 0");
    totalSupply = totalSupply.add(_amount);
    balanceOf[msg.sender] = balanceOf[msg.sender].add(_amount);
    lpt.transferFrom(msg.sender, address(this), _amount);
    emit Staked(msg.sender, _amount);
  }

  function withdraw(uint _amount) public pullRewards updateReward(msg.sender) checkStart {
    require(_amount > 0, "Cannot withdraw 0");
    totalSupply = totalSupply.sub(_amount);
    balanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount);
    lpt.transfer(msg.sender, _amount);
    emit Withdrawn(msg.sender, _amount);
  }

  function exit() public {
    withdraw(balanceOf[msg.sender]);
    getReward();
  }

  function getReward() public updateReward(msg.sender) checkStart {
    uint reward = earned(msg.sender);
    if (reward > 0) {
      rewards[msg.sender] = 0;
      rewardToken.transfer(msg.sender, reward);
      emit RewardPaid(msg.sender, reward);
    }
  }

  function notifyRewardAmount(uint _reward)
    public
    updateReward(address(0))
  {
    require(msg.sender == owner || msg.sender == address(rewardReceiver), "invalid reward source");

    if (block.timestamp > starttime) {
      if (block.timestamp >= periodFinish) {
        rewardRate = _reward.div(DURATION);
      } else {
        uint remaining = periodFinish.sub(block.timestamp);
        uint leftover = remaining.mul(rewardRate);
        rewardRate = _reward.add(leftover).div(DURATION);
      }
      lastUpdateTime = block.timestamp;
      periodFinish = block.timestamp.add(DURATION);
      emit RewardAdded(_reward);
    } else {
      rewardRate = _reward.div(DURATION);
      lastUpdateTime = starttime;
      periodFinish = starttime.add(DURATION);
      emit RewardAdded(_reward);
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_rewardToken","type":"address"},{"internalType":"address","name":"_lptoken","type":"address"},{"internalType":"contract IRewardReceiver","name":"_rewardReceiver","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"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"},{"inputs":[],"name":"DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpt","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_reward","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodFinish","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardReceiver","outputs":[{"internalType":"contract IRewardReceiver","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"starttime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userRewardPerTokenPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405262093a806004556000600755600060085534801561002157600080fd5b5060405161209f38038061209f8339818101604052606081101561004457600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a382600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042600681905550505050611e9f806102006000396000f3fe608060405234801561001057600080fd5b50600436106101725760003560e01c80638b876347116100de578063cd3daf9d11610097578063e9fad8ee11610071578063e9fad8ee14610521578063ebe2b12b1461052b578063f2fde38b14610549578063f7c618c11461058d57610172565b8063cd3daf9d146104b1578063ce5fc8d0146104cf578063df136d651461050357610172565b80638b8763471461039b5780638da58897146103f35780638da5cb5b146104115780638f32d59b14610445578063a694fc3a14610465578063c8f33c911461049357610172565b80633c6b16ab116101305780633c6b16ab146102c55780633d18b912146102f357806370a08231146102fd578063715018a6146103555780637b0a47ee1461035f57806380faa57d1461037d57610172565b80628cc262146101775780630700037d146101cf57806318160ddd146102275780631be05289146102455780631dac30b0146102635780632e1a7d4d14610297575b600080fd5b6101b96004803603602081101561018d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105c1565b6040518082815260200191505060405180910390f35b610211600480360360208110156101e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106df565b6040518082815260200191505060405180910390f35b61022f6106f7565b6040518082815260200191505060405180910390f35b61024d6106fd565b6040518082815260200191505060405180910390f35b61026b610703565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102c3600480360360208110156102ad57600080fd5b8101908080359060200190929190505050610729565b005b6102f1600480360360208110156102db57600080fd5b8101908080359060200190929190505050610b4e565b005b6102fb610ebc565b005b61033f6004803603602081101561031357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611195565b6040518082815260200191505060405180910390f35b61035d6111ad565b005b6103676112e5565b6040518082815260200191505060405180910390f35b6103856112eb565b6040518082815260200191505060405180910390f35b6103dd600480360360208110156103b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112fe565b6040518082815260200191505060405180910390f35b6103fb611316565b6040518082815260200191505060405180910390f35b61041961131c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61044d611340565b60405180821515815260200191505060405180910390f35b6104916004803603602081101561047b57600080fd5b8101908080359060200190929190505050611397565b005b61049b6117da565b6040518082815260200191505060405180910390f35b6104b96117e0565b6040518082815260200191505060405180910390f35b6104d761186e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61050b611894565b6040518082815260200191505060405180910390f35b61052961189a565b005b6105336118ec565b6040518082815260200191505060405180910390f35b61058b6004803603602081101561055f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f2565b005b610595611978565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006106d8600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106ca670de0b6b3a76400006106bc61066e600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106606117e0565b61199e90919063ffffffff16565b600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119e890919063ffffffff16565b611a6e90919063ffffffff16565b611ab890919063ffffffff16565b9050919050565b600c6020528060005260406000206000915090505481565b60035481565b60045481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632a167eb86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561079357600080fd5b505af11580156107a7573d6000803e3d6000fd5b50505050336107b46117e0565b600a819055506107c26112eb565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461088f57610805816105c1565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a54600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600654421015610907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000821161097d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43616e6e6f74207769746864726177203000000000000000000000000000000081525060200191505060405180910390fd5b6109928260035461199e90919063ffffffff16565b6003819055506109ea82600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461199e90919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610ac057600080fd5b505af1158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5836040518082815260200191505060405180910390a25050565b6000610b586117e0565b600a81905550610b666112eb565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c3357610ba9816105c1565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a54600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610cda5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610d4c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f696e76616c69642072657761726420736f75726365000000000000000000000081525060200191505060405180910390fd5b600654421115610e3f576007544210610d7f57610d7460045483611a6e90919063ffffffff16565b600881905550610de1565b6000610d964260075461199e90919063ffffffff16565b90506000610daf600854836119e890919063ffffffff16565b9050610dd8600454610dca8387611ab890919063ffffffff16565b611a6e90919063ffffffff16565b60088190555050505b42600981905550610dfd60045442611ab890919063ffffffff16565b6007819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d826040518082815260200191505060405180910390a1610eb8565b610e5460045483611a6e90919063ffffffff16565b600881905550600654600981905550610e7a600454600654611ab890919063ffffffff16565b6007819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d826040518082815260200191505060405180910390a15b5050565b33610ec56117e0565b600a81905550610ed36112eb565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610fa057610f16816105c1565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a54600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600654421015611018576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000611023336105c1565b90506000811115611191576000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561110657600080fd5b505af115801561111a573d6000803e3d6000fd5b505050506040513d602081101561113057600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486826040518082815260200191505060405180910390a25b5050565b600d6020528060005260406000206000915090505481565b6111b5611340565b611227576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b60006112f942600754611b40565b905090565b600b6020528060005260406000206000915090505481565b60065481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632a167eb86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561140157600080fd5b505af1158015611415573d6000803e3d6000fd5b50505050336114226117e0565b600a819055506114306112eb565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146114fd57611473816105c1565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a54600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600654421015611575576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600082116115eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f43616e6e6f74207374616b65203000000000000000000000000000000000000081525060200191505060405180910390fd5b61160082600354611ab890919063ffffffff16565b60038190555061165882600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ab890919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b505050506040513d602081101561177657600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d836040518082815260200191505060405180910390a25050565b60095481565b60008060035414156117f657600a54905061186b565b611868611857600354611849670de0b6b3a764000061183b60085461182d60095461181f6112eb565b61199e90919063ffffffff16565b6119e890919063ffffffff16565b6119e890919063ffffffff16565b611a6e90919063ffffffff16565b600a54611ab890919063ffffffff16565b90505b90565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6118e2600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610729565b6118ea610ebc565b565b60075481565b6118fa611340565b61196c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61197581611b59565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006119e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c9c565b905092915050565b6000808314156119fb5760009050611a68565b6000828402905082848281611a0c57fe5b0414611a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611e496021913960400191505060405180910390fd5b809150505b92915050565b6000611ab083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d5c565b905092915050565b600080828401905083811015611b36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000818310611b4f5781611b51565b825b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611e236026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000838311158290611d49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d0e578082015181840152602081019050611cf3565b50505050905090810190601f168015611d3b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290611e08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611dcd578082015181840152602081019050611db2565b50505050905090810190601f168015611dfa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611e1457fe5b04905080915050939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220f9d2ff11c408d71fed6abe68b26917f7fe42755228284b91c30dc096a0b83aff64736f6c634300060c0033000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000fbfaf8d8e5d82e87b80578fd348f60fb664e93900000000000000000000000005988bd402f1efcdbb3e2ab8537093e6484650046

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101725760003560e01c80638b876347116100de578063cd3daf9d11610097578063e9fad8ee11610071578063e9fad8ee14610521578063ebe2b12b1461052b578063f2fde38b14610549578063f7c618c11461058d57610172565b8063cd3daf9d146104b1578063ce5fc8d0146104cf578063df136d651461050357610172565b80638b8763471461039b5780638da58897146103f35780638da5cb5b146104115780638f32d59b14610445578063a694fc3a14610465578063c8f33c911461049357610172565b80633c6b16ab116101305780633c6b16ab146102c55780633d18b912146102f357806370a08231146102fd578063715018a6146103555780637b0a47ee1461035f57806380faa57d1461037d57610172565b80628cc262146101775780630700037d146101cf57806318160ddd146102275780631be05289146102455780631dac30b0146102635780632e1a7d4d14610297575b600080fd5b6101b96004803603602081101561018d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105c1565b6040518082815260200191505060405180910390f35b610211600480360360208110156101e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106df565b6040518082815260200191505060405180910390f35b61022f6106f7565b6040518082815260200191505060405180910390f35b61024d6106fd565b6040518082815260200191505060405180910390f35b61026b610703565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102c3600480360360208110156102ad57600080fd5b8101908080359060200190929190505050610729565b005b6102f1600480360360208110156102db57600080fd5b8101908080359060200190929190505050610b4e565b005b6102fb610ebc565b005b61033f6004803603602081101561031357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611195565b6040518082815260200191505060405180910390f35b61035d6111ad565b005b6103676112e5565b6040518082815260200191505060405180910390f35b6103856112eb565b6040518082815260200191505060405180910390f35b6103dd600480360360208110156103b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112fe565b6040518082815260200191505060405180910390f35b6103fb611316565b6040518082815260200191505060405180910390f35b61041961131c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61044d611340565b60405180821515815260200191505060405180910390f35b6104916004803603602081101561047b57600080fd5b8101908080359060200190929190505050611397565b005b61049b6117da565b6040518082815260200191505060405180910390f35b6104b96117e0565b6040518082815260200191505060405180910390f35b6104d761186e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61050b611894565b6040518082815260200191505060405180910390f35b61052961189a565b005b6105336118ec565b6040518082815260200191505060405180910390f35b61058b6004803603602081101561055f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f2565b005b610595611978565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006106d8600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106ca670de0b6b3a76400006106bc61066e600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106606117e0565b61199e90919063ffffffff16565b600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119e890919063ffffffff16565b611a6e90919063ffffffff16565b611ab890919063ffffffff16565b9050919050565b600c6020528060005260406000206000915090505481565b60035481565b60045481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632a167eb86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561079357600080fd5b505af11580156107a7573d6000803e3d6000fd5b50505050336107b46117e0565b600a819055506107c26112eb565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461088f57610805816105c1565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a54600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600654421015610907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000821161097d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43616e6e6f74207769746864726177203000000000000000000000000000000081525060200191505060405180910390fd5b6109928260035461199e90919063ffffffff16565b6003819055506109ea82600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461199e90919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610ac057600080fd5b505af1158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5836040518082815260200191505060405180910390a25050565b6000610b586117e0565b600a81905550610b666112eb565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c3357610ba9816105c1565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a54600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610cda5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610d4c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f696e76616c69642072657761726420736f75726365000000000000000000000081525060200191505060405180910390fd5b600654421115610e3f576007544210610d7f57610d7460045483611a6e90919063ffffffff16565b600881905550610de1565b6000610d964260075461199e90919063ffffffff16565b90506000610daf600854836119e890919063ffffffff16565b9050610dd8600454610dca8387611ab890919063ffffffff16565b611a6e90919063ffffffff16565b60088190555050505b42600981905550610dfd60045442611ab890919063ffffffff16565b6007819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d826040518082815260200191505060405180910390a1610eb8565b610e5460045483611a6e90919063ffffffff16565b600881905550600654600981905550610e7a600454600654611ab890919063ffffffff16565b6007819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d826040518082815260200191505060405180910390a15b5050565b33610ec56117e0565b600a81905550610ed36112eb565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610fa057610f16816105c1565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a54600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600654421015611018576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000611023336105c1565b90506000811115611191576000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561110657600080fd5b505af115801561111a573d6000803e3d6000fd5b505050506040513d602081101561113057600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486826040518082815260200191505060405180910390a25b5050565b600d6020528060005260406000206000915090505481565b6111b5611340565b611227576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b60006112f942600754611b40565b905090565b600b6020528060005260406000206000915090505481565b60065481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632a167eb86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561140157600080fd5b505af1158015611415573d6000803e3d6000fd5b50505050336114226117e0565b600a819055506114306112eb565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146114fd57611473816105c1565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a54600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600654421015611575576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600082116115eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f43616e6e6f74207374616b65203000000000000000000000000000000000000081525060200191505060405180910390fd5b61160082600354611ab890919063ffffffff16565b60038190555061165882600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ab890919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b505050506040513d602081101561177657600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d836040518082815260200191505060405180910390a25050565b60095481565b60008060035414156117f657600a54905061186b565b611868611857600354611849670de0b6b3a764000061183b60085461182d60095461181f6112eb565b61199e90919063ffffffff16565b6119e890919063ffffffff16565b6119e890919063ffffffff16565b611a6e90919063ffffffff16565b600a54611ab890919063ffffffff16565b90505b90565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6118e2600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610729565b6118ea610ebc565b565b60075481565b6118fa611340565b61196c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61197581611b59565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006119e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c9c565b905092915050565b6000808314156119fb5760009050611a68565b6000828402905082848281611a0c57fe5b0414611a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611e496021913960400191505060405180910390fd5b809150505b92915050565b6000611ab083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d5c565b905092915050565b600080828401905083811015611b36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000818310611b4f5781611b51565b825b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611e236026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000838311158290611d49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d0e578082015181840152602081019050611cf3565b50505050905090810190601f168015611d3b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290611e08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611dcd578082015181840152602081019050611db2565b50505050905090810190601f168015611dfa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611e1457fe5b04905080915050939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220f9d2ff11c408d71fed6abe68b26917f7fe42755228284b91c30dc096a0b83aff64736f6c634300060c0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000fbfaf8d8e5d82e87b80578fd348f60fb664e93900000000000000000000000005988bd402f1efcdbb3e2ab8537093e6484650046

-----Decoded View---------------
Arg [0] : _rewardToken (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Arg [1] : _lptoken (address): 0xFBFAF8d8E5d82E87B80578fD348f60fb664e9390
Arg [2] : _rewardReceiver (address): 0x5988Bd402f1efCDbB3e2aB8537093e6484650046

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [1] : 000000000000000000000000fbfaf8d8e5d82e87b80578fd348f60fb664e9390
Arg [2] : 0000000000000000000000005988bd402f1efcdbb3e2ab8537093e6484650046


Deployed Bytecode Sourcemap

6652:4143:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8594:230;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7103:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6778:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6806:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6840:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9260:333;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9960:832;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9690:264;;;:::i;:::-;;7147:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6189:128;;;:::i;:::-;;6943:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8127:122;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7044:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6884:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5768:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6098:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8911:343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6974:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8255:333;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6724:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7005:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9599:85;;;:::i;:::-;;6910:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6323:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6746:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8594:230;8649:4;8676:142;8800:7;:17;8808:8;8800:17;;;;;;;;;;;;;;;;8676:109;8780:4;8676:89;8710:54;8731:22;:32;8754:8;8731:32;;;;;;;;;;;;;;;;8710:16;:14;:16::i;:::-;:20;;:54;;;;:::i;:::-;8676:9;:19;8686:8;8676:19;;;;;;;;;;;;;;;;:33;;:89;;;;:::i;:::-;:103;;:109;;;;:::i;:::-;:123;;:142;;;;:::i;:::-;8662:156;;8594:230;;;:::o;7103:39::-;;;;;;;;;;;;;;;;;:::o;6778:23::-;;;;:::o;6806:29::-;;;;:::o;6840:37::-;;;;;;;;;;;;;:::o;9260:333::-;8079:14;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9324:10:::1;7812:16;:14;:16::i;:::-;7789:20;:39;;;;7852:26;:24;:26::i;:::-;7835:14;:43;;;;7909:1;7889:22;;:8;:22;;;7885:145;;7942:16;7949:8;7942:6;:16::i;:::-;7922:7;:17;7930:8;7922:17;;;;;;;;;;;;;;;:36;;;;8002:20;;7967:22;:32;7990:8;7967:32;;;;;;;;;;;;;;;:55;;;;7885:145;7699:9:::2;;7680:15;:28;;7672:50;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;9372:1:::3;9362:7;:11;9354:41;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;9416:24;9432:7;9416:11;;:15;;:24;;;;:::i;:::-;9402:11;:38;;;;9471:34;9497:7;9471:9;:21;9481:10;9471:21;;;;;;;;;;;;;;;;:25;;:34;;;;:::i;:::-;9447:9;:21;9457:10;9447:21;;;;;;;;;;;;;;;:58;;;;9512:3;;;;;;;;;;;:12;;;9525:10;9537:7;9512:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;9567:10;9557:30;;;9579:7;9557:30;;;;;;;;;;;;;;;;;;8114:1:::1;9260:333:::0;:::o;9960:832::-;10040:1;7812:16;:14;:16::i;:::-;7789:20;:39;;;;7852:26;:24;:26::i;:::-;7835:14;:43;;;;7909:1;7889:22;;:8;:22;;;7885:145;;7942:16;7949:8;7942:6;:16::i;:::-;7922:7;:17;7930:8;7922:17;;;;;;;;;;;;;;;:36;;;;8002:20;;7967:22;:32;7990:8;7967:32;;;;;;;;;;;;;;;:55;;;;7885:145;10076:5:::1;::::0;::::1;;;;;;;;10062:19;;:10;:19;;;:60;;;;10107:14;;;;;;;;;;;10085:37;;:10;:37;;;10062:60;10054:94;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;10179:9;;10161:15;:27;10157:630;;;10222:12;;10203:15;:31;10199:280;;10260:21;10272:8;;10260:7;:11;;:21;;;;:::i;:::-;10247:10;:34;;;;10199:280;;;10308:14;10325:33;10342:15;10325:12;;:16;;:33;;;;:::i;:::-;10308:50;;10369:13;10385:25;10399:10;;10385:9;:13;;:25;;;;:::i;:::-;10369:41;;10434:35;10460:8;;10434:21;10446:8;10434:7;:11;;:21;;;;:::i;:::-;:25;;:35;;;;:::i;:::-;10421:10;:48;;;;10199:280;;;10504:15;10487:14;:32;;;;10543:29;10563:8;;10543:15;:19;;:29;;;;:::i;:::-;10528:12;:44;;;;10586:20;10598:7;10586:20;;;;;;;;;;;;;;;;;;10157:630;;;10642:21;10654:8;;10642:7;:11;;:21;;;;:::i;:::-;10629:10;:34;;;;10689:9;;10672:14;:26;;;;10722:23;10736:8;;10722:9;;:13;;:23;;;;:::i;:::-;10707:12;:38;;;;10759:20;10771:7;10759:20;;;;;;;;;;;;;;;;;;10157:630;9960:832:::0;;:::o;9690:264::-;9731:10;7812:16;:14;:16::i;:::-;7789:20;:39;;;;7852:26;:24;:26::i;:::-;7835:14;:43;;;;7909:1;7889:22;;:8;:22;;;7885:145;;7942:16;7949:8;7942:6;:16::i;:::-;7922:7;:17;7930:8;7922:17;;;;;;;;;;;;;;;:36;;;;8002:20;;7967:22;:32;7990:8;7967:32;;;;;;;;;;;;;;;:55;;;;7885:145;7699:9:::1;;7680:15;:28;;7672:50;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;9761:11:::2;9775:18;9782:10;9775:6;:18::i;:::-;9761:32;;9813:1;9804:6;:10;9800:149;;;9847:1;9825:7;:19;9833:10;9825:19;;;;;;;;;;;;;;;:23;;;;9857:11;;;;;;;;;;;:20;;;9878:10;9890:6;9857:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;9922:10;9911:30;;;9934:6;9911:30;;;;;;;;;;;;;;;;;;9800:149;7729:1;9690:264:::0;:::o;7147:41::-;;;;;;;;;;;;;;;;;:::o;6189:128::-;6032:9;:7;:9::i;:::-;6024:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6283:1:::1;6247:39;;6268:5;::::0;::::1;;;;;;;;6247:39;;;;;;;;;;;;6309:1;6293:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;6189:128::o:0;6943:26::-;;;;:::o;8127:122::-;8184:4;8204:39;8213:15;8230:12;;8204:8;:39::i;:::-;8197:46;;8127:122;:::o;7044:54::-;;;;;;;;;;;;;;;;;:::o;6884:21::-;;;;:::o;5768:20::-;;;;;;;;;;;;:::o;6098:85::-;6138:4;6172:5;;;;;;;;;;;6158:19;;:10;:19;;;6151:26;;6098:85;:::o;8911:343::-;8079:14;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8972:10:::1;7812:16;:14;:16::i;:::-;7789:20;:39;;;;7852:26;:24;:26::i;:::-;7835:14;:43;;;;7909:1;7889:22;;:8;:22;;;7885:145;;7942:16;7949:8;7942:6;:16::i;:::-;7922:7;:17;7930:8;7922:17;;;;;;;;;;;;;;;:36;;;;8002:20;;7967:22;:32;7990:8;7967:32;;;;;;;;;;;;;;;:55;;;;7885:145;7699:9:::2;;7680:15;:28;;7672:50;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;9020:1:::3;9010:7;:11;9002:38;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;9061:24;9077:7;9061:11;;:15;;:24;;;;:::i;:::-;9047:11;:38;;;;9116:34;9142:7;9116:9;:21;9126:10;9116:21;;;;;;;;;;;;;;;;:25;;:34;;;;:::i;:::-;9092:9;:21;9102:10;9092:21;;;;;;;;;;;;;;;:58;;;;9157:3;;;;;;;;;;;:16;;;9174:10;9194:4;9201:7;9157:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;9228:10;9221:27;;;9240:7;9221:27;;;;;;;;;;;;;;;;;;8114:1:::1;8911:343:::0;:::o;6974:26::-;;;;:::o;8255:333::-;8302:4;8334:1;8319:11;;:16;8315:66;;;8353:20;;8346:27;;;;8315:66;8401:181;8436:137;8561:11;;8436:108;8539:4;8436:86;8511:10;;8436:58;8479:14;;8436:26;:24;:26::i;:::-;:42;;:58;;;;:::i;:::-;:74;;:86;;;;:::i;:::-;:102;;:108;;;;:::i;:::-;:124;;:137;;;;:::i;:::-;8401:20;;:24;;:181;;;;:::i;:::-;8387:195;;8255:333;;:::o;6724:17::-;;;;;;;;;;;;;:::o;7005:32::-;;;;:::o;9599:85::-;9629:31;9638:9;:21;9648:10;9638:21;;;;;;;;;;;;;;;;9629:8;:31::i;:::-;9667:11;:9;:11::i;:::-;9599:85::o;6910:28::-;;;;:::o;6323:103::-;6032:9;:7;:9::i;:::-;6024:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6392:28:::1;6411:8;6392:18;:28::i;:::-;6323:103:::0;:::o;6746:25::-;;;;;;;;;;;;;:::o;1191:136::-;1249:7;1276:43;1280:1;1283;1276:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1269:50;;1191:136;;;;:::o;2081:471::-;2139:7;2389:1;2384;:6;2380:47;;;2414:1;2407:8;;;;2380:47;2439:9;2455:1;2451;:5;2439:17;;2484:1;2479;2475;:5;;;;;;:10;2467:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2543:1;2536:8;;;2081:471;;;;;:::o;3028:132::-;3086:7;3113:39;3117:1;3120;3113:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3106:46;;3028:132;;;;:::o;727:181::-;785:7;805:9;821:1;817;:5;805:17;;846:1;841;:6;;833:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;899:1;892:8;;;727:181;;;;:::o;186:91::-;238:4;262:1;258;:5;:13;;270:1;258:13;;;266:1;258:13;251:20;;186:91;;;;:::o;6432:213::-;6522:1;6502:22;;:8;:22;;;;6494:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6607:8;6579:37;;6600:5;;;;;;;;;;6579:37;;;;;;;;;;;;6631:8;6623:5;;:16;;;;;;;;;;;;;;;;;;6432:213;:::o;1630:192::-;1716:7;1749:1;1744;:6;;1752:12;1736:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1776:9;1792:1;1788;:5;1776:17;;1813:1;1806:8;;;1630:192;;;;;:::o;3656:278::-;3742:7;3774:1;3770;:5;3777:12;3762:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3801:9;3817:1;3813;:5;;;;;;3801:17;;3925:1;3918:8;;;3656:278;;;;;:::o

Swarm Source

ipfs://f9d2ff11c408d71fed6abe68b26917f7fe42755228284b91c30dc096a0b83aff

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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.