More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 4,175 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Batch Unstake | 20555906 | 111 days ago | IN | 0 ETH | 0.0012592 | ||||
Batch Unstake | 20505413 | 118 days ago | IN | 0 ETH | 0.00014288 | ||||
Batch Unstake | 20385773 | 135 days ago | IN | 0 ETH | 0.00035539 | ||||
Batch Unstake | 20293438 | 148 days ago | IN | 0 ETH | 0.00026354 | ||||
Batch Unstake | 20215676 | 159 days ago | IN | 0 ETH | 0.00017447 | ||||
Batch Unstake | 19949279 | 196 days ago | IN | 0 ETH | 0.00145386 | ||||
Batch Unstake | 19877673 | 206 days ago | IN | 0 ETH | 0.00122958 | ||||
Batch Unstake | 19838326 | 211 days ago | IN | 0 ETH | 0.0002965 | ||||
Batch Unstake | 19817817 | 214 days ago | IN | 0 ETH | 0.00472159 | ||||
Batch Unstake | 19762993 | 222 days ago | IN | 0 ETH | 0.00057276 | ||||
Batch Unstake | 19695873 | 231 days ago | IN | 0 ETH | 0.0009457 | ||||
Batch Unstake | 19684215 | 233 days ago | IN | 0 ETH | 0.00255931 | ||||
Batch Unstake | 19500667 | 259 days ago | IN | 0 ETH | 0.00128423 | ||||
Batch Unstake | 19445982 | 266 days ago | IN | 0 ETH | 0.00194202 | ||||
Batch Unstake | 19430675 | 269 days ago | IN | 0 ETH | 0.0040989 | ||||
Batch Unstake | 19350843 | 280 days ago | IN | 0 ETH | 0.02011097 | ||||
Batch Unstake | 19335050 | 282 days ago | IN | 0 ETH | 0.00538232 | ||||
Batch Unstake | 19333543 | 282 days ago | IN | 0 ETH | 0.00594414 | ||||
Batch Unstake | 19327224 | 283 days ago | IN | 0 ETH | 0.00633593 | ||||
Batch Unstake | 19297987 | 287 days ago | IN | 0 ETH | 0.00375267 | ||||
Batch Unstake | 19296175 | 287 days ago | IN | 0 ETH | 0.00244394 | ||||
Batch Unstake | 19221496 | 298 days ago | IN | 0 ETH | 0.00304051 | ||||
Batch Unstake | 19220070 | 298 days ago | IN | 0 ETH | 0.00238188 | ||||
Batch Unstake | 19205969 | 300 days ago | IN | 0 ETH | 0.00277471 | ||||
Batch Unstake | 19204966 | 300 days ago | IN | 0 ETH | 0.00330648 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
KCGStaking
Compiler Version
v0.8.12+commit.f00d7308
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.12; import "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol"; import "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; contract KCGStaking is Ownable, ReentrancyGuard { uint256 public constant DAY = 24 * 60 * 60; uint256 public constant FOURTY_FIVE_DAYS = 45 * DAY; uint256 public constant NINETY_DAYS = 90 * DAY; uint256 public constant ONE_HUNDREDS_EIGHTY_DAYS = 180 * DAY; address public KCGAddress = 0xA302F0d51A365B18e86c291056dC265a73F19419; bool public emergencyUnstakePaused = true; struct stakeRecord { address tokenOwner; uint256 tokenId; uint256 endingTimestamp; } mapping(uint256 => stakeRecord) public stakingRecords; mapping(address => uint256) public numOfTokenStaked; event Staked(address owner, uint256 amount, uint256 timeframe); event Unstaked(address owner, uint256 amount); event EmergencyUnstake(address indexed user, uint256 tokenId); constructor() {} // MODIFIER modifier checkArgsLength( uint256[] calldata tokenIds, uint256[] calldata timeframe ) { require( tokenIds.length == timeframe.length, "Token IDs and timeframes must have the same length." ); _; } modifier checkStakingTimeframe(uint256[] calldata timeframe) { for (uint256 i = 0; i < timeframe.length; i++) { uint256 period = timeframe[i]; require( period == FOURTY_FIVE_DAYS || period == NINETY_DAYS || period == ONE_HUNDREDS_EIGHTY_DAYS, "Invalid staking timeframes." ); } _; } // STAKING function batchStake( uint256[] calldata tokenIds, uint256[] calldata timeframe ) external checkStakingTimeframe(timeframe) checkArgsLength(tokenIds, timeframe) { for (uint256 i = 0; i < tokenIds.length; i++) { _stake(msg.sender, tokenIds[i], timeframe[i]); } } function _stake( address _user, uint256 _tokenId, uint256 _timeframe ) internal { require( IERC721Enumerable(KCGAddress).ownerOf(_tokenId) == msg.sender, "You must own the NFT." ); uint256 endingTimestamp = block.timestamp + _timeframe; stakingRecords[_tokenId] = stakeRecord( _user, _tokenId, endingTimestamp ); numOfTokenStaked[_user] = numOfTokenStaked[_user] + 1; IERC721Enumerable(KCGAddress).safeTransferFrom( _user, address(this), _tokenId ); emit Staked(_user, _tokenId, _timeframe); } // RESTAKE function batchRestake( uint256[] calldata tokenIds, uint256[] calldata timeframe ) external checkStakingTimeframe(timeframe) checkArgsLength(tokenIds, timeframe) { for (uint256 i = 0; i < tokenIds.length; i++) { _restake(msg.sender, tokenIds[i], timeframe[i]); } } function _restake( address _user, uint256 _tokenId, uint256 _timeframe ) internal { require( block.timestamp >= stakingRecords[_tokenId].endingTimestamp, "NFT is locked." ); require( stakingRecords[_tokenId].tokenOwner == msg.sender, "Token does not belong to you." ); uint256 endingTimestamp = block.timestamp + _timeframe; stakingRecords[_tokenId].endingTimestamp = endingTimestamp; emit Staked(_user, _tokenId, _timeframe); } // UNSTAKE function batchUnstake(uint256[] calldata tokenIds) external nonReentrant { for (uint256 i = 0; i < tokenIds.length; i++) { _unstake(msg.sender, tokenIds[i]); } } function _unstake(address _user, uint256 _tokenId) internal { require( block.timestamp >= stakingRecords[_tokenId].endingTimestamp, "NFT is locked." ); require( stakingRecords[_tokenId].tokenOwner == msg.sender, "Token does not belong to you." ); delete stakingRecords[_tokenId]; numOfTokenStaked[_user]--; IERC721Enumerable(KCGAddress).safeTransferFrom( address(this), _user, _tokenId ); emit Unstaked(_user, _tokenId); } function getStakingRecords(address user) public view returns (uint256[] memory, uint256[] memory) { uint256[] memory tokenIds = new uint256[](numOfTokenStaked[user]); uint256[] memory expiries = new uint256[](numOfTokenStaked[user]); uint256 counter = 0; for ( uint256 i = 0; i < IERC721Enumerable(KCGAddress).totalSupply(); i++ ) { if (stakingRecords[i].tokenOwner == user) { tokenIds[counter] = stakingRecords[i].tokenId; expiries[counter] = stakingRecords[i].endingTimestamp; counter++; } } return (tokenIds, expiries); } function onERC721Received( address, address, uint256, bytes calldata ) external pure returns (bytes4) { return IERC721Receiver.onERC721Received.selector; } // MIGRATION ONLY. function setKCGNFTContract(address operator) public onlyOwner { KCGAddress = operator; } // EMERGENCY ONLY. function setEmergencyUnstakePaused(bool paused) public onlyOwner { emergencyUnstakePaused = paused; } function emergencyUnstake(uint256 tokenId) external nonReentrant { require(!emergencyUnstakePaused, "No emergency unstake."); require( stakingRecords[tokenId].tokenOwner == msg.sender, "Token does not belong to you." ); delete stakingRecords[tokenId]; numOfTokenStaked[msg.sender]--; IERC721Enumerable(KCGAddress).safeTransferFrom( address(this), msg.sender, tokenId ); emit EmergencyUnstake(msg.sender, tokenId); } function emergencyUnstakeByOwner(uint256[] calldata tokenIds) external onlyOwner nonReentrant { require(!emergencyUnstakePaused, "No emergency unstake."); for (uint256 i = 0; i < tokenIds.length; i++) { uint256 tokenId = tokenIds[i]; address user = stakingRecords[tokenId].tokenOwner; require(user != address(0x0), "Need owner exists."); delete stakingRecords[tokenId]; numOfTokenStaked[user]--; IERC721Enumerable(KCGAddress).safeTransferFrom( address(this), user, tokenId ); emit EmergencyUnstake(user, tokenId); } } }
// 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 (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } }
// 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 v4.4.1 (token/ERC721/IERC721Receiver.sol) pragma solidity ^0.8.0; /** * @title ERC721 token receiver interface * @dev Interface for any contract that wants to support safeTransfers * from ERC721 asset contracts. */ 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); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Enumerable.sol) pragma solidity ^0.8.0; import "../IERC721.sol"; /** * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension * @dev See https://eips.ethereum.org/EIPS/eip-721 */ interface IERC721Enumerable is IERC721 { /** * @dev Returns the total amount of tokens stored by the contract. */ function totalSupply() external view returns (uint256); /** * @dev Returns a token ID owned by `owner` at a given `index` of its token list. * Use along with {balanceOf} to enumerate all of ``owner``'s tokens. */ function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId); /** * @dev Returns a token ID at a given `index` of all the tokens stored by the contract. * Use along with {totalSupply} to enumerate all tokens. */ function tokenByIndex(uint256 index) external view returns (uint256); }
// 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": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"EmergencyUnstake","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":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timeframe","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Unstaked","type":"event"},{"inputs":[],"name":"DAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FOURTY_FIVE_DAYS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"KCGAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NINETY_DAYS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ONE_HUNDREDS_EIGHTY_DAYS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"timeframe","type":"uint256[]"}],"name":"batchRestake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"timeframe","type":"uint256[]"}],"name":"batchStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"batchUnstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"emergencyUnstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"emergencyUnstakeByOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emergencyUnstakePaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getStakingRecords","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numOfTokenStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"paused","type":"bool"}],"name":"setEmergencyUnstakePaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"setKCGNFTContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakingRecords","outputs":[{"internalType":"address","name":"tokenOwner","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"endingTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405273a302f0d51a365b18e86c291056dc265a73f19419600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260146101000a81548160ff0219169083151502179055503480156200008157600080fd5b50620000a262000096620000af60201b60201c565b620000b760201b60201c565b600180819055506200017b565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6128e3806200018b6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806365daa980116100ad578063d2acd13d11610071578063d2acd13d14610322578063d49fab8a1461033e578063e372c9001461035a578063e70c96fd14610378578063f2fde38b146103945761012c565b806365daa9801461028e578063715018a6146102ac578063878ecfb0146102b65780638da5cb5b146102d257806392edd9f9146102f05761012c565b806327cfe856116100f457806327cfe856146101fa5780632df8e0e914610218578063346fc6bb146102365780633b4756b31461025457806352b8da0b146102725761012c565b8063012ce5011461013157806303e8d9381461014d578063150b7a0214610169578063163fe17614610199578063241a9219146101ca575b600080fd5b61014b60048036038101906101469190611c56565b6103b0565b005b61016760048036038101906101629190611ce8565b61067d565b005b610183600480360381019061017e9190611e1d565b6107fa565b6040516101909190611ee0565b60405180910390f35b6101b360048036038101906101ae9190611efb565b61080f565b6040516101c1929190611fe6565b60405180910390f35b6101e460048036038101906101df9190611efb565b610acd565b6040516101f1919061202c565b60405180910390f35b610202610ae5565b60405161020f919061202c565b60405180910390f35b610220610aec565b60405161022d919061202c565b60405180910390f35b61023e610aff565b60405161024b9190612062565b60405180910390f35b61025c610b12565b604051610269919061208c565b60405180910390f35b61028c60048036038101906102879190611efb565b610b38565b005b610296610bf8565b6040516102a3919061202c565b60405180910390f35b6102b4610c0b565b005b6102d060048036038101906102cb91906120a7565b610c93565b005b6102da611026565b6040516102e7919061208c565b60405180910390f35b61030a60048036038101906103059190611c56565b61104f565b604051610319939291906120f4565b60405180910390f35b61033c600480360381019061033791906120a7565b611099565b005b61035860048036038101906103539190611ce8565b611137565b005b6103626112b4565b60405161036f919061202c565b60405180910390f35b610392600480360381019061038d9190612157565b6112c7565b005b6103ae60048036038101906103a99190611efb565b611360565b005b600260015414156103f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ed906121e1565b60405180910390fd5b6002600181905550600260149054906101000a900460ff161561044e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104459061224d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e9906122b9565b60405180910390fd5b60036000828152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182016000905560028201600090555050600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061058f90612308565b9190505550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e3033846040518463ffffffff1660e01b81526004016105f393929190612332565b600060405180830381600087803b15801561060d57600080fd5b505af1158015610621573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff167f571394674ec9d9e81517060110f8f894ce912af2b2febc091bee0cdea68adf008260405161066b919061202c565b60405180910390a26001808190555050565b818160005b828290508110156107425760008383838181106106a2576106a1612369565b5b90506020020135905062015180602d6106bb9190612398565b8114806106d6575062015180605a6106d39190612398565b81145b806106ef57506201518060b46106ec9190612398565b81145b61072e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107259061243e565b60405180910390fd5b50808061073a9061245e565b915050610682565b508585858581819050848490501461078f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078690612519565b60405180910390fd5b60005b8a8a90508110156107ed576107da338c8c848181106107b4576107b3612369565b5b905060200201358b8b858181106107ce576107cd612369565b5b90506020020135611458565b80806107e59061245e565b915050610792565b5050505050505050505050565b600063150b7a0260e01b905095945050505050565b6060806000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467ffffffffffffffff81111561086d5761086c612539565b5b60405190808252806020026020018201604052801561089b5781602001602082028036833780820191505090505b5090506000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467ffffffffffffffff8111156108f9576108f8612539565b5b6040519080825280602002602001820160405280156109275781602001602082028036833780820191505090505b5090506000805b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561099b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109bf919061257d565b811015610abe578673ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610aab576003600082815260200190815260200160002060010154848381518110610a5a57610a59612369565b5b6020026020010181815250506003600082815260200190815260200160002060020154838381518110610a9057610a8f612369565b5b6020026020010181815250508180610aa79061245e565b9250505b8080610ab69061245e565b91505061092e565b50828294509450505050915091565b60046020528060005260406000206000915090505481565b6201518081565b6201518060b4610afc9190612398565b81565b600260149054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b406115c1565b73ffffffffffffffffffffffffffffffffffffffff16610b5e611026565b73ffffffffffffffffffffffffffffffffffffffff1614610bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bab906125f6565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b62015180602d610c089190612398565b81565b610c136115c1565b73ffffffffffffffffffffffffffffffffffffffff16610c31611026565b73ffffffffffffffffffffffffffffffffffffffff1614610c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7e906125f6565b60405180910390fd5b610c9160006115c9565b565b610c9b6115c1565b73ffffffffffffffffffffffffffffffffffffffff16610cb9611026565b73ffffffffffffffffffffffffffffffffffffffff1614610d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d06906125f6565b60405180910390fd5b60026001541415610d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4c906121e1565b60405180910390fd5b6002600181905550600260149054906101000a900460ff1615610dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da49061224d565b60405180910390fd5b60005b8282905081101561101a576000838383818110610dd057610dcf612369565b5b90506020020135905060006003600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7b90612662565b60405180910390fd5b60036000838152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182016000905560028201600090555050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f2190612308565b9190505550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e3083856040518463ffffffff1660e01b8152600401610f8593929190612332565b600060405180830381600087803b158015610f9f57600080fd5b505af1158015610fb3573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff167f571394674ec9d9e81517060110f8f894ce912af2b2febc091bee0cdea68adf0083604051610ffd919061202c565b60405180910390a2505080806110129061245e565b915050610db0565b50600180819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60036020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154905083565b600260015414156110df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d6906121e1565b60405180910390fd5b600260018190555060005b8282905081101561112b576111183384848481811061110c5761110b612369565b5b9050602002013561168d565b80806111239061245e565b9150506110ea565b50600180819055505050565b818160005b828290508110156111fc57600083838381811061115c5761115b612369565b5b90506020020135905062015180602d6111759190612398565b811480611190575062015180605a61118d9190612398565b81145b806111a957506201518060b46111a69190612398565b81145b6111e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111df9061243e565b60405180910390fd5b5080806111f49061245e565b91505061113c565b5085858585818190508484905014611249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124090612519565b60405180910390fd5b60005b8a8a90508110156112a757611294338c8c8481811061126e5761126d612369565b5b905060200201358b8b8581811061128857611287612369565b5b905060200201356118fa565b808061129f9061245e565b91505061124c565b5050505050505050505050565b62015180605a6112c49190612398565b81565b6112cf6115c1565b73ffffffffffffffffffffffffffffffffffffffff166112ed611026565b73ffffffffffffffffffffffffffffffffffffffff1614611343576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133a906125f6565b60405180910390fd5b80600260146101000a81548160ff02191690831515021790555050565b6113686115c1565b73ffffffffffffffffffffffffffffffffffffffff16611386611026565b73ffffffffffffffffffffffffffffffffffffffff16146113dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d3906125f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561144c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611443906126f4565b60405180910390fd5b611455816115c9565b50565b60036000838152602001908152602001600020600201544210156114b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a890612760565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c906122b9565b60405180910390fd5b600081426115639190612780565b90508060036000858152602001908152602001600020600201819055507f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee908484846040516115b3939291906120f4565b60405180910390a150505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60036000828152602001908152602001600020600201544210156116e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dd90612760565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461178a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611781906122b9565b60405180910390fd5b60036000828152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182016000905560028201600090555050600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061182790612308565b9190505550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e3084846040518463ffffffff1660e01b815260040161188b93929190612332565b600060405180830381600087803b1580156118a557600080fd5b505af11580156118b9573d6000803e3d6000fd5b505050507f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f7582826040516118ee9291906127d6565b60405180910390a15050565b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff1660e01b815260040161196c919061202c565b602060405180830381865afa158015611989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ad9190612814565b73ffffffffffffffffffffffffffffffffffffffff1614611a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fa9061288d565b60405180910390fd5b60008142611a119190612780565b905060405180606001604052808573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001828152506003600085815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201559050506001600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b019190612780565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e8530866040518463ffffffff1660e01b8152600401611ba393929190612332565b600060405180830381600087803b158015611bbd57600080fd5b505af1158015611bd1573d6000803e3d6000fd5b505050507f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee90848484604051611c08939291906120f4565b60405180910390a150505050565b600080fd5b600080fd5b6000819050919050565b611c3381611c20565b8114611c3e57600080fd5b50565b600081359050611c5081611c2a565b92915050565b600060208284031215611c6c57611c6b611c16565b5b6000611c7a84828501611c41565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611ca857611ca7611c83565b5b8235905067ffffffffffffffff811115611cc557611cc4611c88565b5b602083019150836020820283011115611ce157611ce0611c8d565b5b9250929050565b60008060008060408587031215611d0257611d01611c16565b5b600085013567ffffffffffffffff811115611d2057611d1f611c1b565b5b611d2c87828801611c92565b9450945050602085013567ffffffffffffffff811115611d4f57611d4e611c1b565b5b611d5b87828801611c92565b925092505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d9482611d69565b9050919050565b611da481611d89565b8114611daf57600080fd5b50565b600081359050611dc181611d9b565b92915050565b60008083601f840112611ddd57611ddc611c83565b5b8235905067ffffffffffffffff811115611dfa57611df9611c88565b5b602083019150836001820283011115611e1657611e15611c8d565b5b9250929050565b600080600080600060808688031215611e3957611e38611c16565b5b6000611e4788828901611db2565b9550506020611e5888828901611db2565b9450506040611e6988828901611c41565b935050606086013567ffffffffffffffff811115611e8a57611e89611c1b565b5b611e9688828901611dc7565b92509250509295509295909350565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611eda81611ea5565b82525050565b6000602082019050611ef56000830184611ed1565b92915050565b600060208284031215611f1157611f10611c16565b5b6000611f1f84828501611db2565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611f5d81611c20565b82525050565b6000611f6f8383611f54565b60208301905092915050565b6000602082019050919050565b6000611f9382611f28565b611f9d8185611f33565b9350611fa883611f44565b8060005b83811015611fd9578151611fc08882611f63565b9750611fcb83611f7b565b925050600181019050611fac565b5085935050505092915050565b600060408201905081810360008301526120008185611f88565b905081810360208301526120148184611f88565b90509392505050565b61202681611c20565b82525050565b6000602082019050612041600083018461201d565b92915050565b60008115159050919050565b61205c81612047565b82525050565b60006020820190506120776000830184612053565b92915050565b61208681611d89565b82525050565b60006020820190506120a1600083018461207d565b92915050565b600080602083850312156120be576120bd611c16565b5b600083013567ffffffffffffffff8111156120dc576120db611c1b565b5b6120e885828601611c92565b92509250509250929050565b6000606082019050612109600083018661207d565b612116602083018561201d565b612123604083018461201d565b949350505050565b61213481612047565b811461213f57600080fd5b50565b6000813590506121518161212b565b92915050565b60006020828403121561216d5761216c611c16565b5b600061217b84828501612142565b91505092915050565b600082825260208201905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b60006121cb601f83612184565b91506121d682612195565b602082019050919050565b600060208201905081810360008301526121fa816121be565b9050919050565b7f4e6f20656d657267656e637920756e7374616b652e0000000000000000000000600082015250565b6000612237601583612184565b915061224282612201565b602082019050919050565b600060208201905081810360008301526122668161222a565b9050919050565b7f546f6b656e20646f6573206e6f742062656c6f6e6720746f20796f752e000000600082015250565b60006122a3601d83612184565b91506122ae8261226d565b602082019050919050565b600060208201905081810360008301526122d281612296565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061231382611c20565b91506000821415612327576123266122d9565b5b600182039050919050565b6000606082019050612347600083018661207d565b612354602083018561207d565b612361604083018461201d565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006123a382611c20565b91506123ae83611c20565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156123e7576123e66122d9565b5b828202905092915050565b7f496e76616c6964207374616b696e672074696d656672616d65732e0000000000600082015250565b6000612428601b83612184565b9150612433826123f2565b602082019050919050565b600060208201905081810360008301526124578161241b565b9050919050565b600061246982611c20565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561249c5761249b6122d9565b5b600182019050919050565b7f546f6b656e2049447320616e642074696d656672616d6573206d75737420686160008201527f7665207468652073616d65206c656e6774682e00000000000000000000000000602082015250565b6000612503603383612184565b915061250e826124a7565b604082019050919050565b60006020820190508181036000830152612532816124f6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061257781611c2a565b92915050565b60006020828403121561259357612592611c16565b5b60006125a184828501612568565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006125e0602083612184565b91506125eb826125aa565b602082019050919050565b6000602082019050818103600083015261260f816125d3565b9050919050565b7f4e656564206f776e6572206578697374732e0000000000000000000000000000600082015250565b600061264c601283612184565b915061265782612616565b602082019050919050565b6000602082019050818103600083015261267b8161263f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006126de602683612184565b91506126e982612682565b604082019050919050565b6000602082019050818103600083015261270d816126d1565b9050919050565b7f4e4654206973206c6f636b65642e000000000000000000000000000000000000600082015250565b600061274a600e83612184565b915061275582612714565b602082019050919050565b600060208201905081810360008301526127798161273d565b9050919050565b600061278b82611c20565b915061279683611c20565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127cb576127ca6122d9565b5b828201905092915050565b60006040820190506127eb600083018561207d565b6127f8602083018461201d565b9392505050565b60008151905061280e81611d9b565b92915050565b60006020828403121561282a57612829611c16565b5b6000612838848285016127ff565b91505092915050565b7f596f75206d757374206f776e20746865204e46542e0000000000000000000000600082015250565b6000612877601583612184565b915061288282612841565b602082019050919050565b600060208201905081810360008301526128a68161286a565b905091905056fea2646970667358221220181ca2f934b33e430edca1026241c58a8a032d01f0ad4d6249f66009d473f4c864736f6c634300080c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806365daa980116100ad578063d2acd13d11610071578063d2acd13d14610322578063d49fab8a1461033e578063e372c9001461035a578063e70c96fd14610378578063f2fde38b146103945761012c565b806365daa9801461028e578063715018a6146102ac578063878ecfb0146102b65780638da5cb5b146102d257806392edd9f9146102f05761012c565b806327cfe856116100f457806327cfe856146101fa5780632df8e0e914610218578063346fc6bb146102365780633b4756b31461025457806352b8da0b146102725761012c565b8063012ce5011461013157806303e8d9381461014d578063150b7a0214610169578063163fe17614610199578063241a9219146101ca575b600080fd5b61014b60048036038101906101469190611c56565b6103b0565b005b61016760048036038101906101629190611ce8565b61067d565b005b610183600480360381019061017e9190611e1d565b6107fa565b6040516101909190611ee0565b60405180910390f35b6101b360048036038101906101ae9190611efb565b61080f565b6040516101c1929190611fe6565b60405180910390f35b6101e460048036038101906101df9190611efb565b610acd565b6040516101f1919061202c565b60405180910390f35b610202610ae5565b60405161020f919061202c565b60405180910390f35b610220610aec565b60405161022d919061202c565b60405180910390f35b61023e610aff565b60405161024b9190612062565b60405180910390f35b61025c610b12565b604051610269919061208c565b60405180910390f35b61028c60048036038101906102879190611efb565b610b38565b005b610296610bf8565b6040516102a3919061202c565b60405180910390f35b6102b4610c0b565b005b6102d060048036038101906102cb91906120a7565b610c93565b005b6102da611026565b6040516102e7919061208c565b60405180910390f35b61030a60048036038101906103059190611c56565b61104f565b604051610319939291906120f4565b60405180910390f35b61033c600480360381019061033791906120a7565b611099565b005b61035860048036038101906103539190611ce8565b611137565b005b6103626112b4565b60405161036f919061202c565b60405180910390f35b610392600480360381019061038d9190612157565b6112c7565b005b6103ae60048036038101906103a99190611efb565b611360565b005b600260015414156103f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ed906121e1565b60405180910390fd5b6002600181905550600260149054906101000a900460ff161561044e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104459061224d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e9906122b9565b60405180910390fd5b60036000828152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182016000905560028201600090555050600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061058f90612308565b9190505550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e3033846040518463ffffffff1660e01b81526004016105f393929190612332565b600060405180830381600087803b15801561060d57600080fd5b505af1158015610621573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff167f571394674ec9d9e81517060110f8f894ce912af2b2febc091bee0cdea68adf008260405161066b919061202c565b60405180910390a26001808190555050565b818160005b828290508110156107425760008383838181106106a2576106a1612369565b5b90506020020135905062015180602d6106bb9190612398565b8114806106d6575062015180605a6106d39190612398565b81145b806106ef57506201518060b46106ec9190612398565b81145b61072e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107259061243e565b60405180910390fd5b50808061073a9061245e565b915050610682565b508585858581819050848490501461078f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078690612519565b60405180910390fd5b60005b8a8a90508110156107ed576107da338c8c848181106107b4576107b3612369565b5b905060200201358b8b858181106107ce576107cd612369565b5b90506020020135611458565b80806107e59061245e565b915050610792565b5050505050505050505050565b600063150b7a0260e01b905095945050505050565b6060806000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467ffffffffffffffff81111561086d5761086c612539565b5b60405190808252806020026020018201604052801561089b5781602001602082028036833780820191505090505b5090506000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467ffffffffffffffff8111156108f9576108f8612539565b5b6040519080825280602002602001820160405280156109275781602001602082028036833780820191505090505b5090506000805b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561099b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109bf919061257d565b811015610abe578673ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610aab576003600082815260200190815260200160002060010154848381518110610a5a57610a59612369565b5b6020026020010181815250506003600082815260200190815260200160002060020154838381518110610a9057610a8f612369565b5b6020026020010181815250508180610aa79061245e565b9250505b8080610ab69061245e565b91505061092e565b50828294509450505050915091565b60046020528060005260406000206000915090505481565b6201518081565b6201518060b4610afc9190612398565b81565b600260149054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b406115c1565b73ffffffffffffffffffffffffffffffffffffffff16610b5e611026565b73ffffffffffffffffffffffffffffffffffffffff1614610bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bab906125f6565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b62015180602d610c089190612398565b81565b610c136115c1565b73ffffffffffffffffffffffffffffffffffffffff16610c31611026565b73ffffffffffffffffffffffffffffffffffffffff1614610c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7e906125f6565b60405180910390fd5b610c9160006115c9565b565b610c9b6115c1565b73ffffffffffffffffffffffffffffffffffffffff16610cb9611026565b73ffffffffffffffffffffffffffffffffffffffff1614610d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d06906125f6565b60405180910390fd5b60026001541415610d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4c906121e1565b60405180910390fd5b6002600181905550600260149054906101000a900460ff1615610dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da49061224d565b60405180910390fd5b60005b8282905081101561101a576000838383818110610dd057610dcf612369565b5b90506020020135905060006003600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7b90612662565b60405180910390fd5b60036000838152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182016000905560028201600090555050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610f2190612308565b9190505550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e3083856040518463ffffffff1660e01b8152600401610f8593929190612332565b600060405180830381600087803b158015610f9f57600080fd5b505af1158015610fb3573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff167f571394674ec9d9e81517060110f8f894ce912af2b2febc091bee0cdea68adf0083604051610ffd919061202c565b60405180910390a2505080806110129061245e565b915050610db0565b50600180819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60036020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154905083565b600260015414156110df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d6906121e1565b60405180910390fd5b600260018190555060005b8282905081101561112b576111183384848481811061110c5761110b612369565b5b9050602002013561168d565b80806111239061245e565b9150506110ea565b50600180819055505050565b818160005b828290508110156111fc57600083838381811061115c5761115b612369565b5b90506020020135905062015180602d6111759190612398565b811480611190575062015180605a61118d9190612398565b81145b806111a957506201518060b46111a69190612398565b81145b6111e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111df9061243e565b60405180910390fd5b5080806111f49061245e565b91505061113c565b5085858585818190508484905014611249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124090612519565b60405180910390fd5b60005b8a8a90508110156112a757611294338c8c8481811061126e5761126d612369565b5b905060200201358b8b8581811061128857611287612369565b5b905060200201356118fa565b808061129f9061245e565b91505061124c565b5050505050505050505050565b62015180605a6112c49190612398565b81565b6112cf6115c1565b73ffffffffffffffffffffffffffffffffffffffff166112ed611026565b73ffffffffffffffffffffffffffffffffffffffff1614611343576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133a906125f6565b60405180910390fd5b80600260146101000a81548160ff02191690831515021790555050565b6113686115c1565b73ffffffffffffffffffffffffffffffffffffffff16611386611026565b73ffffffffffffffffffffffffffffffffffffffff16146113dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d3906125f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561144c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611443906126f4565b60405180910390fd5b611455816115c9565b50565b60036000838152602001908152602001600020600201544210156114b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a890612760565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c906122b9565b60405180910390fd5b600081426115639190612780565b90508060036000858152602001908152602001600020600201819055507f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee908484846040516115b3939291906120f4565b60405180910390a150505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60036000828152602001908152602001600020600201544210156116e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dd90612760565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461178a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611781906122b9565b60405180910390fd5b60036000828152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182016000905560028201600090555050600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061182790612308565b9190505550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e3084846040518463ffffffff1660e01b815260040161188b93929190612332565b600060405180830381600087803b1580156118a557600080fd5b505af11580156118b9573d6000803e3d6000fd5b505050507f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f7582826040516118ee9291906127d6565b60405180910390a15050565b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff1660e01b815260040161196c919061202c565b602060405180830381865afa158015611989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ad9190612814565b73ffffffffffffffffffffffffffffffffffffffff1614611a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fa9061288d565b60405180910390fd5b60008142611a119190612780565b905060405180606001604052808573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001828152506003600085815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201559050506001600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b019190612780565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e8530866040518463ffffffff1660e01b8152600401611ba393929190612332565b600060405180830381600087803b158015611bbd57600080fd5b505af1158015611bd1573d6000803e3d6000fd5b505050507f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee90848484604051611c08939291906120f4565b60405180910390a150505050565b600080fd5b600080fd5b6000819050919050565b611c3381611c20565b8114611c3e57600080fd5b50565b600081359050611c5081611c2a565b92915050565b600060208284031215611c6c57611c6b611c16565b5b6000611c7a84828501611c41565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611ca857611ca7611c83565b5b8235905067ffffffffffffffff811115611cc557611cc4611c88565b5b602083019150836020820283011115611ce157611ce0611c8d565b5b9250929050565b60008060008060408587031215611d0257611d01611c16565b5b600085013567ffffffffffffffff811115611d2057611d1f611c1b565b5b611d2c87828801611c92565b9450945050602085013567ffffffffffffffff811115611d4f57611d4e611c1b565b5b611d5b87828801611c92565b925092505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d9482611d69565b9050919050565b611da481611d89565b8114611daf57600080fd5b50565b600081359050611dc181611d9b565b92915050565b60008083601f840112611ddd57611ddc611c83565b5b8235905067ffffffffffffffff811115611dfa57611df9611c88565b5b602083019150836001820283011115611e1657611e15611c8d565b5b9250929050565b600080600080600060808688031215611e3957611e38611c16565b5b6000611e4788828901611db2565b9550506020611e5888828901611db2565b9450506040611e6988828901611c41565b935050606086013567ffffffffffffffff811115611e8a57611e89611c1b565b5b611e9688828901611dc7565b92509250509295509295909350565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611eda81611ea5565b82525050565b6000602082019050611ef56000830184611ed1565b92915050565b600060208284031215611f1157611f10611c16565b5b6000611f1f84828501611db2565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611f5d81611c20565b82525050565b6000611f6f8383611f54565b60208301905092915050565b6000602082019050919050565b6000611f9382611f28565b611f9d8185611f33565b9350611fa883611f44565b8060005b83811015611fd9578151611fc08882611f63565b9750611fcb83611f7b565b925050600181019050611fac565b5085935050505092915050565b600060408201905081810360008301526120008185611f88565b905081810360208301526120148184611f88565b90509392505050565b61202681611c20565b82525050565b6000602082019050612041600083018461201d565b92915050565b60008115159050919050565b61205c81612047565b82525050565b60006020820190506120776000830184612053565b92915050565b61208681611d89565b82525050565b60006020820190506120a1600083018461207d565b92915050565b600080602083850312156120be576120bd611c16565b5b600083013567ffffffffffffffff8111156120dc576120db611c1b565b5b6120e885828601611c92565b92509250509250929050565b6000606082019050612109600083018661207d565b612116602083018561201d565b612123604083018461201d565b949350505050565b61213481612047565b811461213f57600080fd5b50565b6000813590506121518161212b565b92915050565b60006020828403121561216d5761216c611c16565b5b600061217b84828501612142565b91505092915050565b600082825260208201905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b60006121cb601f83612184565b91506121d682612195565b602082019050919050565b600060208201905081810360008301526121fa816121be565b9050919050565b7f4e6f20656d657267656e637920756e7374616b652e0000000000000000000000600082015250565b6000612237601583612184565b915061224282612201565b602082019050919050565b600060208201905081810360008301526122668161222a565b9050919050565b7f546f6b656e20646f6573206e6f742062656c6f6e6720746f20796f752e000000600082015250565b60006122a3601d83612184565b91506122ae8261226d565b602082019050919050565b600060208201905081810360008301526122d281612296565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061231382611c20565b91506000821415612327576123266122d9565b5b600182039050919050565b6000606082019050612347600083018661207d565b612354602083018561207d565b612361604083018461201d565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006123a382611c20565b91506123ae83611c20565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156123e7576123e66122d9565b5b828202905092915050565b7f496e76616c6964207374616b696e672074696d656672616d65732e0000000000600082015250565b6000612428601b83612184565b9150612433826123f2565b602082019050919050565b600060208201905081810360008301526124578161241b565b9050919050565b600061246982611c20565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561249c5761249b6122d9565b5b600182019050919050565b7f546f6b656e2049447320616e642074696d656672616d6573206d75737420686160008201527f7665207468652073616d65206c656e6774682e00000000000000000000000000602082015250565b6000612503603383612184565b915061250e826124a7565b604082019050919050565b60006020820190508181036000830152612532816124f6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061257781611c2a565b92915050565b60006020828403121561259357612592611c16565b5b60006125a184828501612568565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006125e0602083612184565b91506125eb826125aa565b602082019050919050565b6000602082019050818103600083015261260f816125d3565b9050919050565b7f4e656564206f776e6572206578697374732e0000000000000000000000000000600082015250565b600061264c601283612184565b915061265782612616565b602082019050919050565b6000602082019050818103600083015261267b8161263f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006126de602683612184565b91506126e982612682565b604082019050919050565b6000602082019050818103600083015261270d816126d1565b9050919050565b7f4e4654206973206c6f636b65642e000000000000000000000000000000000000600082015250565b600061274a600e83612184565b915061275582612714565b602082019050919050565b600060208201905081810360008301526127798161273d565b9050919050565b600061278b82611c20565b915061279683611c20565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127cb576127ca6122d9565b5b828201905092915050565b60006040820190506127eb600083018561207d565b6127f8602083018461201d565b9392505050565b60008151905061280e81611d9b565b92915050565b60006020828403121561282a57612829611c16565b5b6000612838848285016127ff565b91505092915050565b7f596f75206d757374206f776e20746865204e46542e0000000000000000000000600082015250565b6000612877601583612184565b915061288282612841565b602082019050919050565b600060208201905081810360008301526128a68161286a565b905091905056fea2646970667358221220181ca2f934b33e430edca1026241c58a8a032d01f0ad4d6249f66009d473f4c864736f6c634300080c0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.