More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 650 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Exit | 12758600 | 1309 days ago | IN | 0 ETH | 0.00082302 | ||||
Exit | 12370991 | 1369 days ago | IN | 0 ETH | 0.00689535 | ||||
Exit | 11873483 | 1445 days ago | IN | 0 ETH | 0.02031227 | ||||
Exit | 11858186 | 1448 days ago | IN | 0 ETH | 0.01926036 | ||||
Get Reward | 11811357 | 1455 days ago | IN | 0 ETH | 0.00838255 | ||||
Get Reward | 11811315 | 1455 days ago | IN | 0 ETH | 0.01050553 | ||||
Exit | 11796036 | 1457 days ago | IN | 0 ETH | 0.03915968 | ||||
Exit | 11646131 | 1480 days ago | IN | 0 ETH | 0.00950787 | ||||
Exit | 11633404 | 1482 days ago | IN | 0 ETH | 0.00922975 | ||||
Exit | 11631790 | 1483 days ago | IN | 0 ETH | 0.01754832 | ||||
Exit | 11574720 | 1491 days ago | IN | 0 ETH | 0.00847314 | ||||
Exit | 11429880 | 1514 days ago | IN | 0 ETH | 0.00497963 | ||||
Exit | 11410518 | 1517 days ago | IN | 0 ETH | 0.00347901 | ||||
Exit | 11407713 | 1517 days ago | IN | 0 ETH | 0.0057772 | ||||
Exit | 11405114 | 1517 days ago | IN | 0 ETH | 0.00882738 | ||||
Get Reward | 11397449 | 1519 days ago | IN | 0 ETH | 0.00185963 | ||||
Exit | 11395069 | 1519 days ago | IN | 0 ETH | 0.00404084 | ||||
Get Reward | 11390519 | 1520 days ago | IN | 0 ETH | 0.00228685 | ||||
Exit | 11380755 | 1521 days ago | IN | 0 ETH | 0.01361354 | ||||
Get Reward | 11380738 | 1521 days ago | IN | 0 ETH | 0.00689157 | ||||
Exit | 11375159 | 1522 days ago | IN | 0 ETH | 0.00367349 | ||||
Exit | 11366193 | 1523 days ago | IN | 0 ETH | 0.00658416 | ||||
Exit | 11365830 | 1523 days ago | IN | 0 ETH | 0.01447789 | ||||
Exit | 11359060 | 1524 days ago | IN | 0 ETH | 0.00600828 | ||||
Get Reward | 11354331 | 1525 days ago | IN | 0 ETH | 0.00067785 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
StakingRewards
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-10-31 */ 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; } } 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; } } 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. * * IMPORTANT: 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. // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != 0x0 && codehash != accountHash); } /** * @dev Converts an `address` into `address payable`. Note that this is * simply a type cast: the actual underlying value is not changed. * * _Available since v2.4.0._ */ function toPayable(address account) internal pure returns (address payable) { return address(uint160(account)); } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. * * _Available since v2.4.0._ */ function sendValue(address payable recipient, uint amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-call-value (bool success, ) = recipient.call { value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } } 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); event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); } interface IRewardReceiver { function pushRewards() external; } 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
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
608060405262093a806004556000600755600060085534801561002157600080fd5b5060405161209f38038061209f8339818101604052606081101561004457600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a382600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042600681905550505050611e9f806102006000396000f3fe608060405234801561001057600080fd5b50600436106101725760003560e01c80638b876347116100de578063cd3daf9d11610097578063e9fad8ee11610071578063e9fad8ee14610521578063ebe2b12b1461052b578063f2fde38b14610549578063f7c618c11461058d57610172565b8063cd3daf9d146104b1578063ce5fc8d0146104cf578063df136d651461050357610172565b80638b8763471461039b5780638da58897146103f35780638da5cb5b146104115780638f32d59b14610445578063a694fc3a14610465578063c8f33c911461049357610172565b80633c6b16ab116101305780633c6b16ab146102c55780633d18b912146102f357806370a08231146102fd578063715018a6146103555780637b0a47ee1461035f57806380faa57d1461037d57610172565b80628cc262146101775780630700037d146101cf57806318160ddd146102275780631be05289146102455780631dac30b0146102635780632e1a7d4d14610297575b600080fd5b6101b96004803603602081101561018d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105c1565b6040518082815260200191505060405180910390f35b610211600480360360208110156101e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106df565b6040518082815260200191505060405180910390f35b61022f6106f7565b6040518082815260200191505060405180910390f35b61024d6106fd565b6040518082815260200191505060405180910390f35b61026b610703565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102c3600480360360208110156102ad57600080fd5b8101908080359060200190929190505050610729565b005b6102f1600480360360208110156102db57600080fd5b8101908080359060200190929190505050610b4e565b005b6102fb610ebc565b005b61033f6004803603602081101561031357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611195565b6040518082815260200191505060405180910390f35b61035d6111ad565b005b6103676112e5565b6040518082815260200191505060405180910390f35b6103856112eb565b6040518082815260200191505060405180910390f35b6103dd600480360360208110156103b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112fe565b6040518082815260200191505060405180910390f35b6103fb611316565b6040518082815260200191505060405180910390f35b61041961131c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61044d611340565b60405180821515815260200191505060405180910390f35b6104916004803603602081101561047b57600080fd5b8101908080359060200190929190505050611397565b005b61049b6117da565b6040518082815260200191505060405180910390f35b6104b96117e0565b6040518082815260200191505060405180910390f35b6104d761186e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61050b611894565b6040518082815260200191505060405180910390f35b61052961189a565b005b6105336118ec565b6040518082815260200191505060405180910390f35b61058b6004803603602081101561055f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f2565b005b610595611978565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006106d8600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106ca670de0b6b3a76400006106bc61066e600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106606117e0565b61199e90919063ffffffff16565b600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119e890919063ffffffff16565b611a6e90919063ffffffff16565b611ab890919063ffffffff16565b9050919050565b600c6020528060005260406000206000915090505481565b60035481565b60045481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632a167eb86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561079357600080fd5b505af11580156107a7573d6000803e3d6000fd5b50505050336107b46117e0565b600a819055506107c26112eb565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461088f57610805816105c1565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a54600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600654421015610907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000821161097d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43616e6e6f74207769746864726177203000000000000000000000000000000081525060200191505060405180910390fd5b6109928260035461199e90919063ffffffff16565b6003819055506109ea82600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461199e90919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610ac057600080fd5b505af1158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5836040518082815260200191505060405180910390a25050565b6000610b586117e0565b600a81905550610b666112eb565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c3357610ba9816105c1565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a54600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610cda5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610d4c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f696e76616c69642072657761726420736f75726365000000000000000000000081525060200191505060405180910390fd5b600654421115610e3f576007544210610d7f57610d7460045483611a6e90919063ffffffff16565b600881905550610de1565b6000610d964260075461199e90919063ffffffff16565b90506000610daf600854836119e890919063ffffffff16565b9050610dd8600454610dca8387611ab890919063ffffffff16565b611a6e90919063ffffffff16565b60088190555050505b42600981905550610dfd60045442611ab890919063ffffffff16565b6007819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d826040518082815260200191505060405180910390a1610eb8565b610e5460045483611a6e90919063ffffffff16565b600881905550600654600981905550610e7a600454600654611ab890919063ffffffff16565b6007819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d826040518082815260200191505060405180910390a15b5050565b33610ec56117e0565b600a81905550610ed36112eb565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610fa057610f16816105c1565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a54600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600654421015611018576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000611023336105c1565b90506000811115611191576000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561110657600080fd5b505af115801561111a573d6000803e3d6000fd5b505050506040513d602081101561113057600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486826040518082815260200191505060405180910390a25b5050565b600d6020528060005260406000206000915090505481565b6111b5611340565b611227576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b60006112f942600754611b40565b905090565b600b6020528060005260406000206000915090505481565b60065481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632a167eb86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561140157600080fd5b505af1158015611415573d6000803e3d6000fd5b50505050336114226117e0565b600a819055506114306112eb565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146114fd57611473816105c1565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a54600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600654421015611575576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600082116115eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f43616e6e6f74207374616b65203000000000000000000000000000000000000081525060200191505060405180910390fd5b61160082600354611ab890919063ffffffff16565b60038190555061165882600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ab890919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b505050506040513d602081101561177657600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d836040518082815260200191505060405180910390a25050565b60095481565b60008060035414156117f657600a54905061186b565b611868611857600354611849670de0b6b3a764000061183b60085461182d60095461181f6112eb565b61199e90919063ffffffff16565b6119e890919063ffffffff16565b6119e890919063ffffffff16565b611a6e90919063ffffffff16565b600a54611ab890919063ffffffff16565b90505b90565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6118e2600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610729565b6118ea610ebc565b565b60075481565b6118fa611340565b61196c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61197581611b59565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006119e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c9c565b905092915050565b6000808314156119fb5760009050611a68565b6000828402905082848281611a0c57fe5b0414611a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611e496021913960400191505060405180910390fd5b809150505b92915050565b6000611ab083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d5c565b905092915050565b600080828401905083811015611b36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000818310611b4f5781611b51565b825b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611e236026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000838311158290611d49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d0e578082015181840152602081019050611cf3565b50505050905090810190601f168015611d3b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290611e08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611dcd578082015181840152602081019050611db2565b50505050905090810190601f168015611dfa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611e1457fe5b04905080915050939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220bc1adb5cfb13b717a9cccdd25b8369dda6352ce149cd01520f142fa38289b39664736f6c634300060c0033000000000000000000000000e1212f852c0ca3491ca6b96081ac3cf40e9890940000000000000000000000003fc2731731066c5fab56e86b75539eb02d91537c00000000000000000000000096dd8183f1c5f9d8d6617f72cd11bb82ecbdfeb7
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101725760003560e01c80638b876347116100de578063cd3daf9d11610097578063e9fad8ee11610071578063e9fad8ee14610521578063ebe2b12b1461052b578063f2fde38b14610549578063f7c618c11461058d57610172565b8063cd3daf9d146104b1578063ce5fc8d0146104cf578063df136d651461050357610172565b80638b8763471461039b5780638da58897146103f35780638da5cb5b146104115780638f32d59b14610445578063a694fc3a14610465578063c8f33c911461049357610172565b80633c6b16ab116101305780633c6b16ab146102c55780633d18b912146102f357806370a08231146102fd578063715018a6146103555780637b0a47ee1461035f57806380faa57d1461037d57610172565b80628cc262146101775780630700037d146101cf57806318160ddd146102275780631be05289146102455780631dac30b0146102635780632e1a7d4d14610297575b600080fd5b6101b96004803603602081101561018d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105c1565b6040518082815260200191505060405180910390f35b610211600480360360208110156101e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106df565b6040518082815260200191505060405180910390f35b61022f6106f7565b6040518082815260200191505060405180910390f35b61024d6106fd565b6040518082815260200191505060405180910390f35b61026b610703565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102c3600480360360208110156102ad57600080fd5b8101908080359060200190929190505050610729565b005b6102f1600480360360208110156102db57600080fd5b8101908080359060200190929190505050610b4e565b005b6102fb610ebc565b005b61033f6004803603602081101561031357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611195565b6040518082815260200191505060405180910390f35b61035d6111ad565b005b6103676112e5565b6040518082815260200191505060405180910390f35b6103856112eb565b6040518082815260200191505060405180910390f35b6103dd600480360360208110156103b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112fe565b6040518082815260200191505060405180910390f35b6103fb611316565b6040518082815260200191505060405180910390f35b61041961131c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61044d611340565b60405180821515815260200191505060405180910390f35b6104916004803603602081101561047b57600080fd5b8101908080359060200190929190505050611397565b005b61049b6117da565b6040518082815260200191505060405180910390f35b6104b96117e0565b6040518082815260200191505060405180910390f35b6104d761186e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61050b611894565b6040518082815260200191505060405180910390f35b61052961189a565b005b6105336118ec565b6040518082815260200191505060405180910390f35b61058b6004803603602081101561055f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f2565b005b610595611978565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006106d8600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106ca670de0b6b3a76400006106bc61066e600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106606117e0565b61199e90919063ffffffff16565b600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119e890919063ffffffff16565b611a6e90919063ffffffff16565b611ab890919063ffffffff16565b9050919050565b600c6020528060005260406000206000915090505481565b60035481565b60045481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632a167eb86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561079357600080fd5b505af11580156107a7573d6000803e3d6000fd5b50505050336107b46117e0565b600a819055506107c26112eb565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461088f57610805816105c1565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a54600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600654421015610907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000821161097d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43616e6e6f74207769746864726177203000000000000000000000000000000081525060200191505060405180910390fd5b6109928260035461199e90919063ffffffff16565b6003819055506109ea82600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461199e90919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610ac057600080fd5b505af1158015610ad4573d6000803e3d6000fd5b505050506040513d6020811015610aea57600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5836040518082815260200191505060405180910390a25050565b6000610b586117e0565b600a81905550610b666112eb565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c3357610ba9816105c1565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a54600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610cda5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610d4c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f696e76616c69642072657761726420736f75726365000000000000000000000081525060200191505060405180910390fd5b600654421115610e3f576007544210610d7f57610d7460045483611a6e90919063ffffffff16565b600881905550610de1565b6000610d964260075461199e90919063ffffffff16565b90506000610daf600854836119e890919063ffffffff16565b9050610dd8600454610dca8387611ab890919063ffffffff16565b611a6e90919063ffffffff16565b60088190555050505b42600981905550610dfd60045442611ab890919063ffffffff16565b6007819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d826040518082815260200191505060405180910390a1610eb8565b610e5460045483611a6e90919063ffffffff16565b600881905550600654600981905550610e7a600454600654611ab890919063ffffffff16565b6007819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d826040518082815260200191505060405180910390a15b5050565b33610ec56117e0565b600a81905550610ed36112eb565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610fa057610f16816105c1565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a54600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600654421015611018576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000611023336105c1565b90506000811115611191576000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561110657600080fd5b505af115801561111a573d6000803e3d6000fd5b505050506040513d602081101561113057600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486826040518082815260200191505060405180910390a25b5050565b600d6020528060005260406000206000915090505481565b6111b5611340565b611227576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b60006112f942600754611b40565b905090565b600b6020528060005260406000206000915090505481565b60065481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632a167eb86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561140157600080fd5b505af1158015611415573d6000803e3d6000fd5b50505050336114226117e0565b600a819055506114306112eb565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146114fd57611473816105c1565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a54600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600654421015611575576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600082116115eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f43616e6e6f74207374616b65203000000000000000000000000000000000000081525060200191505060405180910390fd5b61160082600354611ab890919063ffffffff16565b60038190555061165882600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ab890919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b505050506040513d602081101561177657600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d836040518082815260200191505060405180910390a25050565b60095481565b60008060035414156117f657600a54905061186b565b611868611857600354611849670de0b6b3a764000061183b60085461182d60095461181f6112eb565b61199e90919063ffffffff16565b6119e890919063ffffffff16565b6119e890919063ffffffff16565b611a6e90919063ffffffff16565b600a54611ab890919063ffffffff16565b90505b90565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6118e2600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610729565b6118ea610ebc565b565b60075481565b6118fa611340565b61196c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61197581611b59565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006119e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c9c565b905092915050565b6000808314156119fb5760009050611a68565b6000828402905082848281611a0c57fe5b0414611a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611e496021913960400191505060405180910390fd5b809150505b92915050565b6000611ab083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d5c565b905092915050565b600080828401905083811015611b36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000818310611b4f5781611b51565b825b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611e236026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000838311158290611d49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d0e578082015181840152602081019050611cf3565b50505050905090810190601f168015611d3b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290611e08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611dcd578082015181840152602081019050611db2565b50505050905090810190601f168015611dfa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611e1457fe5b04905080915050939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220bc1adb5cfb13b717a9cccdd25b8369dda6352ce149cd01520f142fa38289b39664736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000e1212f852c0ca3491ca6b96081ac3cf40e9890940000000000000000000000003fc2731731066c5fab56e86b75539eb02d91537c00000000000000000000000096dd8183f1c5f9d8d6617f72cd11bb82ecbdfeb7
-----Decoded View---------------
Arg [0] : _rewardToken (address): 0xe1212f852c0ca3491CA6b96081Ac3Cf40e989094
Arg [1] : _lptoken (address): 0x3Fc2731731066C5fAB56E86b75539eB02d91537C
Arg [2] : _rewardReceiver (address): 0x96Dd8183F1c5f9d8d6617F72CD11bB82ECBdfEB7
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000e1212f852c0ca3491ca6b96081ac3cf40e989094
Arg [1] : 0000000000000000000000003fc2731731066c5fab56e86b75539eb02d91537c
Arg [2] : 00000000000000000000000096dd8183f1c5f9d8d6617f72cd11bb82ecbdfeb7
Deployed Bytecode Sourcemap
9720:4143:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11662:230;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10171:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9846:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9874:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9908:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12328:333;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13028:832;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12758:264;;;:::i;:::-;;10215:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5562:128;;;:::i;:::-;;10011:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11195:122;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10112:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9952:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5141:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5471:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11979:343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10042:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11323:333;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9792:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10073:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12667:85;;;:::i;:::-;;9978:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5696:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9814:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11662:230;11717:4;11744:142;11868:7;:17;11876:8;11868:17;;;;;;;;;;;;;;;;11744:109;11848:4;11744:89;11778:54;11799:22;:32;11822:8;11799:32;;;;;;;;;;;;;;;;11778:16;:14;:16::i;:::-;:20;;:54;;;;:::i;:::-;11744:9;:19;11754:8;11744:19;;;;;;;;;;;;;;;;:33;;:89;;;;:::i;:::-;:103;;:109;;;;:::i;:::-;:123;;:142;;;;:::i;:::-;11730:156;;11662:230;;;:::o;10171:39::-;;;;;;;;;;;;;;;;;:::o;9846:23::-;;;;:::o;9874:29::-;;;;:::o;9908:37::-;;;;;;;;;;;;;:::o;12328:333::-;11147:14;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12392:10:::1;10880:16;:14;:16::i;:::-;10857:20;:39;;;;10920:26;:24;:26::i;:::-;10903:14;:43;;;;10977:1;10957:22;;:8;:22;;;10953:145;;11010:16;11017:8;11010:6;:16::i;:::-;10990:7;:17;10998:8;10990:17;;;;;;;;;;;;;;;:36;;;;11070:20;;11035:22;:32;11058:8;11035:32;;;;;;;;;;;;;;;:55;;;;10953:145;10767:9:::2;;10748:15;:28;;10740:50;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;12440:1:::3;12430:7;:11;12422:41;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;12484:24;12500:7;12484:11;;:15;;:24;;;;:::i;:::-;12470:11;:38;;;;12539:34;12565:7;12539:9;:21;12549:10;12539:21;;;;;;;;;;;;;;;;:25;;:34;;;;:::i;:::-;12515:9;:21;12525:10;12515:21;;;;;;;;;;;;;;;:58;;;;12580:3;;;;;;;;;;;:12;;;12593:10;12605:7;12580:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;12635:10;12625:30;;;12647:7;12625:30;;;;;;;;;;;;;;;;;;11182:1:::1;12328:333:::0;:::o;13028:832::-;13108:1;10880:16;:14;:16::i;:::-;10857:20;:39;;;;10920:26;:24;:26::i;:::-;10903:14;:43;;;;10977:1;10957:22;;:8;:22;;;10953:145;;11010:16;11017:8;11010:6;:16::i;:::-;10990:7;:17;10998:8;10990:17;;;;;;;;;;;;;;;:36;;;;11070:20;;11035:22;:32;11058:8;11035:32;;;;;;;;;;;;;;;:55;;;;10953:145;13144:5:::1;::::0;::::1;;;;;;;;13130:19;;:10;:19;;;:60;;;;13175:14;;;;;;;;;;;13153:37;;:10;:37;;;13130:60;13122:94;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;13247:9;;13229:15;:27;13225:630;;;13290:12;;13271:15;:31;13267:280;;13328:21;13340:8;;13328:7;:11;;:21;;;;:::i;:::-;13315:10;:34;;;;13267:280;;;13376:14;13393:33;13410:15;13393:12;;:16;;:33;;;;:::i;:::-;13376:50;;13437:13;13453:25;13467:10;;13453:9;:13;;:25;;;;:::i;:::-;13437:41;;13502:35;13528:8;;13502:21;13514:8;13502:7;:11;;:21;;;;:::i;:::-;:25;;:35;;;;:::i;:::-;13489:10;:48;;;;13267:280;;;13572:15;13555:14;:32;;;;13611:29;13631:8;;13611:15;:19;;:29;;;;:::i;:::-;13596:12;:44;;;;13654:20;13666:7;13654:20;;;;;;;;;;;;;;;;;;13225:630;;;13710:21;13722:8;;13710:7;:11;;:21;;;;:::i;:::-;13697:10;:34;;;;13757:9;;13740:14;:26;;;;13790:23;13804:8;;13790:9;;:13;;:23;;;;:::i;:::-;13775:12;:38;;;;13827:20;13839:7;13827:20;;;;;;;;;;;;;;;;;;13225:630;13028:832:::0;;:::o;12758:264::-;12799:10;10880:16;:14;:16::i;:::-;10857:20;:39;;;;10920:26;:24;:26::i;:::-;10903:14;:43;;;;10977:1;10957:22;;:8;:22;;;10953:145;;11010:16;11017:8;11010:6;:16::i;:::-;10990:7;:17;10998:8;10990:17;;;;;;;;;;;;;;;:36;;;;11070:20;;11035:22;:32;11058:8;11035:32;;;;;;;;;;;;;;;:55;;;;10953:145;10767:9:::1;;10748:15;:28;;10740:50;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;12829:11:::2;12843:18;12850:10;12843:6;:18::i;:::-;12829:32;;12881:1;12872:6;:10;12868:149;;;12915:1;12893:7;:19;12901:10;12893:19;;;;;;;;;;;;;;;:23;;;;12925:11;;;;;;;;;;;:20;;;12946:10;12958:6;12925:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;12990:10;12979:30;;;13002:6;12979:30;;;;;;;;;;;;;;;;;;12868:149;10797:1;12758:264:::0;:::o;10215:41::-;;;;;;;;;;;;;;;;;:::o;5562:128::-;5405:9;:7;:9::i;:::-;5397:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5656:1:::1;5620:39;;5641:5;::::0;::::1;;;;;;;;5620:39;;;;;;;;;;;;5682:1;5666:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;5562:128::o:0;10011:26::-;;;;:::o;11195:122::-;11252:4;11272:39;11281:15;11298:12;;11272:8;:39::i;:::-;11265:46;;11195:122;:::o;10112:54::-;;;;;;;;;;;;;;;;;:::o;9952:21::-;;;;:::o;5141:20::-;;;;;;;;;;;;:::o;5471:85::-;5511:4;5545:5;;;;;;;;;;;5531:19;;:10;:19;;;5524:26;;5471:85;:::o;11979:343::-;11147:14;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12040:10:::1;10880:16;:14;:16::i;:::-;10857:20;:39;;;;10920:26;:24;:26::i;:::-;10903:14;:43;;;;10977:1;10957:22;;:8;:22;;;10953:145;;11010:16;11017:8;11010:6;:16::i;:::-;10990:7;:17;10998:8;10990:17;;;;;;;;;;;;;;;:36;;;;11070:20;;11035:22;:32;11058:8;11035:32;;;;;;;;;;;;;;;:55;;;;10953:145;10767:9:::2;;10748:15;:28;;10740:50;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;12088:1:::3;12078:7;:11;12070:38;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;12129:24;12145:7;12129:11;;:15;;:24;;;;:::i;:::-;12115:11;:38;;;;12184:34;12210:7;12184:9;:21;12194:10;12184:21;;;;;;;;;;;;;;;;:25;;:34;;;;:::i;:::-;12160:9;:21;12170:10;12160:21;;;;;;;;;;;;;;;:58;;;;12225:3;;;;;;;;;;;:16;;;12242:10;12262:4;12269:7;12225:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;12296:10;12289:27;;;12308:7;12289:27;;;;;;;;;;;;;;;;;;11182:1:::1;11979:343:::0;:::o;10042:26::-;;;;:::o;11323:333::-;11370:4;11402:1;11387:11;;:16;11383:66;;;11421:20;;11414:27;;;;11383:66;11469:181;11504:137;11629:11;;11504:108;11607:4;11504:86;11579:10;;11504:58;11547:14;;11504:26;:24;:26::i;:::-;:42;;:58;;;;:::i;:::-;:74;;:86;;;;:::i;:::-;:102;;:108;;;;:::i;:::-;:124;;:137;;;;:::i;:::-;11469:20;;:24;;:181;;;;:::i;:::-;11455:195;;11323:333;;:::o;9792:17::-;;;;;;;;;;;;;:::o;10073:32::-;;;;:::o;12667:85::-;12697:31;12706:9;:21;12716:10;12706:21;;;;;;;;;;;;;;;;12697:8;:31::i;:::-;12735:11;:9;:11::i;:::-;12667:85::o;9978:28::-;;;;:::o;5696:103::-;5405:9;:7;:9::i;:::-;5397:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5765:28:::1;5784:8;5765:18;:28::i;:::-;5696:103:::0;:::o;9814:25::-;;;;;;;;;;;;;:::o;1121:136::-;1179:7;1206:43;1210:1;1213;1206:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1199:50;;1121:136;;;;:::o;2011:471::-;2069:7;2319:1;2314;:6;2310:47;;;2344:1;2337:8;;;;2310:47;2369:9;2385:1;2381;:5;2369:17;;2414:1;2409;2405;:5;;;;;;:10;2397:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2473:1;2466:8;;;2011:471;;;;;:::o;2958:132::-;3016:7;3043:39;3047:1;3050;3043:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3036:46;;2958:132;;;;:::o;657:181::-;715:7;735:9;751:1;747;:5;735:17;;776:1;771;:6;;763:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;829:1;822:8;;;657:181;;;;:::o;116:91::-;168:4;192:1;188;:5;:13;;200:1;188:13;;;196:1;188:13;181:20;;116:91;;;;:::o;5805:213::-;5895:1;5875:22;;:8;:22;;;;5867:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5980:8;5952:37;;5973:5;;;;;;;;;;5952:37;;;;;;;;;;;;6004:8;5996:5;;:16;;;;;;;;;;;;;;;;;;5805:213;:::o;1560:192::-;1646:7;1679:1;1674;:6;;1682:12;1666:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1706:9;1722:1;1718;:5;1706:17;;1743:1;1736:8;;;1560:192;;;;;:::o;3586:278::-;3672:7;3704:1;3700;:5;3707:12;3692:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3731:9;3747:1;3743;:5;;;;;;3731:17;;3855:1;3848:8;;;3586:278;;;;;:::o
Swarm Source
ipfs://bc1adb5cfb13b717a9cccdd25b8369dda6352ce149cd01520f142fa38289b396
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.