Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,233 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Term Unstake | 21242028 | 7 days ago | IN | 0 ETH | 0.00155418 | ||||
Term Unstake | 20430179 | 121 days ago | IN | 0 ETH | 0.00065118 | ||||
Temp Unstake | 19986670 | 183 days ago | IN | 0 ETH | 0.0011227 | ||||
Temp Stake | 19936191 | 190 days ago | IN | 0 ETH | 0.00082643 | ||||
Temp Stake | 19936189 | 190 days ago | IN | 0 ETH | 0.00076917 | ||||
Temp Stake | 19936189 | 190 days ago | IN | 0 ETH | 0.00083251 | ||||
Temp Stake | 19936179 | 190 days ago | IN | 0 ETH | 0.00096661 | ||||
Temp Stake | 19867362 | 199 days ago | IN | 0 ETH | 0.00111816 | ||||
Term Stake | 19746438 | 216 days ago | IN | 0 ETH | 0.00115813 | ||||
Term Stake | 19746433 | 216 days ago | IN | 0 ETH | 0.00119519 | ||||
Term Stake | 19746412 | 216 days ago | IN | 0 ETH | 0.00117072 | ||||
Term Stake | 19746356 | 216 days ago | IN | 0 ETH | 0.0002904 | ||||
Term Stake | 19746353 | 216 days ago | IN | 0 ETH | 0.00114102 | ||||
Term Stake | 19705114 | 222 days ago | IN | 0 ETH | 0.0012472 | ||||
Term Stake | 19704936 | 222 days ago | IN | 0 ETH | 0.00151751 | ||||
Term Stake | 19704934 | 222 days ago | IN | 0 ETH | 0.00147542 | ||||
Term Stake | 19704914 | 222 days ago | IN | 0 ETH | 0.00157715 | ||||
Term Stake | 19704903 | 222 days ago | IN | 0 ETH | 0.00188737 | ||||
Term Stake | 19704899 | 222 days ago | IN | 0 ETH | 0.00189668 | ||||
Term Stake | 19704885 | 222 days ago | IN | 0 ETH | 0.00187649 | ||||
Term Stake | 19704871 | 222 days ago | IN | 0 ETH | 0.00168156 | ||||
Term Stake | 19704870 | 222 days ago | IN | 0 ETH | 0.00178217 | ||||
Term Stake | 19704863 | 222 days ago | IN | 0 ETH | 0.00174877 | ||||
Term Stake | 19704860 | 222 days ago | IN | 0 ETH | 0.00161744 | ||||
Term Stake | 19704857 | 222 days ago | IN | 0 ETH | 0.0016126 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Staking
Compiler Version
v0.8.24+commit.e11b9ed9
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.0; import "./IERC721.sol"; import "./Ownable.sol"; contract Staking is Ownable { IERC721 public nftContract; bool public openStake; uint256 public startTime; uint256 public finishTime; mapping(uint256 => address) public termStaked; struct StakeData { address staker; uint64 stakeTime; } uint32 public minTempStakeTime; mapping(uint256 => StakeData) public tempStaked; event TermStaked(address indexed nftContract, address indexed staker, uint256 indexed tokenId); event TermUnstaked(address indexed nftContract, address indexed staker, uint256 indexed tokenId); event TempStaked(address indexed nftContract, address indexed staker, uint256 indexed tokenId); event TempUnstaked(address indexed nftContract, address indexed staker, uint256 indexed tokenId); constructor() { openStake = true; minTempStakeTime = 259200; } function setOpenStake(bool open) public onlyOwner { openStake = open; } function setNftContract(address nc) public onlyOwner { nftContract = IERC721(nc); } function setTermTime(uint256 start, uint256 finish) public onlyOwner { startTime = start; finishTime = finish; } modifier isOpenStake() { require(openStake, "TermStaking: stake is not open"); _; } function termStake(uint256 tokenId) public isOpenStake { require(block.timestamp < startTime, "TermStaking: Not within the scheduled time period"); nftContract.transferFrom(msg.sender, address(this), tokenId); termStaked[tokenId] = msg.sender; emit TermStaked(address(nftContract), msg.sender, tokenId); } function termBatStake(uint256 [] memory tokenIds) public isOpenStake { require(block.timestamp < startTime, "TermStaking: Not within the scheduled time period"); for (uint256 i = 0; i < tokenIds.length; i ++) { uint256 tokenId = tokenIds[i]; nftContract.transferFrom(msg.sender, address(this), tokenId); termStaked[tokenId] = msg.sender; emit TermStaked(address(nftContract), msg.sender, tokenId); } } function termUnstake(uint256 [] memory tokenIds) public isOpenStake { require(block.timestamp >= finishTime, "TermStaking: The scheduled time period has not ended yet"); for (uint256 i = 0; i < tokenIds.length; i ++) { uint256 tokenId = tokenIds[i]; require(termStaked[tokenId] == msg.sender, "TermStaking: You do not stake this NFT"); delete termStaked[tokenId]; nftContract.transferFrom(address(this), msg.sender, tokenId); emit TermUnstaked(address(nftContract), msg.sender, tokenId); } } function getTermStake(uint256 tokenId) public view returns (address) { return termStaked[tokenId]; } function setMinTempStakeTime(uint32 minTime) public onlyOwner { minTempStakeTime = minTime; } function tempStake(uint256 tokenId) public isOpenStake { nftContract.transferFrom(msg.sender, address(this), tokenId); tempStaked[tokenId].staker = msg.sender; tempStaked[tokenId].stakeTime = uint64(block.timestamp); emit TempStaked(address(nftContract), msg.sender, tokenId); } function tempBatStake(uint256 [] memory tokenIds) public isOpenStake { for (uint256 i = 0; i < tokenIds.length; i ++) { uint256 tokenId = tokenIds[i]; nftContract.transferFrom(msg.sender, address(this), tokenId); tempStaked[tokenId].staker = msg.sender; tempStaked[tokenId].stakeTime = uint64(block.timestamp); emit TempStaked(address(nftContract), msg.sender, tokenId); } } function tempUnstake(uint256 [] memory tokenIds) public isOpenStake { for (uint256 i = 0; i < tokenIds.length; i ++) { uint256 tokenId = tokenIds[i]; require(tempStaked[tokenId].staker == msg.sender, "TempStaking: You do not stake this NFT"); require((tempStaked[tokenId].stakeTime + uint64(minTempStakeTime)) < uint64(block.timestamp), "TempStaking: The staking time has not yet arrived"); delete tempStaked[tokenId]; nftContract.transferFrom(address(this), msg.sender, tokenId); emit TempUnstaked(address(nftContract), msg.sender, tokenId); } } function getTempStake(uint256 tokenId) public view returns (address, uint64) { return (tempStaked[tokenId].staker, tempStaked[tokenId].stakeTime); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.0 (access/Ownable.sol) pragma solidity ^0.8.0; import "./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.0 (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; import "./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: GPL-3.0 pragma solidity >=0.7.0 <0.9.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; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.0 (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); }
{ "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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"nftContract","type":"address"},{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"TempStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"nftContract","type":"address"},{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"TempUnstaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"nftContract","type":"address"},{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"TermStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"nftContract","type":"address"},{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"TermUnstaked","type":"event"},{"inputs":[],"name":"finishTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getTempStake","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getTermStake","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTempStakeTime","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftContract","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openStake","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"uint32","name":"minTime","type":"uint32"}],"name":"setMinTempStakeTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"nc","type":"address"}],"name":"setNftContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"open","type":"bool"}],"name":"setOpenStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"finish","type":"uint256"}],"name":"setTermTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"tempBatStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tempStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tempStaked","outputs":[{"internalType":"address","name":"staker","type":"address"},{"internalType":"uint64","name":"stakeTime","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"tempUnstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"termBatStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"termStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"termStaked","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"termUnstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561000f575f80fd5b5061002c61002161006e60201b60201c565b61007560201b60201c565b60018060146101000a81548160ff0219169083151502179055506203f48060055f6101000a81548163ffffffff021916908363ffffffff160217905550610136565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61225b80620001445f395ff3fe608060405234801561000f575f80fd5b5060043610610140575f3560e01c80639448906b116100b6578063cca4beff1161007a578063cca4beff1461034c578063d56d229d14610368578063f2fde38b14610386578063f3eb1f8f146103a2578063f718603d146103be578063f889cd06146103da57610140565b80639448906b146102ac57806398adb875146102dc578063b23a9081146102f8578063bda1decf14610314578063c6f197f21461033057610140565b80635958611e116101085780635958611e146101fa578063715018a614610218578063736e325f1461022257806378e979251461024057806389a05a741461025e5780638da5cb5b1461028e57610140565b8063099c809214610144578063398b71101461016057806346fae8f91461017c57806352f5ad77146101ad57806353d6d759146101c9575b5f80fd5b61015e600480360381019061015991906119d1565b6103f8565b005b61017a60048036038101906101759190611a18565b61071b565b005b61019660048036038101906101919190611a18565b6108ff565b6040516101a4929190611aa4565b60405180910390f35b6101c760048036038101906101c29190611af5565b610965565b005b6101e360048036038101906101de9190611a18565b610a24565b6040516101f1929190611aa4565b60405180910390f35b610202610a76565b60405161020f9190611b2f565b60405180910390f35b610220610a7c565b005b61022a610b03565b6040516102379190611b66565b60405180910390f35b610248610b18565b6040516102559190611b2f565b60405180910390f35b61027860048036038101906102739190611a18565b610b1e565b6040516102859190611b7f565b60405180910390f35b610296610b57565b6040516102a39190611b7f565b60405180910390f35b6102c660048036038101906102c19190611a18565b610b7e565b6040516102d39190611b7f565b60405180910390f35b6102f660048036038101906102f19190611a18565b610bae565b005b610312600480360381019061030d9190611b98565b610d9a565b005b61032e600480360381019061032991906119d1565b610e28565b005b61034a60048036038101906103459190611c0b565b611044565b005b610366600480360381019061036191906119d1565b6110dd565b005b610370611384565b60405161037d9190611c91565b60405180910390f35b6103a0600480360381019061039b9190611af5565b6113a9565b005b6103bc60048036038101906103b791906119d1565b61149f565b005b6103d860048036038101906103d39190611cd4565b6116c3565b005b6103e2611762565b6040516103ef9190611d0e565b60405180910390f35b600160149054906101000a900460ff16610447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043e90611d81565b60405180910390fd5b5f5b8151811015610717575f82828151811061046657610465611d9f565b5b602002602001015190503373ffffffffffffffffffffffffffffffffffffffff1660065f8381526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050790611e3c565b60405180910390fd5b4267ffffffffffffffff1660055f9054906101000a900463ffffffff1663ffffffff1660065f8481526020019081526020015f205f0160149054906101000a900467ffffffffffffffff166105659190611e87565b67ffffffffffffffff16106105af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a690611f32565b60405180910390fd5b60065f8281526020019081526020015f205f8082015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555f820160146101000a81549067ffffffffffffffff0219169055505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3033846040518463ffffffff1660e01b815260040161066093929190611f50565b5f604051808303815f87803b158015610677575f80fd5b505af1158015610689573d5f803e3d5ffd5b50505050803373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5aecbfc54ed18f984835b112509f22e7eeb0cd8358ce68e8b36f96f681b157a660405160405180910390a4508080600101915050610449565b5050565b600160149054906101000a900460ff1661076a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076190611d81565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016107c893929190611f50565b5f604051808303815f87803b1580156107df575f80fd5b505af11580156107f1573d5f803e3d5ffd5b505050503360065f8381526020019081526020015f205f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260065f8381526020019081526020015f205f0160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550803373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd5b3e2bc940548a5f220b92216302b0690da2c3fa985af96038dae098613add260405160405180910390a450565b5f8060065f8481526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660065f8581526020019081526020015f205f0160149054906101000a900467ffffffffffffffff1691509150915091565b61096d611775565b73ffffffffffffffffffffffffffffffffffffffff1661098b610b57565b73ffffffffffffffffffffffffffffffffffffffff16146109e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d890611fcf565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6006602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690805f0160149054906101000a900467ffffffffffffffff16905082565b60035481565b610a84611775565b73ffffffffffffffffffffffffffffffffffffffff16610aa2610b57565b73ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90611fcf565b60405180910390fd5b610b015f61177c565b565b60055f9054906101000a900463ffffffff1681565b60025481565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6004602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160149054906101000a900460ff16610bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf490611d81565b60405180910390fd5b6002544210610c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c389061205d565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610c9f93929190611f50565b5f604051808303815f87803b158015610cb6575f80fd5b505af1158015610cc8573d5f803e3d5ffd5b505050503360045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550803373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4b689cc02cd2817511cde97f973903bac2e43f1b3ecb2be153d3a89e8367ce5460405160405180910390a450565b610da2611775565b73ffffffffffffffffffffffffffffffffffffffff16610dc0610b57565b73ffffffffffffffffffffffffffffffffffffffff1614610e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0d90611fcf565b60405180910390fd5b81600281905550806003819055505050565b600160149054906101000a900460ff16610e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6e90611d81565b60405180910390fd5b5f5b8151811015611040575f828281518110610e9657610e95611d9f565b5b6020026020010151905060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610efe93929190611f50565b5f604051808303815f87803b158015610f15575f80fd5b505af1158015610f27573d5f803e3d5ffd5b505050503360065f8381526020019081526020015f205f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260065f8381526020019081526020015f205f0160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550803373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd5b3e2bc940548a5f220b92216302b0690da2c3fa985af96038dae098613add260405160405180910390a4508080600101915050610e79565b5050565b61104c611775565b73ffffffffffffffffffffffffffffffffffffffff1661106a610b57565b73ffffffffffffffffffffffffffffffffffffffff16146110c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b790611fcf565b60405180910390fd5b80600160146101000a81548160ff02191690831515021790555050565b600160149054906101000a900460ff1661112c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112390611d81565b60405180910390fd5b600354421015611171576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611168906120eb565b60405180910390fd5b5f5b8151811015611380575f8282815181106111905761118f611d9f565b5b602002602001015190503373ffffffffffffffffffffffffffffffffffffffff1660045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f90612179565b60405180910390fd5b60045f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3033846040518463ffffffff1660e01b81526004016112c993929190611f50565b5f604051808303815f87803b1580156112e0575f80fd5b505af11580156112f2573d5f803e3d5ffd5b50505050803373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0cba68df61771ec5e775f34f01b6330881670536b78923336f9ba29bf18a2ec460405160405180910390a4508080600101915050611173565b5050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113b1611775565b73ffffffffffffffffffffffffffffffffffffffff166113cf610b57565b73ffffffffffffffffffffffffffffffffffffffff1614611425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141c90611fcf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148a90612207565b60405180910390fd5b61149c8161177c565b50565b600160149054906101000a900460ff166114ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e590611d81565b60405180910390fd5b6002544210611532576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115299061205d565b60405180910390fd5b5f5b81518110156116bf575f82828151811061155157611550611d9f565b5b6020026020010151905060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016115b993929190611f50565b5f604051808303815f87803b1580156115d0575f80fd5b505af11580156115e2573d5f803e3d5ffd5b505050503360045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550803373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4b689cc02cd2817511cde97f973903bac2e43f1b3ecb2be153d3a89e8367ce5460405160405180910390a4508080600101915050611534565b5050565b6116cb611775565b73ffffffffffffffffffffffffffffffffffffffff166116e9610b57565b73ffffffffffffffffffffffffffffffffffffffff161461173f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173690611fcf565b60405180910390fd5b8060055f6101000a81548163ffffffff021916908363ffffffff16021790555050565b600160149054906101000a900460ff1681565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61189882611852565b810181811067ffffffffffffffff821117156118b7576118b6611862565b5b80604052505050565b5f6118c961183d565b90506118d5828261188f565b919050565b5f67ffffffffffffffff8211156118f4576118f3611862565b5b602082029050602081019050919050565b5f80fd5b5f819050919050565b61191b81611909565b8114611925575f80fd5b50565b5f8135905061193681611912565b92915050565b5f61194e611949846118da565b6118c0565b9050808382526020820190506020840283018581111561197157611970611905565b5b835b8181101561199a57806119868882611928565b845260208401935050602081019050611973565b5050509392505050565b5f82601f8301126119b8576119b761184e565b5b81356119c884826020860161193c565b91505092915050565b5f602082840312156119e6576119e5611846565b5b5f82013567ffffffffffffffff811115611a0357611a0261184a565b5b611a0f848285016119a4565b91505092915050565b5f60208284031215611a2d57611a2c611846565b5b5f611a3a84828501611928565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611a6c82611a43565b9050919050565b611a7c81611a62565b82525050565b5f67ffffffffffffffff82169050919050565b611a9e81611a82565b82525050565b5f604082019050611ab75f830185611a73565b611ac46020830184611a95565b9392505050565b611ad481611a62565b8114611ade575f80fd5b50565b5f81359050611aef81611acb565b92915050565b5f60208284031215611b0a57611b09611846565b5b5f611b1784828501611ae1565b91505092915050565b611b2981611909565b82525050565b5f602082019050611b425f830184611b20565b92915050565b5f63ffffffff82169050919050565b611b6081611b48565b82525050565b5f602082019050611b795f830184611b57565b92915050565b5f602082019050611b925f830184611a73565b92915050565b5f8060408385031215611bae57611bad611846565b5b5f611bbb85828601611928565b9250506020611bcc85828601611928565b9150509250929050565b5f8115159050919050565b611bea81611bd6565b8114611bf4575f80fd5b50565b5f81359050611c0581611be1565b92915050565b5f60208284031215611c2057611c1f611846565b5b5f611c2d84828501611bf7565b91505092915050565b5f819050919050565b5f611c59611c54611c4f84611a43565b611c36565b611a43565b9050919050565b5f611c6a82611c3f565b9050919050565b5f611c7b82611c60565b9050919050565b611c8b81611c71565b82525050565b5f602082019050611ca45f830184611c82565b92915050565b611cb381611b48565b8114611cbd575f80fd5b50565b5f81359050611cce81611caa565b92915050565b5f60208284031215611ce957611ce8611846565b5b5f611cf684828501611cc0565b91505092915050565b611d0881611bd6565b82525050565b5f602082019050611d215f830184611cff565b92915050565b5f82825260208201905092915050565b7f5465726d5374616b696e673a207374616b65206973206e6f74206f70656e00005f82015250565b5f611d6b601e83611d27565b9150611d7682611d37565b602082019050919050565b5f6020820190508181035f830152611d9881611d5f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f54656d705374616b696e673a20596f7520646f206e6f74207374616b652074685f8201527f6973204e46540000000000000000000000000000000000000000000000000000602082015250565b5f611e26602683611d27565b9150611e3182611dcc565b604082019050919050565b5f6020820190508181035f830152611e5381611e1a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611e9182611a82565b9150611e9c83611a82565b9250828201905067ffffffffffffffff811115611ebc57611ebb611e5a565b5b92915050565b7f54656d705374616b696e673a20546865207374616b696e672074696d652068615f8201527f73206e6f74207965742061727269766564000000000000000000000000000000602082015250565b5f611f1c603183611d27565b9150611f2782611ec2565b604082019050919050565b5f6020820190508181035f830152611f4981611f10565b9050919050565b5f606082019050611f635f830186611a73565b611f706020830185611a73565b611f7d6040830184611b20565b949350505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611fb9602083611d27565b9150611fc482611f85565b602082019050919050565b5f6020820190508181035f830152611fe681611fad565b9050919050565b7f5465726d5374616b696e673a204e6f742077697468696e2074686520736368655f8201527f64756c65642074696d6520706572696f64000000000000000000000000000000602082015250565b5f612047603183611d27565b915061205282611fed565b604082019050919050565b5f6020820190508181035f8301526120748161203b565b9050919050565b7f5465726d5374616b696e673a20546865207363686564756c65642074696d65205f8201527f706572696f6420686173206e6f7420656e646564207965740000000000000000602082015250565b5f6120d5603883611d27565b91506120e08261207b565b604082019050919050565b5f6020820190508181035f830152612102816120c9565b9050919050565b7f5465726d5374616b696e673a20596f7520646f206e6f74207374616b652074685f8201527f6973204e46540000000000000000000000000000000000000000000000000000602082015250565b5f612163602683611d27565b915061216e82612109565b604082019050919050565b5f6020820190508181035f83015261219081612157565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6121f1602683611d27565b91506121fc82612197565b604082019050919050565b5f6020820190508181035f83015261221e816121e5565b905091905056fea264697066735822122078f78bfad85ee929bd04a0b342422e89f6ff79cd78f4699c572899a0350ae7dd64736f6c63430008180033
Deployed Bytecode
0x608060405234801561000f575f80fd5b5060043610610140575f3560e01c80639448906b116100b6578063cca4beff1161007a578063cca4beff1461034c578063d56d229d14610368578063f2fde38b14610386578063f3eb1f8f146103a2578063f718603d146103be578063f889cd06146103da57610140565b80639448906b146102ac57806398adb875146102dc578063b23a9081146102f8578063bda1decf14610314578063c6f197f21461033057610140565b80635958611e116101085780635958611e146101fa578063715018a614610218578063736e325f1461022257806378e979251461024057806389a05a741461025e5780638da5cb5b1461028e57610140565b8063099c809214610144578063398b71101461016057806346fae8f91461017c57806352f5ad77146101ad57806353d6d759146101c9575b5f80fd5b61015e600480360381019061015991906119d1565b6103f8565b005b61017a60048036038101906101759190611a18565b61071b565b005b61019660048036038101906101919190611a18565b6108ff565b6040516101a4929190611aa4565b60405180910390f35b6101c760048036038101906101c29190611af5565b610965565b005b6101e360048036038101906101de9190611a18565b610a24565b6040516101f1929190611aa4565b60405180910390f35b610202610a76565b60405161020f9190611b2f565b60405180910390f35b610220610a7c565b005b61022a610b03565b6040516102379190611b66565b60405180910390f35b610248610b18565b6040516102559190611b2f565b60405180910390f35b61027860048036038101906102739190611a18565b610b1e565b6040516102859190611b7f565b60405180910390f35b610296610b57565b6040516102a39190611b7f565b60405180910390f35b6102c660048036038101906102c19190611a18565b610b7e565b6040516102d39190611b7f565b60405180910390f35b6102f660048036038101906102f19190611a18565b610bae565b005b610312600480360381019061030d9190611b98565b610d9a565b005b61032e600480360381019061032991906119d1565b610e28565b005b61034a60048036038101906103459190611c0b565b611044565b005b610366600480360381019061036191906119d1565b6110dd565b005b610370611384565b60405161037d9190611c91565b60405180910390f35b6103a0600480360381019061039b9190611af5565b6113a9565b005b6103bc60048036038101906103b791906119d1565b61149f565b005b6103d860048036038101906103d39190611cd4565b6116c3565b005b6103e2611762565b6040516103ef9190611d0e565b60405180910390f35b600160149054906101000a900460ff16610447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043e90611d81565b60405180910390fd5b5f5b8151811015610717575f82828151811061046657610465611d9f565b5b602002602001015190503373ffffffffffffffffffffffffffffffffffffffff1660065f8381526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050790611e3c565b60405180910390fd5b4267ffffffffffffffff1660055f9054906101000a900463ffffffff1663ffffffff1660065f8481526020019081526020015f205f0160149054906101000a900467ffffffffffffffff166105659190611e87565b67ffffffffffffffff16106105af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a690611f32565b60405180910390fd5b60065f8281526020019081526020015f205f8082015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555f820160146101000a81549067ffffffffffffffff0219169055505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3033846040518463ffffffff1660e01b815260040161066093929190611f50565b5f604051808303815f87803b158015610677575f80fd5b505af1158015610689573d5f803e3d5ffd5b50505050803373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5aecbfc54ed18f984835b112509f22e7eeb0cd8358ce68e8b36f96f681b157a660405160405180910390a4508080600101915050610449565b5050565b600160149054906101000a900460ff1661076a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076190611d81565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016107c893929190611f50565b5f604051808303815f87803b1580156107df575f80fd5b505af11580156107f1573d5f803e3d5ffd5b505050503360065f8381526020019081526020015f205f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260065f8381526020019081526020015f205f0160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550803373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd5b3e2bc940548a5f220b92216302b0690da2c3fa985af96038dae098613add260405160405180910390a450565b5f8060065f8481526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660065f8581526020019081526020015f205f0160149054906101000a900467ffffffffffffffff1691509150915091565b61096d611775565b73ffffffffffffffffffffffffffffffffffffffff1661098b610b57565b73ffffffffffffffffffffffffffffffffffffffff16146109e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d890611fcf565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6006602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690805f0160149054906101000a900467ffffffffffffffff16905082565b60035481565b610a84611775565b73ffffffffffffffffffffffffffffffffffffffff16610aa2610b57565b73ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90611fcf565b60405180910390fd5b610b015f61177c565b565b60055f9054906101000a900463ffffffff1681565b60025481565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6004602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160149054906101000a900460ff16610bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf490611d81565b60405180910390fd5b6002544210610c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c389061205d565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610c9f93929190611f50565b5f604051808303815f87803b158015610cb6575f80fd5b505af1158015610cc8573d5f803e3d5ffd5b505050503360045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550803373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4b689cc02cd2817511cde97f973903bac2e43f1b3ecb2be153d3a89e8367ce5460405160405180910390a450565b610da2611775565b73ffffffffffffffffffffffffffffffffffffffff16610dc0610b57565b73ffffffffffffffffffffffffffffffffffffffff1614610e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0d90611fcf565b60405180910390fd5b81600281905550806003819055505050565b600160149054906101000a900460ff16610e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6e90611d81565b60405180910390fd5b5f5b8151811015611040575f828281518110610e9657610e95611d9f565b5b6020026020010151905060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610efe93929190611f50565b5f604051808303815f87803b158015610f15575f80fd5b505af1158015610f27573d5f803e3d5ffd5b505050503360065f8381526020019081526020015f205f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260065f8381526020019081526020015f205f0160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550803373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd5b3e2bc940548a5f220b92216302b0690da2c3fa985af96038dae098613add260405160405180910390a4508080600101915050610e79565b5050565b61104c611775565b73ffffffffffffffffffffffffffffffffffffffff1661106a610b57565b73ffffffffffffffffffffffffffffffffffffffff16146110c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b790611fcf565b60405180910390fd5b80600160146101000a81548160ff02191690831515021790555050565b600160149054906101000a900460ff1661112c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112390611d81565b60405180910390fd5b600354421015611171576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611168906120eb565b60405180910390fd5b5f5b8151811015611380575f8282815181106111905761118f611d9f565b5b602002602001015190503373ffffffffffffffffffffffffffffffffffffffff1660045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f90612179565b60405180910390fd5b60045f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3033846040518463ffffffff1660e01b81526004016112c993929190611f50565b5f604051808303815f87803b1580156112e0575f80fd5b505af11580156112f2573d5f803e3d5ffd5b50505050803373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0cba68df61771ec5e775f34f01b6330881670536b78923336f9ba29bf18a2ec460405160405180910390a4508080600101915050611173565b5050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113b1611775565b73ffffffffffffffffffffffffffffffffffffffff166113cf610b57565b73ffffffffffffffffffffffffffffffffffffffff1614611425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141c90611fcf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148a90612207565b60405180910390fd5b61149c8161177c565b50565b600160149054906101000a900460ff166114ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e590611d81565b60405180910390fd5b6002544210611532576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115299061205d565b60405180910390fd5b5f5b81518110156116bf575f82828151811061155157611550611d9f565b5b6020026020010151905060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016115b993929190611f50565b5f604051808303815f87803b1580156115d0575f80fd5b505af11580156115e2573d5f803e3d5ffd5b505050503360045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550803373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4b689cc02cd2817511cde97f973903bac2e43f1b3ecb2be153d3a89e8367ce5460405160405180910390a4508080600101915050611534565b5050565b6116cb611775565b73ffffffffffffffffffffffffffffffffffffffff166116e9610b57565b73ffffffffffffffffffffffffffffffffffffffff161461173f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173690611fcf565b60405180910390fd5b8060055f6101000a81548163ffffffff021916908363ffffffff16021790555050565b600160149054906101000a900460ff1681565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61189882611852565b810181811067ffffffffffffffff821117156118b7576118b6611862565b5b80604052505050565b5f6118c961183d565b90506118d5828261188f565b919050565b5f67ffffffffffffffff8211156118f4576118f3611862565b5b602082029050602081019050919050565b5f80fd5b5f819050919050565b61191b81611909565b8114611925575f80fd5b50565b5f8135905061193681611912565b92915050565b5f61194e611949846118da565b6118c0565b9050808382526020820190506020840283018581111561197157611970611905565b5b835b8181101561199a57806119868882611928565b845260208401935050602081019050611973565b5050509392505050565b5f82601f8301126119b8576119b761184e565b5b81356119c884826020860161193c565b91505092915050565b5f602082840312156119e6576119e5611846565b5b5f82013567ffffffffffffffff811115611a0357611a0261184a565b5b611a0f848285016119a4565b91505092915050565b5f60208284031215611a2d57611a2c611846565b5b5f611a3a84828501611928565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611a6c82611a43565b9050919050565b611a7c81611a62565b82525050565b5f67ffffffffffffffff82169050919050565b611a9e81611a82565b82525050565b5f604082019050611ab75f830185611a73565b611ac46020830184611a95565b9392505050565b611ad481611a62565b8114611ade575f80fd5b50565b5f81359050611aef81611acb565b92915050565b5f60208284031215611b0a57611b09611846565b5b5f611b1784828501611ae1565b91505092915050565b611b2981611909565b82525050565b5f602082019050611b425f830184611b20565b92915050565b5f63ffffffff82169050919050565b611b6081611b48565b82525050565b5f602082019050611b795f830184611b57565b92915050565b5f602082019050611b925f830184611a73565b92915050565b5f8060408385031215611bae57611bad611846565b5b5f611bbb85828601611928565b9250506020611bcc85828601611928565b9150509250929050565b5f8115159050919050565b611bea81611bd6565b8114611bf4575f80fd5b50565b5f81359050611c0581611be1565b92915050565b5f60208284031215611c2057611c1f611846565b5b5f611c2d84828501611bf7565b91505092915050565b5f819050919050565b5f611c59611c54611c4f84611a43565b611c36565b611a43565b9050919050565b5f611c6a82611c3f565b9050919050565b5f611c7b82611c60565b9050919050565b611c8b81611c71565b82525050565b5f602082019050611ca45f830184611c82565b92915050565b611cb381611b48565b8114611cbd575f80fd5b50565b5f81359050611cce81611caa565b92915050565b5f60208284031215611ce957611ce8611846565b5b5f611cf684828501611cc0565b91505092915050565b611d0881611bd6565b82525050565b5f602082019050611d215f830184611cff565b92915050565b5f82825260208201905092915050565b7f5465726d5374616b696e673a207374616b65206973206e6f74206f70656e00005f82015250565b5f611d6b601e83611d27565b9150611d7682611d37565b602082019050919050565b5f6020820190508181035f830152611d9881611d5f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f54656d705374616b696e673a20596f7520646f206e6f74207374616b652074685f8201527f6973204e46540000000000000000000000000000000000000000000000000000602082015250565b5f611e26602683611d27565b9150611e3182611dcc565b604082019050919050565b5f6020820190508181035f830152611e5381611e1a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611e9182611a82565b9150611e9c83611a82565b9250828201905067ffffffffffffffff811115611ebc57611ebb611e5a565b5b92915050565b7f54656d705374616b696e673a20546865207374616b696e672074696d652068615f8201527f73206e6f74207965742061727269766564000000000000000000000000000000602082015250565b5f611f1c603183611d27565b9150611f2782611ec2565b604082019050919050565b5f6020820190508181035f830152611f4981611f10565b9050919050565b5f606082019050611f635f830186611a73565b611f706020830185611a73565b611f7d6040830184611b20565b949350505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611fb9602083611d27565b9150611fc482611f85565b602082019050919050565b5f6020820190508181035f830152611fe681611fad565b9050919050565b7f5465726d5374616b696e673a204e6f742077697468696e2074686520736368655f8201527f64756c65642074696d6520706572696f64000000000000000000000000000000602082015250565b5f612047603183611d27565b915061205282611fed565b604082019050919050565b5f6020820190508181035f8301526120748161203b565b9050919050565b7f5465726d5374616b696e673a20546865207363686564756c65642074696d65205f8201527f706572696f6420686173206e6f7420656e646564207965740000000000000000602082015250565b5f6120d5603883611d27565b91506120e08261207b565b604082019050919050565b5f6020820190508181035f830152612102816120c9565b9050919050565b7f5465726d5374616b696e673a20596f7520646f206e6f74207374616b652074685f8201527f6973204e46540000000000000000000000000000000000000000000000000000602082015250565b5f612163602683611d27565b915061216e82612109565b604082019050919050565b5f6020820190508181035f83015261219081612157565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6121f1602683611d27565b91506121fc82612197565b604082019050919050565b5f6020820190508181035f83015261221e816121e5565b905091905056fea264697066735822122078f78bfad85ee929bd04a0b342422e89f6ff79cd78f4699c572899a0350ae7dd64736f6c63430008180033
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.