More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 288 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 18464556 | 323 days ago | IN | 0 ETH | 0.00310873 | ||||
Withdraw | 18423655 | 329 days ago | IN | 0 ETH | 0.00183503 | ||||
Claim Reward | 18422809 | 329 days ago | IN | 0 ETH | 0.00211405 | ||||
Claim Reward | 17832192 | 412 days ago | IN | 0 ETH | 0.00074695 | ||||
Withdraw | 17832182 | 412 days ago | IN | 0 ETH | 0.00185453 | ||||
Withdraw | 17679618 | 433 days ago | IN | 0 ETH | 0.00384248 | ||||
Claim Reward | 17679588 | 433 days ago | IN | 0 ETH | 0.00292508 | ||||
Claim Reward | 17670509 | 434 days ago | IN | 0 ETH | 0.00094066 | ||||
Withdraw | 17670508 | 434 days ago | IN | 0 ETH | 0.00196833 | ||||
Withdraw | 17635438 | 439 days ago | IN | 0 ETH | 0.00429593 | ||||
Withdraw | 17634672 | 440 days ago | IN | 0 ETH | 0.00373355 | ||||
Withdraw | 17630245 | 440 days ago | IN | 0 ETH | 0.00479024 | ||||
Claim Reward | 17630243 | 440 days ago | IN | 0 ETH | 0.00377199 | ||||
Withdraw | 17629638 | 440 days ago | IN | 0 ETH | 0.00436396 | ||||
Claim Reward | 17629633 | 440 days ago | IN | 0 ETH | 0.00382889 | ||||
Set Reward Speed | 17627945 | 440 days ago | IN | 0 ETH | 0.00194109 | ||||
Withdraw | 17626530 | 441 days ago | IN | 0 ETH | 0.00536172 | ||||
Deposit | 17612001 | 443 days ago | IN | 0 ETH | 0.00154395 | ||||
Withdraw | 17604109 | 444 days ago | IN | 0 ETH | 0.00192147 | ||||
Claim Reward | 17535408 | 453 days ago | IN | 0 ETH | 0.00189473 | ||||
Claim Reward | 17395809 | 473 days ago | IN | 0 ETH | 0.00219015 | ||||
Claim Reward | 17353335 | 479 days ago | IN | 0 ETH | 0.00211044 | ||||
Withdraw | 17288542 | 488 days ago | IN | 0 ETH | 0.00824837 | ||||
Withdraw | 17257870 | 493 days ago | IN | 0 ETH | 0.00433223 | ||||
Withdraw | 17257867 | 493 days ago | IN | 0 ETH | 0.00492153 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
SimpleStaking
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-12-17 */ /** *Submitted for verification at BscScan.com on 2021-07-11 */ // SPDX-License-Identifier: MIT pragma solidity =0.7.6; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b > a) return (false, 0); return (true, a - b); } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, 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 (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a / b); } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a % b); } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); return a - b; } /** * @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) { 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, reverting 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) { require(b > 0, "SafeMath: division by zero"); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: modulo by zero"); return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * 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); return a - b; } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryDiv}. * * 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); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * 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; } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } /* users could create staking-reward model with this contract at single mode */ contract SimpleStaking is Ownable { using SafeMath for uint; uint constant doubleScale = 10 ** 36; // stake token IERC20 public stakeToken; // reward token IERC20 public rewardToken; // the number of reward token distribution for each block uint public rewardSpeed; // user deposit mapping(address => uint) public userCollateral; uint public totalCollateral; // use index to distribute reward token // index is compound exponential mapping(address => uint) public userIndex; uint public index; mapping(address => uint) public userAccrued; // record latest block height of reward token distributed uint public lastDistributedBlock; /* event */ event Deposit(address user, uint amount); event Withdraw(address user, uint amount); event RewardSpeedUpdated(uint oldSpeed, uint newSpeed); event RewardDistributed(address indexed user, uint delta, uint index); constructor(IERC20 _stakeToken, IERC20 _rewardToken) Ownable(){ stakeToken = _stakeToken; rewardToken = _rewardToken; index = doubleScale; } function deposit(uint amount) public { updateIndex(); distributeReward(msg.sender); require(stakeToken.transferFrom(msg.sender, address(this), amount), "transferFrom failed"); userCollateral[msg.sender] = userCollateral[msg.sender].add(amount); totalCollateral = totalCollateral.add(amount); emit Deposit(msg.sender, amount); } function withdraw(uint amount) public { updateIndex(); distributeReward(msg.sender); require(stakeToken.transfer(msg.sender, amount), "transfer failed"); userCollateral[msg.sender] = userCollateral[msg.sender].sub(amount); totalCollateral = totalCollateral.sub(amount); emit Withdraw(msg.sender, amount); } function setRewardSpeed(uint speed) public onlyOwner { updateIndex(); uint oldSpeed = rewardSpeed; rewardSpeed = speed; emit RewardSpeedUpdated(oldSpeed, speed); } function updateIndex() private { uint blockDelta = block.number.sub(lastDistributedBlock); if (blockDelta == 0) { return; } uint rewardAccrued = blockDelta.mul(rewardSpeed); if (totalCollateral > 0) { uint indexDelta = rewardAccrued.mul(doubleScale).div(totalCollateral); index = index.add(indexDelta); } lastDistributedBlock = block.number; } function distributeReward(address user) private { if (userIndex[user] == 0 && index > 0) { userIndex[user] = doubleScale; } uint indexDelta = index - userIndex[user]; userIndex[user] = index; uint rewardDelta = indexDelta.mul(userCollateral[user]).div(doubleScale); userAccrued[user] = userAccrued[user].add(rewardDelta); if (rewardToken.balanceOf(address(this)) >= userAccrued[user] && userAccrued[user] > 0) { if (rewardToken.transfer(user, userAccrued[user])) { userAccrued[user] = 0; } } emit RewardDistributed(user, rewardDelta, index); } function claimReward(address[] memory user) public { updateIndex(); for (uint i = 0; i < user.length; i++) { distributeReward(user[i]); } } function withdrawRemainReward() public onlyOwner { uint balance = rewardToken.balanceOf(address(this)); rewardToken.transfer(owner(), balance); } function pendingReward(address user) public view returns (uint){ uint blockDelta = block.number.sub(lastDistributedBlock); uint rewardAccrued = blockDelta.mul(rewardSpeed); if (totalCollateral == 0) { return userAccrued[user]; } uint ratio = rewardAccrued.mul(doubleScale).div(totalCollateral); uint currentIndex = index.add(ratio); uint uIndex = userIndex[user] == 0 && index > 0 ? doubleScale : userIndex[user]; uint indexDelta = currentIndex - uIndex; uint rewardDelta = indexDelta.mul(userCollateral[user]).div(doubleScale); return rewardDelta + userAccrued[user]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract IERC20","name":"_stakeToken","type":"address"},{"internalType":"contract IERC20","name":"_rewardToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"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":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"delta","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"}],"name":"RewardDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldSpeed","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSpeed","type":"uint256"}],"name":"RewardSpeedUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address[]","name":"user","type":"address[]"}],"name":"claimReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"index","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastDistributedBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"pendingReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardSpeed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"speed","type":"uint256"}],"name":"setRewardSpeed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakeToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalCollateral","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":"userAccrued","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawRemainReward","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516111e83803806111e88339818101604052604081101561003357600080fd5b50805160209091015160006100466100d4565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790556ec097ce7bc90715b34b9f10000000006007556100d8565b3390565b611101806100e76000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063820356c5116100a2578063c96679fe11610071578063c96679fe146102ab578063f2fde38b146102d1578063f40f0f52146102f7578063f69f1e4a1461031d578063f7c618c11461034357610116565b8063820356c5146101c65780638da5cb5b14610269578063a55d825714610271578063b6b55f251461028e57610116565b80634b6fdff1116100e95780634b6fdff11461016457806351ed6a301461018a5780635c0f6bd1146101ae57806361c90c06146101b6578063715018a6146101be57610116565b806321d570cf1461011b5780632986c0e5146101355780632e1a7d4d1461013d5780634ac8eb5f1461015c575b600080fd5b61012361034b565b60408051918252519081900360200190f35b610123610351565b61015a6004803603602081101561015357600080fd5b5035610357565b005b6101236104a3565b6101236004803603602081101561017a57600080fd5b50356001600160a01b03166104a9565b6101926104bb565b604080516001600160a01b039092168252519081900360200190f35b6101236104ca565b61015a6104d0565b61015a61063b565b61015a600480360360208110156101dc57600080fd5b8101906020810181356401000000008111156101f757600080fd5b82018360208201111561020957600080fd5b8035906020019184602083028401116401000000008311171561022b57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506106e7945050505050565b610192610723565b61015a6004803603602081101561028757600080fd5b5035610732565b61015a600480360360208110156102a457600080fd5b50356107e3565b610123600480360360208110156102c157600080fd5b50356001600160a01b0316610939565b61015a600480360360208110156102e757600080fd5b50356001600160a01b031661094b565b6101236004803603602081101561030d57600080fd5b50356001600160a01b0316610a4d565b6101236004803603602081101561033357600080fd5b50356001600160a01b0316610bb6565b610192610bc8565b60095481565b60075481565b61035f610bd7565b61036833610c5e565b6001546040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b1580156103bc57600080fd5b505af11580156103d0573d6000803e3d6000fd5b505050506040513d60208110156103e657600080fd5b505161042b576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b336000908152600460205260409020546104459082610edd565b336000908152600460205260409020556005546104629082610edd565b600555604080513381526020810183905281517f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364929181900390910190a150565b60055481565b60086020526000908152604090205481565b6001546001600160a01b031681565b60035481565b6104d8610f3f565b6001600160a01b03166104e9610723565b6001600160a01b031614610532576040805162461bcd60e51b815260206004820181905260248201526000805160206110ac833981519152604482015290519081900360640190fd5b600254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561057d57600080fd5b505afa158015610591573d6000803e3d6000fd5b505050506040513d60208110156105a757600080fd5b50516002549091506001600160a01b031663a9059cbb6105c5610723565b836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561060c57600080fd5b505af1158015610620573d6000803e3d6000fd5b505050506040513d602081101561063657600080fd5b505050565b610643610f3f565b6001600160a01b0316610654610723565b6001600160a01b03161461069d576040805162461bcd60e51b815260206004820181905260248201526000805160206110ac833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6106ef610bd7565b60005b815181101561071f5761071782828151811061070a57fe5b6020026020010151610c5e565b6001016106f2565b5050565b6000546001600160a01b031690565b61073a610f3f565b6001600160a01b031661074b610723565b6001600160a01b031614610794576040805162461bcd60e51b815260206004820181905260248201526000805160206110ac833981519152604482015290519081900360640190fd5b61079c610bd7565b6003805490829055604080518281526020810184905281517f2ced109ade5b38f636b63cec7b7f27685b64deac2adfdaa6d737890f268094da929181900390910190a15050565b6107eb610bd7565b6107f433610c5e565b600154604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561084e57600080fd5b505af1158015610862573d6000803e3d6000fd5b505050506040513d602081101561087857600080fd5b50516108c1576040805162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b604482015290519081900360640190fd5b336000908152600460205260409020546108db9082610f43565b336000908152600460205260409020556005546108f89082610f43565b600555604080513381526020810183905281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a150565b60066020526000908152604090205481565b610953610f3f565b6001600160a01b0316610964610723565b6001600160a01b0316146109ad576040805162461bcd60e51b815260206004820181905260248201526000805160206110ac833981519152604482015290519081900360640190fd5b6001600160a01b0381166109f25760405162461bcd60e51b81526004018080602001828103825260268152602001806110656026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610a6560095443610edd90919063ffffffff16565b90506000610a7e60035483610fa490919063ffffffff16565b905060055460001415610aac575050506001600160a01b038116600090815260086020526040902054610bb1565b600554600090610ad590610acf846ec097ce7bc90715b34b9f1000000000610fa4565b90610ffd565b90506000610aee82600754610f4390919063ffffffff16565b6001600160a01b03871660009081526006602052604081205491925090158015610b1a57506000600754115b610b3c576001600160a01b038716600090815260066020526040902054610b4d565b6ec097ce7bc90715b34b9f10000000005b6001600160a01b03881660009081526004602052604081205491925082840391610b8d906ec097ce7bc90715b34b9f100000000090610acf908590610fa4565b6001600160a01b038a16600090815260086020526040902054019750505050505050505b919050565b60046020526000908152604090205481565b6002546001600160a01b031681565b6000610bee60095443610edd90919063ffffffff16565b905080610bfb5750610c5c565b6000610c1260035483610fa490919063ffffffff16565b60055490915015610c5557600554600090610c4090610acf846ec097ce7bc90715b34b9f1000000000610fa4565b600754909150610c509082610f43565b600755505b5050436009555b565b6001600160a01b038116600090815260066020526040902054158015610c8657506000600754115b15610cb6576001600160a01b03811660009081526006602052604090206ec097ce7bc90715b34b9f100000000090555b6001600160a01b03811660009081526006602090815260408083208054600754918290556004909352908320549190039190610d08906ec097ce7bc90715b34b9f100000000090610acf908590610fa4565b6001600160a01b038416600090815260086020526040902054909150610d2e9082610f43565b6001600160a01b0380851660009081526008602090815260409182902084905560025482516370a0823160e01b815230600482015292519316926370a08231926024808201939291829003018186803b158015610d8a57600080fd5b505afa158015610d9e573d6000803e3d6000fd5b505050506040513d6020811015610db457600080fd5b505110801590610ddb57506001600160a01b03831660009081526008602052604090205415155b15610e90576002546001600160a01b03848116600081815260086020908152604080832054815163a9059cbb60e01b81526004810195909552602485015251939094169363a9059cbb93604480850194929391928390030190829087803b158015610e4557600080fd5b505af1158015610e59573d6000803e3d6000fd5b505050506040513d6020811015610e6f57600080fd5b505115610e90576001600160a01b0383166000908152600860205260408120555b60075460408051838152602081019290925280516001600160a01b038616927f53118bff2fb56701752f5bf54053d24fb83cec92f9f6ce664b90c38a2991caa492908290030190a2505050565b600082821115610f34576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b3390565b600082820183811015610f9d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600082610fb357506000610f39565b82820282848281610fc057fe5b0414610f9d5760405162461bcd60e51b815260040180806020018281038252602181526020018061108b6021913960400191505060405180910390fd5b6000808211611053576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161105c57fe5b04939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a264697066735822122071d52c75a2fe413e8142f658743e3fbb7fe6b59be505989115d5230906c7ef8b64736f6c634300070600330000000000000000000000003c647b36e30f4be590dcea349a0ecf8c259660af0000000000000000000000007778360f035c589fce2f4ea5786cbd8b36e5396b
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063820356c5116100a2578063c96679fe11610071578063c96679fe146102ab578063f2fde38b146102d1578063f40f0f52146102f7578063f69f1e4a1461031d578063f7c618c11461034357610116565b8063820356c5146101c65780638da5cb5b14610269578063a55d825714610271578063b6b55f251461028e57610116565b80634b6fdff1116100e95780634b6fdff11461016457806351ed6a301461018a5780635c0f6bd1146101ae57806361c90c06146101b6578063715018a6146101be57610116565b806321d570cf1461011b5780632986c0e5146101355780632e1a7d4d1461013d5780634ac8eb5f1461015c575b600080fd5b61012361034b565b60408051918252519081900360200190f35b610123610351565b61015a6004803603602081101561015357600080fd5b5035610357565b005b6101236104a3565b6101236004803603602081101561017a57600080fd5b50356001600160a01b03166104a9565b6101926104bb565b604080516001600160a01b039092168252519081900360200190f35b6101236104ca565b61015a6104d0565b61015a61063b565b61015a600480360360208110156101dc57600080fd5b8101906020810181356401000000008111156101f757600080fd5b82018360208201111561020957600080fd5b8035906020019184602083028401116401000000008311171561022b57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506106e7945050505050565b610192610723565b61015a6004803603602081101561028757600080fd5b5035610732565b61015a600480360360208110156102a457600080fd5b50356107e3565b610123600480360360208110156102c157600080fd5b50356001600160a01b0316610939565b61015a600480360360208110156102e757600080fd5b50356001600160a01b031661094b565b6101236004803603602081101561030d57600080fd5b50356001600160a01b0316610a4d565b6101236004803603602081101561033357600080fd5b50356001600160a01b0316610bb6565b610192610bc8565b60095481565b60075481565b61035f610bd7565b61036833610c5e565b6001546040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b1580156103bc57600080fd5b505af11580156103d0573d6000803e3d6000fd5b505050506040513d60208110156103e657600080fd5b505161042b576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b336000908152600460205260409020546104459082610edd565b336000908152600460205260409020556005546104629082610edd565b600555604080513381526020810183905281517f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364929181900390910190a150565b60055481565b60086020526000908152604090205481565b6001546001600160a01b031681565b60035481565b6104d8610f3f565b6001600160a01b03166104e9610723565b6001600160a01b031614610532576040805162461bcd60e51b815260206004820181905260248201526000805160206110ac833981519152604482015290519081900360640190fd5b600254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561057d57600080fd5b505afa158015610591573d6000803e3d6000fd5b505050506040513d60208110156105a757600080fd5b50516002549091506001600160a01b031663a9059cbb6105c5610723565b836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561060c57600080fd5b505af1158015610620573d6000803e3d6000fd5b505050506040513d602081101561063657600080fd5b505050565b610643610f3f565b6001600160a01b0316610654610723565b6001600160a01b03161461069d576040805162461bcd60e51b815260206004820181905260248201526000805160206110ac833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6106ef610bd7565b60005b815181101561071f5761071782828151811061070a57fe5b6020026020010151610c5e565b6001016106f2565b5050565b6000546001600160a01b031690565b61073a610f3f565b6001600160a01b031661074b610723565b6001600160a01b031614610794576040805162461bcd60e51b815260206004820181905260248201526000805160206110ac833981519152604482015290519081900360640190fd5b61079c610bd7565b6003805490829055604080518281526020810184905281517f2ced109ade5b38f636b63cec7b7f27685b64deac2adfdaa6d737890f268094da929181900390910190a15050565b6107eb610bd7565b6107f433610c5e565b600154604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561084e57600080fd5b505af1158015610862573d6000803e3d6000fd5b505050506040513d602081101561087857600080fd5b50516108c1576040805162461bcd60e51b81526020600482015260136024820152721d1c985b9cd9995c919c9bdb4819985a5b1959606a1b604482015290519081900360640190fd5b336000908152600460205260409020546108db9082610f43565b336000908152600460205260409020556005546108f89082610f43565b600555604080513381526020810183905281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a150565b60066020526000908152604090205481565b610953610f3f565b6001600160a01b0316610964610723565b6001600160a01b0316146109ad576040805162461bcd60e51b815260206004820181905260248201526000805160206110ac833981519152604482015290519081900360640190fd5b6001600160a01b0381166109f25760405162461bcd60e51b81526004018080602001828103825260268152602001806110656026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610a6560095443610edd90919063ffffffff16565b90506000610a7e60035483610fa490919063ffffffff16565b905060055460001415610aac575050506001600160a01b038116600090815260086020526040902054610bb1565b600554600090610ad590610acf846ec097ce7bc90715b34b9f1000000000610fa4565b90610ffd565b90506000610aee82600754610f4390919063ffffffff16565b6001600160a01b03871660009081526006602052604081205491925090158015610b1a57506000600754115b610b3c576001600160a01b038716600090815260066020526040902054610b4d565b6ec097ce7bc90715b34b9f10000000005b6001600160a01b03881660009081526004602052604081205491925082840391610b8d906ec097ce7bc90715b34b9f100000000090610acf908590610fa4565b6001600160a01b038a16600090815260086020526040902054019750505050505050505b919050565b60046020526000908152604090205481565b6002546001600160a01b031681565b6000610bee60095443610edd90919063ffffffff16565b905080610bfb5750610c5c565b6000610c1260035483610fa490919063ffffffff16565b60055490915015610c5557600554600090610c4090610acf846ec097ce7bc90715b34b9f1000000000610fa4565b600754909150610c509082610f43565b600755505b5050436009555b565b6001600160a01b038116600090815260066020526040902054158015610c8657506000600754115b15610cb6576001600160a01b03811660009081526006602052604090206ec097ce7bc90715b34b9f100000000090555b6001600160a01b03811660009081526006602090815260408083208054600754918290556004909352908320549190039190610d08906ec097ce7bc90715b34b9f100000000090610acf908590610fa4565b6001600160a01b038416600090815260086020526040902054909150610d2e9082610f43565b6001600160a01b0380851660009081526008602090815260409182902084905560025482516370a0823160e01b815230600482015292519316926370a08231926024808201939291829003018186803b158015610d8a57600080fd5b505afa158015610d9e573d6000803e3d6000fd5b505050506040513d6020811015610db457600080fd5b505110801590610ddb57506001600160a01b03831660009081526008602052604090205415155b15610e90576002546001600160a01b03848116600081815260086020908152604080832054815163a9059cbb60e01b81526004810195909552602485015251939094169363a9059cbb93604480850194929391928390030190829087803b158015610e4557600080fd5b505af1158015610e59573d6000803e3d6000fd5b505050506040513d6020811015610e6f57600080fd5b505115610e90576001600160a01b0383166000908152600860205260408120555b60075460408051838152602081019290925280516001600160a01b038616927f53118bff2fb56701752f5bf54053d24fb83cec92f9f6ce664b90c38a2991caa492908290030190a2505050565b600082821115610f34576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b3390565b600082820183811015610f9d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600082610fb357506000610f39565b82820282848281610fc057fe5b0414610f9d5760405162461bcd60e51b815260040180806020018281038252602181526020018061108b6021913960400191505060405180910390fd5b6000808211611053576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161105c57fe5b04939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a264697066735822122071d52c75a2fe413e8142f658743e3fbb7fe6b59be505989115d5230906c7ef8b64736f6c63430007060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003c647b36e30f4be590dcea349a0ecf8c259660af0000000000000000000000007778360f035c589fce2f4ea5786cbd8b36e5396b
-----Decoded View---------------
Arg [0] : _stakeToken (address): 0x3C647B36e30F4Be590DCea349A0eCf8C259660af
Arg [1] : _rewardToken (address): 0x7778360F035C589fCE2f4eA5786CbD8B36e5396B
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000003c647b36e30f4be590dcea349a0ecf8c259660af
Arg [1] : 0000000000000000000000007778360f035c589fce2f4ea5786cbd8b36e5396b
Deployed Bytecode Sourcemap
13418:4354:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14121:32;;;:::i;:::-;;;;;;;;;;;;;;;;13980:17;;;:::i;14987:365::-;;;;;;;;;;;;;;;;-1:-1:-1;14987:365:0;;:::i;:::-;;13813:27;;;:::i;14006:43::-;;;;;;;;;;;;;;;;-1:-1:-1;14006:43:0;-1:-1:-1;;;;;14006:43:0;;:::i;13556:24::-;;;:::i;:::-;;;;-1:-1:-1;;;;;13556:24:0;;;;;;;;;;;;;;13707:23;;;:::i;16915:168::-;;;:::i;12781:148::-;;;:::i;16723:184::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16723:184:0;;-1:-1:-1;16723:184:0;;-1:-1:-1;;;;;16723:184:0:i;12130:87::-;;;:::i;15360:204::-;;;;;;;;;;;;;;;;-1:-1:-1;15360:204:0;;:::i;14593:386::-;;;;;;;;;;;;;;;;-1:-1:-1;14593:386:0;;:::i;13932:41::-;;;;;;;;;;;;;;;;-1:-1:-1;13932:41:0;-1:-1:-1;;;;;13932:41:0;;:::i;13084:244::-;;;;;;;;;;;;;;;;-1:-1:-1;13084:244:0;-1:-1:-1;;;;;13084:244:0;;:::i;17091:678::-;;;;;;;;;;;;;;;;-1:-1:-1;17091:678:0;-1:-1:-1;;;;;17091:678:0;;:::i;13760:46::-;;;;;;;;;;;;;;;;-1:-1:-1;13760:46:0;-1:-1:-1;;;;;13760:46:0;;:::i;13610:25::-;;;:::i;14121:32::-;;;;:::o;13980:17::-;;;;:::o;14987:365::-;15036:13;:11;:13::i;:::-;15060:28;15077:10;15060:16;:28::i;:::-;15107:10;;:39;;;-1:-1:-1;;;15107:39:0;;15127:10;15107:39;;;;;;;;;;;;-1:-1:-1;;;;;15107:10:0;;;;:19;;:39;;;;;;;;;;;;;;;:10;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15107:39:0;15099:67;;;;;-1:-1:-1;;;15099:67:0;;;;;;;;;;;;-1:-1:-1;;;15099:67:0;;;;;;;;;;;;;;;15221:10;15206:26;;;;:14;:26;;;;;;:38;;15237:6;15206:30;:38::i;:::-;15192:10;15177:26;;;;:14;:26;;;;;:67;15273:15;;:27;;15293:6;15273:19;:27::i;:::-;15255:15;:45;15316:28;;;15325:10;15316:28;;;;;;;;;;;;;;;;;;;;;14987:365;:::o;13813:27::-;;;;:::o;14006:43::-;;;;;;;;;;;;;:::o;13556:24::-;;;-1:-1:-1;;;;;13556:24:0;;:::o;13707:23::-;;;;:::o;16915:168::-;12361:12;:10;:12::i;:::-;-1:-1:-1;;;;;12350:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;12350:23:0;;12342:68;;;;;-1:-1:-1;;;12342:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12342:68:0;;;;;;;;;;;;;;;16990:11:::1;::::0;:36:::1;::::0;;-1:-1:-1;;;16990:36:0;;17020:4:::1;16990:36;::::0;::::1;::::0;;;16975:12:::1;::::0;-1:-1:-1;;;;;16990:11:0::1;::::0;:21:::1;::::0;:36;;;;;::::1;::::0;;;;;;;;:11;:36;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;16990:36:0;17037:11:::1;::::0;16990:36;;-1:-1:-1;;;;;;17037:11:0::1;:20;17058:7;:5;:7::i;:::-;17067;17037:38;;;;;;;;;;;;;-1:-1:-1::0;;;;;17037:38:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;;16915:168:0:o;12781:148::-;12361:12;:10;:12::i;:::-;-1:-1:-1;;;;;12350:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;12350:23:0;;12342:68;;;;;-1:-1:-1;;;12342:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12342:68:0;;;;;;;;;;;;;;;12888:1:::1;12872:6:::0;;12851:40:::1;::::0;-1:-1:-1;;;;;12872:6:0;;::::1;::::0;12851:40:::1;::::0;12888:1;;12851:40:::1;12919:1;12902:19:::0;;-1:-1:-1;;;;;;12902:19:0::1;::::0;;12781:148::o;16723:184::-;16785:13;:11;:13::i;:::-;16814:6;16809:91;16830:4;:11;16826:1;:15;16809:91;;;16863:25;16880:4;16885:1;16880:7;;;;;;;;;;;;;;16863:16;:25::i;:::-;16843:3;;16809:91;;;;16723:184;:::o;12130:87::-;12176:7;12203:6;-1:-1:-1;;;;;12203:6:0;12130:87;:::o;15360:204::-;12361:12;:10;:12::i;:::-;-1:-1:-1;;;;;12350:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;12350:23:0;;12342:68;;;;;-1:-1:-1;;;12342:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12342:68:0;;;;;;;;;;;;;;;15424:13:::1;:11;:13::i;:::-;15464:11;::::0;;15486:19;;;;15521:35:::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;12421:1;15360:204:::0;:::o;14593:386::-;14641:13;:11;:13::i;:::-;14665:28;14682:10;14665:16;:28::i;:::-;14712:10;;:58;;;-1:-1:-1;;;14712:58:0;;14736:10;14712:58;;;;14756:4;14712:58;;;;;;;;;;;;-1:-1:-1;;;;;14712:10:0;;;;:23;;:58;;;;;;;;;;;;;;;:10;;:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14712:58:0;14704:90;;;;;-1:-1:-1;;;14704:90:0;;;;;;;;;;;;-1:-1:-1;;;14704:90:0;;;;;;;;;;;;;;;14849:10;14834:26;;;;:14;:26;;;;;;:38;;14865:6;14834:30;:38::i;:::-;14820:10;14805:26;;;;:14;:26;;;;;:67;14901:15;;:27;;14921:6;14901:19;:27::i;:::-;14883:15;:45;14944:27;;;14952:10;14944:27;;;;;;;;;;;;;;;;;;;;;14593:386;:::o;13932:41::-;;;;;;;;;;;;;:::o;13084:244::-;12361:12;:10;:12::i;:::-;-1:-1:-1;;;;;12350:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;12350:23:0;;12342:68;;;;;-1:-1:-1;;;12342:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12342:68:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;13173:22:0;::::1;13165:73;;;;-1:-1:-1::0;;;13165:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13275:6;::::0;;13254:38:::1;::::0;-1:-1:-1;;;;;13254:38:0;;::::1;::::0;13275:6;::::1;::::0;13254:38:::1;::::0;::::1;13303:6;:17:::0;;-1:-1:-1;;;;;;13303:17:0::1;-1:-1:-1::0;;;;;13303:17:0;;;::::1;::::0;;;::::1;::::0;;13084:244::o;17091:678::-;17149:4;17165:15;17183:38;17200:20;;17183:12;:16;;:38;;;;:::i;:::-;17165:56;;17232:18;17253:27;17268:11;;17253:10;:14;;:27;;;;:::i;:::-;17232:48;;17295:15;;17314:1;17295:20;17291:77;;;-1:-1:-1;;;;;;;;17339:17:0;;;;;;:11;:17;;;;;;17332:24;;17291:77;17426:15;;17378:10;;17391:51;;:30;:13;13519:8;17391:17;:30::i;:::-;:34;;:51::i;:::-;17378:64;;17453:17;17473:16;17483:5;17473;;:9;;:16;;;;:::i;:::-;-1:-1:-1;;;;;17514:15:0;;17500:11;17514:15;;;:9;:15;;;;;;17453:36;;-1:-1:-1;17500:11:0;17514:20;:33;;;;;17546:1;17538:5;;:9;17514:33;:65;;-1:-1:-1;;;;;17564:15:0;;;;;;:9;:15;;;;;;17514:65;;;13519:8;17514:65;-1:-1:-1;;;;;17674:20:0;;17590:15;17674:20;;;:14;:20;;;;;;17500:79;;-1:-1:-1;17608:21:0;;;;17659:53;;13519:8;;17659:36;;17608:21;;17659:14;:36::i;:53::-;-1:-1:-1;;;;;17744:17:0;;;;;;:11;:17;;;;;;17730:31;;-1:-1:-1;;;;;;;;17091:678:0;;;;:::o;13760:46::-;;;;;;;;;;;;;:::o;13610:25::-;;;-1:-1:-1;;;;;13610:25:0;;:::o;15572:450::-;15614:15;15632:38;15649:20;;15632:12;:16;;:38;;;;:::i;:::-;15614:56;-1:-1:-1;15685:15:0;15681:54;;15717:7;;;15681:54;15745:18;15766:27;15781:11;;15766:10;:14;;:27;;;;:::i;:::-;15808:15;;15745:48;;-1:-1:-1;15808:19:0;15804:165;;15897:15;;15844;;15862:51;;:30;:13;13519:8;15862:17;:30::i;:51::-;15936:5;;15844:69;;-1:-1:-1;15936:21:0;;15844:69;15936:9;:21::i;:::-;15928:5;:29;-1:-1:-1;15804:165:0;-1:-1:-1;;16002:12:0;15979:20;:35;15572:450;:::o;16030:685::-;-1:-1:-1;;;;;16093:15:0;;;;;;:9;:15;;;;;;:20;:33;;;;;16125:1;16117:5;;:9;16093:33;16089:95;;;-1:-1:-1;;;;;16143:15:0;;;;;;:9;:15;;;;;13519:8;16143:29;;16089:95;-1:-1:-1;;;;;16220:15:0;;16194;16220;;;:9;:15;;;;;;;;;;16212:5;;16246:23;;;;16314:14;:20;;;;;;;16212:23;;;;16194:15;16299:53;;13519:8;;16299:36;;16212:23;;16299:14;:36::i;:53::-;-1:-1:-1;;;;;16383:17:0;;;;;;:11;:17;;;;;;16280:72;;-1:-1:-1;16383:34:0;;16280:72;16383:21;:34::i;:::-;-1:-1:-1;;;;;16363:17:0;;;;;;;:11;:17;;;;;;;;;:54;;;16432:11;;:36;;-1:-1:-1;;;16432:36:0;;16462:4;16432:36;;;;;;:11;;;:21;;:36;;;;;16363:17;16432:36;;;;;;:11;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16432:36:0;:57;;;;:82;;-1:-1:-1;;;;;;16493:17:0;;16513:1;16493:17;;;:11;:17;;;;;;:21;;16432:82;16428:221;;;16535:11;;-1:-1:-1;;;;;16562:17:0;;;16535:11;16562:17;;;:11;:17;;;;;;;;;16535:45;;-1:-1:-1;;;16535:45:0;;;;;;;;;;;;;;:11;;;;;:20;;:45;;;;;16562:17;;16535:45;;;;;;;;;:11;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16535:45:0;16531:107;;;-1:-1:-1;;;;;16601:17:0;;16621:1;16601:17;;;:11;:17;;;;;:21;16531:107;16701:5;;16664:43;;;;;;;;;;;;;;;-1:-1:-1;;;;;16664:43:0;;;;;;;;;;;;16030:685;;;:::o;3298:158::-;3356:7;3389:1;3384;:6;;3376:49;;;;;-1:-1:-1;;;3376:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3443:5:0;;;3298:158;;;;;:::o;10759:106::-;10847:10;10759:106;:::o;2836:179::-;2894:7;2926:5;;;2950:6;;;;2942:46;;;;;-1:-1:-1;;;2942:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3006:1;2836:179;-1:-1:-1;;;2836:179:0:o;3715:220::-;3773:7;3797:6;3793:20;;-1:-1:-1;3812:1:0;3805:8;;3793:20;3836:5;;;3840:1;3836;:5;:1;3860:5;;;;;:10;3852:56;;;;-1:-1:-1;;;3852:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4413:153;4471:7;4503:1;4499;:5;4491:44;;;;;-1:-1:-1;;;4491:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4557:1;4553;:5;;;;;;;4413:153;-1:-1:-1;;;4413:153:0:o
Swarm Source
ipfs://71d52c75a2fe413e8142f658743e3fbb7fe6b59be505989115d5230906c7ef8b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.007623 | 90,893.7594 | $692.85 |
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.