More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 690 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Exit | 21395639 | 48 days ago | IN | 0 ETH | 0.00196305 | ||||
Exit | 19653481 | 291 days ago | IN | 0 ETH | 0.00141192 | ||||
Exit | 18808473 | 410 days ago | IN | 0 ETH | 0.0037433 | ||||
Exit | 18612348 | 437 days ago | IN | 0 ETH | 0.00357397 | ||||
Withdraw | 18506130 | 452 days ago | IN | 0 ETH | 0.00200509 | ||||
Get Reward | 18506127 | 452 days ago | IN | 0 ETH | 0.0024708 | ||||
Exit | 17829455 | 547 days ago | IN | 0 ETH | 0.00319569 | ||||
Exit | 17595256 | 580 days ago | IN | 0 ETH | 0.00209467 | ||||
Exit | 17385319 | 609 days ago | IN | 0 ETH | 0.00317656 | ||||
Exit | 17322956 | 618 days ago | IN | 0 ETH | 0.00724754 | ||||
Exit | 17218732 | 633 days ago | IN | 0 ETH | 0.00983566 | ||||
Exit | 17218644 | 633 days ago | IN | 0 ETH | 0.01121948 | ||||
Exit | 17004515 | 663 days ago | IN | 0 ETH | 0.00370763 | ||||
Get Reward | 16902608 | 677 days ago | IN | 0 ETH | 0.00111747 | ||||
Exit | 16816934 | 689 days ago | IN | 0 ETH | 0.00230039 | ||||
Exit | 16804487 | 691 days ago | IN | 0 ETH | 0.00827574 | ||||
Exit | 16738662 | 701 days ago | IN | 0 ETH | 0.00218321 | ||||
Exit | 16682050 | 708 days ago | IN | 0 ETH | 0.0025825 | ||||
Exit | 16634210 | 715 days ago | IN | 0 ETH | 0.00403625 | ||||
Stake | 16589779 | 721 days ago | IN | 0 ETH | 0.0023969 | ||||
Exit | 16530512 | 730 days ago | IN | 0 ETH | 0.00188636 | ||||
Stake | 16530506 | 730 days ago | IN | 0 ETH | 0.00209105 | ||||
Withdraw | 16346925 | 755 days ago | IN | 0 ETH | 0.00124081 | ||||
Exit | 16306214 | 761 days ago | IN | 0 ETH | 0.00217371 | ||||
Exit | 16291629 | 763 days ago | IN | 0 ETH | 0.0017667 |
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.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-02-28 */ // SPDX-License-Identifier: MIT // Sources flattened with hardhat v2.8.4 https://hardhat.org // File @openzeppelin/contracts/utils/[email protected] // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @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 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) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File @openzeppelin/contracts/access/[email protected] // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; /** * @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() { _transferOwnership(_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 { _transferOwnership(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"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File @openzeppelin/contracts/security/[email protected] // OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } } // File @openzeppelin/contracts/token/ERC20/[email protected] // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, 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 `from` to `to` 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 from, address to, 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); } // File contracts/StakingRewards.sol pragma solidity ^0.8.10; contract StakingRewards is Ownable, ReentrancyGuard { /* ========================== STATE VARIABLES =========================== */ IERC20 public token; address public treasury; uint256 public lastUpdateTime; uint256 public rewardPerTokenStored; mapping(address => uint256) public userRewardPerTokenPaid; mapping(address => uint256) public rewards; uint256 private _totalSupply; mapping(address => uint256) private _balances; uint256[] public periods; uint256[] public rates; /* ============================ CONSTRUCTOR ============================= */ constructor( // Token to stake. address _token, // The teasury account. address _treasury, uint256[] memory _periods, uint256[] memory _rates ) { require(_periods.length == _rates.length); periods = _periods; rates = _rates; token = IERC20(_token); treasury = _treasury; } /* =============================== VIEWS ================================ */ function totalSupply() external view returns (uint256) { return _totalSupply; } function balanceOf(address account) external view returns (uint256) { return _balances[account]; } // Returns the current reward rate. function rewardRate() public view returns (uint256) { if (block.timestamp < periods[0]) return 0; for (uint i = 1; i < periods.length; i++) { if (block.timestamp < periods[i]) return rates[i - 1]; } return 0; } function apr() public view returns (uint256) { if (_totalSupply == 0) return 0; return ((rewardRate() * 1e5) / _totalSupply) * 365 * 24 * 60 * 60; } function max(uint256 a, uint256 b) internal pure returns (uint256) { if (a > b) return a; return b; } function rewardPerToken() public view returns (uint256) { if (_totalSupply == 0) return rewardPerTokenStored; uint256 totalReward; for (uint i = 1; i < periods.length; i++) { // Period block did not start yet. uint256 periodStart = periods[i-1]; if (block.timestamp < periodStart) continue; // Period is already included in the last update. uint256 periodEnd = periods[i]; if (periodEnd < lastUpdateTime) continue; uint256 lastUpdate = max(lastUpdateTime, periodStart); uint256 periodRate = rates[i-1]; uint256 period; if (periodEnd < block.timestamp) { // Total period block, starting from lastUpdate. period = periodEnd - lastUpdate; } else { // Part of the period block, startingf from lastUpdate. period = block.timestamp - lastUpdate; } totalReward += (period * periodRate * 1e18) / _totalSupply; } return rewardPerTokenStored + totalReward; } function earned(address account) public view returns (uint256) { return ((_balances[account] * (rewardPerToken() - userRewardPerTokenPaid[account])) / 1e18) + rewards[account]; } /* ============================= MODIFIERS ============================== */ modifier updateReward(address account) { rewardPerTokenStored = rewardPerToken(); lastUpdateTime = block.timestamp; if (account != address(0)) { rewards[account] = earned(account); userRewardPerTokenPaid[account] = rewardPerTokenStored; } _; } /* ========================= MUTATIVE FUNCTIONS ========================= */ function stake(uint256 _amount) external nonReentrant updateReward(msg.sender) { _totalSupply += _amount; _balances[msg.sender] += _amount; token.transferFrom(msg.sender, address(this), _amount); } function withdraw() external { withdraw(_balances[msg.sender]); } function withdraw(uint256 _amount) public nonReentrant updateReward(msg.sender) { _totalSupply -= _amount; _balances[msg.sender] -= _amount; token.transfer(msg.sender, _amount); } function getReward() public nonReentrant updateReward(msg.sender) { uint256 reward = rewards[msg.sender]; rewards[msg.sender] = 0; token.transferFrom(treasury, msg.sender, reward); } function exit() external { exit(_balances[msg.sender]); } function exit(uint256 _amount) public { withdraw(_amount); getReward(); } /* ======================== RESTRICTED FUNCTIONS ======================== */ function updateRewards( uint256[] memory _periods, uint256[] memory _rates ) external onlyOwner updateReward(address(0)) { periods = _periods; rates = _rates; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_treasury","type":"address"},{"internalType":"uint256[]","name":"_periods","type":"uint256[]"},{"internalType":"uint256[]","name":"_rates","type":"uint256[]"}],"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"},{"inputs":[],"name":"apr","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","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":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"exit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastUpdateTime","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":"uint256","name":"","type":"uint256"}],"name":"periods","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rates","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":[{"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":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"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":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_periods","type":"uint256[]"},{"internalType":"uint256[]","name":"_rates","type":"uint256[]"}],"name":"updateRewards","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"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040516200116e3803806200116e833981016040819052620000349162000244565b6200003f33620000b6565b6001805580518251146200005257600080fd5b81516200006790600a90602085019062000106565b5080516200007d90600b90602084019062000106565b5050600280546001600160a01b039485166001600160a01b031991821617909155600380549390941692169190911790915550620002d4565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82805482825590600052602060002090810192821562000144579160200282015b828111156200014457825182559160200191906001019062000127565b506200015292915062000156565b5090565b5b8082111562000152576000815560010162000157565b80516001600160a01b03811681146200018557600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001b257600080fd5b815160206001600160401b0380831115620001d157620001d16200018a565b8260051b604051601f19603f83011681018181108482111715620001f957620001f96200018a565b6040529384528581018301938381019250878511156200021857600080fd5b83870191505b8482101562000239578151835291830191908301906200021e565b979650505050505050565b600080600080608085870312156200025b57600080fd5b62000266856200016d565b935062000276602086016200016d565b60408601519093506001600160401b03808211156200029457600080fd5b620002a288838901620001a0565b93506060870151915080821115620002b957600080fd5b50620002c887828801620001a0565b91505092959194509250565b610e8a80620002e46000396000f3fe608060405234801561001057600080fd5b50600436106101575760003560e01c80638b876347116100c3578063dd418ae21161007c578063dd418ae2146102b6578063df136d65146102c9578063e9fad8ee146102d2578063ea4a1104146102da578063f2fde38b146102ed578063fc0c546a1461030057600080fd5b80638b8763471461024e5780638da5cb5b1461026e578063a694fc3a1461027f578063b5cc47cb14610292578063c8f33c91146102a5578063cd3daf9d146102ae57600080fd5b806357ded9c91161011557806357ded9c9146101cf57806361d027b3146101d757806370a0823114610202578063715018a61461022b5780637b0a47ee146102335780637f8661a11461023b57600080fd5b80628cc2621461015c5780630700037d1461018257806318160ddd146101a25780632e1a7d4d146101aa5780633ccfd60b146101bf5780633d18b912146101c7575b600080fd5b61016f61016a366004610bb1565b610313565b6040519081526020015b60405180910390f35b61016f610190366004610bb1565b60076020526000908152604090205481565b60085461016f565b6101bd6101b8366004610be1565b610390565b005b6101bd6104cf565b6101bd6104ea565b61016f6105bf565b6003546101ea906001600160a01b031681565b6040516001600160a01b039091168152602001610179565b61016f610210366004610bb1565b6001600160a01b031660009081526009602052604090205490565b6101bd610626565b61016f61065a565b6101bd610249366004610be1565b610702565b61016f61025c366004610bb1565b60066020526000908152604090205481565b6000546001600160a01b03166101ea565b6101bd61028d366004610be1565b610716565b6101bd6102a0366004610cab565b61080a565b61016f60045481565b61016f6108b6565b61016f6102c4366004610be1565b610a0c565b61016f60055481565b6101bd610a2d565b61016f6102e8366004610be1565b610a46565b6101bd6102fb366004610bb1565b610a56565b6002546101ea906001600160a01b031681565b6001600160a01b0381166000908152600760209081526040808320546006909252822054670de0b6b3a7640000906103496108b6565b6103539190610d25565b6001600160a01b0385166000908152600960205260409020546103769190610d3c565b6103809190610d5b565b61038a9190610d7d565b92915050565b600260015414156103bc5760405162461bcd60e51b81526004016103b390610d95565b60405180910390fd5b6002600155336103ca6108b6565b600555426004556001600160a01b03811615610415576103e981610313565b6001600160a01b0382166000908152600760209081526040808320939093556005546006909152919020555b81600860008282546104279190610d25565b9091555050336000908152600960205260408120805484929061044b908490610d25565b909155505060025460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044015b6020604051808303816000875af11580156104a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c69190610dcc565b50506001805550565b336000908152600960205260409020546104e890610390565b565b6002600154141561050d5760405162461bcd60e51b81526004016103b390610d95565b60026001553361051b6108b6565b600555426004556001600160a01b038116156105665761053a81610313565b6001600160a01b0382166000908152600760209081526040808320939093556005546006909152919020555b33600081815260076020526040808220805492905560025460035491516323b872dd60e01b81526001600160a01b03928316600482015260248101949094526044840183905291929116906323b872dd90606401610483565b6000600854600014156105d25750600090565b6008546105dd61065a565b6105ea90620186a0610d3c565b6105f49190610d5b565b6106009061016d610d3c565b61060b906018610d3c565b61061690603c610d3c565b61062190603c610d3c565b905090565b6000546001600160a01b031633146106505760405162461bcd60e51b81526004016103b390610dee565b6104e86000610aea565b6000600a60008154811061067057610670610e23565b90600052602060002001544210156106885750600090565b60015b600a548110156106fa57600a81815481106106a8576106a8610e23565b90600052602060002001544210156106e857600b6106c7600183610d25565b815481106106d7576106d7610e23565b906000526020600020015491505090565b806106f281610e39565b91505061068b565b506000905090565b61070b81610390565b6107136104ea565b50565b600260015414156107395760405162461bcd60e51b81526004016103b390610d95565b6002600155336107476108b6565b600555426004556001600160a01b038116156107925761076681610313565b6001600160a01b0382166000908152600760209081526040808320939093556005546006909152919020555b81600860008282546107a49190610d7d565b909155505033600090815260096020526040812080548492906107c8908490610d7d565b90915550506002546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd90606401610483565b6000546001600160a01b031633146108345760405162461bcd60e51b81526004016103b390610dee565b600061083e6108b6565b600555426004556001600160a01b038116156108895761085d81610313565b6001600160a01b0382166000908152600760209081526040808320939093556005546006909152919020555b825161089c90600a906020860190610b51565b5081516108b090600b906020850190610b51565b50505050565b6000600854600014156108ca575060055490565b600060015b600a548110156109f7576000600a6108e8600184610d25565b815481106108f8576108f8610e23565b906000526020600020015490508042101561091357506109e5565b6000600a838154811061092857610928610e23565b906000526020600020015490506004548110156109465750506109e5565b600061095460045484610b3a565b90506000600b610965600187610d25565b8154811061097557610975610e23565b9060005260206000200154905060004284101561099d576109968385610d25565b90506109aa565b6109a78342610d25565b90505b6008546109b78383610d3c565b6109c990670de0b6b3a7640000610d3c565b6109d39190610d5b565b6109dd9088610d7d565b965050505050505b806109ef81610e39565b9150506108cf565b5080600554610a069190610d7d565b91505090565b600b8181548110610a1c57600080fd5b600091825260209091200154905081565b336000908152600960205260409020546104e890610702565b600a8181548110610a1c57600080fd5b6000546001600160a01b03163314610a805760405162461bcd60e51b81526004016103b390610dee565b6001600160a01b038116610ae55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103b3565b610713815b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081831115610b4b57508161038a565b50919050565b828054828255906000526020600020908101928215610b8c579160200282015b82811115610b8c578251825591602001919060010190610b71565b50610b98929150610b9c565b5090565b5b80821115610b985760008155600101610b9d565b600060208284031215610bc357600080fd5b81356001600160a01b0381168114610bda57600080fd5b9392505050565b600060208284031215610bf357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610c2157600080fd5b8135602067ffffffffffffffff80831115610c3e57610c3e610bfa565b8260051b604051601f19603f83011681018181108482111715610c6357610c63610bfa565b604052938452858101830193838101925087851115610c8157600080fd5b83870191505b84821015610ca057813583529183019190830190610c87565b979650505050505050565b60008060408385031215610cbe57600080fd5b823567ffffffffffffffff80821115610cd657600080fd5b610ce286838701610c10565b93506020850135915080821115610cf857600080fd5b50610d0585828601610c10565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b600082821015610d3757610d37610d0f565b500390565b6000816000190483118215151615610d5657610d56610d0f565b500290565b600082610d7857634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115610d9057610d90610d0f565b500190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600060208284031215610dde57600080fd5b81518015158114610bda57600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415610e4d57610e4d610d0f565b506001019056fea264697066735822122015a048a30ebfe1b084e3a01b307ac01fc0c714b758947872014aa495376ad7b264736f6c634300080c003300000000000000000000000037e83a94c6b1bdb816b59ac71dd02cf154d8111f000000000000000000000000b07c68402926d39ea04449e685ebd7f8f6af116c00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000621eb380000000000000000000000000000000000000000000000000000000006247920000000000000000000000000000000000000000000000000000000000626f1f00000000000000000000000000000000000000000000000000000000006311478000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000007c5a5a1a16a3d7c8000000000000000000000000000000000000000000000000358a75041f14c52800000000000000000000000000000000000000000000000007d5d2af6eb1dff00000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101575760003560e01c80638b876347116100c3578063dd418ae21161007c578063dd418ae2146102b6578063df136d65146102c9578063e9fad8ee146102d2578063ea4a1104146102da578063f2fde38b146102ed578063fc0c546a1461030057600080fd5b80638b8763471461024e5780638da5cb5b1461026e578063a694fc3a1461027f578063b5cc47cb14610292578063c8f33c91146102a5578063cd3daf9d146102ae57600080fd5b806357ded9c91161011557806357ded9c9146101cf57806361d027b3146101d757806370a0823114610202578063715018a61461022b5780637b0a47ee146102335780637f8661a11461023b57600080fd5b80628cc2621461015c5780630700037d1461018257806318160ddd146101a25780632e1a7d4d146101aa5780633ccfd60b146101bf5780633d18b912146101c7575b600080fd5b61016f61016a366004610bb1565b610313565b6040519081526020015b60405180910390f35b61016f610190366004610bb1565b60076020526000908152604090205481565b60085461016f565b6101bd6101b8366004610be1565b610390565b005b6101bd6104cf565b6101bd6104ea565b61016f6105bf565b6003546101ea906001600160a01b031681565b6040516001600160a01b039091168152602001610179565b61016f610210366004610bb1565b6001600160a01b031660009081526009602052604090205490565b6101bd610626565b61016f61065a565b6101bd610249366004610be1565b610702565b61016f61025c366004610bb1565b60066020526000908152604090205481565b6000546001600160a01b03166101ea565b6101bd61028d366004610be1565b610716565b6101bd6102a0366004610cab565b61080a565b61016f60045481565b61016f6108b6565b61016f6102c4366004610be1565b610a0c565b61016f60055481565b6101bd610a2d565b61016f6102e8366004610be1565b610a46565b6101bd6102fb366004610bb1565b610a56565b6002546101ea906001600160a01b031681565b6001600160a01b0381166000908152600760209081526040808320546006909252822054670de0b6b3a7640000906103496108b6565b6103539190610d25565b6001600160a01b0385166000908152600960205260409020546103769190610d3c565b6103809190610d5b565b61038a9190610d7d565b92915050565b600260015414156103bc5760405162461bcd60e51b81526004016103b390610d95565b60405180910390fd5b6002600155336103ca6108b6565b600555426004556001600160a01b03811615610415576103e981610313565b6001600160a01b0382166000908152600760209081526040808320939093556005546006909152919020555b81600860008282546104279190610d25565b9091555050336000908152600960205260408120805484929061044b908490610d25565b909155505060025460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044015b6020604051808303816000875af11580156104a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c69190610dcc565b50506001805550565b336000908152600960205260409020546104e890610390565b565b6002600154141561050d5760405162461bcd60e51b81526004016103b390610d95565b60026001553361051b6108b6565b600555426004556001600160a01b038116156105665761053a81610313565b6001600160a01b0382166000908152600760209081526040808320939093556005546006909152919020555b33600081815260076020526040808220805492905560025460035491516323b872dd60e01b81526001600160a01b03928316600482015260248101949094526044840183905291929116906323b872dd90606401610483565b6000600854600014156105d25750600090565b6008546105dd61065a565b6105ea90620186a0610d3c565b6105f49190610d5b565b6106009061016d610d3c565b61060b906018610d3c565b61061690603c610d3c565b61062190603c610d3c565b905090565b6000546001600160a01b031633146106505760405162461bcd60e51b81526004016103b390610dee565b6104e86000610aea565b6000600a60008154811061067057610670610e23565b90600052602060002001544210156106885750600090565b60015b600a548110156106fa57600a81815481106106a8576106a8610e23565b90600052602060002001544210156106e857600b6106c7600183610d25565b815481106106d7576106d7610e23565b906000526020600020015491505090565b806106f281610e39565b91505061068b565b506000905090565b61070b81610390565b6107136104ea565b50565b600260015414156107395760405162461bcd60e51b81526004016103b390610d95565b6002600155336107476108b6565b600555426004556001600160a01b038116156107925761076681610313565b6001600160a01b0382166000908152600760209081526040808320939093556005546006909152919020555b81600860008282546107a49190610d7d565b909155505033600090815260096020526040812080548492906107c8908490610d7d565b90915550506002546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd90606401610483565b6000546001600160a01b031633146108345760405162461bcd60e51b81526004016103b390610dee565b600061083e6108b6565b600555426004556001600160a01b038116156108895761085d81610313565b6001600160a01b0382166000908152600760209081526040808320939093556005546006909152919020555b825161089c90600a906020860190610b51565b5081516108b090600b906020850190610b51565b50505050565b6000600854600014156108ca575060055490565b600060015b600a548110156109f7576000600a6108e8600184610d25565b815481106108f8576108f8610e23565b906000526020600020015490508042101561091357506109e5565b6000600a838154811061092857610928610e23565b906000526020600020015490506004548110156109465750506109e5565b600061095460045484610b3a565b90506000600b610965600187610d25565b8154811061097557610975610e23565b9060005260206000200154905060004284101561099d576109968385610d25565b90506109aa565b6109a78342610d25565b90505b6008546109b78383610d3c565b6109c990670de0b6b3a7640000610d3c565b6109d39190610d5b565b6109dd9088610d7d565b965050505050505b806109ef81610e39565b9150506108cf565b5080600554610a069190610d7d565b91505090565b600b8181548110610a1c57600080fd5b600091825260209091200154905081565b336000908152600960205260409020546104e890610702565b600a8181548110610a1c57600080fd5b6000546001600160a01b03163314610a805760405162461bcd60e51b81526004016103b390610dee565b6001600160a01b038116610ae55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103b3565b610713815b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081831115610b4b57508161038a565b50919050565b828054828255906000526020600020908101928215610b8c579160200282015b82811115610b8c578251825591602001919060010190610b71565b50610b98929150610b9c565b5090565b5b80821115610b985760008155600101610b9d565b600060208284031215610bc357600080fd5b81356001600160a01b0381168114610bda57600080fd5b9392505050565b600060208284031215610bf357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610c2157600080fd5b8135602067ffffffffffffffff80831115610c3e57610c3e610bfa565b8260051b604051601f19603f83011681018181108482111715610c6357610c63610bfa565b604052938452858101830193838101925087851115610c8157600080fd5b83870191505b84821015610ca057813583529183019190830190610c87565b979650505050505050565b60008060408385031215610cbe57600080fd5b823567ffffffffffffffff80821115610cd657600080fd5b610ce286838701610c10565b93506020850135915080821115610cf857600080fd5b50610d0585828601610c10565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b600082821015610d3757610d37610d0f565b500390565b6000816000190483118215151615610d5657610d56610d0f565b500290565b600082610d7857634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115610d9057610d90610d0f565b500190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600060208284031215610dde57600080fd5b81518015158114610bda57600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415610e4d57610e4d610d0f565b506001019056fea264697066735822122015a048a30ebfe1b084e3a01b307ac01fc0c714b758947872014aa495376ad7b264736f6c634300080c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000037e83a94c6b1bdb816b59ac71dd02cf154d8111f000000000000000000000000b07c68402926d39ea04449e685ebd7f8f6af116c00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000621eb380000000000000000000000000000000000000000000000000000000006247920000000000000000000000000000000000000000000000000000000000626f1f00000000000000000000000000000000000000000000000000000000006311478000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000007c5a5a1a16a3d7c8000000000000000000000000000000000000000000000000358a75041f14c52800000000000000000000000000000000000000000000000007d5d2af6eb1dff00000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _token (address): 0x37E83a94c6B1Bdb816B59aC71dd02CF154d8111F
Arg [1] : _treasury (address): 0xB07C68402926D39ea04449e685Ebd7F8f6aF116c
Arg [2] : _periods (uint256[]): 1646179200,1648857600,1651449600,1662076800
Arg [3] : _rates (uint256[]): 8960573476702509000,3858024691358025000,564588979223126000,0
-----Encoded View---------------
14 Constructor Arguments found :
Arg [0] : 00000000000000000000000037e83a94c6b1bdb816b59ac71dd02cf154d8111f
Arg [1] : 000000000000000000000000b07c68402926d39ea04449e685ebd7f8f6af116c
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [5] : 00000000000000000000000000000000000000000000000000000000621eb380
Arg [6] : 0000000000000000000000000000000000000000000000000000000062479200
Arg [7] : 00000000000000000000000000000000000000000000000000000000626f1f00
Arg [8] : 0000000000000000000000000000000000000000000000000000000063114780
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [10] : 0000000000000000000000000000000000000000000000007c5a5a1a16a3d7c8
Arg [11] : 000000000000000000000000000000000000000000000000358a75041f14c528
Arg [12] : 00000000000000000000000000000000000000000000000007d5d2af6eb1dff0
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
9252:5081:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12354:235;;;;;;:::i;:::-;;:::i;:::-;;;451:25:1;;;439:2;424:18;12354:235:0;;;;;;;;9599:42;;;;;;:::i;:::-;;;;;;;;;;;;;;10360:93;10433:12;;10360:93;;13416:211;;;;;;:::i;:::-;;:::i;:::-;;13329:79;;;:::i;13635:214::-;;;:::i;10894:171::-;;;:::i;9423:23::-;;;;;-1:-1:-1;;;;;9423:23:0;;;;;;-1:-1:-1;;;;;836:32:1;;;818:51;;806:2;791:18;9423:23:0;672:203:1;10461:112:0;;;;;;:::i;:::-;-1:-1:-1;;;;;10547:18:0;10520:7;10547:18;;;:9;:18;;;;;;;10461:112;2711:103;;;:::i;10622:264::-;;;:::i;13936:96::-;;;;;;:::i;:::-;;:::i;9535:57::-;;;;;;:::i;:::-;;;;;;;;;;;;;;2060:87;2106:7;2133:6;-1:-1:-1;;;;;2133:6:0;2060:87;;13092:229;;;;;;:::i;:::-;;:::i;14124:206::-;;;;;;:::i;:::-;;:::i;9455:29::-;;;;;;11205:1141;;;:::i;9770:22::-;;;;;;:::i;:::-;;:::i;9491:35::-;;;;;;13857:71;;;:::i;9739:24::-;;;;;;:::i;:::-;;:::i;2969:201::-;;;;;;:::i;:::-;;:::i;9397:19::-;;;;;-1:-1:-1;;;;;9397:19:0;;;12354:235;-1:-1:-1;;;;;12565:16:0;;12408:7;12565:16;;;:7;:16;;;;;;;;;12508:22;:31;;;;;;12544:4;;12489:16;:14;:16::i;:::-;:50;;;;:::i;:::-;-1:-1:-1;;;;;12450:18:0;;;;;;:9;:18;;;;;;:90;;;;:::i;:::-;12449:99;;;;:::i;:::-;12448:133;;;;:::i;:::-;12428:153;12354:235;-1:-1:-1;;12354:235:0:o;13416:211::-;5346:1;5944:7;;:19;;5936:63;;;;-1:-1:-1;;;5936:63:0;;;;;;;:::i;:::-;;;;;;;;;5346:1;6077:7;:18;13484:10:::1;12754:16;:14;:16::i;:::-;12731:20;:39:::0;12798:15:::1;12781:14;:32:::0;-1:-1:-1;;;;;12828:21:0;::::1;::::0;12824:157:::1;;12885:15;12892:7;12885:6;:15::i;:::-;-1:-1:-1::0;;;;;12866:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;;;:34;;;;12949:20:::1;::::0;12915:22:::1;:31:::0;;;;;;:54;12824:157:::1;13523:7:::2;13507:12;;:23;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;13551:10:0::2;13541:21;::::0;;;:9:::2;:21;::::0;;;;:32;;13566:7;;13541:21;:32:::2;::::0;13566:7;;13541:32:::2;:::i;:::-;::::0;;;-1:-1:-1;;13584:5:0::2;::::0;:35:::2;::::0;-1:-1:-1;;;13584:35:0;;13599:10:::2;13584:35;::::0;::::2;4065:51:1::0;4132:18;;;4125:34;;;-1:-1:-1;;;;;13584:5:0;;::::2;::::0;:14:::2;::::0;4038:18:1;;13584:35:0::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;5302:1:0;6256:22;;-1:-1:-1;13416:211:0:o;13329:79::-;13388:10;13378:21;;;;:9;:21;;;;;;13369:31;;:8;:31::i;:::-;13329:79::o;13635:214::-;5346:1;5944:7;;:19;;5936:63;;;;-1:-1:-1;;;5936:63:0;;;;;;;:::i;:::-;5346:1;6077:7;:18;13689:10:::1;12754:16;:14;:16::i;:::-;12731:20;:39:::0;12798:15:::1;12781:14;:32:::0;-1:-1:-1;;;;;12828:21:0;::::1;::::0;12824:157:::1;;12885:15;12892:7;12885:6;:15::i;:::-;-1:-1:-1::0;;;;;12866:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;;;:34;;;;12949:20:::1;::::0;12915:22:::1;:31:::0;;;;;;:54;12824:157:::1;13737:10:::2;13712:14;13729:19:::0;;;:7:::2;:19;::::0;;;;;;;13759:23;;;13793:5:::2;::::0;13812:8:::2;::::0;13793:48;;-1:-1:-1;;;13793:48:0;;-1:-1:-1;;;;;13812:8:0;;::::2;13793:48;::::0;::::2;4692:34:1::0;4742:18;;;4735:43;;;;4794:18;;;4787:34;;;13729:19:0;;13793:5;::::2;::::0;:18:::2;::::0;4627::1;;13793:48:0::2;4452:375:1::0;10894:171:0;10930:7;10954:12;;10970:1;10954:17;10950:31;;;-1:-1:-1;10980:1:0;;10894:171::o;10950:31::-;11023:12;;11001;:10;:12::i;:::-;:18;;11016:3;11001:18;:::i;:::-;11000:35;;;;:::i;:::-;10999:43;;11039:3;10999:43;:::i;:::-;:48;;11045:2;10999:48;:::i;:::-;:53;;11050:2;10999:53;:::i;:::-;:58;;11055:2;10999:58;:::i;:::-;10992:65;;10894:171;:::o;2711:103::-;2106:7;2133:6;-1:-1:-1;;;;;2133:6:0;860:10;2280:23;2272:68;;;;-1:-1:-1;;;2272:68:0;;;;;;;:::i;:::-;2776:30:::1;2803:1;2776:18;:30::i;10622:264::-:0;10665:7;10707;10715:1;10707:10;;;;;;;;:::i;:::-;;;;;;;;;10689:15;:28;10685:42;;;-1:-1:-1;10726:1:0;;10622:264::o;10685:42::-;10752:1;10738:122;10759:7;:14;10755:18;;10738:122;;;10817:7;10825:1;10817:10;;;;;;;;:::i;:::-;;;;;;;;;10799:15;:28;10795:53;;;10836:5;10842;10846:1;10842;:5;:::i;:::-;10836:12;;;;;;;;:::i;:::-;;;;;;;;;10829:19;;;10622:264;:::o;10795:53::-;10775:3;;;;:::i;:::-;;;;10738:122;;;;10877:1;10870:8;;10622:264;:::o;13936:96::-;13985:17;13994:7;13985:8;:17::i;:::-;14013:11;:9;:11::i;:::-;13936:96;:::o;13092:229::-;5346:1;5944:7;;:19;;5936:63;;;;-1:-1:-1;;;5936:63:0;;;;;;;:::i;:::-;5346:1;6077:7;:18;13159:10:::1;12754:16;:14;:16::i;:::-;12731:20;:39:::0;12798:15:::1;12781:14;:32:::0;-1:-1:-1;;;;;12828:21:0;::::1;::::0;12824:157:::1;;12885:15;12892:7;12885:6;:15::i;:::-;-1:-1:-1::0;;;;;12866:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;;;:34;;;;12949:20:::1;::::0;12915:22:::1;:31:::0;;;;;;:54;12824:157:::1;13198:7:::2;13182:12;;:23;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;13226:10:0::2;13216:21;::::0;;;:9:::2;:21;::::0;;;;:32;;13241:7;;13216:21;:32:::2;::::0;13241:7;;13216:32:::2;:::i;:::-;::::0;;;-1:-1:-1;;13259:5:0::2;::::0;:54:::2;::::0;-1:-1:-1;;;13259:54:0;;13278:10:::2;13259:54;::::0;::::2;4692:34:1::0;13298:4:0::2;4742:18:1::0;;;4735:43;4794:18;;;4787:34;;;-1:-1:-1;;;;;13259:5:0;;::::2;::::0;:18:::2;::::0;4627::1;;13259:54:0::2;4452:375:1::0;14124:206:0;2106:7;2133:6;-1:-1:-1;;;;;2133:6:0;860:10;2280:23;2272:68;;;;-1:-1:-1;;;2272:68:0;;;;;;;:::i;:::-;14264:1:::1;12754:16;:14;:16::i;:::-;12731:20;:39:::0;12798:15:::1;12781:14;:32:::0;-1:-1:-1;;;;;12828:21:0;::::1;::::0;12824:157:::1;;12885:15;12892:7;12885:6;:15::i;:::-;-1:-1:-1::0;;;;;12866:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;;;:34;;;;12949:20:::1;::::0;12915:22:::1;:31:::0;;;;;;:54;12824:157:::1;14279:18:::0;;::::2;::::0;:7:::2;::::0;:18:::2;::::0;::::2;::::0;::::2;:::i;:::-;-1:-1:-1::0;14308:14:0;;::::2;::::0;:5:::2;::::0;:14:::2;::::0;::::2;::::0;::::2;:::i;:::-;;2351:1:::1;14124:206:::0;;:::o;11205:1141::-;11252:7;11276:12;;11292:1;11276:17;11272:50;;;-1:-1:-1;11302:20:0;;;11205:1141::o;11272:50::-;11333:19;11377:1;11363:924;11384:7;:14;11380:18;;11363:924;;;11468:19;11490:7;11498:3;11500:1;11498;:3;:::i;:::-;11490:12;;;;;;;;:::i;:::-;;;;;;;;;11468:34;;11539:11;11521:15;:29;11517:43;;;11552:8;;;11517:43;11640:17;11660:7;11668:1;11660:10;;;;;;;;:::i;:::-;;;;;;;;;11640:30;;11701:14;;11689:9;:26;11685:40;;;11717:8;;;;11685:40;11742:18;11763:32;11767:14;;11783:11;11763:3;:32::i;:::-;11742:53;-1:-1:-1;11810:18:0;11831:5;11837:3;11839:1;11837;:3;:::i;:::-;11831:10;;;;;;;;:::i;:::-;;;;;;;;;11810:31;;11858:14;11903:15;11891:9;:27;11887:316;;;12014:22;12026:10;12014:9;:22;:::i;:::-;12005:31;;11887:316;;;12159:28;12177:10;12159:15;:28;:::i;:::-;12150:37;;11887:316;12263:12;;12233:19;12242:10;12233:6;:19;:::i;:::-;:26;;12255:4;12233:26;:::i;:::-;12232:43;;;;:::i;:::-;12217:58;;;;:::i;:::-;;;11405:882;;;;;11363:924;11400:3;;;;:::i;:::-;;;;11363:924;;;;12327:11;12304:20;;:34;;;;:::i;:::-;12297:41;;;11205:1141;:::o;9770:22::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9770:22:0;:::o;13857:71::-;13908:10;13898:21;;;;:9;:21;;;;;;13893:27;;:4;:27::i;9739:24::-;;;;;;;;;;;;2969:201;2106:7;2133:6;-1:-1:-1;;;;;2133:6:0;860:10;2280:23;2272:68;;;;-1:-1:-1;;;2272:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3058:22:0;::::1;3050:73;;;::::0;-1:-1:-1;;;3050:73:0;;5667:2:1;3050:73:0::1;::::0;::::1;5649:21:1::0;5706:2;5686:18;;;5679:30;5745:34;5725:18;;;5718:62;-1:-1:-1;;;5796:18:1;;;5789:36;5842:19;;3050:73:0::1;5465:402:1::0;3050:73:0::1;3134:28;3153:8;3330:191:::0;3404:16;3423:6;;-1:-1:-1;;;;;3440:17:0;;;-1:-1:-1;;;;;;3440:17:0;;;;;;3473:40;;3423:6;;;;;;;3473:40;;3404:16;3473:40;3393:128;3330:191;:::o;11073:124::-;11131:7;11159:1;11155;:5;11151:19;;;-1:-1:-1;11169:1:0;11162:8;;11151:19;-1:-1:-1;11188:1:0;11073:124;-1:-1:-1;11073:124:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:286:1;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:1;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:1:o;487:180::-;546:6;599:2;587:9;578:7;574:23;570:32;567:52;;;615:1;612;605:12;567:52;-1:-1:-1;638:23:1;;487:180;-1:-1:-1;487:180:1:o;880:127::-;941:10;936:3;932:20;929:1;922:31;972:4;969:1;962:15;996:4;993:1;986:15;1012:902;1066:5;1119:3;1112:4;1104:6;1100:17;1096:27;1086:55;;1137:1;1134;1127:12;1086:55;1173:6;1160:20;1199:4;1222:18;1259:2;1255;1252:10;1249:36;;;1265:18;;:::i;:::-;1311:2;1308:1;1304:10;1343:2;1337:9;1406:2;1402:7;1397:2;1393;1389:11;1385:25;1377:6;1373:38;1461:6;1449:10;1446:22;1441:2;1429:10;1426:18;1423:46;1420:72;;;1472:18;;:::i;:::-;1508:2;1501:22;1558:18;;;1634:15;;;1630:24;;;1592:15;;;;-1:-1:-1;1666:15:1;;;1663:35;;;1694:1;1691;1684:12;1663:35;1730:2;1722:6;1718:15;1707:26;;1742:142;1758:6;1753:3;1750:15;1742:142;;;1824:17;;1812:30;;1862:12;;;;1775;;;;1742:142;;;1902:6;1012:902;-1:-1:-1;;;;;;;1012:902:1:o;1919:595::-;2037:6;2045;2098:2;2086:9;2077:7;2073:23;2069:32;2066:52;;;2114:1;2111;2104:12;2066:52;2154:9;2141:23;2183:18;2224:2;2216:6;2213:14;2210:34;;;2240:1;2237;2230:12;2210:34;2263:61;2316:7;2307:6;2296:9;2292:22;2263:61;:::i;:::-;2253:71;;2377:2;2366:9;2362:18;2349:32;2333:48;;2406:2;2396:8;2393:16;2390:36;;;2422:1;2419;2412:12;2390:36;;2445:63;2500:7;2489:8;2478:9;2474:24;2445:63;:::i;:::-;2435:73;;;1919:595;;;;;:::o;2741:127::-;2802:10;2797:3;2793:20;2790:1;2783:31;2833:4;2830:1;2823:15;2857:4;2854:1;2847:15;2873:125;2913:4;2941:1;2938;2935:8;2932:34;;;2946:18;;:::i;:::-;-1:-1:-1;2983:9:1;;2873:125::o;3003:168::-;3043:7;3109:1;3105;3101:6;3097:14;3094:1;3091:21;3086:1;3079:9;3072:17;3068:45;3065:71;;;3116:18;;:::i;:::-;-1:-1:-1;3156:9:1;;3003:168::o;3176:217::-;3216:1;3242;3232:132;;3286:10;3281:3;3277:20;3274:1;3267:31;3321:4;3318:1;3311:15;3349:4;3346:1;3339:15;3232:132;-1:-1:-1;3378:9:1;;3176:217::o;3398:128::-;3438:3;3469:1;3465:6;3462:1;3459:13;3456:39;;;3475:18;;:::i;:::-;-1:-1:-1;3511:9:1;;3398:128::o;3531:355::-;3733:2;3715:21;;;3772:2;3752:18;;;3745:30;3811:33;3806:2;3791:18;;3784:61;3877:2;3862:18;;3531:355::o;4170:277::-;4237:6;4290:2;4278:9;4269:7;4265:23;4261:32;4258:52;;;4306:1;4303;4296:12;4258:52;4338:9;4332:16;4391:5;4384:13;4377:21;4370:5;4367:32;4357:60;;4413:1;4410;4403:12;4832:356;5034:2;5016:21;;;5053:18;;;5046:30;5112:34;5107:2;5092:18;;5085:62;5179:2;5164:18;;4832:356::o;5193:127::-;5254:10;5249:3;5245:20;5242:1;5235:31;5285:4;5282:1;5275:15;5309:4;5306:1;5299:15;5325:135;5364:3;-1:-1:-1;;5385:17:1;;5382:43;;;5405:18;;:::i;:::-;-1:-1:-1;5452:1:1;5441:13;;5325:135::o
Swarm Source
ipfs://15a048a30ebfe1b084e3a01b307ac01fc0c714b758947872014aa495376ad7b2
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.