More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 94 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Exit | 19882380 | 232 days ago | IN | 0 ETH | 0.00035512 | ||||
Deposit | 19882376 | 232 days ago | IN | 0 ETH | 0.00047298 | ||||
Exit | 19882333 | 232 days ago | IN | 0 ETH | 0.00055041 | ||||
Deposit | 18970572 | 360 days ago | IN | 0 ETH | 0.00255943 | ||||
Exit | 18970354 | 360 days ago | IN | 0 ETH | 0.00241203 | ||||
Exit | 18748534 | 391 days ago | IN | 0 ETH | 0.00284032 | ||||
Exit | 18532373 | 421 days ago | IN | 0 ETH | 0.00295217 | ||||
Exit | 18302623 | 454 days ago | IN | 0 ETH | 0.00058376 | ||||
Exit | 17943283 | 504 days ago | IN | 0 ETH | 0.00347276 | ||||
Exit | 17935678 | 505 days ago | IN | 0 ETH | 0.0046553 | ||||
Exit | 17356281 | 586 days ago | IN | 0 ETH | 0.00227383 | ||||
Exit | 17304824 | 593 days ago | IN | 0 ETH | 0.00265953 | ||||
Exit | 17154214 | 615 days ago | IN | 0 ETH | 0.00331417 | ||||
Exit | 17094116 | 623 days ago | IN | 0 ETH | 0.00353963 | ||||
Exit | 16957956 | 643 days ago | IN | 0 ETH | 0.00160323 | ||||
Exit | 16917781 | 648 days ago | IN | 0 ETH | 0.00165107 | ||||
Deposit | 16903492 | 650 days ago | IN | 0 ETH | 0.00145368 | ||||
Exit | 16903485 | 650 days ago | IN | 0 ETH | 0.00114431 | ||||
Deposit | 16804240 | 664 days ago | IN | 0 ETH | 0.00935263 | ||||
Deposit | 16775953 | 668 days ago | IN | 0 ETH | 0.00223178 | ||||
Deposit | 16682104 | 681 days ago | IN | 0 ETH | 0.00318285 | ||||
Exit | 16662985 | 684 days ago | IN | 0 ETH | 0.00287977 | ||||
Deposit | 16613380 | 691 days ago | IN | 0 ETH | 0.00194269 | ||||
Deposit | 16591096 | 694 days ago | IN | 0 ETH | 0.0010945 | ||||
Deposit | 16591096 | 694 days ago | IN | 0 ETH | 0.00211395 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
StakingRewards
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-17 */ // SPDX-License-Identifier: MIT 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; } } /** * @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(msg.sender); } /** * @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() == msg.sender, "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); } } /** * @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; } } interface IToken{ function balanceOf(address owner) external view returns (uint256 balance); function transferFrom(address from,address to,uint256 amount) external returns (bool); function transfer(address to,uint256 amount) external returns (bool); } interface INFT{ function balanceOf(address owner) external view returns (uint256 balance); } contract StakingRewards is Ownable, ReentrancyGuard{ IToken private _token; INFT private _nft; address public treasury; uint256 public lastUpdateTime; uint256 public rewardPerTokenStored; mapping(address => uint256) private _userRewardPerTokenPaid; mapping(address => uint256) private _rewards; uint256 private _totalSupply; mapping(address => uint256) private _balances; uint256 public period; uint256 public rate; uint256 public start; mapping(address => bool) public _admin; modifier updateReward(address account) { rewardPerTokenStored = rewardPerToken(); lastUpdateTime = _blockTime(); if (account != address(0)) { _rewards[account] = earned(account); _userRewardPerTokenPaid[account] = rewardPerTokenStored; } _; } modifier onlyAdmin() { require(_admin[msg.sender] || msg.sender==owner(), "Caller is not the an admin"); _; } constructor(address tokenAddress, address nftAddress, address treasury_, uint256 period_, uint256 rate_) { _token = IToken(tokenAddress); _nft = INFT(nftAddress); treasury = treasury_; period = period_; rate = rate_; start = block.timestamp; } function totalSupply() external view returns (uint256) { return _totalSupply; } function balanceOf(address account) external view returns (uint256) { return _balances[account]; } function rewardRate() public view returns (uint256) { if (_blockTime() < period + start) return rate; return 0; } function apr() public view returns (uint256) { if (_totalSupply == 0) return 0; if(_blockTime()>start + period) return 0; return (rewardRate() * 1e5 * 365 * 24 * 60 * 60) / _totalSupply; } function _max(uint256 a, uint256 b) internal pure returns (uint256) { if (a > b) return a; return b; } function _getPeriod() private view returns (uint256){ uint256 periodEnd = start + period; if (periodEnd > _blockTime()) { uint256 lastUpdate = _max(lastUpdateTime, start); return _blockTime() - lastUpdate; } else { return 0; } } function rewardPerToken() public view returns (uint256) { if (_totalSupply == 0) return rewardPerTokenStored; return rewardPerTokenStored + (_getPeriod() * rate * 1e18) / _totalSupply; } function earned(address account) public view returns (uint256){ //if (_totalSupply == 0) return 0; return ((_balances[account] * (rewardPerToken() - _userRewardPerTokenPaid[account])) / 1e18) + _rewards[account]; } function _blockTime() private view returns (uint256){ return block.timestamp; /***** for testing only *******/ //return _blocktimestamp; } function canStake() public view returns (bool){ return _nft.balanceOf(msg.sender)>0; } function deposit(uint256 amount) external nonReentrant updateReward(msg.sender){ require(_token.balanceOf(msg.sender)>0 && _nft.balanceOf(msg.sender)>0,"Invalid Wallet"); _balances[msg.sender] += amount; _totalSupply += amount; _token.transferFrom(msg.sender, address(this), amount); } function exit() public nonReentrant { uint256 amount = _balances[msg.sender]; uint256 reward = earned(msg.sender); rewardPerTokenStored = rewardPerToken(); lastUpdateTime = _blockTime(); _userRewardPerTokenPaid[msg.sender] = rewardPerTokenStored; _totalSupply -= amount; _balances[msg.sender] = 0; _rewards[msg.sender] = 0; _token.transferFrom(treasury, msg.sender, reward); _token.transfer(msg.sender, amount); } ///////Admin Functions/////// function setPeriod(uint256 period_) public onlyAdmin{ period = period_; } function setRate(uint256 rate_) public onlyAdmin{ rate = rate_; } function setAdmin(address admin, bool hasAccess) public onlyAdmin{ _admin[admin] = hasAccess; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"nftAddress","type":"address"},{"internalType":"address","name":"treasury_","type":"address"},{"internalType":"uint256","name":"period_","type":"uint256"},{"internalType":"uint256","name":"rate_","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":[{"internalType":"address","name":"","type":"address"}],"name":"_admin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"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":[],"name":"canStake","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":[],"name":"period","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rate","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":"admin","type":"address"},{"internalType":"bool","name":"hasAccess","type":"bool"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"period_","type":"uint256"}],"name":"setPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate_","type":"uint256"}],"name":"setRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"start","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610eec380380610eec83398101604081905261002f916100f8565b6100383361008c565b60018055600280546001600160a01b03199081166001600160a01b039788161790915560038054821695871695909517909455600480549094169290941691909117909155600b55600c5542600d5561014e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146100f357600080fd5b919050565b600080600080600060a0868803121561011057600080fd5b610119866100dc565b9450610127602087016100dc565b9350610135604087016100dc565b6060870151608090970151959894975095949392505050565b610d8f8061015d6000396000f3fe608060405234801561001057600080fd5b50600436106101415760003560e01c80638da5cb5b116100b8578063c8f33c911161007c578063c8f33c911461028c578063cd3daf9d14610295578063df136d651461029d578063e9fad8ee146102a6578063ef78d4fd146102ae578063f2fde38b146102b757600080fd5b80638da5cb5b1461022457806398a78cd2146102355780639ed2780914610268578063b6b55f2514610270578063be9a65551461028357600080fd5b80634b0bddd21161010a5780634b0bddd2146101a557806357ded9c9146101b857806361d027b3146101c057806370a08231146101eb578063715018a6146102145780637b0a47ee1461021c57600080fd5b80628cc262146101465780630f3a9f651461016c57806318160ddd146101815780632c4e722e1461018957806334fcf43714610192575b600080fd5b610159610154366004610bf7565b6102ca565b6040519081526020015b60405180910390f35b61017f61017a366004610c19565b610347565b005b600954610159565b610159600c5481565b61017f6101a0366004610c19565b610399565b61017f6101b3366004610c40565b6103e2565b610159610451565b6004546101d3906001600160a01b031681565b6040516001600160a01b039091168152602001610163565b6101596101f9366004610bf7565b6001600160a01b03166000908152600a602052604090205490565b61017f6104d4565b610159610549565b6000546001600160a01b03166101d3565b610258610243366004610bf7565b600e6020526000908152604090205460ff1681565b6040519015158152602001610163565b61025861056f565b61017f61027e366004610c19565b6105e6565b610159600d5481565b61015960055481565b610159610874565b61015960065481565b61017f6108c8565b610159600b5481565b61017f6102c5366004610bf7565b610a52565b6001600160a01b0381166000908152600860209081526040808320546007909252822054670de0b6b3a764000090610300610874565b61030a9190610c8d565b6001600160a01b0385166000908152600a602052604090205461032d9190610ca0565b6103379190610cb7565b6103419190610cd9565b92915050565b336000908152600e602052604090205460ff168061036f57506000546001600160a01b031633145b6103945760405162461bcd60e51b815260040161038b90610cec565b60405180910390fd5b600b55565b336000908152600e602052604090205460ff16806103c157506000546001600160a01b031633145b6103dd5760405162461bcd60e51b815260040161038b90610cec565b600c55565b336000908152600e602052604090205460ff168061040a57506000546001600160a01b031633145b6104265760405162461bcd60e51b815260040161038b90610cec565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b60006009546000036104635750600090565b600b54600d546104739190610cd9565b4211156104805750600090565b60095461048b610549565b61049890620186a0610ca0565b6104a49061016d610ca0565b6104af906018610ca0565b6104ba90603c610ca0565b6104c590603c610ca0565b6104cf9190610cb7565b905090565b336104e76000546001600160a01b031690565b6001600160a01b03161461053d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161038b565b6105476000610b2c565b565b6000600d54600b5461055b9190610cd9565b4210156105695750600c5490565b50600090565b6003546040516370a0823160e01b815233600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156105bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e09190610d23565b11905090565b6002600154036106385760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161038b565b600260015533610646610874565b600655426005556001600160a01b0381161561069157610665816102ca565b6001600160a01b0382166000908152600860209081526040808320939093556006546007909152919020555b6002546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156106da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fe9190610d23565b11801561077557506003546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561074f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107739190610d23565b115b6107b25760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a590815d85b1b195d60921b604482015260640161038b565b336000908152600a6020526040812080548492906107d1908490610cd9565b9250508190555081600960008282546107ea9190610cd9565b90915550506002546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064015b6020604051808303816000875af1158015610847573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086b9190610d3c565b50506001805550565b6000600954600003610887575060065490565b600954600c54610895610b7c565b61089f9190610ca0565b6108b190670de0b6b3a7640000610ca0565b6108bb9190610cb7565b6006546104cf9190610cd9565b60026001540361091a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161038b565b6002600155336000818152600a602052604081205491610939906102ca565b9050610943610874565b600655426005556006543360009081526007602052604081209190915560098054849290610972908490610c8d565b9091555050336000818152600a602090815260408083208390556008909152808220919091556002546004805492516323b872dd60e01b81526001600160a01b039384169181019190915260248101939093526044830184905216906323b872dd906064016020604051808303816000875af11580156109f6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1a9190610d3c565b5060025460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb90604401610828565b33610a656000546001600160a01b031690565b6001600160a01b031614610abb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161038b565b6001600160a01b038116610b205760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161038b565b610b2981610b2c565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080600b54600d54610b8f9190610cd9565b905042811115610bbc576000610ba9600554600d54610bc4565b9050610bb58142610c8d565b9250505090565b600091505090565b600081831115610bd5575081610341565b50919050565b80356001600160a01b0381168114610bf257600080fd5b919050565b600060208284031215610c0957600080fd5b610c1282610bdb565b9392505050565b600060208284031215610c2b57600080fd5b5035919050565b8015158114610b2957600080fd5b60008060408385031215610c5357600080fd5b610c5c83610bdb565b91506020830135610c6c81610c32565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561034157610341610c77565b808202811582820484141761034157610341610c77565b600082610cd457634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561034157610341610c77565b6020808252601a908201527f43616c6c6572206973206e6f742074686520616e2061646d696e000000000000604082015260600190565b600060208284031215610d3557600080fd5b5051919050565b600060208284031215610d4e57600080fd5b8151610c1281610c3256fea2646970667358221220fa531b519e09f0d48d7060bab94d7c692bfd94b40f1fd8ee6a4d1a79d466db0964736f6c6343000811003300000000000000000000000037e83a94c6b1bdb816b59ac71dd02cf154d8111f000000000000000000000000ce752a490024066771acd1c520faf890a31300ac0000000000000000000000002407f17913981f6208d24c95c9b819840c4038640000000000000000000000000000000000000000000000000000000000f099c00000000000000000000000000000000000000000000000002c2087d39295558a
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101415760003560e01c80638da5cb5b116100b8578063c8f33c911161007c578063c8f33c911461028c578063cd3daf9d14610295578063df136d651461029d578063e9fad8ee146102a6578063ef78d4fd146102ae578063f2fde38b146102b757600080fd5b80638da5cb5b1461022457806398a78cd2146102355780639ed2780914610268578063b6b55f2514610270578063be9a65551461028357600080fd5b80634b0bddd21161010a5780634b0bddd2146101a557806357ded9c9146101b857806361d027b3146101c057806370a08231146101eb578063715018a6146102145780637b0a47ee1461021c57600080fd5b80628cc262146101465780630f3a9f651461016c57806318160ddd146101815780632c4e722e1461018957806334fcf43714610192575b600080fd5b610159610154366004610bf7565b6102ca565b6040519081526020015b60405180910390f35b61017f61017a366004610c19565b610347565b005b600954610159565b610159600c5481565b61017f6101a0366004610c19565b610399565b61017f6101b3366004610c40565b6103e2565b610159610451565b6004546101d3906001600160a01b031681565b6040516001600160a01b039091168152602001610163565b6101596101f9366004610bf7565b6001600160a01b03166000908152600a602052604090205490565b61017f6104d4565b610159610549565b6000546001600160a01b03166101d3565b610258610243366004610bf7565b600e6020526000908152604090205460ff1681565b6040519015158152602001610163565b61025861056f565b61017f61027e366004610c19565b6105e6565b610159600d5481565b61015960055481565b610159610874565b61015960065481565b61017f6108c8565b610159600b5481565b61017f6102c5366004610bf7565b610a52565b6001600160a01b0381166000908152600860209081526040808320546007909252822054670de0b6b3a764000090610300610874565b61030a9190610c8d565b6001600160a01b0385166000908152600a602052604090205461032d9190610ca0565b6103379190610cb7565b6103419190610cd9565b92915050565b336000908152600e602052604090205460ff168061036f57506000546001600160a01b031633145b6103945760405162461bcd60e51b815260040161038b90610cec565b60405180910390fd5b600b55565b336000908152600e602052604090205460ff16806103c157506000546001600160a01b031633145b6103dd5760405162461bcd60e51b815260040161038b90610cec565b600c55565b336000908152600e602052604090205460ff168061040a57506000546001600160a01b031633145b6104265760405162461bcd60e51b815260040161038b90610cec565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b60006009546000036104635750600090565b600b54600d546104739190610cd9565b4211156104805750600090565b60095461048b610549565b61049890620186a0610ca0565b6104a49061016d610ca0565b6104af906018610ca0565b6104ba90603c610ca0565b6104c590603c610ca0565b6104cf9190610cb7565b905090565b336104e76000546001600160a01b031690565b6001600160a01b03161461053d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161038b565b6105476000610b2c565b565b6000600d54600b5461055b9190610cd9565b4210156105695750600c5490565b50600090565b6003546040516370a0823160e01b815233600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156105bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e09190610d23565b11905090565b6002600154036106385760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161038b565b600260015533610646610874565b600655426005556001600160a01b0381161561069157610665816102ca565b6001600160a01b0382166000908152600860209081526040808320939093556006546007909152919020555b6002546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156106da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fe9190610d23565b11801561077557506003546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561074f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107739190610d23565b115b6107b25760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a590815d85b1b195d60921b604482015260640161038b565b336000908152600a6020526040812080548492906107d1908490610cd9565b9250508190555081600960008282546107ea9190610cd9565b90915550506002546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064015b6020604051808303816000875af1158015610847573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086b9190610d3c565b50506001805550565b6000600954600003610887575060065490565b600954600c54610895610b7c565b61089f9190610ca0565b6108b190670de0b6b3a7640000610ca0565b6108bb9190610cb7565b6006546104cf9190610cd9565b60026001540361091a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161038b565b6002600155336000818152600a602052604081205491610939906102ca565b9050610943610874565b600655426005556006543360009081526007602052604081209190915560098054849290610972908490610c8d565b9091555050336000818152600a602090815260408083208390556008909152808220919091556002546004805492516323b872dd60e01b81526001600160a01b039384169181019190915260248101939093526044830184905216906323b872dd906064016020604051808303816000875af11580156109f6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1a9190610d3c565b5060025460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb90604401610828565b33610a656000546001600160a01b031690565b6001600160a01b031614610abb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161038b565b6001600160a01b038116610b205760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161038b565b610b2981610b2c565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080600b54600d54610b8f9190610cd9565b905042811115610bbc576000610ba9600554600d54610bc4565b9050610bb58142610c8d565b9250505090565b600091505090565b600081831115610bd5575081610341565b50919050565b80356001600160a01b0381168114610bf257600080fd5b919050565b600060208284031215610c0957600080fd5b610c1282610bdb565b9392505050565b600060208284031215610c2b57600080fd5b5035919050565b8015158114610b2957600080fd5b60008060408385031215610c5357600080fd5b610c5c83610bdb565b91506020830135610c6c81610c32565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561034157610341610c77565b808202811582820484141761034157610341610c77565b600082610cd457634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561034157610341610c77565b6020808252601a908201527f43616c6c6572206973206e6f742074686520616e2061646d696e000000000000604082015260600190565b600060208284031215610d3557600080fd5b5051919050565b600060208284031215610d4e57600080fd5b8151610c1281610c3256fea2646970667358221220fa531b519e09f0d48d7060bab94d7c692bfd94b40f1fd8ee6a4d1a79d466db0964736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000037e83a94c6b1bdb816b59ac71dd02cf154d8111f000000000000000000000000ce752a490024066771acd1c520faf890a31300ac0000000000000000000000002407f17913981f6208d24c95c9b819840c4038640000000000000000000000000000000000000000000000000000000000f099c00000000000000000000000000000000000000000000000002c2087d39295558a
-----Decoded View---------------
Arg [0] : tokenAddress (address): 0x37E83a94c6B1Bdb816B59aC71dd02CF154d8111F
Arg [1] : nftAddress (address): 0xcE752a490024066771ACD1c520FAf890a31300Ac
Arg [2] : treasury_ (address): 0x2407f17913981F6208d24c95C9b819840c403864
Arg [3] : period_ (uint256): 15768000
Arg [4] : rate_ (uint256): 3179690679690679690
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000037e83a94c6b1bdb816b59ac71dd02cf154d8111f
Arg [1] : 000000000000000000000000ce752a490024066771acd1c520faf890a31300ac
Arg [2] : 0000000000000000000000002407f17913981f6208d24c95c9b819840c403864
Arg [3] : 0000000000000000000000000000000000000000000000000000000000f099c0
Arg [4] : 0000000000000000000000000000000000000000000000002c2087d39295558a
Deployed Bytecode Sourcemap
6168:4335:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8766:251;;;;;;:::i;:::-;;:::i;:::-;;;529:25:1;;;517:2;502:18;8766:251:0;;;;;;;;10198:87;;;;;;:::i;:::-;;:::i;:::-;;7506:93;7579:12;;7506:93;;6626:19;;;;;;10293:79;;;;;;:::i;:::-;;:::i;10383:109::-;;;;;;:::i;:::-;;:::i;7871:220::-;;;:::i;6278:23::-;;;;;-1:-1:-1;;;;;6278:23:0;;;;;;-1:-1:-1;;;;;1357:32:1;;;1339:51;;1327:2;1312:18;6278:23:0;1193:203:1;7607:112:0;;;;;;:::i;:::-;-1:-1:-1;;;;;7693:18:0;7666:7;7693:18;;;:9;:18;;;;;;;7607:112;2380:103;;;:::i;7727:136::-;;;:::i;1731:87::-;1777:7;1804:6;-1:-1:-1;;;;;1804:6:0;1731:87;;6681:38;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1566:14:1;;1559:22;1541:41;;1529:2;1514:18;6681:38:0;1401:187:1;9203:100:0;;;:::i;9311:326::-;;;;;;:::i;:::-;;:::i;6652:20::-;;;;;;6310:29;;;;;;8549:209;;;:::i;6346:35::-;;;;;;9647:508;;;:::i;6598:21::-;;;;;;2638:201;;;;;;:::i;:::-;;:::i;8766:251::-;-1:-1:-1;;;;;8992:17:0;;8820:7;8992:17;;;:8;:17;;;;;;;;;8933:23;:32;;;;;;8970:4;;8914:16;:14;:16::i;:::-;:51;;;;:::i;:::-;-1:-1:-1;;;;;8892:18:0;;;;;;:9;:18;;;;;;:74;;;;:::i;:::-;8891:83;;;;:::i;:::-;8890:119;;;;:::i;:::-;8883:126;8766:251;-1:-1:-1;;8766:251:0:o;10198:87::-;7103:10;7096:18;;;;:6;:18;;;;;;;;;:41;;-1:-1:-1;1777:7:0;1804:6;-1:-1:-1;;;;;1804:6:0;7118:10;:19;7096:41;7088:80;;;;-1:-1:-1;;;7088:80:0;;;;;;;:::i;:::-;;;;;;;;;10261:6:::1;:16:::0;10198:87::o;10293:79::-;7103:10;7096:18;;;;:6;:18;;;;;;;;;:41;;-1:-1:-1;1777:7:0;1804:6;-1:-1:-1;;;;;1804:6:0;7118:10;:19;7096:41;7088:80;;;;-1:-1:-1;;;7088:80:0;;;;;;;:::i;:::-;10352:4:::1;:12:::0;10293:79::o;10383:109::-;7103:10;7096:18;;;;:6;:18;;;;;;;;;:41;;-1:-1:-1;1777:7:0;1804:6;-1:-1:-1;;;;;1804:6:0;7118:10;:19;7096:41;7088:80;;;;-1:-1:-1;;;7088:80:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10459:13:0;;;::::1;;::::0;;;:6:::1;:13;::::0;;;;:25;;-1:-1:-1;;10459:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10383:109::o;7871:220::-;7907:7;7931:12;;7947:1;7931:17;7927:31;;-1:-1:-1;7957:1:0;;7871:220::o;7927:31::-;7993:6;;7985:5;;:14;;;;:::i;:::-;9095:15;7972:27;7969:40;;;-1:-1:-1;8008:1:0;;7871:220::o;7969:40::-;8071:12;;8028;:10;:12::i;:::-;:18;;8043:3;8028:18;:::i;:::-;:24;;8049:3;8028:24;:::i;:::-;:29;;8055:2;8028:29;:::i;:::-;:34;;8060:2;8028:34;:::i;:::-;:39;;8065:2;8028:39;:::i;:::-;8027:56;;;;:::i;:::-;8020:63;;7871:220;:::o;2380:103::-;1962:10;1951:7;1777;1804:6;-1:-1:-1;;;;;1804:6:0;;1731:87;1951:7;-1:-1:-1;;;;;1951:21:0;;1943:66;;;;-1:-1:-1;;;1943:66:0;;2940:2:1;1943:66:0;;;2922:21:1;;;2959:18;;;2952:30;3018:34;2998:18;;;2991:62;3070:18;;1943:66:0;2738:356:1;1943:66:0;2445:30:::1;2472:1;2445:18;:30::i;:::-;2380:103::o:0;7727:136::-;7770:7;7818:5;;7809:6;;:14;;;;:::i;:::-;9095:15;7794:29;7790:46;;;-1:-1:-1;7832:4:0;;;7727:136::o;7790:46::-;-1:-1:-1;7854:1:0;;7727:136::o;9203:100::-;9267:4;;:26;;-1:-1:-1;;;9267:26:0;;9282:10;9267:26;;;1339:51:1;9244:4:0;;;;-1:-1:-1;;;;;9267:4:0;;;;:14;;1312:18:1;;9267:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:28;9260:35;;9203:100;:::o;9311:326::-;4848:1;5446:7;;:19;5438:63;;;;-1:-1:-1;;;5438:63:0;;3490:2:1;5438:63:0;;;3472:21:1;3529:2;3509:18;;;3502:30;3568:33;3548:18;;;3541:61;3619:18;;5438:63:0;3288:355:1;5438:63:0;4848:1;5579:7;:18;9379:10:::1;6803:16;:14;:16::i;:::-;6780:20;:39:::0;9095:15;6830:14:::1;:29:::0;-1:-1:-1;;;;;6874:21:0;::::1;::::0;6870:159:::1;;6932:15;6939:7;6932:6;:15::i;:::-;-1:-1:-1::0;;;;;6912:17:0;::::1;;::::0;;;:8:::1;:17;::::0;;;;;;;:35;;;;6997:20:::1;::::0;6962:23:::1;:32:::0;;;;;;:55;6870:159:::1;9409:6:::2;::::0;:28:::2;::::0;-1:-1:-1;;;9409:28:0;;9426:10:::2;9409:28;::::0;::::2;1339:51:1::0;9438:1:0::2;::::0;-1:-1:-1;;;;;9409:6:0::2;::::0;:16:::2;::::0;1312:18:1;;9409:28:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:30;:62;;;;-1:-1:-1::0;9443:4:0::2;::::0;:26:::2;::::0;-1:-1:-1;;;9443:26:0;;9458:10:::2;9443:26;::::0;::::2;1339:51:1::0;9470:1:0::2;::::0;-1:-1:-1;;;;;9443:4:0::2;::::0;:14:::2;::::0;1312:18:1;;9443:26:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:28;9409:62;9401:88;;;::::0;-1:-1:-1;;;9401:88:0;;3850:2:1;9401:88:0::2;::::0;::::2;3832:21:1::0;3889:2;3869:18;;;3862:30;-1:-1:-1;;;3908:18:1;;;3901:44;3962:18;;9401:88:0::2;3648:338:1::0;9401:88:0::2;9510:10;9500:21;::::0;;;:9:::2;:21;::::0;;;;:31;;9525:6;;9500:21;:31:::2;::::0;9525:6;;9500:31:::2;:::i;:::-;;;;;;;;9558:6;9542:12;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;9575:6:0::2;::::0;:54:::2;::::0;-1:-1:-1;;;9575:54:0;;9595:10:::2;9575:54;::::0;::::2;4231:34:1::0;9615:4:0::2;4281:18:1::0;;;4274:43;4333:18;;;4326:34;;;-1:-1:-1;;;;;9575:6:0;;::::2;::::0;:19:::2;::::0;4166:18:1;;9575:54:0::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;4804:1:0;5758:22;;-1:-1:-1;9311:326:0:o;8549:209::-;8596:7;8620:12;;8636:1;8620:17;8616:50;;-1:-1:-1;8646:20:0;;;8549:209::o;8616:50::-;8738:12;;8723:4;;8708:12;:10;:12::i;:::-;:19;;;;:::i;:::-;:26;;8730:4;8708:26;:::i;:::-;8707:43;;;;:::i;:::-;8684:20;;:66;;;;:::i;9647:508::-;4848:1;5446:7;;:19;5438:63;;;;-1:-1:-1;;;5438:63:0;;3490:2:1;5438:63:0;;;3472:21:1;3529:2;3509:18;;;3502:30;3568:33;3548:18;;;3541:61;3619:18;;5438:63:0;3288:355:1;5438:63:0;4848:1;5579:7;:18;9721:10:::1;9694:14;9711:21:::0;;;:9:::1;:21;::::0;;;;;;9760:18:::1;::::0;:6:::1;:18::i;:::-;9743:35;;9812:16;:14;:16::i;:::-;9789:20;:39:::0;9095:15;9839:14:::1;:29:::0;9917:20:::1;::::0;9903:10:::1;9879:35;::::0;;;:23:::1;:35;::::0;;;;:58;;;;9948:12:::1;:22:::0;;9964:6;;9879:35;9948:22:::1;::::0;9964:6;;9948:22:::1;:::i;:::-;::::0;;;-1:-1:-1;;9991:10:0::1;10005:1;9981:21:::0;;;:9:::1;:21;::::0;;;;;;;:25;;;10017:8:::1;:20:::0;;;;;;:24;;;;10052:6:::1;::::0;10072:8:::1;::::0;;10052:49;;-1:-1:-1;;;10052:49:0;;-1:-1:-1;;;;;10072:8:0;;::::1;10052:49:::0;;::::1;4231:34:1::0;;;;4281:18;;;4274:43;;;;4333:18;;;4326:34;;;10052:6:0::1;::::0;:19:::1;::::0;4166:18:1;;10052:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;10112:6:0::1;::::0;:35:::1;::::0;-1:-1:-1;;;10112:35:0;;10128:10:::1;10112:35;::::0;::::1;4795:51:1::0;4862:18;;;4855:34;;;-1:-1:-1;;;;;10112:6:0;;::::1;::::0;:15:::1;::::0;4768:18:1;;10112:35:0::1;4621:274:1::0;2638:201:0;1962:10;1951:7;1777;1804:6;-1:-1:-1;;;;;1804:6:0;;1731:87;1951:7;-1:-1:-1;;;;;1951:21:0;;1943:66;;;;-1:-1:-1;;;1943:66:0;;2940:2:1;1943:66:0;;;2922:21:1;;;2959:18;;;2952:30;3018:34;2998:18;;;2991:62;3070:18;;1943:66:0;2738:356:1;1943:66:0;-1:-1:-1;;;;;2727:22:0;::::1;2719:73;;;::::0;-1:-1:-1;;;2719:73:0;;5102:2:1;2719:73:0::1;::::0;::::1;5084:21:1::0;5141:2;5121:18;;;5114:30;5180:34;5160:18;;;5153:62;-1:-1:-1;;;5231:18:1;;;5224:36;5277:19;;2719:73:0::1;4900:402:1::0;2719:73:0::1;2803:28;2822:8;2803:18;:28::i;:::-;2638:201:::0;:::o;2999:191::-;3073:16;3092:6;;-1:-1:-1;;;;;3109:17:0;;;-1:-1:-1;;;;;;3109:17:0;;;;;;3142:40;;3092:6;;;;;;;3142:40;;3073:16;3142:40;3062:128;2999:191;:::o;8232:309::-;8276:7;8295:17;8323:6;;8315:5;;:14;;;;:::i;:::-;8295:34;-1:-1:-1;9095:15:0;8344:9;:24;8340:194;;;8385:18;8406:27;8411:14;;8427:5;;8406:4;:27::i;:::-;8385:48;-1:-1:-1;8455:25:0;8385:48;9095:15;8455:25;:::i;:::-;8448:32;;;;8232:309;:::o;8340:194::-;8520:1;8513:8;;;8232:309;:::o;8099:125::-;8158:7;8186:1;8182;:5;8178:19;;;-1:-1:-1;8196:1:0;8189:8;;8178:19;-1:-1:-1;8215:1:0;8099:125;-1:-1:-1;8099:125:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:1:o;565:180::-;624:6;677:2;665:9;656:7;652:23;648:32;645:52;;;693:1;690;683:12;645:52;-1:-1:-1;716:23:1;;565:180;-1:-1:-1;565:180:1:o;750:118::-;836:5;829:13;822:21;815:5;812:32;802:60;;858:1;855;848:12;873:315;938:6;946;999:2;987:9;978:7;974:23;970:32;967:52;;;1015:1;1012;1005:12;967:52;1038:29;1057:9;1038:29;:::i;:::-;1028:39;;1117:2;1106:9;1102:18;1089:32;1130:28;1152:5;1130:28;:::i;:::-;1177:5;1167:15;;;873:315;;;;;:::o;1593:127::-;1654:10;1649:3;1645:20;1642:1;1635:31;1685:4;1682:1;1675:15;1709:4;1706:1;1699:15;1725:128;1792:9;;;1813:11;;;1810:37;;;1827:18;;:::i;1858:168::-;1931:9;;;1962;;1979:15;;;1973:22;;1959:37;1949:71;;2000:18;;:::i;2031:217::-;2071:1;2097;2087:132;;2141:10;2136:3;2132:20;2129:1;2122:31;2176:4;2173:1;2166:15;2204:4;2201:1;2194:15;2087:132;-1:-1:-1;2233:9:1;;2031:217::o;2253:125::-;2318:9;;;2339:10;;;2336:36;;;2352:18;;:::i;2383:350::-;2585:2;2567:21;;;2624:2;2604:18;;;2597:30;2663:28;2658:2;2643:18;;2636:56;2724:2;2709:18;;2383:350::o;3099:184::-;3169:6;3222:2;3210:9;3201:7;3197:23;3193:32;3190:52;;;3238:1;3235;3228:12;3190:52;-1:-1:-1;3261:16:1;;3099:184;-1:-1:-1;3099:184:1:o;4371:245::-;4438:6;4491:2;4479:9;4470:7;4466:23;4462:32;4459:52;;;4507:1;4504;4497:12;4459:52;4539:9;4533:16;4558:28;4580:5;4558:28;:::i
Swarm Source
ipfs://fa531b519e09f0d48d7060bab94d7c692bfd94b40f1fd8ee6a4d1a79d466db09
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.