More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 541 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Unstake All NFT ... | 19574984 | 142 days ago | IN | 0 ETH | 0.00428827 | ||||
Claim Reward | 19574952 | 142 days ago | IN | 0 ETH | 0.00277005 | ||||
Claim Reward | 18813820 | 248 days ago | IN | 0 ETH | 0.00936224 | ||||
Claim Reward | 18462565 | 298 days ago | IN | 0 ETH | 0.00139743 | ||||
Unstake Nft | 18110390 | 347 days ago | IN | 0 ETH | 0.00151955 | ||||
Unstake Nft | 18110388 | 347 days ago | IN | 0 ETH | 0.00148845 | ||||
Unstake Nft | 18110386 | 347 days ago | IN | 0 ETH | 0.00175699 | ||||
Unstake Nft | 18110373 | 347 days ago | IN | 0 ETH | 0.00171387 | ||||
Unstake Nft | 18110371 | 347 days ago | IN | 0 ETH | 0.00191648 | ||||
Claim Reward | 18047380 | 356 days ago | IN | 0 ETH | 0.00132759 | ||||
Batch Stake NFT | 18025685 | 359 days ago | IN | 0 ETH | 0.00546074 | ||||
Unstake Nft | 17859111 | 382 days ago | IN | 0 ETH | 0.00234473 | ||||
Claim Reward | 17745943 | 398 days ago | IN | 0 ETH | 0.00182716 | ||||
Claim Reward | 17649953 | 411 days ago | IN | 0 ETH | 0.00218176 | ||||
Claim Reward | 17602116 | 418 days ago | IN | 0 ETH | 0.00101205 | ||||
Unstake All NFT ... | 17602112 | 418 days ago | IN | 0 ETH | 0.00334166 | ||||
Claim Reward | 17595529 | 419 days ago | IN | 0 ETH | 0.00129177 | ||||
Claim Reward | 17487569 | 434 days ago | IN | 0 ETH | 0.00118226 | ||||
Claim Reward | 17438951 | 441 days ago | IN | 0 ETH | 0.00162437 | ||||
Claim Reward | 17190667 | 476 days ago | IN | 0 ETH | 0.00618508 | ||||
Unstake Nft | 17128821 | 485 days ago | IN | 0 ETH | 0.00584256 | ||||
Claim Reward | 17128791 | 485 days ago | IN | 0 ETH | 0.00272665 | ||||
Claim Reward | 17056949 | 495 days ago | IN | 0 ETH | 0.00174444 | ||||
Claim Reward | 16903772 | 517 days ago | IN | 0 ETH | 0.00116852 | ||||
Claim Reward | 16655356 | 552 days ago | IN | 0 ETH | 0.00169878 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
NoBrainerStaking
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-18 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } /** * @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() { _setOwner(_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 { _setOwner(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"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } /** * @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 Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } interface I$LOBE is IERC20, IERC20Metadata { function mint(address to, uint256 amount) external; } interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); } interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; } interface IERC721Receiver { /** * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} * by `operator` from `from`, this function is called. * * It must return its Solidity selector to confirm the token transfer. * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. * * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`. */ function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); } 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 make 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; } } contract NoBrainerStaking is Ownable, IERC721Receiver, ReentrancyGuard { using SafeMath for uint256; I$LOBE public rewardsTokenContract; // interface for $LOBE contract IERC721 public stakeNFTContract; // interface for NoBrainer uint256 public startTimestamp; // staking start timestamp mapping(address=>uint256) public lastUpdateTimestamp; // last update timestamp for an address uint256 public rate = 100 ether; // staking reward rate per day 100 * 10 ** 18 mapping(address=>uint256) public NFTbalanceForAddress; // NoBrainer balance for an address mapping(address=>uint256) private claimableForAddress; // accumulated claimable balance before lastUpdateTmestap for an address mapping(uint256=>address) public NFTtokenOwnerForId; // NoBrainer owner address for tokenId already staked mapping(address=>uint256[]) public NFTtokenIdsStakedForAddress; // get list of staked tokenId list for an address uint256 public totalNFTstaked; // total NoBrainer staked uint256 public totalRewardClaimed; // total reward claimed (mint from $LOBE) mapping(address=>uint256) public totalRewardClaimedForAddress; // total reward claimed for an address (mint from $LOBE) // modifier for check if staking is started modifier hasStarted() { require(startTimestamp != 0, "NftStaking: staking not started"); _; } modifier hasNotStarted() { require(startTimestamp == 0, "NftStaking: staking has started"); _; } event Started(); event NftStaked(address staker, uint256 tokenId); event NftUnstaked(address staker, uint256 tokenId); event RewardsClaimed(address staker, uint256 amount); constructor (address nftContract, address rewardContract) { stakeNFTContract = IERC721(nftContract); rewardsTokenContract = I$LOBE(rewardContract); } // start staking function start() public onlyOwner hasNotStarted { startTimestamp = block.timestamp; emit Started(); } // in case for update Nobrainer or $LOBE address function updateContractAddress(address nftContract, address rewardContract) public onlyOwner { stakeNFTContract = IERC721(nftContract); rewardsTokenContract = I$LOBE(rewardContract); } // update staking reward rate function updateRate (uint256 _rate) public onlyOwner { rate = _rate; } // important!!! in case NoBrainer recieved to staking contract for stake, user must send it as safetransferfrom to call this function. function onERC721Received( address , address from, uint256 tokenId, bytes calldata ) external override returns (bytes4){ _stakeNFT(tokenId, from); return bytes4(keccak256("onERC721Received(address,address,uint256,bytes)")); } // get total claimable amount, updates everytime calling this function function getClaimableAmount(address account) public view returns (uint256) { return claimableForAddress[account] + ((block.timestamp - lastUpdateTimestamp[account]).mul(NFTbalanceForAddress[account]).mul(rate).div(1 days)); } // list NFT ids staked by address function listNFTStaked(address addr) public view returns (uint256 [] memory) { return NFTtokenIdsStakedForAddress[addr]; } // stake NFT function _stakeNFT(uint256 id, address from) internal hasStarted { require(address(stakeNFTContract) == msg.sender, "NftStaking: not correct NFT staked!"); claimableForAddress[from] = getClaimableAmount(from); NFTbalanceForAddress[from] = NFTbalanceForAddress[from].add(1); totalNFTstaked = totalNFTstaked.add(1); lastUpdateTimestamp[from] = block.timestamp; NFTtokenOwnerForId[id] = from; NFTtokenIdsStakedForAddress[from].push(id); emit NftStaked(from, id); } // list NFT by address function listNFT(address addr) public view returns (uint256 [] memory) { uint256 tokenCount = stakeNFTContract.balanceOf(addr); uint256[] memory tokensId; if (tokenCount == 0) { return new uint256[](0); } else { tokensId = new uint256[](tokenCount); for(uint256 i = 0; i < tokenCount; i++){ tokensId[i] = stakeNFTContract.tokenOfOwnerByIndex(addr, i); } } return tokensId; } // batch stake NFT function batchStakeNFT() external hasStarted { uint256[] memory tokensId = listNFT(msg.sender); for (uint256 i=0; i < tokensId.length; i ++){ stakeNFTContract.safeTransferFrom(msg.sender, address(this), tokensId[i]); } } // unstake NFT, transfer back nft to original owner function unstakeNft(uint256 id) public hasStarted { require(NFTtokenOwnerForId[id] == msg.sender, "NftStaking: token not staked or incorrect token owner!"); NFTtokenOwnerForId[id] = address(0); claimableForAddress[msg.sender] = getClaimableAmount(msg.sender); NFTbalanceForAddress[msg.sender] = NFTbalanceForAddress[msg.sender].sub(1); totalNFTstaked = totalNFTstaked.sub(1); lastUpdateTimestamp[msg.sender] = block.timestamp; for (uint i = 0; i < NFTtokenIdsStakedForAddress[msg.sender].length; i ++){ if (NFTtokenIdsStakedForAddress[msg.sender][i] == id){ NFTtokenIdsStakedForAddress[msg.sender][i] = NFTtokenIdsStakedForAddress[msg.sender][NFTtokenIdsStakedForAddress[msg.sender].length - 1]; break; } } NFTtokenIdsStakedForAddress[msg.sender].pop(); try stakeNFTContract.safeTransferFrom(address(this), msg.sender, id) {} catch { stakeNFTContract.transferFrom(address(this), msg.sender, id); } emit NftUnstaked(msg.sender, id); } // batch unstake all NFT for msg.sender function unstakeAllNFTForAddress() external hasStarted { require(NFTtokenIdsStakedForAddress[msg.sender].length > 0, "NftStaing: Caller doesn't have any staked token!"); uint256 count = NFTtokenIdsStakedForAddress[msg.sender].length; for(uint i = 0; i < count; i ++){ unstakeNft(NFTtokenIdsStakedForAddress[msg.sender][0]); } } // claim reward for stake holers function claimReward() external hasStarted { uint256 claimAmount = getClaimableAmount(msg.sender); require(claimAmount > 0, "NftStaking: no claimable balance!"); claimableForAddress[msg.sender] = 0; lastUpdateTimestamp[msg.sender] = block.timestamp; rewardsTokenContract.mint(msg.sender, claimAmount); totalRewardClaimed = totalRewardClaimed.add(claimAmount); totalRewardClaimedForAddress[msg.sender] = totalRewardClaimedForAddress[msg.sender].add(claimAmount); emit RewardsClaimed(msg.sender, claimAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"nftContract","type":"address"},{"internalType":"address","name":"rewardContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"NftStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"NftUnstaked","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":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardsClaimed","type":"event"},{"anonymous":false,"inputs":[],"name":"Started","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"NFTbalanceForAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"NFTtokenIdsStakedForAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"NFTtokenOwnerForId","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"batchStakeNFT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getClaimableAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastUpdateTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"listNFT","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"listNFTStaked","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"rewardsTokenContract","outputs":[{"internalType":"contract I$LOBE","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakeNFTContract","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"start","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalNFTstaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewardClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalRewardClaimedForAddress","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":"unstakeAllNFTForAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"unstakeNft","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"nftContract","type":"address"},{"internalType":"address","name":"rewardContract","type":"address"}],"name":"updateContractAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"updateRate","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405268056bc75e2d631000006006553480156200001e57600080fd5b5060405162001786380380620017868339810160408190526200004191620000ef565b6200004c3362000082565b60018055600380546001600160a01b039384166001600160a01b0319918216179091556002805492909316911617905562000126565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620000ea57600080fd5b919050565b6000806040838503121562000102578182fd5b6200010d83620000d2565b91506200011d60208401620000d2565b90509250929050565b61165080620001366000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80636f83f6a2116100de578063bb1897c711610097578063e64c605d11610071578063e64c605d14610333578063e6fd48bc14610346578063f2fde38b1461034f578063f4f4cda71461036257600080fd5b8063bb1897c7146102ef578063be9a655514610318578063e12f3a611461032057600080fd5b80636f83f6a21461029f578063715018a6146102a85780638da5cb5b146102b05780639de2e1cb146102c1578063a1e9d139146102d4578063b88a802f146102e757600080fd5b80633678c0e4116101305780633678c0e41461021d5780634ace59741461022557806352f088361461024557806369ea1771146102705780636b426000146102835780636c2052421461029657600080fd5b80631235ed4e14610178578063150b7a021461019e5780632c29b4de146101ca5780632c4e722e146101ea578063316b6927146101f357806335eb7b20146101fd575b600080fd5b61018b61018636600461141f565b610382565b6040519081526020015b60405180910390f35b6101b16101ac366004611389565b6103b3565b6040516001600160e01b03199091168152602001610195565b61018b6101d836600461133d565b60056020526000908152604090205481565b61018b60065481565b6101fb6103ea565b005b61021061020b36600461133d565b6104f7565b6040516101959190611478565b6101fb6106c0565b61018b61023336600461133d565b60076020526000908152604090205481565b600354610258906001600160a01b031681565b6040516001600160a01b039091168152602001610195565b6101fb61027e366004611448565b6107b8565b6101fb610291366004611448565b6107e7565b61018b600b5481565b61018b600c5481565b6101fb610b52565b6000546001600160a01b0316610258565b600254610258906001600160a01b031681565b6102106102e236600461133d565b610b88565b6101fb610bf4565b6102586102fd366004611448565b6009602052600090815260409020546001600160a01b031681565b6101fb610d73565b61018b61032e36600461133d565b610e1c565b6101fb610341366004611357565b610e95565b61018b60045481565b6101fb61035d36600461133d565b610eed565b61018b61037036600461133d565b600d6020526000908152604090205481565b600a602052816000526040600020818154811061039e57600080fd5b90600052602060002001600091509150505481565b60006103bf8486610f88565b507f150b7a023d4804d13e8c85fb27262cb750cf6ba9f9dd3bb30d90f482ceeb4b1f95945050505050565b6004546104125760405162461bcd60e51b81526004016104099061150f565b60405180910390fd5b336000908152600a60205260409020546104875760405162461bcd60e51b815260206004820152603060248201527f4e6674537461696e673a2043616c6c657220646f65736e27742068617665206160448201526f6e79207374616b656420746f6b656e2160801b6064820152608401610409565b336000908152600a6020526040812054905b818110156104f357336000908152600a6020526040812080546104e192906104d157634e487b7160e01b600052603260045260246000fd5b90600052602060002001546107e7565b806104eb816115e9565b915050610499565b5050565b6003546040516370a0823160e01b81526001600160a01b0383811660048301526060926000929116906370a082319060240160206040518083038186803b15801561054157600080fd5b505afa158015610555573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105799190611460565b905060608161059957505060408051600081526020810190915292915050565b8167ffffffffffffffff8111156105c057634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156105e9578160200160208202803683370190505b50905060005b828110156106b857600354604051632f745c5960e01b81526001600160a01b0387811660048301526024820184905290911690632f745c599060440160206040518083038186803b15801561064357600080fd5b505afa158015610657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067b9190611460565b82828151811061069b57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152806106b0816115e9565b9150506105ef565b509392505050565b6004546106df5760405162461bcd60e51b81526004016104099061150f565b60006106ea336104f7565b905060005b81518110156104f35760035482516001600160a01b03909116906342842e0e903390309086908690811061073357634e487b7160e01b600052603260045260246000fd5b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561078d57600080fd5b505af11580156107a1573d6000803e3d6000fd5b5050505080806107b0906115e9565b9150506106ef565b6000546001600160a01b031633146107e25760405162461bcd60e51b815260040161040990611546565b600655565b6004546108065760405162461bcd60e51b81526004016104099061150f565b6000818152600960205260409020546001600160a01b0316331461088b5760405162461bcd60e51b815260206004820152603660248201527f4e66745374616b696e673a20746f6b656e206e6f74207374616b6564206f7220604482015275696e636f727265637420746f6b656e206f776e65722160501b6064820152608401610409565b600081815260096020526040902080546001600160a01b03191690556108b033610e1c565b336000908152600860209081526040808320939093556007905220546108d7906001611100565b33600090815260076020526040902055600b546108f5906001611100565b600b553360009081526005602052604081204290555b336000908152600a60205260409020548110156109fe57336000908152600a6020526040902080548391908390811061095457634e487b7160e01b600052603260045260246000fd5b906000526020600020015414156109ec57336000908152600a602052604090208054610982906001906115d2565b815481106109a057634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154338352600a90915260409091208054839081106109db57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001556109fe565b806109f6816115e9565b91505061090b565b50336000908152600a60205260409020805480610a2b57634e487b7160e01b600052603160045260246000fd5b600082815260208120600019908301810191909155019055600354604051632142170760e11b8152306004820152336024820152604481018390526001600160a01b03909116906342842e0e90606401600060405180830381600087803b158015610a9557600080fd5b505af1925050508015610aa6575060015b610b15576003546040516323b872dd60e01b8152306004820152336024820152604481018390526001600160a01b03909116906323b872dd90606401600060405180830381600087803b158015610afc57600080fd5b505af1158015610b10573d6000803e3d6000fd5b505050505b60408051338152602081018390527fe8b40fda281c6bb8d29a090b37522bcc49728e60bf2bbbff36ea712ff1b498a591015b60405180910390a150565b6000546001600160a01b03163314610b7c5760405162461bcd60e51b815260040161040990611546565b610b866000611149565b565b6001600160a01b0381166000908152600a6020908152604091829020805483518184028101840190945280845260609392830182828015610be857602002820191906000526020600020905b815481526020019060010190808311610bd4575b50505050509050919050565b600454610c135760405162461bcd60e51b81526004016104099061150f565b6000610c1e33610e1c565b905060008111610c7a5760405162461bcd60e51b815260206004820152602160248201527f4e66745374616b696e673a206e6f20636c61696d61626c652062616c616e63656044820152602160f81b6064820152608401610409565b33600081815260086020908152604080832083905560059091529081902042905560025490516340c10f1960e01b81526004810192909252602482018390526001600160a01b0316906340c10f1990604401600060405180830381600087803b158015610ce657600080fd5b505af1158015610cfa573d6000803e3d6000fd5b5050600c54610d0c9250905082611199565b600c55336000908152600d6020526040902054610d299082611199565b336000818152600d60209081526040918290209390935580519182529181018390527ffc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe9101610b47565b6000546001600160a01b03163314610d9d5760405162461bcd60e51b815260040161040990611546565b60045415610ded5760405162461bcd60e51b815260206004820152601f60248201527f4e66745374616b696e673a207374616b696e67206861732073746172746564006044820152606401610409565b426004556040517fd8cea0ecd56872ff072e771658b5682ffe4de16d752947f79597d600ea56f7a990600090a1565b6006546001600160a01b03821660009081526007602090815260408083205460059092528220549192610e6c926201518092610e669291610e6091908290426115d2565b906111f8565b90611277565b6001600160a01b038316600090815260086020526040902054610e8f919061157b565b92915050565b6000546001600160a01b03163314610ebf5760405162461bcd60e51b815260040161040990611546565b600380546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055565b6000546001600160a01b03163314610f175760405162461bcd60e51b815260040161040990611546565b6001600160a01b038116610f7c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610409565b610f8581611149565b50565b600454610fa75760405162461bcd60e51b81526004016104099061150f565b6003546001600160a01b0316331461100d5760405162461bcd60e51b815260206004820152602360248201527f4e66745374616b696e673a206e6f7420636f7272656374204e4654207374616b60448201526265642160e81b6064820152608401610409565b61101681610e1c565b6001600160a01b038216600090815260086020908152604080832093909355600790522054611046906001611199565b6001600160a01b038216600090815260076020526040902055600b5461106d906001611199565b600b556001600160a01b03811660008181526005602090815260408083204290558583526009825280832080546001600160a01b03191685179055838352600a8252808320805460018101825590845292829020909201859055815192835282018490527f67fdef29b4d3c5f8e8a10bc5f9797626d078010bb98360a511e7cde7db9d9f06910160405180910390a15050565b600061114283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112b9565b9392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806111a6838561157b565b9050838110156111425760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610409565b60008261120757506000610e8f565b600061121383856115b3565b9050826112208583611593565b146111425760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610409565b600061114283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112f3565b600081848411156112dd5760405162461bcd60e51b815260040161040991906114bc565b5060006112ea84866115d2565b95945050505050565b600081836113145760405162461bcd60e51b815260040161040991906114bc565b5060006112ea8486611593565b80356001600160a01b038116811461133857600080fd5b919050565b60006020828403121561134e578081fd5b61114282611321565b60008060408385031215611369578081fd5b61137283611321565b915061138060208401611321565b90509250929050565b6000806000806000608086880312156113a0578081fd5b6113a986611321565b94506113b760208701611321565b935060408601359250606086013567ffffffffffffffff808211156113da578283fd5b818801915088601f8301126113ed578283fd5b8135818111156113fb578384fd5b89602082850101111561140c578384fd5b9699959850939650602001949392505050565b60008060408385031215611431578182fd5b61143a83611321565b946020939093013593505050565b600060208284031215611459578081fd5b5035919050565b600060208284031215611471578081fd5b5051919050565b6020808252825182820181905260009190848201906040850190845b818110156114b057835183529284019291840191600101611494565b50909695505050505050565b6000602080835283518082850152825b818110156114e8578581018301518582016040015282016114cc565b818111156114f95783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601f908201527f4e66745374616b696e673a207374616b696e67206e6f74207374617274656400604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000821982111561158e5761158e611604565b500190565b6000826115ae57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156115cd576115cd611604565b500290565b6000828210156115e4576115e4611604565b500390565b60006000198214156115fd576115fd611604565b5060010190565b634e487b7160e01b600052601160045260246000fdfea264697066735822122046eea419c27c31645b5ac84fa595ef60ae0653356fd8e9ddaa6422f19171ace464736f6c63430008040033000000000000000000000000b53e77f27be2815b3f2bccfaa3a86d98b9c19ddb000000000000000000000000991f09114a025398b448de8511a7e816320d36b1
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101735760003560e01c80636f83f6a2116100de578063bb1897c711610097578063e64c605d11610071578063e64c605d14610333578063e6fd48bc14610346578063f2fde38b1461034f578063f4f4cda71461036257600080fd5b8063bb1897c7146102ef578063be9a655514610318578063e12f3a611461032057600080fd5b80636f83f6a21461029f578063715018a6146102a85780638da5cb5b146102b05780639de2e1cb146102c1578063a1e9d139146102d4578063b88a802f146102e757600080fd5b80633678c0e4116101305780633678c0e41461021d5780634ace59741461022557806352f088361461024557806369ea1771146102705780636b426000146102835780636c2052421461029657600080fd5b80631235ed4e14610178578063150b7a021461019e5780632c29b4de146101ca5780632c4e722e146101ea578063316b6927146101f357806335eb7b20146101fd575b600080fd5b61018b61018636600461141f565b610382565b6040519081526020015b60405180910390f35b6101b16101ac366004611389565b6103b3565b6040516001600160e01b03199091168152602001610195565b61018b6101d836600461133d565b60056020526000908152604090205481565b61018b60065481565b6101fb6103ea565b005b61021061020b36600461133d565b6104f7565b6040516101959190611478565b6101fb6106c0565b61018b61023336600461133d565b60076020526000908152604090205481565b600354610258906001600160a01b031681565b6040516001600160a01b039091168152602001610195565b6101fb61027e366004611448565b6107b8565b6101fb610291366004611448565b6107e7565b61018b600b5481565b61018b600c5481565b6101fb610b52565b6000546001600160a01b0316610258565b600254610258906001600160a01b031681565b6102106102e236600461133d565b610b88565b6101fb610bf4565b6102586102fd366004611448565b6009602052600090815260409020546001600160a01b031681565b6101fb610d73565b61018b61032e36600461133d565b610e1c565b6101fb610341366004611357565b610e95565b61018b60045481565b6101fb61035d36600461133d565b610eed565b61018b61037036600461133d565b600d6020526000908152604090205481565b600a602052816000526040600020818154811061039e57600080fd5b90600052602060002001600091509150505481565b60006103bf8486610f88565b507f150b7a023d4804d13e8c85fb27262cb750cf6ba9f9dd3bb30d90f482ceeb4b1f95945050505050565b6004546104125760405162461bcd60e51b81526004016104099061150f565b60405180910390fd5b336000908152600a60205260409020546104875760405162461bcd60e51b815260206004820152603060248201527f4e6674537461696e673a2043616c6c657220646f65736e27742068617665206160448201526f6e79207374616b656420746f6b656e2160801b6064820152608401610409565b336000908152600a6020526040812054905b818110156104f357336000908152600a6020526040812080546104e192906104d157634e487b7160e01b600052603260045260246000fd5b90600052602060002001546107e7565b806104eb816115e9565b915050610499565b5050565b6003546040516370a0823160e01b81526001600160a01b0383811660048301526060926000929116906370a082319060240160206040518083038186803b15801561054157600080fd5b505afa158015610555573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105799190611460565b905060608161059957505060408051600081526020810190915292915050565b8167ffffffffffffffff8111156105c057634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156105e9578160200160208202803683370190505b50905060005b828110156106b857600354604051632f745c5960e01b81526001600160a01b0387811660048301526024820184905290911690632f745c599060440160206040518083038186803b15801561064357600080fd5b505afa158015610657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067b9190611460565b82828151811061069b57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152806106b0816115e9565b9150506105ef565b509392505050565b6004546106df5760405162461bcd60e51b81526004016104099061150f565b60006106ea336104f7565b905060005b81518110156104f35760035482516001600160a01b03909116906342842e0e903390309086908690811061073357634e487b7160e01b600052603260045260246000fd5b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561078d57600080fd5b505af11580156107a1573d6000803e3d6000fd5b5050505080806107b0906115e9565b9150506106ef565b6000546001600160a01b031633146107e25760405162461bcd60e51b815260040161040990611546565b600655565b6004546108065760405162461bcd60e51b81526004016104099061150f565b6000818152600960205260409020546001600160a01b0316331461088b5760405162461bcd60e51b815260206004820152603660248201527f4e66745374616b696e673a20746f6b656e206e6f74207374616b6564206f7220604482015275696e636f727265637420746f6b656e206f776e65722160501b6064820152608401610409565b600081815260096020526040902080546001600160a01b03191690556108b033610e1c565b336000908152600860209081526040808320939093556007905220546108d7906001611100565b33600090815260076020526040902055600b546108f5906001611100565b600b553360009081526005602052604081204290555b336000908152600a60205260409020548110156109fe57336000908152600a6020526040902080548391908390811061095457634e487b7160e01b600052603260045260246000fd5b906000526020600020015414156109ec57336000908152600a602052604090208054610982906001906115d2565b815481106109a057634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154338352600a90915260409091208054839081106109db57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001556109fe565b806109f6816115e9565b91505061090b565b50336000908152600a60205260409020805480610a2b57634e487b7160e01b600052603160045260246000fd5b600082815260208120600019908301810191909155019055600354604051632142170760e11b8152306004820152336024820152604481018390526001600160a01b03909116906342842e0e90606401600060405180830381600087803b158015610a9557600080fd5b505af1925050508015610aa6575060015b610b15576003546040516323b872dd60e01b8152306004820152336024820152604481018390526001600160a01b03909116906323b872dd90606401600060405180830381600087803b158015610afc57600080fd5b505af1158015610b10573d6000803e3d6000fd5b505050505b60408051338152602081018390527fe8b40fda281c6bb8d29a090b37522bcc49728e60bf2bbbff36ea712ff1b498a591015b60405180910390a150565b6000546001600160a01b03163314610b7c5760405162461bcd60e51b815260040161040990611546565b610b866000611149565b565b6001600160a01b0381166000908152600a6020908152604091829020805483518184028101840190945280845260609392830182828015610be857602002820191906000526020600020905b815481526020019060010190808311610bd4575b50505050509050919050565b600454610c135760405162461bcd60e51b81526004016104099061150f565b6000610c1e33610e1c565b905060008111610c7a5760405162461bcd60e51b815260206004820152602160248201527f4e66745374616b696e673a206e6f20636c61696d61626c652062616c616e63656044820152602160f81b6064820152608401610409565b33600081815260086020908152604080832083905560059091529081902042905560025490516340c10f1960e01b81526004810192909252602482018390526001600160a01b0316906340c10f1990604401600060405180830381600087803b158015610ce657600080fd5b505af1158015610cfa573d6000803e3d6000fd5b5050600c54610d0c9250905082611199565b600c55336000908152600d6020526040902054610d299082611199565b336000818152600d60209081526040918290209390935580519182529181018390527ffc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe9101610b47565b6000546001600160a01b03163314610d9d5760405162461bcd60e51b815260040161040990611546565b60045415610ded5760405162461bcd60e51b815260206004820152601f60248201527f4e66745374616b696e673a207374616b696e67206861732073746172746564006044820152606401610409565b426004556040517fd8cea0ecd56872ff072e771658b5682ffe4de16d752947f79597d600ea56f7a990600090a1565b6006546001600160a01b03821660009081526007602090815260408083205460059092528220549192610e6c926201518092610e669291610e6091908290426115d2565b906111f8565b90611277565b6001600160a01b038316600090815260086020526040902054610e8f919061157b565b92915050565b6000546001600160a01b03163314610ebf5760405162461bcd60e51b815260040161040990611546565b600380546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055565b6000546001600160a01b03163314610f175760405162461bcd60e51b815260040161040990611546565b6001600160a01b038116610f7c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610409565b610f8581611149565b50565b600454610fa75760405162461bcd60e51b81526004016104099061150f565b6003546001600160a01b0316331461100d5760405162461bcd60e51b815260206004820152602360248201527f4e66745374616b696e673a206e6f7420636f7272656374204e4654207374616b60448201526265642160e81b6064820152608401610409565b61101681610e1c565b6001600160a01b038216600090815260086020908152604080832093909355600790522054611046906001611199565b6001600160a01b038216600090815260076020526040902055600b5461106d906001611199565b600b556001600160a01b03811660008181526005602090815260408083204290558583526009825280832080546001600160a01b03191685179055838352600a8252808320805460018101825590845292829020909201859055815192835282018490527f67fdef29b4d3c5f8e8a10bc5f9797626d078010bb98360a511e7cde7db9d9f06910160405180910390a15050565b600061114283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112b9565b9392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806111a6838561157b565b9050838110156111425760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610409565b60008261120757506000610e8f565b600061121383856115b3565b9050826112208583611593565b146111425760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610409565b600061114283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112f3565b600081848411156112dd5760405162461bcd60e51b815260040161040991906114bc565b5060006112ea84866115d2565b95945050505050565b600081836113145760405162461bcd60e51b815260040161040991906114bc565b5060006112ea8486611593565b80356001600160a01b038116811461133857600080fd5b919050565b60006020828403121561134e578081fd5b61114282611321565b60008060408385031215611369578081fd5b61137283611321565b915061138060208401611321565b90509250929050565b6000806000806000608086880312156113a0578081fd5b6113a986611321565b94506113b760208701611321565b935060408601359250606086013567ffffffffffffffff808211156113da578283fd5b818801915088601f8301126113ed578283fd5b8135818111156113fb578384fd5b89602082850101111561140c578384fd5b9699959850939650602001949392505050565b60008060408385031215611431578182fd5b61143a83611321565b946020939093013593505050565b600060208284031215611459578081fd5b5035919050565b600060208284031215611471578081fd5b5051919050565b6020808252825182820181905260009190848201906040850190845b818110156114b057835183529284019291840191600101611494565b50909695505050505050565b6000602080835283518082850152825b818110156114e8578581018301518582016040015282016114cc565b818111156114f95783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601f908201527f4e66745374616b696e673a207374616b696e67206e6f74207374617274656400604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000821982111561158e5761158e611604565b500190565b6000826115ae57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156115cd576115cd611604565b500290565b6000828210156115e4576115e4611604565b500390565b60006000198214156115fd576115fd611604565b5060010190565b634e487b7160e01b600052601160045260246000fdfea264697066735822122046eea419c27c31645b5ac84fa595ef60ae0653356fd8e9ddaa6422f19171ace464736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b53e77f27be2815b3f2bccfaa3a86d98b9c19ddb000000000000000000000000991f09114a025398b448de8511a7e816320d36b1
-----Decoded View---------------
Arg [0] : nftContract (address): 0xb53E77f27Be2815b3f2BCcFAa3a86D98b9C19dDb
Arg [1] : rewardContract (address): 0x991F09114a025398b448DE8511A7E816320d36B1
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000b53e77f27be2815b3f2bccfaa3a86d98b9c19ddb
Arg [1] : 000000000000000000000000991f09114a025398b448de8511a7e816320d36b1
Deployed Bytecode Sourcemap
18863:7193:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19734:62;;;;;;:::i;:::-;;:::i;:::-;;;9001:25:1;;;8989:2;8974:18;19734:62:0;;;;;;;;21553:290;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;3863:33:1;;;3845:52;;3833:2;3818:18;21553:290:0;3800:103:1;19186:52:0;;;;;;:::i;:::-;;;;;;;;;;;;;;19290:31;;;;;;25040:381;;;:::i;:::-;;22953:508;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;23493:281::-;;;:::i;19382:53::-;;;;;;:::i;:::-;;;;;;;;;;;;;;19050:31;;;;;-1:-1:-1;;;;;19050:31:0;;;;;;-1:-1:-1;;;;;2358:32:1;;;2340:51;;2328:2;2313:18;19050:31:0;2295:102:1;21317:84:0;;;;;;:::i;:::-;;:::i;23839:1148::-;;;;;;:::i;:::-;;:::i;19857:29::-;;;;;;19945:33;;;;;;7100:94;;;:::i;6449:87::-;6495:7;6522:6;-1:-1:-1;;;;;6522:6:0;6449:87;;18976:34;;;;;-1:-1:-1;;;;;18976:34:0;;;22215:136;;;;;;:::i;:::-;;:::i;25467:586::-;;;:::i;19617:51::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;19617:51:0;;;20881:124;;;:::i;21927:239::-;;;;;;:::i;:::-;;:::i;21067:207::-;;;;;;:::i;:::-;;:::i;19121:29::-;;;;;;7349:192;;;;;;:::i;:::-;;:::i;20050:61::-;;;;;;:::i;:::-;;;;;;;;;;;;;;19734:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;21553:290::-;21707:6;21725:24;21735:7;21744:4;21725:9;:24::i;:::-;-1:-1:-1;21774:60:0;21553:290;;;;;;;:::o;25040:381::-;20274:14;;20266:63;;;;-1:-1:-1;;;20266:63:0;;;;;;;:::i;:::-;;;;;;;;;25142:10:::1;25163:1;25114:39:::0;;;:27:::1;:39;::::0;;;;:46;25106:111:::1;;;::::0;-1:-1:-1;;;25106:111:0;;5165:2:1;25106:111:0::1;::::0;::::1;5147:21:1::0;5204:2;5184:18;;;5177:30;5243:34;5223:18;;;5216:62;-1:-1:-1;;;5294:18:1;;;5287:46;5350:19;;25106:111:0::1;5137:238:1::0;25106:111:0::1;25272:10;25228:13;25244:39:::0;;;:27:::1;:39;::::0;;;;:46;;25301:113:::1;25321:5;25317:1;:9;25301:113;;;25387:10;25359:39;::::0;;;:27:::1;:39;::::0;;;;:42;;25348:54:::1;::::0;25359:39;:42:::1;;-1:-1:-1::0;;;25359:42:0::1;;;;;;;;;;;;;;;;;25348:10;:54::i;:::-;25328:4:::0;::::1;::::0;::::1;:::i;:::-;;;;25301:113;;;;20340:1;25040:381::o:0;22953:508::-;23056:16;;:32;;-1:-1:-1;;;23056:32:0;;-1:-1:-1;;;;;2358:32:1;;;23056::0;;;2340:51:1;23005:17:0;;23035:18;;23056:16;;;:26;;2313:18:1;;23056:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23035:53;-1:-1:-1;23099:25:0;23139:15;23135:293;;-1:-1:-1;;23178:16:0;;;23192:1;23178:16;;;;;;;;;23171:23;-1:-1:-1;;22953:508:0:o;23135:293::-;23249:10;23235:25;;;;;;-1:-1:-1;;;23235:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23235:25:0;;23224:36;;23279:9;23275:133;23298:10;23294:1;:14;23275:133;;;23347:16;;:45;;-1:-1:-1;;;23347:45:0;;-1:-1:-1;;;;;2974:32:1;;;23347:45:0;;;2956:51:1;3023:18;;;3016:34;;;23347:16:0;;;;:36;;2929:18:1;;23347:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23333:8;23342:1;23333:11;;;;;;-1:-1:-1;;;23333:11:0;;;;;;;;;;;;;;;;;;:59;23310:3;;;;:::i;:::-;;;;23275:133;;;;23445:8;22953:508;-1:-1:-1;;;22953:508:0:o;23493:281::-;20274:14;;20266:63;;;;-1:-1:-1;;;20266:63:0;;;;;;;:::i;:::-;23557:25:::1;23585:19;23593:10;23585:7;:19::i;:::-;23557:47;;23628:9;23623:144;23645:8;:15;23641:1;:19;23623:144;;;23682:16;::::0;23743:11;;-1:-1:-1;;;;;23682:16:0;;::::1;::::0;:33:::1;::::0;23716:10:::1;::::0;23736:4:::1;::::0;23743:8;;23752:1;;23743:11;::::1;;;-1:-1:-1::0;;;23743:11:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;23682:73:::1;::::0;-1:-1:-1;;;;;;23682:73:0::1;::::0;;;;;;-1:-1:-1;;;;;2660:15:1;;;23682:73:0::1;::::0;::::1;2642:34:1::0;2712:15;;;;2692:18;;;2685:43;2744:18;;;2737:34;2577:18;;23682:73:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23662:4;;;;;:::i;:::-;;;;23623:144;;21317:84:::0;6495:7;6522:6;-1:-1:-1;;;;;6522:6:0;5405:10;6669:23;6661:68;;;;-1:-1:-1;;;6661:68:0;;;;;;;:::i;:::-;21381:4:::1;:12:::0;21317:84::o;23839:1148::-;20274:14;;20266:63;;;;-1:-1:-1;;;20266:63:0;;;;;;;:::i;:::-;23916:22:::1;::::0;;;:18:::1;:22;::::0;;;;;-1:-1:-1;;;;;23916:22:0::1;23942:10;23916:36;23908:103;;;::::0;-1:-1:-1;;;23908:103:0;;8274:2:1;23908:103:0::1;::::0;::::1;8256:21:1::0;8313:2;8293:18;;;8286:30;8352:34;8332:18;;;8325:62;-1:-1:-1;;;8403:18:1;;;8396:52;8465:19;;23908:103:0::1;8246:244:1::0;23908:103:0::1;24055:1;24022:22:::0;;;:18:::1;:22;::::0;;;;:35;;-1:-1:-1;;;;;;24022:35:0::1;::::0;;24102:30:::1;24121:10;24102:18;:30::i;:::-;24088:10;24068:31;::::0;;;:19:::1;:31;::::0;;;;;;;:64;;;;24186:20:::1;:32:::0;;;;:39:::1;::::0;24223:1:::1;24186:36;:39::i;:::-;24172:10;24151:32;::::0;;;:20:::1;:32;::::0;;;;:74;24253:14:::1;::::0;:21:::1;::::0;24272:1:::1;24253:18;:21::i;:::-;24236:14;:38:::0;24305:10:::1;24285:31;::::0;;;:19:::1;:31;::::0;;;;24319:15:::1;24285:49:::0;;24345:348:::1;24394:10;24366:39;::::0;;;:27:::1;:39;::::0;;;;:46;24362:50;::::1;24345:348;;;24466:10;24438:39;::::0;;;:27:::1;:39;::::0;;;;:42;;24484:2;;24438:39;24478:1;;24438:42;::::1;;;-1:-1:-1::0;;;24438:42:0::1;;;;;;;;;;;;;;;;;:48;24434:248;;;24579:10;24551:39;::::0;;;:27:::1;:39;::::0;;;;24591:46;;:50:::1;::::0;24640:1:::1;::::0;24591:50:::1;:::i;:::-;24551:91;;;;;;-1:-1:-1::0;;;24551:91:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;24534:10:::1;24506:39:::0;;:27:::1;:39:::0;;;;;;;:42;;24546:1;;24506:42;::::1;;;-1:-1:-1::0;;;24506:42:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;:136:::0;24661:5:::1;;24434:248;24414:4:::0;::::1;::::0;::::1;:::i;:::-;;;;24345:348;;;-1:-1:-1::0;24731:10:0::1;24703:39;::::0;;;:27:::1;:39;::::0;;;;:45;;;::::1;;-1:-1:-1::0;;;24703:45:0::1;;;;;;;;;;::::0;;;::::1;::::0;;-1:-1:-1;;24703:45:0;;;;;;;;;;;;24763:16:::1;::::0;:64:::1;::::0;-1:-1:-1;;;24763:64:0;;24805:4:::1;24763:64;::::0;::::1;2642:34:1::0;24812:10:0::1;2692:18:1::0;;;2685:43;2744:18;;;2737:34;;;-1:-1:-1;;;;;24763:16:0;;::::1;::::0;:33:::1;::::0;2577:18:1;;24763:64:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;24759:178;;24865:16;::::0;:60:::1;::::0;-1:-1:-1;;;24865:60:0;;24903:4:::1;24865:60;::::0;::::1;2642:34:1::0;24910:10:0::1;2692:18:1::0;;;2685:43;2744:18;;;2737:34;;;-1:-1:-1;;;;;24865:16:0;;::::1;::::0;:29:::1;::::0;2577:18:1;;24865:60:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;24759:178;24952:27;::::0;;24964:10:::1;2956:51:1::0;;3038:2;3023:18;;3016:34;;;24952:27:0::1;::::0;2929:18:1;24952:27:0::1;;;;;;;;23839:1148:::0;:::o;7100:94::-;6495:7;6522:6;-1:-1:-1;;;;;6522:6:0;5405:10;6669:23;6661:68;;;;-1:-1:-1;;;6661:68:0;;;;;;;:::i;:::-;7165:21:::1;7183:1;7165:9;:21::i;:::-;7100:94::o:0;22215:136::-;-1:-1:-1;;;;;22310:33:0;;;;;;:27;:33;;;;;;;;;22303:40;;;;;;;;;;;;;;;;;22273:17;;22303:40;;;22310:33;22303:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22215:136;;;:::o;25467:586::-;20274:14;;20266:63;;;;-1:-1:-1;;;20266:63:0;;;;;;;:::i;:::-;25521:19:::1;25543:30;25562:10;25543:18;:30::i;:::-;25521:52;;25606:1;25592:11;:15;25584:61;;;::::0;-1:-1:-1;;;25584:61:0;;5582:2:1;25584:61:0::1;::::0;::::1;5564:21:1::0;5621:2;5601:18;;;5594:30;5660:34;5640:18;;;5633:62;-1:-1:-1;;;5711:18:1;;;5704:31;5752:19;;25584:61:0::1;5554:223:1::0;25584:61:0::1;25676:10;25690:1;25656:31:::0;;;:19:::1;:31;::::0;;;;;;;:35;;;25702:19:::1;:31:::0;;;;;;;25736:15:::1;25702:49:::0;;25762:20:::1;::::0;:50;;-1:-1:-1;;;25762:50:0;;::::1;::::0;::::1;2956:51:1::0;;;;3023:18;;;3016:34;;;-1:-1:-1;;;;;25762:20:0::1;::::0;:25:::1;::::0;2929:18:1;;25762:50:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;25844:18:0::1;::::0;:35:::1;::::0;-1:-1:-1;25844:18:0;-1:-1:-1;25867:11:0;25844:22:::1;:35::i;:::-;25823:18;:56:::0;25962:10:::1;25933:40;::::0;;;:28:::1;:40;::::0;;;;;:57:::1;::::0;25978:11;25933:44:::1;:57::i;:::-;25919:10;25890:40;::::0;;;:28:::1;:40;::::0;;;;;;;;:100;;;;26006:39;;2956:51:1;;;3023:18;;;3016:34;;;26006:39:0::1;::::0;2929:18:1;26006:39:0::1;2911:145:1::0;20881:124:0;6495:7;6522:6;-1:-1:-1;;;;;6522:6:0;5405:10;6669:23;6661:68;;;;-1:-1:-1;;;6661:68:0;;;;;;;:::i;:::-;20401:14:::1;::::0;:19;20393:63:::1;;;::::0;-1:-1:-1;;;20393:63:0;;8697:2:1;20393:63:0::1;::::0;::::1;8679:21:1::0;8736:2;8716:18;;;8709:30;8775:33;8755:18;;;8748:61;8826:18;;20393:63:0::1;8669:181:1::0;20393:63:0::1;20957:15:::2;20940:14;:32:::0;20988:9:::2;::::0;::::2;::::0;;;::::2;20881:124::o:0;21927:239::-;22140:4;;-1:-1:-1;;;;;22105:29:0;;21993:7;22105:29;;;:20;:29;;;;;;;;;22071:19;:28;;;;;;21993:7;;22052:105;;22150:6;;22052:93;;22140:4;22052:83;;22105:29;22052:83;;22053:15;:46;:::i;:::-;22052:52;;:83::i;:93::-;:97;;:105::i;:::-;-1:-1:-1;;;;;22020:28:0;;;;;;:19;:28;;;;;;:138;;;;:::i;:::-;22013:145;21927:239;-1:-1:-1;;21927:239:0:o;21067:207::-;6495:7;6522:6;-1:-1:-1;;;;;6522:6:0;5405:10;6669:23;6661:68;;;;-1:-1:-1;;;6661:68:0;;;;;;;:::i;:::-;21171:16:::1;:39:::0;;-1:-1:-1;;;;;21171:39:0;;::::1;-1:-1:-1::0;;;;;;21171:39:0;;::::1;;::::0;;;21221:20:::1;:45:::0;;;;;::::1;::::0;::::1;;::::0;;21067:207::o;7349:192::-;6495:7;6522:6;-1:-1:-1;;;;;6522:6:0;5405:10;6669:23;6661:68;;;;-1:-1:-1;;;6661:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7438:22:0;::::1;7430:73;;;::::0;-1:-1:-1;;;7430:73:0;;6388:2:1;7430:73:0::1;::::0;::::1;6370:21:1::0;6427:2;6407:18;;;6400:30;6466:34;6446:18;;;6439:62;-1:-1:-1;;;6517:18:1;;;6510:36;6563:19;;7430:73:0::1;6360:228:1::0;7430:73:0::1;7514:19;7524:8;7514:9;:19::i;:::-;7349:192:::0;:::o;22377:538::-;20274:14;;20266:63;;;;-1:-1:-1;;;20266:63:0;;;;;;;:::i;:::-;22469:16:::1;::::0;-1:-1:-1;;;;;22469:16:0::1;22490:10;22461:39;22453:87;;;::::0;-1:-1:-1;;;22453:87:0;;5984:2:1;22453:87:0::1;::::0;::::1;5966:21:1::0;6023:2;6003:18;;;5996:30;6062:34;6042:18;;;6035:62;-1:-1:-1;;;6113:18:1;;;6106:33;6156:19;;22453:87:0::1;5956:225:1::0;22453:87:0::1;22579:24;22598:4;22579:18;:24::i;:::-;-1:-1:-1::0;;;;;22551:25:0;::::1;;::::0;;;:19:::1;:25;::::0;;;;;;;:52;;;;22643:20:::1;:26:::0;;;;:33:::1;::::0;22674:1:::1;22643:30;:33::i;:::-;-1:-1:-1::0;;;;;22614:26:0;::::1;;::::0;;;:20:::1;:26;::::0;;;;:62;22704:14:::1;::::0;:21:::1;::::0;22723:1:::1;22704:18;:21::i;:::-;22687:14;:38:::0;-1:-1:-1;;;;;22736:25:0;::::1;;::::0;;;:19:::1;:25;::::0;;;;;;;22764:15:::1;22736:43:::0;;22790:22;;;:18:::1;:22:::0;;;;;:29;;-1:-1:-1;;;;;;22790:29:0::1;::::0;::::1;::::0;;22830:33;;;:27:::1;:33:::0;;;;;:42;;-1:-1:-1;22830:42:0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;22888:19;;2956:51:1;;;3023:18;;3016:34;;;22888:19:0::1;::::0;2929:18:1;22888:19:0::1;;;;;;;22377:538:::0;;:::o;789:136::-;847:7;874:43;878:1;881;874:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;867:50;789:136;-1:-1:-1;;;789:136:0:o;7549:173::-;7605:16;7624:6;;-1:-1:-1;;;;;7641:17:0;;;-1:-1:-1;;;;;;7641:17:0;;;;;;7674:40;;7624:6;;;;;;;7674:40;;7605:16;7674:40;7549:173;;:::o;325:181::-;383:7;;415:5;419:1;415;:5;:::i;:::-;403:17;;444:1;439;:6;;431:46;;;;-1:-1:-1;;;431:46:0;;6795:2:1;431:46:0;;;6777:21:1;6834:2;6814:18;;;6807:30;6873:29;6853:18;;;6846:57;6920:18;;431:46:0;6767:177:1;1679:471:0;1737:7;1982:6;1978:47;;-1:-1:-1;2012:1:0;2005:8;;1978:47;2037:9;2049:5;2053:1;2049;:5;:::i;:::-;2037:17;-1:-1:-1;2082:1:0;2073:5;2077:1;2037:17;2073:5;:::i;:::-;:10;2065:56;;;;-1:-1:-1;;;2065:56:0;;7511:2:1;2065:56:0;;;7493:21:1;7550:2;7530:18;;;7523:30;7589:34;7569:18;;;7562:62;-1:-1:-1;;;7640:18:1;;;7633:31;7681:19;;2065:56:0;7483:223:1;2626:132:0;2684:7;2711:39;2715:1;2718;2711:39;;;;;;;;;;;;;;;;;:3;:39::i;1228:192::-;1314:7;1350:12;1342:6;;;;1334:29;;;;-1:-1:-1;;;1334:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1374:9:0;1386:5;1390:1;1386;:5;:::i;:::-;1374:17;1228:192;-1:-1:-1;;;;;1228:192:0:o;3254:278::-;3340:7;3375:12;3368:5;3360:28;;;;-1:-1:-1;;;3360:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3399:9:0;3411:5;3415:1;3411;:5;:::i;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:196::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;393:270::-;461:6;469;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:858::-;765:6;773;781;789;797;850:3;838:9;829:7;825:23;821:33;818:2;;;872:6;864;857:22;818:2;900:29;919:9;900:29;:::i;:::-;890:39;;948:38;982:2;971:9;967:18;948:38;:::i;:::-;938:48;;1033:2;1022:9;1018:18;1005:32;995:42;;1088:2;1077:9;1073:18;1060:32;1111:18;1152:2;1144:6;1141:14;1138:2;;;1173:6;1165;1158:22;1138:2;1216:6;1205:9;1201:22;1191:32;;1261:7;1254:4;1250:2;1246:13;1242:27;1232:2;;1288:6;1280;1273:22;1232:2;1333;1320:16;1359:2;1351:6;1348:14;1345:2;;;1380:6;1372;1365:22;1345:2;1430:7;1425:2;1416:6;1412:2;1408:15;1404:24;1401:37;1398:2;;;1456:6;1448;1441:22;1398:2;808:718;;;;-1:-1:-1;808:718:1;;-1:-1:-1;1492:2:1;1484:11;;1514:6;808:718;-1:-1:-1;;;808:718:1:o;1531:264::-;1599:6;1607;1660:2;1648:9;1639:7;1635:23;1631:32;1628:2;;;1681:6;1673;1666:22;1628:2;1709:29;1728:9;1709:29;:::i;:::-;1699:39;1785:2;1770:18;;;;1757:32;;-1:-1:-1;;;1618:177:1:o;1800:190::-;1859:6;1912:2;1900:9;1891:7;1887:23;1883:32;1880:2;;;1933:6;1925;1918:22;1880:2;-1:-1:-1;1961:23:1;;1870:120;-1:-1:-1;1870:120:1:o;1995:194::-;2065:6;2118:2;2106:9;2097:7;2093:23;2089:32;2086:2;;;2139:6;2131;2124:22;2086:2;-1:-1:-1;2167:16:1;;2076:113;-1:-1:-1;2076:113:1:o;3061:635::-;3232:2;3284:21;;;3354:13;;3257:18;;;3376:22;;;3203:4;;3232:2;3455:15;;;;3429:2;3414:18;;;3203:4;3501:169;3515:6;3512:1;3509:13;3501:169;;;3576:13;;3564:26;;3645:15;;;;3610:12;;;;3537:1;3530:9;3501:169;;;-1:-1:-1;3687:3:1;;3212:484;-1:-1:-1;;;;;;3212:484:1:o;4355:603::-;4467:4;4496:2;4525;4514:9;4507:21;4557:6;4551:13;4600:6;4595:2;4584:9;4580:18;4573:34;4625:4;4638:140;4652:6;4649:1;4646:13;4638:140;;;4747:14;;;4743:23;;4737:30;4713:17;;;4732:2;4709:26;4702:66;4667:10;;4638:140;;;4796:6;4793:1;4790:13;4787:2;;;4866:4;4861:2;4852:6;4841:9;4837:22;4833:31;4826:45;4787:2;-1:-1:-1;4942:2:1;4921:15;-1:-1:-1;;4917:29:1;4902:45;;;;4949:2;4898:54;;4476:482;-1:-1:-1;;;4476:482:1:o;6949:355::-;7151:2;7133:21;;;7190:2;7170:18;;;7163:30;7229:33;7224:2;7209:18;;7202:61;7295:2;7280:18;;7123:181::o;7711:356::-;7913:2;7895:21;;;7932:18;;;7925:30;7991:34;7986:2;7971:18;;7964:62;8058:2;8043:18;;7885:182::o;9037:128::-;9077:3;9108:1;9104:6;9101:1;9098:13;9095:2;;;9114:18;;:::i;:::-;-1:-1:-1;9150:9:1;;9085:80::o;9170:217::-;9210:1;9236;9226:2;;-1:-1:-1;;;9261:31:1;;9315:4;9312:1;9305:15;9343:4;9268:1;9333:15;9226:2;-1:-1:-1;9372:9:1;;9216:171::o;9392:168::-;9432:7;9498:1;9494;9490:6;9486:14;9483:1;9480:21;9475:1;9468:9;9461:17;9457:45;9454:2;;;9505:18;;:::i;:::-;-1:-1:-1;9545:9:1;;9444:116::o;9565:125::-;9605:4;9633:1;9630;9627:8;9624:2;;;9638:18;;:::i;:::-;-1:-1:-1;9675:9:1;;9614:76::o;9695:135::-;9734:3;-1:-1:-1;;9755:17:1;;9752:2;;;9775:18;;:::i;:::-;-1:-1:-1;9822:1:1;9811:13;;9742:88::o;9835:127::-;9896:10;9891:3;9887:20;9884:1;9877:31;9927:4;9924:1;9917:15;9951:4;9948:1;9941:15
Swarm Source
ipfs://46eea419c27c31645b5ac84fa595ef60ae0653356fd8e9ddaa6422f19171ace4
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.