Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,606 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Exit | 12758480 | 1160 days ago | IN | 0 ETH | 0.00064958 | ||||
Get Reward | 11856501 | 1299 days ago | IN | 0 ETH | 0.00757428 | ||||
Exit | 11856492 | 1299 days ago | IN | 0 ETH | 0.02490084 | ||||
Get Reward | 11804104 | 1307 days ago | IN | 0 ETH | 0.01313956 | ||||
Exit | 11654502 | 1330 days ago | IN | 0 ETH | 0.01509948 | ||||
Exit | 11651345 | 1331 days ago | IN | 0 ETH | 0.01441314 | ||||
Exit | 11650750 | 1331 days ago | IN | 0 ETH | 0.00983388 | ||||
Exit | 11645963 | 1331 days ago | IN | 0 ETH | 0.00919254 | ||||
Exit | 11631826 | 1334 days ago | IN | 0 ETH | 0.01270782 | ||||
Exit | 11437311 | 1363 days ago | IN | 0 ETH | 0.00468178 | ||||
Exit | 11417045 | 1367 days ago | IN | 0 ETH | 0.00805555 | ||||
Stake | 11411110 | 1367 days ago | IN | 0 ETH | 0.00736287 | ||||
Get Reward | 11397436 | 1370 days ago | IN | 0 ETH | 0.00184297 | ||||
Get Reward | 11395092 | 1370 days ago | IN | 0 ETH | 0.00202726 | ||||
Exit | 11379984 | 1372 days ago | IN | 0 ETH | 0.0068634 | ||||
Exit | 11375132 | 1373 days ago | IN | 0 ETH | 0.00363426 | ||||
Exit | 11365817 | 1374 days ago | IN | 0 ETH | 0.01555704 | ||||
Exit | 11360807 | 1375 days ago | IN | 0 ETH | 0.0331731 | ||||
Exit | 11356495 | 1376 days ago | IN | 0 ETH | 0.00312629 | ||||
Exit | 11354923 | 1376 days ago | IN | 0 ETH | 0.00637731 | ||||
Exit | 11351753 | 1377 days ago | IN | 0 ETH | 0.00258673 | ||||
Get Reward | 11345857 | 1377 days ago | IN | 0 ETH | 0.00151774 | ||||
Get Reward | 11344671 | 1378 days ago | IN | 0 ETH | 0.00158278 | ||||
Get Reward | 11344022 | 1378 days ago | IN | 0 ETH | 0.00173456 | ||||
Exit | 11339848 | 1378 days ago | IN | 0 ETH | 0.00577206 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x859a9d0d...17e1De535 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
StakingRewards
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-10-30 */ 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; } } 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"}]
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101725760003560e01c80638b876347116100de578063cd3daf9d11610097578063e9fad8ee11610071578063e9fad8ee1461031a578063ebe2b12b14610322578063f2fde38b1461032a578063f7c618c11461035057610172565b8063cd3daf9d14610302578063ce5fc8d01461030a578063df136d651461031257610172565b80638b8763471461028b5780638da58897146102b15780638da5cb5b146102b95780638f32d59b146102c1578063a694fc3a146102dd578063c8f33c91146102fa57610172565b80633c6b16ab116101305780633c6b16ab146102285780633d18b9121461024557806370a082311461024d578063715018a6146102735780637b0a47ee1461027b57806380faa57d1461028357610172565b80628cc262146101775780630700037d146101af57806318160ddd146101d55780631be05289146101dd5780631dac30b0146101e55780632e1a7d4d14610209575b600080fd5b61019d6004803603602081101561018d57600080fd5b50356001600160a01b0316610358565b60408051918252519081900360200190f35b61019d600480360360208110156101c557600080fd5b50356001600160a01b03166103d6565b61019d6103e8565b61019d6103ee565b6101ed6103f4565b604080516001600160a01b039092168252519081900360200190f35b6102266004803603602081101561021f57600080fd5b5035610403565b005b6102266004803603602081101561023e57600080fd5b5035610647565b61022661082a565b61019d6004803603602081101561026357600080fd5b50356001600160a01b03166109a6565b6102266109b8565b61019d610a5b565b61019d610a61565b61019d600480360360208110156102a157600080fd5b50356001600160a01b0316610a75565b61019d610a87565b6101ed610a8d565b6102c9610a9c565b604080519115158252519081900360200190f35b610226600480360360208110156102f357600080fd5b5035610aad565b61019d610cf4565b61019d610cfa565b6101ed610d48565b61019d610d57565b610226610d5d565b61019d610d80565b6102266004803603602081101561034057600080fd5b50356001600160a01b0316610d86565b6101ed610deb565b6001600160a01b0381166000908152600c6020908152604080832054600b9092528220546103d091906103ca90670de0b6b3a7640000906103c4906103a59061039f610cfa565b90610dfa565b6001600160a01b0388166000908152600d602052604090205490610e43565b90610e9c565b90610ede565b92915050565b600c6020526000908152604090205481565b60035481565b60045481565b6005546001600160a01b031681565b600560009054906101000a90046001600160a01b03166001600160a01b0316632a167eb86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561045357600080fd5b505af1158015610467573d6000803e3d6000fd5b5050505033610474610cfa565b600a5561047f610a61565b6009556001600160a01b038116156104c65761049a81610358565b6001600160a01b0382166000908152600c6020908152604080832093909355600a54600b909152919020555b600654421015610509576040805162461bcd60e51b81526020600482015260096024820152681b9bdd081cdd185c9d60ba1b604482015290519081900360640190fd5b60008211610552576040805162461bcd60e51b8152602060048201526011602482015270043616e6e6f74207769746864726177203607c1b604482015290519081900360640190fd5b60035461055f9083610dfa565b600355336000908152600d602052604090205461057c9083610dfa565b336000818152600d6020908152604080832094909455600154845163a9059cbb60e01b815260048101949094526024840187905293516001600160a01b039094169363a9059cbb93604480820194918390030190829087803b1580156105e157600080fd5b505af11580156105f5573d6000803e3d6000fd5b505050506040513d602081101561060b57600080fd5b505060408051838152905133917f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5919081900360200190a25050565b6000610651610cfa565b600a5561065c610a61565b6009556001600160a01b038116156106a35761067781610358565b6001600160a01b0382166000908152600c6020908152604080832093909355600a54600b909152919020555b6000546001600160a01b03163314806106c657506005546001600160a01b031633145b61070f576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072657761726420736f7572636560581b604482015290519081900360640190fd5b6006544211156107c957600754421061073857600454610730908390610e9c565b60085561077b565b6007546000906107489042610dfa565b9050600061076160085483610e4390919063ffffffff16565b600454909150610775906103c48684610ede565b60085550505b42600981905560045461078e9190610ede565b6007556040805183815290517fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9181900360200190a1610826565b6004546107d7908390610e9c565b60085560065460098190556004546107ef9190610ede565b6007556040805183815290517fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9181900360200190a15b5050565b33610833610cfa565b600a5561083e610a61565b6009556001600160a01b038116156108855761085981610358565b6001600160a01b0382166000908152600c6020908152604080832093909355600a54600b909152919020555b6006544210156108c8576040805162461bcd60e51b81526020600482015260096024820152681b9bdd081cdd185c9d60ba1b604482015290519081900360640190fd5b60006108d333610358565b9050801561082657336000818152600c60209081526040808320839055600254815163a9059cbb60e01b815260048101959095526024850186905290516001600160a01b039091169363a9059cbb9360448083019493928390030190829087803b15801561094057600080fd5b505af1158015610954573d6000803e3d6000fd5b505050506040513d602081101561096a57600080fd5b505060408051828152905133917fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486919081900360200190a25050565b600d6020526000908152604090205481565b6109c0610a9c565b610a11576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60085481565b6000610a6f42600754610f38565b90505b90565b600b6020526000908152604090205481565b60065481565b6000546001600160a01b031681565b6000546001600160a01b0316331490565b600560009054906101000a90046001600160a01b03166001600160a01b0316632a167eb86040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610afd57600080fd5b505af1158015610b11573d6000803e3d6000fd5b5050505033610b1e610cfa565b600a55610b29610a61565b6009556001600160a01b03811615610b7057610b4481610358565b6001600160a01b0382166000908152600c6020908152604080832093909355600a54600b909152919020555b600654421015610bb3576040805162461bcd60e51b81526020600482015260096024820152681b9bdd081cdd185c9d60ba1b604482015290519081900360640190fd5b60008211610bf9576040805162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b604482015290519081900360640190fd5b600354610c069083610ede565b600355336000908152600d6020526040902054610c239083610ede565b336000818152600d602090815260408083209490945560015484516323b872dd60e01b815260048101949094523060248501526044840187905293516001600160a01b03909416936323b872dd93606480820194918390030190829087803b158015610c8e57600080fd5b505af1158015610ca2573d6000803e3d6000fd5b505050506040513d6020811015610cb857600080fd5b505060408051838152905133917f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d919081900360200190a25050565b60095481565b600060035460001415610d105750600a54610a72565b610a6f610d3f6003546103c4670de0b6b3a7640000610d39600854610d3960095461039f610a61565b90610e43565b600a5490610ede565b6001546001600160a01b031681565b600a5481565b336000908152600d6020526040902054610d7690610403565b610d7e61082a565b565b60075481565b610d8e610a9c565b610ddf576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610de881610f4e565b50565b6002546001600160a01b031681565b6000610e3c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fee565b9392505050565b600082610e52575060006103d0565b82820282848281610e5f57fe5b0414610e3c5760405162461bcd60e51b81526004018080602001828103825260218152602001806111116021913960400191505060405180910390fd5b6000610e3c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611085565b600082820183811015610e3c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000818310610f475781610e3c565b5090919050565b6001600160a01b038116610f935760405162461bcd60e51b81526004018080602001828103825260268152602001806110eb6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000818484111561107d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561104257818101518382015260200161102a565b50505050905090810190601f16801561106f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836110d45760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561104257818101518382015260200161102a565b5060008385816110e057fe5b049594505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220477548b197d5a4fa9e44548a5a4896f3f2f003c596fa75f764b2109ca7c7aa0864736f6c634300060c0033
Deployed Bytecode Sourcemap
6734:4143:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8676:230;;;;;;;;;;;;;;;;-1:-1:-1;8676:230:0;-1:-1:-1;;;;;8676:230:0;;:::i;:::-;;;;;;;;;;;;;;;;7185:39;;;;;;;;;;;;;;;;-1:-1:-1;7185:39:0;-1:-1:-1;;;;;7185:39:0;;:::i;6860:23::-;;;:::i;6888:29::-;;;:::i;6922:37::-;;;:::i;:::-;;;;-1:-1:-1;;;;;6922:37:0;;;;;;;;;;;;;;9342:333;;;;;;;;;;;;;;;;-1:-1:-1;9342:333:0;;:::i;:::-;;10042:832;;;;;;;;;;;;;;;;-1:-1:-1;10042:832:0;;:::i;9772:264::-;;;:::i;7229:41::-;;;;;;;;;;;;;;;;-1:-1:-1;7229:41:0;-1:-1:-1;;;;;7229:41:0;;:::i;5562:128::-;;;:::i;7025:26::-;;;:::i;8209:122::-;;;:::i;7126:54::-;;;;;;;;;;;;;;;;-1:-1:-1;7126:54:0;-1:-1:-1;;;;;7126:54:0;;:::i;6966:21::-;;;:::i;5141:20::-;;;:::i;5471:85::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;8993:343;;;;;;;;;;;;;;;;-1:-1:-1;8993:343:0;;:::i;7056:26::-;;;:::i;8337:333::-;;;:::i;6806:17::-;;;:::i;7087:32::-;;;:::i;9681:85::-;;;:::i;6992:28::-;;;:::i;5696:103::-;;;;;;;;;;;;;;;;-1:-1:-1;5696:103:0;-1:-1:-1;;;;;5696:103:0;;:::i;6828:25::-;;;:::i;8676:230::-;-1:-1:-1;;;;;8882:17:0;;8731:4;8882:17;;;:7;:17;;;;;;;;;8813:22;:32;;;;;;8758:142;;8882:17;8758:109;;8862:4;;8758:89;;8792:54;;:16;:14;:16::i;:::-;:20;;:54::i;:::-;-1:-1:-1;;;;;8758:19:0;;;;;;:9;:19;;;;;;;:33;:89::i;:::-;:103;;:109::i;:::-;:123;;:142::i;:::-;8744:156;8676:230;-1:-1:-1;;8676:230:0:o;7185:39::-;;;;;;;;;;;;;:::o;6860:23::-;;;;:::o;6888:29::-;;;;:::o;6922:37::-;;;-1:-1:-1;;;;;6922:37:0;;:::o;9342:333::-;8161:14;;;;;;;;;-1:-1:-1;;;;;8161:14:0;-1:-1:-1;;;;;8161:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9406:10:::1;7894:16;:14;:16::i;:::-;7871:20;:39:::0;7934:26:::1;:24;:26::i;:::-;7917:14;:43:::0;-1:-1:-1;;;;;7971:22:0;::::1;::::0;7967:145:::1;;8024:16;8031:8;8024:6;:16::i;:::-;-1:-1:-1::0;;;;;8004:17:0;::::1;;::::0;;;:7:::1;:17;::::0;;;;;;;:36;;;;8084:20:::1;::::0;8049:22:::1;:32:::0;;;;;;:55;7967:145:::1;7781:9:::2;;7762:15;:28;;7754:50;;;::::0;;-1:-1:-1;;;7754:50:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;7754:50:0;;;;;;;;;;;;;::::2;;9454:1:::3;9444:7;:11;9436:41;;;::::0;;-1:-1:-1;;;9436:41:0;;::::3;;::::0;::::3;::::0;::::3;::::0;;;;-1:-1:-1;;;9436:41:0;;;;;;;;;;;;;::::3;;9498:11;::::0;:24:::3;::::0;9514:7;9498:15:::3;:24::i;:::-;9484:11;:38:::0;9563:10:::3;9553:21;::::0;;;:9:::3;:21;::::0;;;;;:34:::3;::::0;9579:7;9553:25:::3;:34::i;:::-;9539:10;9529:21;::::0;;;:9:::3;:21;::::0;;;;;;;:58;;;;9594:3:::3;::::0;:33;;-1:-1:-1;;;9594:33:0;;::::3;::::0;::::3;::::0;;;;;;;;;;;;-1:-1:-1;;;;;9594:3:0;;::::3;::::0;:12:::3;::::0;:33;;;;;;;;;;;;;:3;:33;::::3;;::::0;::::3;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;::::0;::::3;;-1:-1:-1::0;;9639:30:0::3;::::0;;;;;;;9649:10:::3;::::0;9639:30:::3;::::0;;;;;9594:33:::3;9639:30:::0;;::::3;8196:1:::1;9342:333:::0;:::o;10042:832::-;10122:1;7894:16;:14;:16::i;:::-;7871:20;:39;7934:26;:24;:26::i;:::-;7917:14;:43;-1:-1:-1;;;;;7971:22:0;;;7967:145;;8024:16;8031:8;8024:6;:16::i;:::-;-1:-1:-1;;;;;8004:17:0;;;;;;:7;:17;;;;;;;;:36;;;;8084:20;;8049:22;:32;;;;;;:55;7967:145;10158:5:::1;::::0;-1:-1:-1;;;;;10158:5:0::1;10144:10;:19;::::0;:60:::1;;-1:-1:-1::0;10189:14:0::1;::::0;-1:-1:-1;;;;;10189:14:0::1;10167:10;:37;10144:60;10136:94;;;::::0;;-1:-1:-1;;;10136:94:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;10136:94:0;;;;;;;;;;;;;::::1;;10261:9;;10243:15;:27;10239:630;;;10304:12;;10285:15;:31;10281:280;;10354:8;::::0;10342:21:::1;::::0;:7;;:11:::1;:21::i;:::-;10329:10;:34:::0;10281:280:::1;;;10407:12;::::0;10390:14:::1;::::0;10407:33:::1;::::0;10424:15:::1;10407:16;:33::i;:::-;10390:50;;10451:13;10467:25;10481:10;;10467:9;:13;;:25;;;;:::i;:::-;10542:8;::::0;10451:41;;-1:-1:-1;10516:35:0::1;::::0;:21:::1;:7:::0;10451:41;10516:11:::1;:21::i;:35::-;10503:10;:48:::0;-1:-1:-1;;10281:280:0::1;10586:15;10569:14;:32:::0;;;10645:8:::1;::::0;10625:29:::1;::::0;10586:15;10625:19:::1;:29::i;:::-;10610:12;:44:::0;10668:20:::1;::::0;;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;10239:630;;;10736:8;::::0;10724:21:::1;::::0;:7;;:11:::1;:21::i;:::-;10711:10;:34:::0;10771:9:::1;::::0;10754:14:::1;:26:::0;;;10818:8:::1;::::0;10804:23:::1;::::0;10771:9;10804:13:::1;:23::i;:::-;10789:12;:38:::0;10841:20:::1;::::0;;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;10239:630;10042:832:::0;;:::o;9772:264::-;9813:10;7894:16;:14;:16::i;:::-;7871:20;:39;7934:26;:24;:26::i;:::-;7917:14;:43;-1:-1:-1;;;;;7971:22:0;;;7967:145;;8024:16;8031:8;8024:6;:16::i;:::-;-1:-1:-1;;;;;8004:17:0;;;;;;:7;:17;;;;;;;;:36;;;;8084:20;;8049:22;:32;;;;;;:55;7967:145;7781:9:::1;;7762:15;:28;;7754:50;;;::::0;;-1:-1:-1;;;7754:50:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;7754:50:0;;;;;;;;;;;;;::::1;;9843:11:::2;9857:18;9864:10;9857:6;:18::i;:::-;9843:32:::0;-1:-1:-1;9886:10:0;;9882:149:::2;;9915:10;9929:1;9907:19:::0;;;:7:::2;:19;::::0;;;;;;;:23;;;9939:11:::2;::::0;:40;;-1:-1:-1;;;9939:40:0;;::::2;::::0;::::2;::::0;;;;;;;;;;;;-1:-1:-1;;;;;9939:11:0;;::::2;::::0;:20:::2;::::0;:40;;;;;9907:19;9939:40;;;;;;;;:11;:40;::::2;;::::0;::::2;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;;9993:30:0::2;::::0;;;;;;;10004:10:::2;::::0;9993:30:::2;::::0;;;;;9939:40:::2;9993:30:::0;;::::2;7811:1;9772:264:::0;:::o;7229:41::-;;;;;;;;;;;;;:::o;5562:128::-;5405:9;:7;:9::i;:::-;5397:54;;;;;-1:-1:-1;;;5397:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5656:1:::1;5641:5:::0;;5620:39:::1;::::0;-1:-1:-1;;;;;5641:5:0;;::::1;::::0;5620:39:::1;::::0;5656:1;;5620:39:::1;5682:1;5666:18:::0;;-1:-1:-1;;;;;;5666:18:0::1;::::0;;5562:128::o;7025:26::-;;;;:::o;8209:122::-;8266:4;8286:39;8295:15;8312:12;;8286:8;:39::i;:::-;8279:46;;8209:122;;:::o;7126:54::-;;;;;;;;;;;;;:::o;6966:21::-;;;;:::o;5141:20::-;;;-1:-1:-1;;;;;5141:20:0;;:::o;5471:85::-;5511:4;5545:5;-1:-1:-1;;;;;5545:5:0;5531:10;:19;;5471:85::o;8993:343::-;8161:14;;;;;;;;;-1:-1:-1;;;;;8161:14:0;-1:-1:-1;;;;;8161:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9054:10:::1;7894:16;:14;:16::i;:::-;7871:20;:39:::0;7934:26:::1;:24;:26::i;:::-;7917:14;:43:::0;-1:-1:-1;;;;;7971:22:0;::::1;::::0;7967:145:::1;;8024:16;8031:8;8024:6;:16::i;:::-;-1:-1:-1::0;;;;;8004:17:0;::::1;;::::0;;;:7:::1;:17;::::0;;;;;;;:36;;;;8084:20:::1;::::0;8049:22:::1;:32:::0;;;;;;:55;7967:145:::1;7781:9:::2;;7762:15;:28;;7754:50;;;::::0;;-1:-1:-1;;;7754:50:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;7754:50:0;;;;;;;;;;;;;::::2;;9102:1:::3;9092:7;:11;9084:38;;;::::0;;-1:-1:-1;;;9084:38:0;;::::3;;::::0;::::3;::::0;::::3;::::0;;;;-1:-1:-1;;;9084:38:0;;;;;;;;;;;;;::::3;;9143:11;::::0;:24:::3;::::0;9159:7;9143:15:::3;:24::i;:::-;9129:11;:38:::0;9208:10:::3;9198:21;::::0;;;:9:::3;:21;::::0;;;;;:34:::3;::::0;9224:7;9198:25:::3;:34::i;:::-;9184:10;9174:21;::::0;;;:9:::3;:21;::::0;;;;;;;:58;;;;9239:3:::3;::::0;:52;;-1:-1:-1;;;9239:52:0;;::::3;::::0;::::3;::::0;;;;9276:4:::3;9239:52:::0;;;;;;;;;;;;-1:-1:-1;;;;;9239:3:0;;::::3;::::0;:16:::3;::::0;:52;;;;;;;;;;;;;:3;:52;::::3;;::::0;::::3;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;::::0;::::3;;-1:-1:-1::0;;9303:27:0::3;::::0;;;;;;;9310:10:::3;::::0;9303:27:::3;::::0;;;;;9239:52:::3;9303:27:::0;;::::3;8196:1:::1;8993:343:::0;:::o;7056:26::-;;;;:::o;8337:333::-;8384:4;8401:11;;8416:1;8401:16;8397:66;;;-1:-1:-1;8435:20:0;;8428:27;;8397:66;8483:181;8518:137;8643:11;;8518:108;8621:4;8518:86;8593:10;;8518:58;8561:14;;8518:26;:24;:26::i;:58::-;:74;;:86::i;:137::-;8483:20;;;:24;:181::i;6806:17::-;;;-1:-1:-1;;;;;6806:17:0;;:::o;7087:32::-;;;;:::o;9681:85::-;9730:10;9720:21;;;;:9;:21;;;;;;9711:31;;:8;:31::i;:::-;9749:11;:9;:11::i;:::-;9681:85::o;6992:28::-;;;;:::o;5696:103::-;5405:9;:7;:9::i;:::-;5397:54;;;;;-1:-1:-1;;;5397:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5765:28:::1;5784:8;5765:18;:28::i;:::-;5696:103:::0;:::o;6828:25::-;;;-1:-1:-1;;;;;6828:25:0;;:::o;1121:136::-;1179:7;1206:43;1210:1;1213;1206:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1199:50;1121:136;-1:-1:-1;;;1121:136:0:o;2011:471::-;2069:7;2314:6;2310:47;;-1:-1:-1;2344:1:0;2337:8;;2310:47;2381:5;;;2385:1;2381;:5;:1;2405:5;;;;;:10;2397:56;;;;-1:-1:-1;;;2397:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2958:132;3016:7;3043:39;3047:1;3050;3043:39;;;;;;;;;;;;;;;;;:3;:39::i;657:181::-;715:7;747:5;;;771:6;;;;763:46;;;;;-1:-1:-1;;;763:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;116:91;168:4;192:1;188;:5;:13;;200:1;188:13;;;-1:-1:-1;196:1:0;;116:91;-1:-1:-1;116:91:0:o;5805:213::-;-1:-1:-1;;;;;5875:22:0;;5867:73;;;;-1:-1:-1;;;5867:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5973:5;;;5952:37;;-1:-1:-1;;;;;5952:37:0;;;;5973:5;;;5952:37;;;5996:5;:16;;-1:-1:-1;;;;;;5996:16:0;-1:-1:-1;;;;;5996:16:0;;;;;;;;;;5805:213::o;1560:192::-;1646:7;1682:12;1674:6;;;;1666:29;;;;-1:-1:-1;;;1666:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1718:5:0;;;1560:192::o;3586:278::-;3672:7;3707:12;3700:5;3692:28;;;;-1:-1:-1;;;3692:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3731:9;3747:1;3743;:5;;;;;;;3586:278;-1:-1:-1;;;;;3586:278:0:o
Swarm Source
ipfs://477548b197d5a4fa9e44548a5a4896f3f2f003c596fa75f764b2109ca7c7aa08
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 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.