More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 131 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim | 16537870 | 532 days ago | IN | 0 ETH | 0.00227954 | ||||
Unstake | 16205970 | 578 days ago | IN | 0 ETH | 0.00038306 | ||||
Claim | 16205968 | 578 days ago | IN | 0 ETH | 0.00199806 | ||||
Unstake | 16079359 | 596 days ago | IN | 0 ETH | 0.0004893 | ||||
Unstake | 15985293 | 609 days ago | IN | 0 ETH | 0.00052302 | ||||
Claim | 15863707 | 626 days ago | IN | 0 ETH | 0.00174791 | ||||
Stake | 15837579 | 630 days ago | IN | 0 ETH | 0.01110957 | ||||
Stake | 15837558 | 630 days ago | IN | 0 ETH | 0.00025774 | ||||
Stake | 15610341 | 661 days ago | IN | 0 ETH | 0.00247759 | ||||
Claim | 15603593 | 662 days ago | IN | 0 ETH | 0.00082634 | ||||
Claim | 15572801 | 667 days ago | IN | 0 ETH | 0.00116761 | ||||
Unstake | 15534820 | 672 days ago | IN | 0 ETH | 0.00045012 | ||||
Stake | 15531816 | 673 days ago | IN | 0 ETH | 0.00454477 | ||||
Claim | 15466866 | 683 days ago | IN | 0 ETH | 0.00618427 | ||||
Stake | 15412136 | 692 days ago | IN | 0 ETH | 0.00431479 | ||||
Stake | 15385368 | 696 days ago | IN | 0 ETH | 0.00211399 | ||||
Claim | 15373217 | 698 days ago | IN | 0 ETH | 0.01020442 | ||||
Stake | 15373212 | 698 days ago | IN | 0 ETH | 0.01057674 | ||||
Stake | 15367130 | 699 days ago | IN | 0 ETH | 0.00355586 | ||||
Stake | 15360767 | 700 days ago | IN | 0 ETH | 0.00029644 | ||||
Stake | 15356529 | 701 days ago | IN | 0 ETH | 0.00359986 | ||||
Claim | 15353677 | 701 days ago | IN | 0 ETH | 0.00168001 | ||||
Stake | 15337126 | 704 days ago | IN | 0 ETH | 0.00169427 | ||||
Stake | 15329928 | 705 days ago | IN | 0 ETH | 0.00594985 | ||||
Stake | 15325491 | 706 days ago | IN | 0 ETH | 0.00126376 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
NFTitsStaking
Compiler Version
v0.8.9+commit.e5eed63a
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; contract NFTitsStaking is Ownable { address public rtoken; address public nftAddress; address public sAddress; uint256 public RewardTokenPerBlock; uint256 public totalClaimed; uint256 public limitClaimValue; uint256 public initialLimitClaimValue; uint256 constant public TIME_STEP = 1 days; uint256 public dailyReward = 10 * (10 ** 18); uint256 public dailyMilkReward = 30 * (10 ** 18); address public _feeAddress = 0x653d9688f081F36DA3Fc6B653734E4214Da6AB67; uint256 public _feePercent = 333; uint256 private _feeDividen = 10000; bool public isFinished; struct StakedInfo { uint256 tokenId; uint256 checkPoint; } struct UserInfo { StakedInfo[] stakedInfo; uint256 withdrawn; uint256 stolenReward; } address[] public userList; mapping(address => UserInfo) public users; mapping(address => uint256) public stakingAmount; mapping(uint256 => bool) public milkIndex; event Stake(address indexed user, uint256 amount); event UnStake(address indexed user, uint256 amount); constructor(address _nftAddress, address _rewardTokenAddress) { require (_nftAddress != address(0), "NFT token can't be adress (0)"); require (_rewardTokenAddress != address(0), "Reward token can't be adress (0)"); nftAddress = _nftAddress; rtoken = _rewardTokenAddress; limitClaimValue = 7777000 * (10 ** 18); initialLimitClaimValue = 7777000 * (10 ** 18); isFinished = false; } function getUserStakedInfo(address _address) public view returns(StakedInfo[] memory){ StakedInfo[] memory stakedInfo = users[_address].stakedInfo; return stakedInfo; } function changeRewardTokenAddress(address _rewardTokenAddress) public onlyOwner { rtoken = _rewardTokenAddress; } function changeNFTTokenAddress(address _nftTokenAddress) public onlyOwner { nftAddress = _nftTokenAddress; } function changeRewardTokenPerBlock(uint256 _RewardTokenPerBlock) public onlyOwner { RewardTokenPerBlock = _RewardTokenPerBlock; } function changeDailyReward(uint256 _dailyReward) public onlyOwner { dailyReward = _dailyReward; } function setLimitClaimValue(uint256 _limitValue) public onlyOwner { require (_limitValue >= totalClaimed, "limitValue Should be greater than totalClaimed."); limitClaimValue = _limitValue; isFinished = false; } function setInitialLimitClaimValue(uint256 _initialLimitValue) public onlyOwner { initialLimitClaimValue = _initialLimitValue; } function setFeeAddress(address feeAddress) public onlyOwner { require (feeAddress != address(0)); _feeAddress = feeAddress; } function setFeePercent(uint256 _fee) public onlyOwner { require (_fee <= 10000, "Fee must be greater than 10000"); _feePercent = _fee; } function setStakingAddress(address _address) public { require (sAddress == address(0)); sAddress = _address; } function getTotalUsers() public view returns(uint256){ return userList.length; } function contractBalance() public view returns(uint256){ return IERC721(nftAddress).balanceOf(address(this)); } function pendingReward(address _user, uint256 _tokenId) public view returns (uint256 rewardAmount) { (bool _isStaked, uint256 _checkPoint) = getStakingItemInfo(_user, _tokenId); if(!_isStaked) return 0; bool isMilk = milkIndex[_tokenId]; uint256 currentBlock = block.timestamp; if (isMilk) { rewardAmount = (currentBlock - _checkPoint) * dailyMilkReward / TIME_STEP; } else { rewardAmount = (currentBlock - _checkPoint) * dailyReward / TIME_STEP; } return rewardAmount; } function pendingTotalReward(address _user) public view returns(uint256 pending) { pending = 0; for (uint256 i = 0; i < users[_user].stakedInfo.length; i++) { uint256 _reward = pendingReward(_user, users[_user].stakedInfo[i].tokenId); pending = pending+ (_reward); } return pending; } function approve(address _token, address _spender, uint256 _amount) public returns (bool) { require (sAddress == msg.sender); IERC20(_token).approve(_spender, _amount); return true; } function setMilkIndex(uint256[] memory tokenIds) public onlyOwner { for (uint256 i =0; i < tokenIds.length; i++) { milkIndex[tokenIds[i]] = true; } } function stake(uint256[] memory tokenIds) public { require (!isFinished,"Staking is finished"); for(uint256 i = 0; i < tokenIds.length; i++) { (bool _isStaked,) = getStakingItemInfo(msg.sender, tokenIds[i]); if(_isStaked) continue; if(IERC721(nftAddress).ownerOf(tokenIds[i]) != msg.sender) continue; IERC721(nftAddress).transferFrom(address(msg.sender), address(this), tokenIds[i]); StakedInfo memory info; info.tokenId = tokenIds[i]; info.checkPoint = block.timestamp; users[msg.sender].stakedInfo.push(info); stakingAmount[msg.sender] = stakingAmount[msg.sender] + 1; addUserList (msg.sender); emit Stake(msg.sender, 1); } } function addUserList(address _user) internal{ if (stakingAmount[_user] == 0) return; for (uint256 i = 0; i < userList.length; i++) { if (userList[i] == _user) return; } userList.push(_user); } function removeUserList(address _user) internal{ if (stakingAmount[_user] != 0) return; for (uint256 i = 0; i < userList.length; i++) { if (userList[i] == _user) { userList[i] = userList[userList.length - 1]; userList.pop(); return; } } } function unstake(uint256[] memory tokenIds) public { uint256 pending = 0; uint256 fee = 0; for(uint256 i = 0; i < tokenIds.length; i++) { (bool _isStaked,) = getStakingItemInfo(msg.sender, tokenIds[i]); if(!_isStaked) continue; if(IERC721(nftAddress).ownerOf(tokenIds[i]) != address(this)) continue; uint256 _reward = pendingReward(msg.sender, tokenIds[i]); pending = pending+ (_reward); removeFromUserInfo(tokenIds[i]); if(stakingAmount[msg.sender] > 0) stakingAmount[msg.sender] = stakingAmount[msg.sender] - 1; IERC721(nftAddress).transferFrom(address(this), msg.sender, tokenIds[i]); removeUserList(msg.sender); emit UnStake(msg.sender, 1); } if(pending > 0) { if (pending < users[msg.sender].stolenReward) { users[msg.sender].stolenReward = users[msg.sender].stolenReward - pending; pending = 0; } else { pending = pending - users[msg.sender].stolenReward; users[msg.sender].stolenReward = 0; } if (totalClaimed+ (pending) >= limitClaimValue) { pending = limitClaimValue - totalClaimed; // isFinished = true; } totalClaimed = totalClaimed+ (pending); fee = pending * _feePercent / _feeDividen; pending = pending - fee; IERC20(rtoken).transfer(msg.sender, pending); IERC20(rtoken).transfer(_feeAddress, fee); users[msg.sender].withdrawn = users[msg.sender].withdrawn+ (pending); if (totalClaimed >= limitClaimValue) { limitClaimValue = limitClaimValue+ (initialLimitClaimValue); dailyReward = dailyReward / 2; dailyMilkReward = dailyMilkReward / 2; } } } function getStakingItemInfo(address _user, uint256 _tokenId) public view returns(bool _isStaked, uint256 _checkPoint) { for(uint256 i = 0; i < users[_user].stakedInfo.length; i++) { if(users[_user].stakedInfo[i].tokenId == _tokenId) { _isStaked = true; _checkPoint = users[_user].stakedInfo[i].checkPoint; break; } } } function getUserTotalWithdrawn (address _user) public view returns(uint256){ return users[_user].withdrawn; } function removeFromUserInfo(uint256 tokenId) private { for (uint256 i = 0; i < users[msg.sender].stakedInfo.length; i++) { if (users[msg.sender].stakedInfo[i].tokenId == tokenId) { users[msg.sender].stakedInfo[i] = users[msg.sender].stakedInfo[users[msg.sender].stakedInfo.length - 1]; users[msg.sender].stakedInfo.pop(); break; } } } function claim() public { uint256 reward = pendingTotalReward(msg.sender); users[msg.sender].stolenReward = 0; for (uint256 i = 0; i < users[msg.sender].stakedInfo.length; i++) { users[msg.sender].stakedInfo[i].checkPoint = block.timestamp; } if (totalClaimed+ (reward) >= limitClaimValue) { reward = limitClaimValue - totalClaimed; // isFinished = true; } totalClaimed = totalClaimed+ (reward); uint256 fee = reward * _feePercent / _feeDividen; reward = reward - fee; IERC20(rtoken).transfer(msg.sender, reward); IERC20(rtoken).transfer(_feeAddress, fee); users[msg.sender].withdrawn = users[msg.sender].withdrawn+ (reward); if (totalClaimed >= limitClaimValue) { limitClaimValue = limitClaimValue+ (initialLimitClaimValue); dailyReward = dailyReward / 2; dailyMilkReward = dailyMilkReward / 2; } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC721 compliant contract. */ 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); /** * @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; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ 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); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_nftAddress","type":"address"},{"internalType":"address","name":"_rewardTokenAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"UnStake","type":"event"},{"inputs":[],"name":"RewardTokenPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TIME_STEP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_dailyReward","type":"uint256"}],"name":"changeDailyReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_nftTokenAddress","type":"address"}],"name":"changeNFTTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardTokenAddress","type":"address"}],"name":"changeRewardTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_RewardTokenPerBlock","type":"uint256"}],"name":"changeRewardTokenPerBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dailyMilkReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dailyReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"getStakingItemInfo","outputs":[{"internalType":"bool","name":"_isStaked","type":"bool"},{"internalType":"uint256","name":"_checkPoint","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalUsers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getUserStakedInfo","outputs":[{"components":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"checkPoint","type":"uint256"}],"internalType":"struct NFTitsStaking.StakedInfo[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getUserTotalWithdrawn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialLimitClaimValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitClaimValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"milkIndex","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"pendingReward","outputs":[{"internalType":"uint256","name":"rewardAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"pendingTotalReward","outputs":[{"internalType":"uint256","name":"pending","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rtoken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"feeAddress","type":"address"}],"name":"setFeeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_initialLimitValue","type":"uint256"}],"name":"setInitialLimitClaimValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_limitValue","type":"uint256"}],"name":"setLimitClaimValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"setMilkIndex","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setStakingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userList","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"withdrawn","type":"uint256"},{"internalType":"uint256","name":"stolenReward","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052678ac7230489e800006008556801a055690d9db80000600955600a80546001600160a01b03191673653d9688f081f36da3fc6b653734e4214da6ab6717905561014d600b55612710600c553480156200005c57600080fd5b506040516200210a3803806200210a8339810160408190526200007f91620001fb565b6200008a336200018e565b6001600160a01b038216620000e65760405162461bcd60e51b815260206004820152601d60248201527f4e465420746f6b656e2063616e2774206265206164726573732028302900000060448201526064015b60405180910390fd5b6001600160a01b0381166200013e5760405162461bcd60e51b815260206004820181905260248201527f52657761726420746f6b656e2063616e277420626520616472657373202830296044820152606401620000dd565b600280546001600160a01b039384166001600160a01b031991821617909155600180549290931691161790556a066ed803c808101aa000006006819055600755600d805460ff1916905562000233565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620001f657600080fd5b919050565b600080604083850312156200020f57600080fd5b6200021a83620001de565b91506200022a60208401620001de565b90509250929050565b611ec780620002436000396000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c80638b7afe2e11610146578063c964ad45116100c3578063e8f7b1ee11610087578063e8f7b1ee1461050b578063f0dccbc91461052b578063f2fde38b1461053e578063f430cf0d14610551578063f4e0d9ac14610564578063fb4cb32b1461057757600080fd5b8063c964ad45146104c0578063d54ad2a1146104c9578063dad15936146104d2578063e1f21c67146104e5578063e449f341146104f857600080fd5b80639e0130451161010a5780639e0130451461043c5780639f4216e81461045c578063a523df1d1461046f578063a87430ba14610478578063c79785b9146104b757600080fd5b80638b7afe2e146103f55780638da5cb5b146103fd578063971ae3da1461040e57806397dff90b146104215780639be572f61461043457600080fd5b80635960fce5116101d45780637b352962116101985780637b3529621461039c5780637ce3489b146103a9578063859daf91146103bc5780638705fcd4146103cf5780638b08942b146103e257600080fd5b80635960fce51461035c5780635bf8633a146103655780636845478f14610378578063692229481461038b578063715018a61461039457600080fd5b806317c19ab91161021b57806317c19ab91461030d5780631911fb9714610320578063314af1a71461033357806332bc298c1461034a5780634e71d92d1461035457600080fd5b80630135f7401461025857806305c92135146102885780630fb0afea146102bb5780630fbf0a93146102e557806311fa14d7146102fa575b600080fd5b600a5461026b906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6102ab610296366004611b55565b60116020526000908152604090205460ff1681565b604051901515815260200161027f565b6102ce6102c9366004611b83565b6105a3565b60408051921515835260208301919091520161027f565b6102f86102f3366004611bc5565b61066f565b005b6102f8610308366004611b55565b610945565b6102f861031b366004611b55565b610974565b6102f861032e366004611b55565b6109a3565b61033c60075481565b60405190815260200161027f565b61033c6201518081565b6102f86109d2565b61033c60095481565b60025461026b906001600160a01b031681565b60015461026b906001600160a01b031681565b61033c600b5481565b6102f8610c42565b600d546102ab9060ff1681565b6102f86103b7366004611b55565b610c78565b61033c6103ca366004611c83565b610cf9565b6102f86103dd366004611c83565b610d8c565b6102f86103f0366004611bc5565b610deb565b61033c610e79565b6000546001600160a01b031661026b565b6102f861041c366004611c83565b610efa565b6102f861042f366004611b55565b610f46565b600e5461033c565b61044f61044a366004611c83565b610fe9565b60405161027f9190611ca7565b61026b61046a366004611b55565b611070565b61033c60045481565b6104a2610486366004611c83565b600f602052600090815260409020600181015460029091015482565b6040805192835260208301919091520161027f565b61033c60065481565b61033c60085481565b61033c60055481565b6102f86104e0366004611c83565b61109a565b6102ab6104f3366004611cf6565b6110e6565b6102f8610506366004611bc5565b61118d565b61033c610519366004611c83565b60106020526000908152604090205481565b60035461026b906001600160a01b031681565b6102f861054c366004611c83565b611676565b61033c61055f366004611b83565b611711565b6102f8610572366004611c83565b6117ae565b61033c610585366004611c83565b6001600160a01b03166000908152600f602052604090206001015490565b60008060005b6001600160a01b0385166000908152600f6020526040902054811015610667576001600160a01b0385166000908152600f602052604090208054859190839081106105f6576105f6611d37565b9060005260206000209060020201600001541415610655576001600160a01b0385166000908152600f602052604090208054600194508290811061063c5761063c611d37565b9060005260206000209060020201600101549150610667565b8061065f81611d63565b9150506105a9565b509250929050565b600d5460ff16156106bd5760405162461bcd60e51b815260206004820152601360248201527214dd185ada5b99c81a5cc8199a5b9a5cda1959606a1b60448201526064015b60405180910390fd5b60005b81518110156109415760006106ee338484815181106106e1576106e1611d37565b60200260200101516105a3565b50905080156106fd575061092f565b600254835133916001600160a01b031690636352211e9086908690811061072657610726611d37565b60200260200101516040518263ffffffff1660e01b815260040161074c91815260200190565b60206040518083038186803b15801561076457600080fd5b505afa158015610778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079c9190611d7e565b6001600160a01b0316146107b0575061092f565b60025483516001600160a01b03909116906323b872dd90339030908790879081106107dd576107dd611d37565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561083757600080fd5b505af115801561084b573d6000803e3d6000fd5b5050505061086c604051806040016040528060008152602001600081525090565b83838151811061087e5761087e611d37565b602090810291909101810151825242828201908152336000818152600f8452604080822080546001818101835591845286842088516002909202019081559451948101949094559181526010909352909120546108da91611d9b565b336000818152601060205260409020919091556108f6906117e6565b6040516001815233907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9060200160405180910390a250505b8061093981611d63565b9150506106c0565b5050565b6000546001600160a01b0316331461096f5760405162461bcd60e51b81526004016106b490611db3565b600755565b6000546001600160a01b0316331461099e5760405162461bcd60e51b81526004016106b490611db3565b600455565b6000546001600160a01b031633146109cd5760405162461bcd60e51b81526004016106b490611db3565b600855565b60006109dd33610cf9565b336000908152600f602052604081206002018190559091505b336000908152600f6020526040902054811015610a5757336000908152600f60205260409020805442919083908110610a3157610a31611d37565b600091825260209091206001600290920201015580610a4f81611d63565b9150506109f6565b5060065481600554610a699190611d9b565b10610a8157600554600654610a7e9190611de8565b90505b80600554610a8f9190611d9b565b600555600c54600b5460009190610aa69084611dff565b610ab09190611e1e565b9050610abc8183611de8565b60015460405163a9059cbb60e01b8152336004820152602481018390529193506001600160a01b03169063a9059cbb90604401602060405180830381600087803b158015610b0957600080fd5b505af1158015610b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b419190611e40565b50600154600a5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b158015610b9257600080fd5b505af1158015610ba6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bca9190611e40565b50336000908152600f6020526040902060010154610be9908390611d9b565b336000908152600f60205260409020600101556006546005541061094157600754600654610c179190611d9b565b600655600854610c2990600290611e1e565b600855600954610c3b90600290611e1e565b6009555050565b6000546001600160a01b03163314610c6c5760405162461bcd60e51b81526004016106b490611db3565b610c7660006118b4565b565b6000546001600160a01b03163314610ca25760405162461bcd60e51b81526004016106b490611db3565b612710811115610cf45760405162461bcd60e51b815260206004820152601e60248201527f466565206d7573742062652067726561746572207468616e203130303030000060448201526064016106b4565b600b55565b6000805b6001600160a01b0383166000908152600f6020526040902054811015610d86576001600160a01b0383166000908152600f602052604081208054610d6491869185908110610d4d57610d4d611d37565b906000526020600020906002020160000154611711565b9050610d708184611d9b565b9250508080610d7e90611d63565b915050610cfd565b50919050565b6000546001600160a01b03163314610db65760405162461bcd60e51b81526004016106b490611db3565b6001600160a01b038116610dc957600080fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610e155760405162461bcd60e51b81526004016106b490611db3565b60005b815181101561094157600160116000848481518110610e3957610e39611d37565b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e7190611d63565b915050610e18565b6002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b158015610ebd57600080fd5b505afa158015610ed1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef59190611e62565b905090565b6000546001600160a01b03163314610f245760405162461bcd60e51b81526004016106b490611db3565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610f705760405162461bcd60e51b81526004016106b490611db3565b600554811015610fda5760405162461bcd60e51b815260206004820152602f60248201527f6c696d697456616c75652053686f756c6420626520677265617465722074686160448201526e37103a37ba30b621b630b4b6b2b21760891b60648201526084016106b4565b600655600d805460ff19169055565b6001600160a01b0381166000908152600f60209081526040808320805482518185028101850190935280835260609493849084015b828210156110645783829060005260206000209060020201604051806040016040529081600082015481526020016001820154815250508152602001906001019061101e565b50929695505050505050565b600e818154811061108057600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b031633146110c45760405162461bcd60e51b81526004016106b490611db3565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6003546000906001600160a01b0316331461110057600080fd5b60405163095ea7b360e01b81526001600160a01b0384811660048301526024820184905285169063095ea7b390604401602060405180830381600087803b15801561114a57600080fd5b505af115801561115e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111829190611e40565b506001949350505050565b60008060005b83518110156113ff5760006111b4338684815181106106e1576106e1611d37565b509050806111c257506113ed565b600254855130916001600160a01b031690636352211e908890869081106111eb576111eb611d37565b60200260200101516040518263ffffffff1660e01b815260040161121191815260200190565b60206040518083038186803b15801561122957600080fd5b505afa15801561123d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112619190611d7e565b6001600160a01b03161461127557506113ed565b600061129a3387858151811061128d5761128d611d37565b6020026020010151611711565b90506112a68186611d9b565b94506112ca8684815181106112bd576112bd611d37565b6020026020010151611904565b336000908152601060205260409020541561130c57336000908152601060205260409020546112fb90600190611de8565b336000908152601060205260409020555b60025486516001600160a01b03909116906323b872dd90309033908a908890811061133957611339611d37565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561139357600080fd5b505af11580156113a7573d6000803e3d6000fd5b505050506113b433611a2c565b6040516001815233907fb24546d975e2628748efc9aced80665e0fad66272033e5c0ea25fd3afac997959060200160405180910390a250505b806113f781611d63565b915050611193565b50811561167157336000908152600f602052604090206002015482101561145b57336000908152600f602052604090206002015461143e908390611de8565b336000908152600f6020526040812060020191909155915061148e565b336000908152600f60205260409020600201546114789083611de8565b336000908152600f602052604081206002015591505b6006548260055461149f9190611d9b565b106114b7576005546006546114b49190611de8565b91505b816005546114c59190611d9b565b600555600c54600b546114d89084611dff565b6114e29190611e1e565b90506114ee8183611de8565b60015460405163a9059cbb60e01b8152336004820152602481018390529193506001600160a01b03169063a9059cbb90604401602060405180830381600087803b15801561153b57600080fd5b505af115801561154f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115739190611e40565b50600154600a5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b1580156115c457600080fd5b505af11580156115d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fc9190611e40565b50336000908152600f602052604090206001015461161b908390611d9b565b336000908152600f602052604090206001015560065460055410611671576007546006546116499190611d9b565b60065560085461165b90600290611e1e565b60085560095461166d90600290611e1e565b6009555b505050565b6000546001600160a01b031633146116a05760405162461bcd60e51b81526004016106b490611db3565b6001600160a01b0381166117055760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106b4565b61170e816118b4565b50565b600080600061172085856105a3565b9150915081611734576000925050506117a8565b60008481526011602052604090205460ff1642811561177a57600954620151809061175f8584611de8565b6117699190611dff565b6117739190611e1e565b94506117a3565b600854620151809061178c8584611de8565b6117969190611dff565b6117a09190611e1e565b94505b505050505b92915050565b6003546001600160a01b0316156117c457600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166000908152601060205260409020546118065750565b60005b600e5481101561186157816001600160a01b0316600e828154811061183057611830611d37565b6000918252602090912001546001600160a01b0316141561184f575050565b8061185981611d63565b915050611809565b50600e80546001810182556000919091527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b336000908152600f602052604090205481101561094157336000908152600f6020526040902080548391908390811061194257611942611d37565b9060005260206000209060020201600001541415611a1a57336000908152600f60205260409020805461197790600190611de8565b8154811061198757611987611d37565b60009182526020808320338452600f9091526040909220805460029092029092019190839081106119ba576119ba611d37565b6000918252602080832084546002909302019182556001938401549390910192909255338152600f909152604090208054806119f8576119f8611e7b565b6000828152602081206002600019909301928302018181556001015590555050565b80611a2481611d63565b915050611907565b6001600160a01b03811660009081526010602052604090205415611a4d5750565b60005b600e5481101561094157816001600160a01b0316600e8281548110611a7757611a77611d37565b6000918252602090912001546001600160a01b03161415611b4357600e8054611aa290600190611de8565b81548110611ab257611ab2611d37565b600091825260209091200154600e80546001600160a01b039092169183908110611ade57611ade611d37565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600e805480611b1d57611b1d611e7b565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80611b4d81611d63565b915050611a50565b600060208284031215611b6757600080fd5b5035919050565b6001600160a01b038116811461170e57600080fd5b60008060408385031215611b9657600080fd5b8235611ba181611b6e565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611bd857600080fd5b823567ffffffffffffffff80821115611bf057600080fd5b818501915085601f830112611c0457600080fd5b813581811115611c1657611c16611baf565b8060051b604051601f19603f83011681018181108582111715611c3b57611c3b611baf565b604052918252848201925083810185019188831115611c5957600080fd5b938501935b82851015611c7757843584529385019392850192611c5e565b98975050505050505050565b600060208284031215611c9557600080fd5b8135611ca081611b6e565b9392505050565b602080825282518282018190526000919060409081850190868401855b82811015611ce957815180518552860151868501529284019290850190600101611cc4565b5091979650505050505050565b600080600060608486031215611d0b57600080fd5b8335611d1681611b6e565b92506020840135611d2681611b6e565b929592945050506040919091013590565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611d7757611d77611d4d565b5060010190565b600060208284031215611d9057600080fd5b8151611ca081611b6e565b60008219821115611dae57611dae611d4d565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082821015611dfa57611dfa611d4d565b500390565b6000816000190483118215151615611e1957611e19611d4d565b500290565b600082611e3b57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611e5257600080fd5b81518015158114611ca057600080fd5b600060208284031215611e7457600080fd5b5051919050565b634e487b7160e01b600052603160045260246000fdfea26469706673582212206577add62c298831776df09f4d25a8012a8d6f2885547f551674252e43b3fa2a64736f6c634300080900330000000000000000000000000560e8081654b465593595c152be9cf5d8214bdf00000000000000000000000057e849efc71d350c28446c69e8d8dbf275b57f75
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102535760003560e01c80638b7afe2e11610146578063c964ad45116100c3578063e8f7b1ee11610087578063e8f7b1ee1461050b578063f0dccbc91461052b578063f2fde38b1461053e578063f430cf0d14610551578063f4e0d9ac14610564578063fb4cb32b1461057757600080fd5b8063c964ad45146104c0578063d54ad2a1146104c9578063dad15936146104d2578063e1f21c67146104e5578063e449f341146104f857600080fd5b80639e0130451161010a5780639e0130451461043c5780639f4216e81461045c578063a523df1d1461046f578063a87430ba14610478578063c79785b9146104b757600080fd5b80638b7afe2e146103f55780638da5cb5b146103fd578063971ae3da1461040e57806397dff90b146104215780639be572f61461043457600080fd5b80635960fce5116101d45780637b352962116101985780637b3529621461039c5780637ce3489b146103a9578063859daf91146103bc5780638705fcd4146103cf5780638b08942b146103e257600080fd5b80635960fce51461035c5780635bf8633a146103655780636845478f14610378578063692229481461038b578063715018a61461039457600080fd5b806317c19ab91161021b57806317c19ab91461030d5780631911fb9714610320578063314af1a71461033357806332bc298c1461034a5780634e71d92d1461035457600080fd5b80630135f7401461025857806305c92135146102885780630fb0afea146102bb5780630fbf0a93146102e557806311fa14d7146102fa575b600080fd5b600a5461026b906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6102ab610296366004611b55565b60116020526000908152604090205460ff1681565b604051901515815260200161027f565b6102ce6102c9366004611b83565b6105a3565b60408051921515835260208301919091520161027f565b6102f86102f3366004611bc5565b61066f565b005b6102f8610308366004611b55565b610945565b6102f861031b366004611b55565b610974565b6102f861032e366004611b55565b6109a3565b61033c60075481565b60405190815260200161027f565b61033c6201518081565b6102f86109d2565b61033c60095481565b60025461026b906001600160a01b031681565b60015461026b906001600160a01b031681565b61033c600b5481565b6102f8610c42565b600d546102ab9060ff1681565b6102f86103b7366004611b55565b610c78565b61033c6103ca366004611c83565b610cf9565b6102f86103dd366004611c83565b610d8c565b6102f86103f0366004611bc5565b610deb565b61033c610e79565b6000546001600160a01b031661026b565b6102f861041c366004611c83565b610efa565b6102f861042f366004611b55565b610f46565b600e5461033c565b61044f61044a366004611c83565b610fe9565b60405161027f9190611ca7565b61026b61046a366004611b55565b611070565b61033c60045481565b6104a2610486366004611c83565b600f602052600090815260409020600181015460029091015482565b6040805192835260208301919091520161027f565b61033c60065481565b61033c60085481565b61033c60055481565b6102f86104e0366004611c83565b61109a565b6102ab6104f3366004611cf6565b6110e6565b6102f8610506366004611bc5565b61118d565b61033c610519366004611c83565b60106020526000908152604090205481565b60035461026b906001600160a01b031681565b6102f861054c366004611c83565b611676565b61033c61055f366004611b83565b611711565b6102f8610572366004611c83565b6117ae565b61033c610585366004611c83565b6001600160a01b03166000908152600f602052604090206001015490565b60008060005b6001600160a01b0385166000908152600f6020526040902054811015610667576001600160a01b0385166000908152600f602052604090208054859190839081106105f6576105f6611d37565b9060005260206000209060020201600001541415610655576001600160a01b0385166000908152600f602052604090208054600194508290811061063c5761063c611d37565b9060005260206000209060020201600101549150610667565b8061065f81611d63565b9150506105a9565b509250929050565b600d5460ff16156106bd5760405162461bcd60e51b815260206004820152601360248201527214dd185ada5b99c81a5cc8199a5b9a5cda1959606a1b60448201526064015b60405180910390fd5b60005b81518110156109415760006106ee338484815181106106e1576106e1611d37565b60200260200101516105a3565b50905080156106fd575061092f565b600254835133916001600160a01b031690636352211e9086908690811061072657610726611d37565b60200260200101516040518263ffffffff1660e01b815260040161074c91815260200190565b60206040518083038186803b15801561076457600080fd5b505afa158015610778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079c9190611d7e565b6001600160a01b0316146107b0575061092f565b60025483516001600160a01b03909116906323b872dd90339030908790879081106107dd576107dd611d37565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561083757600080fd5b505af115801561084b573d6000803e3d6000fd5b5050505061086c604051806040016040528060008152602001600081525090565b83838151811061087e5761087e611d37565b602090810291909101810151825242828201908152336000818152600f8452604080822080546001818101835591845286842088516002909202019081559451948101949094559181526010909352909120546108da91611d9b565b336000818152601060205260409020919091556108f6906117e6565b6040516001815233907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9060200160405180910390a250505b8061093981611d63565b9150506106c0565b5050565b6000546001600160a01b0316331461096f5760405162461bcd60e51b81526004016106b490611db3565b600755565b6000546001600160a01b0316331461099e5760405162461bcd60e51b81526004016106b490611db3565b600455565b6000546001600160a01b031633146109cd5760405162461bcd60e51b81526004016106b490611db3565b600855565b60006109dd33610cf9565b336000908152600f602052604081206002018190559091505b336000908152600f6020526040902054811015610a5757336000908152600f60205260409020805442919083908110610a3157610a31611d37565b600091825260209091206001600290920201015580610a4f81611d63565b9150506109f6565b5060065481600554610a699190611d9b565b10610a8157600554600654610a7e9190611de8565b90505b80600554610a8f9190611d9b565b600555600c54600b5460009190610aa69084611dff565b610ab09190611e1e565b9050610abc8183611de8565b60015460405163a9059cbb60e01b8152336004820152602481018390529193506001600160a01b03169063a9059cbb90604401602060405180830381600087803b158015610b0957600080fd5b505af1158015610b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b419190611e40565b50600154600a5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b158015610b9257600080fd5b505af1158015610ba6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bca9190611e40565b50336000908152600f6020526040902060010154610be9908390611d9b565b336000908152600f60205260409020600101556006546005541061094157600754600654610c179190611d9b565b600655600854610c2990600290611e1e565b600855600954610c3b90600290611e1e565b6009555050565b6000546001600160a01b03163314610c6c5760405162461bcd60e51b81526004016106b490611db3565b610c7660006118b4565b565b6000546001600160a01b03163314610ca25760405162461bcd60e51b81526004016106b490611db3565b612710811115610cf45760405162461bcd60e51b815260206004820152601e60248201527f466565206d7573742062652067726561746572207468616e203130303030000060448201526064016106b4565b600b55565b6000805b6001600160a01b0383166000908152600f6020526040902054811015610d86576001600160a01b0383166000908152600f602052604081208054610d6491869185908110610d4d57610d4d611d37565b906000526020600020906002020160000154611711565b9050610d708184611d9b565b9250508080610d7e90611d63565b915050610cfd565b50919050565b6000546001600160a01b03163314610db65760405162461bcd60e51b81526004016106b490611db3565b6001600160a01b038116610dc957600080fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610e155760405162461bcd60e51b81526004016106b490611db3565b60005b815181101561094157600160116000848481518110610e3957610e39611d37565b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e7190611d63565b915050610e18565b6002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b158015610ebd57600080fd5b505afa158015610ed1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef59190611e62565b905090565b6000546001600160a01b03163314610f245760405162461bcd60e51b81526004016106b490611db3565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610f705760405162461bcd60e51b81526004016106b490611db3565b600554811015610fda5760405162461bcd60e51b815260206004820152602f60248201527f6c696d697456616c75652053686f756c6420626520677265617465722074686160448201526e37103a37ba30b621b630b4b6b2b21760891b60648201526084016106b4565b600655600d805460ff19169055565b6001600160a01b0381166000908152600f60209081526040808320805482518185028101850190935280835260609493849084015b828210156110645783829060005260206000209060020201604051806040016040529081600082015481526020016001820154815250508152602001906001019061101e565b50929695505050505050565b600e818154811061108057600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b031633146110c45760405162461bcd60e51b81526004016106b490611db3565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6003546000906001600160a01b0316331461110057600080fd5b60405163095ea7b360e01b81526001600160a01b0384811660048301526024820184905285169063095ea7b390604401602060405180830381600087803b15801561114a57600080fd5b505af115801561115e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111829190611e40565b506001949350505050565b60008060005b83518110156113ff5760006111b4338684815181106106e1576106e1611d37565b509050806111c257506113ed565b600254855130916001600160a01b031690636352211e908890869081106111eb576111eb611d37565b60200260200101516040518263ffffffff1660e01b815260040161121191815260200190565b60206040518083038186803b15801561122957600080fd5b505afa15801561123d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112619190611d7e565b6001600160a01b03161461127557506113ed565b600061129a3387858151811061128d5761128d611d37565b6020026020010151611711565b90506112a68186611d9b565b94506112ca8684815181106112bd576112bd611d37565b6020026020010151611904565b336000908152601060205260409020541561130c57336000908152601060205260409020546112fb90600190611de8565b336000908152601060205260409020555b60025486516001600160a01b03909116906323b872dd90309033908a908890811061133957611339611d37565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561139357600080fd5b505af11580156113a7573d6000803e3d6000fd5b505050506113b433611a2c565b6040516001815233907fb24546d975e2628748efc9aced80665e0fad66272033e5c0ea25fd3afac997959060200160405180910390a250505b806113f781611d63565b915050611193565b50811561167157336000908152600f602052604090206002015482101561145b57336000908152600f602052604090206002015461143e908390611de8565b336000908152600f6020526040812060020191909155915061148e565b336000908152600f60205260409020600201546114789083611de8565b336000908152600f602052604081206002015591505b6006548260055461149f9190611d9b565b106114b7576005546006546114b49190611de8565b91505b816005546114c59190611d9b565b600555600c54600b546114d89084611dff565b6114e29190611e1e565b90506114ee8183611de8565b60015460405163a9059cbb60e01b8152336004820152602481018390529193506001600160a01b03169063a9059cbb90604401602060405180830381600087803b15801561153b57600080fd5b505af115801561154f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115739190611e40565b50600154600a5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b1580156115c457600080fd5b505af11580156115d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fc9190611e40565b50336000908152600f602052604090206001015461161b908390611d9b565b336000908152600f602052604090206001015560065460055410611671576007546006546116499190611d9b565b60065560085461165b90600290611e1e565b60085560095461166d90600290611e1e565b6009555b505050565b6000546001600160a01b031633146116a05760405162461bcd60e51b81526004016106b490611db3565b6001600160a01b0381166117055760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106b4565b61170e816118b4565b50565b600080600061172085856105a3565b9150915081611734576000925050506117a8565b60008481526011602052604090205460ff1642811561177a57600954620151809061175f8584611de8565b6117699190611dff565b6117739190611e1e565b94506117a3565b600854620151809061178c8584611de8565b6117969190611dff565b6117a09190611e1e565b94505b505050505b92915050565b6003546001600160a01b0316156117c457600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166000908152601060205260409020546118065750565b60005b600e5481101561186157816001600160a01b0316600e828154811061183057611830611d37565b6000918252602090912001546001600160a01b0316141561184f575050565b8061185981611d63565b915050611809565b50600e80546001810182556000919091527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b336000908152600f602052604090205481101561094157336000908152600f6020526040902080548391908390811061194257611942611d37565b9060005260206000209060020201600001541415611a1a57336000908152600f60205260409020805461197790600190611de8565b8154811061198757611987611d37565b60009182526020808320338452600f9091526040909220805460029092029092019190839081106119ba576119ba611d37565b6000918252602080832084546002909302019182556001938401549390910192909255338152600f909152604090208054806119f8576119f8611e7b565b6000828152602081206002600019909301928302018181556001015590555050565b80611a2481611d63565b915050611907565b6001600160a01b03811660009081526010602052604090205415611a4d5750565b60005b600e5481101561094157816001600160a01b0316600e8281548110611a7757611a77611d37565b6000918252602090912001546001600160a01b03161415611b4357600e8054611aa290600190611de8565b81548110611ab257611ab2611d37565b600091825260209091200154600e80546001600160a01b039092169183908110611ade57611ade611d37565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600e805480611b1d57611b1d611e7b565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80611b4d81611d63565b915050611a50565b600060208284031215611b6757600080fd5b5035919050565b6001600160a01b038116811461170e57600080fd5b60008060408385031215611b9657600080fd5b8235611ba181611b6e565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611bd857600080fd5b823567ffffffffffffffff80821115611bf057600080fd5b818501915085601f830112611c0457600080fd5b813581811115611c1657611c16611baf565b8060051b604051601f19603f83011681018181108582111715611c3b57611c3b611baf565b604052918252848201925083810185019188831115611c5957600080fd5b938501935b82851015611c7757843584529385019392850192611c5e565b98975050505050505050565b600060208284031215611c9557600080fd5b8135611ca081611b6e565b9392505050565b602080825282518282018190526000919060409081850190868401855b82811015611ce957815180518552860151868501529284019290850190600101611cc4565b5091979650505050505050565b600080600060608486031215611d0b57600080fd5b8335611d1681611b6e565b92506020840135611d2681611b6e565b929592945050506040919091013590565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611d7757611d77611d4d565b5060010190565b600060208284031215611d9057600080fd5b8151611ca081611b6e565b60008219821115611dae57611dae611d4d565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082821015611dfa57611dfa611d4d565b500390565b6000816000190483118215151615611e1957611e19611d4d565b500290565b600082611e3b57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611e5257600080fd5b81518015158114611ca057600080fd5b600060208284031215611e7457600080fd5b5051919050565b634e487b7160e01b600052603160045260246000fdfea26469706673582212206577add62c298831776df09f4d25a8012a8d6f2885547f551674252e43b3fa2a64736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000560e8081654b465593595c152be9cf5d8214bdf00000000000000000000000057e849efc71d350c28446c69e8d8dbf275b57f75
-----Decoded View---------------
Arg [0] : _nftAddress (address): 0x0560e8081654b465593595C152Be9cf5d8214bDF
Arg [1] : _rewardTokenAddress (address): 0x57e849EFC71D350C28446C69E8d8dbF275B57F75
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000560e8081654b465593595c152be9cf5d8214bdf
Arg [1] : 00000000000000000000000057e849efc71d350c28446c69e8d8dbf275b57f75
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.