More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 158 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Batch Unstake | 19401127 | 292 days ago | IN | 0 ETH | 0.00481047 | ||||
Batch Unstake | 19080656 | 337 days ago | IN | 0 ETH | 0.00389155 | ||||
Batch Unstake | 18790766 | 378 days ago | IN | 0 ETH | 0.00362639 | ||||
Batch Unstake | 18752974 | 383 days ago | IN | 0 ETH | 0.00893139 | ||||
Batch Unstake | 18733047 | 386 days ago | IN | 0 ETH | 0.00346432 | ||||
Batch Unstake | 18701877 | 390 days ago | IN | 0 ETH | 0.00312123 | ||||
Batch Unstake | 18664565 | 396 days ago | IN | 0 ETH | 0.00305996 | ||||
Batch Unstake | 18664564 | 396 days ago | IN | 0 ETH | 0.00298231 | ||||
Batch Unstake | 18664564 | 396 days ago | IN | 0 ETH | 0.00298231 | ||||
Batch Unstake | 18664563 | 396 days ago | IN | 0 ETH | 0.00309195 | ||||
Batch Unstake | 18664562 | 396 days ago | IN | 0 ETH | 0.00365774 | ||||
Batch Unstake | 18638438 | 399 days ago | IN | 0 ETH | 0.00174818 | ||||
Batch Unstake | 18590433 | 406 days ago | IN | 0 ETH | 0.00178235 | ||||
Batch Unstake | 18567354 | 409 days ago | IN | 0 ETH | 0.01204999 | ||||
Batch Unstake | 18546227 | 412 days ago | IN | 0 ETH | 0.00433147 | ||||
Batch Unstake | 18546074 | 412 days ago | IN | 0 ETH | 0.00259563 | ||||
Batch Unstake | 18544110 | 412 days ago | IN | 0 ETH | 0.00373057 | ||||
Batch Unstake | 18544107 | 412 days ago | IN | 0 ETH | 0.00443769 | ||||
Batch Unstake | 18526108 | 415 days ago | IN | 0 ETH | 0.00338148 | ||||
Batch Unstake | 18524322 | 415 days ago | IN | 0 ETH | 0.00401185 | ||||
Batch Unstake | 18501588 | 418 days ago | IN | 0 ETH | 0.00125248 | ||||
Batch Unstake | 18500888 | 418 days ago | IN | 0 ETH | 0.00129204 | ||||
Batch Unstake | 18463278 | 424 days ago | IN | 0 ETH | 0.00232574 | ||||
Batch Unstake | 18455179 | 425 days ago | IN | 0 ETH | 0.00096054 | ||||
Batch Stake | 18429459 | 428 days ago | IN | 0 ETH | 0.00460178 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
CreateraStaking
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./ReentrancyGuard.sol"; import "./IERC20.sol"; import "./IERC721.sol"; import "./IERC721Receiver.sol"; import "./Ownable.sol"; // _____ _____ _____ ___ _____ _____ _____ ___ // / ___| | _ \ | ____| / | |_ _| | ____| | _ \ / | // | | | |_| | | |__ / /| | | | | |__ | |_| | / /| | // | | | _ / | __| / / | | | | | __| | _ / / / | | // | |___ | | \ \ | |___ / / | | | | | |___ | | \ \ / / | | // \_____| |_| \_\ |_____| /_/ |_| |_| |_____| |_| \_\ /_/ |_| contract CreateraStaking is Ownable, ReentrancyGuard, IERC721Receiver { struct Stake { address owner; uint256 stakeAt; uint256 unstakeAt; } //NFT address address public createraAddress; // address internal constant _createraAddress = ""; // maps tokenId to stake mapping(uint256 => Stake) internal pool; /** * * @param owner ownerAddress * @param tokenId landTokenId * @param stakedAt timestamp * @param txType 1-stake 2-unstake */ event Staked( address owner, uint256 tokenId, uint256 stakedAt, uint256 txType ); /* @notice constructor for the Createra Genesis Land Staking contract. @dev sets Createra Genesis Land Address . @param nftAddress the base url of the NFT */ constructor(address createraAddress_) { require( createraAddress_ != address(0), "createraAddress can't be zero!!!" ); createraAddress = createraAddress_; } /* fallback function */ receive() external payable { payable(owner()).transfer(msg.value); } /* Recycling ERC20 */ function withdrawERC20(address erc20) public onlyOwner { uint256 amount = IERC20(erc20).balanceOf(address(this)); require(IERC20(erc20).transfer(owner(), amount)); } /** * batchStake * @param tokenIds stake tokenIds */ function batchStake(uint256[] calldata tokenIds) external nonReentrant { for (uint i = 0; i < tokenIds.length; i++) { stake(tokenIds[i]); } } /* stake */ function stake(uint256 tokenId) private { require( IERC721(createraAddress).ownerOf(tokenId) == _msgSender(), "not your token" ); uint256 stakeAt = block.timestamp; pool[tokenId].owner = _msgSender(); pool[tokenId].stakeAt = stakeAt; IERC721(createraAddress).safeTransferFrom( _msgSender(), address(this), tokenId ); emit Staked(_msgSender(), tokenId, stakeAt, 1); } /** * batchUnstake * @param tokenIds unstake tokenIds * msg.sender == owner() : manager helps token owner unstake their tokens while are on stakeing */ function batchUnstake(uint256[] calldata tokenIds) external nonReentrant { for (uint i = 0; i < tokenIds.length; i++) { unstake(tokenIds[i]); } } /* stake */ function unstake(uint256 tokenId) private { require( pool[tokenId].owner == _msgSender() || _msgSender() == owner(), "not your token" ); require( pool[tokenId].stakeAt != 0 && pool[tokenId].stakeAt > pool[tokenId].unstakeAt, "token is not staking" ); uint256 unstakeAt = block.timestamp; pool[tokenId].unstakeAt = unstakeAt; IERC721(createraAddress).transferFrom( address(this), pool[tokenId].owner, tokenId ); emit Staked(pool[tokenId].owner, tokenId, unstakeAt, 2); } /** * token stakeInfo * @param tokenIds stakeTokenInfo * if stakeInfo.stakeAt > stakeInfo.unstakeAt token is on stake * if stakeInfo.stakeAt <= stakeInfo.unstakeAt token is on unstake */ function getStakeInfo( uint256[] calldata tokenIds ) public view returns (Stake[] memory stakeInfos) { stakeInfos = new Stake[](tokenIds.length); for (uint i = 0; i < tokenIds.length; i++) { stakeInfos[i] = pool[tokenIds[i]]; } } /** * @dev See {IERC721Receiver-onERC721Received}. * * Always returns `IERC721Receiver.onERC721Received.selector`. */ function onERC721Received( address, address, uint256, bytes memory ) public virtual override returns (bytes4) { return this.onERC721Received.selector; } }
// 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; } }
// 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 (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.8.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`. * * 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; /** * @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 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: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must * understand this adds an external call which potentially creates a reentrancy vulnerability. * * 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 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 the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved( uint256 tokenId ) external view returns (address operator); /** * @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); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (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 `IERC721Receiver.onERC721Received.selector`. */ function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.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 Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { 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 (last updated v4.8.0) (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() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be _NOT_ENTERED require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"createraAddress_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stakedAt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"txType","type":"uint256"}],"name":"Staked","type":"event"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"batchStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"batchUnstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createraAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"getStakeInfo","outputs":[{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"stakeAt","type":"uint256"},{"internalType":"uint256","name":"unstakeAt","type":"uint256"}],"internalType":"struct CreateraStaking.Stake[]","name":"stakeInfos","type":"tuple[]"}],"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":"nonpayable","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":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"erc20","type":"address"}],"name":"withdrawERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610e25380380610e2583398101604081905261002f9161010b565b610038336100bb565b600180556001600160a01b0381166100965760405162461bcd60e51b815260206004820181905260248201527f6372656174657261416464726573732063616e2774206265207a65726f212121604482015260640160405180910390fd5b600280546001600160a01b0319166001600160a01b039290921691909117905561013b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561011d57600080fd5b81516001600160a01b038116811461013457600080fd5b9392505050565b610cdb8061014a6000396000f3fe60806040526004361061008a5760003560e01c8063a071469711610059578063a071469714610184578063c2127793146101b1578063d2acd13d146101d1578063f2fde38b146101f1578063f4f3b2001461021157600080fd5b8063150b7a02146100d057806322afbd4914610119578063715018a6146101515780638da5cb5b1461016657600080fd5b366100cb57600080546040516001600160a01b03909116913480156108fc02929091818181858888f193505050501580156100c9573d6000803e3d6000fd5b005b600080fd5b3480156100dc57600080fd5b506100fb6100eb366004610a35565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020015b60405180910390f35b34801561012557600080fd5b50600254610139906001600160a01b031681565b6040516001600160a01b039091168152602001610110565b34801561015d57600080fd5b506100c9610231565b34801561017257600080fd5b506000546001600160a01b0316610139565b34801561019057600080fd5b506101a461019f366004610b15565b610245565b6040516101109190610b8a565b3480156101bd57600080fd5b506100c96101cc366004610b15565b610360565b3480156101dd57600080fd5b506100c96101ec366004610b15565b6103b4565b3480156101fd57600080fd5b506100c961020c366004610bec565b6103fa565b34801561021d57600080fd5b506100c961022c366004610bec565b610478565b610239610588565b61024360006105e2565b565b60608167ffffffffffffffff81111561026057610260610a1f565b6040519080825280602002602001820160405280156102be57816020015b6102ab604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b81526020019060019003908161027e5790505b50905060005b8281101561035957600360008585848181106102e2576102e2610c10565b60209081029290920135835250818101929092526040908101600020815160608101835281546001600160a01b031681526001820154938101939093526002015490820152825183908390811061033b5761033b610c10565b6020026020010181905250808061035190610c26565b9150506102c4565b5092915050565b610368610632565b60005b818110156103a65761039483838381811061038857610388610c10565b9050602002013561068b565b8061039e81610c26565b91505061036b565b506103b060018055565b5050565b6103bc610632565b60005b818110156103a6576103e88383838181106103dc576103dc610c10565b90506020020135610840565b806103f281610c26565b9150506103bf565b610402610588565b6001600160a01b03811661046c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610475816105e2565b50565b610480610588565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156104c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104eb9190610c4d565b9050816001600160a01b031663a9059cbb61050e6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af115801561055b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057f9190610c66565b6103b057600080fd5b6000546001600160a01b031633146102435760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610463565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6002600154036106845760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610463565b6002600155565b336002546040516331a9108f60e11b8152600481018490526001600160a01b039283169290911690636352211e90602401602060405180830381865afa1580156106d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fd9190610c88565b6001600160a01b0316146107445760405162461bcd60e51b815260206004820152600e60248201526d3737ba103cb7bab9103a37b5b2b760911b6044820152606401610463565b4233600083815260036020526040902080546001600160a01b0319166001600160a01b03928316178155600101829055600254166342842e0e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260448101859052606401600060405180830381600087803b1580156107cc57600080fd5b505af11580156107e0573d6000803e3d6000fd5b505050507fb4caaf29adda3eefee3ad552a8e85058589bf834c7466cae4ee58787f70589ed61080c3390565b604080516001600160a01b039092168252602082018590528101839052600160608201526080015b60405180910390a15050565b6000818152600360205260409020546001600160a01b031633148061086f57506000546001600160a01b031633145b6108ac5760405162461bcd60e51b815260206004820152600e60248201526d3737ba103cb7bab9103a37b5b2b760911b6044820152606401610463565b600081815260036020526040902060010154158015906108e2575060008181526003602052604090206002810154600190910154115b6109255760405162461bcd60e51b8152602060048201526014602482015273746f6b656e206973206e6f74207374616b696e6760601b6044820152606401610463565b6000818152600360205260409081902042600280830182905554915492516323b872dd60e01b81523060048201526001600160a01b039384166024820152604481018590529092909116906323b872dd90606401600060405180830381600087803b15801561099357600080fd5b505af11580156109a7573d6000803e3d6000fd5b5050506000838152600360209081526040918290205482516001600160a01b039091168152908101859052908101839052600260608201527fb4caaf29adda3eefee3ad552a8e85058589bf834c7466cae4ee58787f70589ed9150608001610834565b6001600160a01b038116811461047557600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610a4b57600080fd5b8435610a5681610a0a565b93506020850135610a6681610a0a565b925060408501359150606085013567ffffffffffffffff80821115610a8a57600080fd5b818701915087601f830112610a9e57600080fd5b813581811115610ab057610ab0610a1f565b604051601f8201601f19908116603f01168101908382118183101715610ad857610ad8610a1f565b816040528281528a6020848701011115610af157600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060208385031215610b2857600080fd5b823567ffffffffffffffff80821115610b4057600080fd5b818501915085601f830112610b5457600080fd5b813581811115610b6357600080fd5b8660208260051b8501011115610b7857600080fd5b60209290920196919550909350505050565b602080825282518282018190526000919060409081850190868401855b82811015610bdf57815180516001600160a01b0316855286810151878601528501518585015260609093019290850190600101610ba7565b5091979650505050505050565b600060208284031215610bfe57600080fd5b8135610c0981610a0a565b9392505050565b634e487b7160e01b600052603260045260246000fd5b600060018201610c4657634e487b7160e01b600052601160045260246000fd5b5060010190565b600060208284031215610c5f57600080fd5b5051919050565b600060208284031215610c7857600080fd5b81518015158114610c0957600080fd5b600060208284031215610c9a57600080fd5b8151610c0981610a0a56fea26469706673582212201a09ee38bd8d4716dd61df3c30e1e8bdf74f9d3b3ad0080be2a8255109f7ad8064736f6c634300081100330000000000000000000000003f3915fb8769ee456035331bc2f7fbe380f6b4d2
Deployed Bytecode
0x60806040526004361061008a5760003560e01c8063a071469711610059578063a071469714610184578063c2127793146101b1578063d2acd13d146101d1578063f2fde38b146101f1578063f4f3b2001461021157600080fd5b8063150b7a02146100d057806322afbd4914610119578063715018a6146101515780638da5cb5b1461016657600080fd5b366100cb57600080546040516001600160a01b03909116913480156108fc02929091818181858888f193505050501580156100c9573d6000803e3d6000fd5b005b600080fd5b3480156100dc57600080fd5b506100fb6100eb366004610a35565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020015b60405180910390f35b34801561012557600080fd5b50600254610139906001600160a01b031681565b6040516001600160a01b039091168152602001610110565b34801561015d57600080fd5b506100c9610231565b34801561017257600080fd5b506000546001600160a01b0316610139565b34801561019057600080fd5b506101a461019f366004610b15565b610245565b6040516101109190610b8a565b3480156101bd57600080fd5b506100c96101cc366004610b15565b610360565b3480156101dd57600080fd5b506100c96101ec366004610b15565b6103b4565b3480156101fd57600080fd5b506100c961020c366004610bec565b6103fa565b34801561021d57600080fd5b506100c961022c366004610bec565b610478565b610239610588565b61024360006105e2565b565b60608167ffffffffffffffff81111561026057610260610a1f565b6040519080825280602002602001820160405280156102be57816020015b6102ab604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b81526020019060019003908161027e5790505b50905060005b8281101561035957600360008585848181106102e2576102e2610c10565b60209081029290920135835250818101929092526040908101600020815160608101835281546001600160a01b031681526001820154938101939093526002015490820152825183908390811061033b5761033b610c10565b6020026020010181905250808061035190610c26565b9150506102c4565b5092915050565b610368610632565b60005b818110156103a65761039483838381811061038857610388610c10565b9050602002013561068b565b8061039e81610c26565b91505061036b565b506103b060018055565b5050565b6103bc610632565b60005b818110156103a6576103e88383838181106103dc576103dc610c10565b90506020020135610840565b806103f281610c26565b9150506103bf565b610402610588565b6001600160a01b03811661046c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610475816105e2565b50565b610480610588565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156104c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104eb9190610c4d565b9050816001600160a01b031663a9059cbb61050e6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af115801561055b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057f9190610c66565b6103b057600080fd5b6000546001600160a01b031633146102435760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610463565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6002600154036106845760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610463565b6002600155565b336002546040516331a9108f60e11b8152600481018490526001600160a01b039283169290911690636352211e90602401602060405180830381865afa1580156106d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fd9190610c88565b6001600160a01b0316146107445760405162461bcd60e51b815260206004820152600e60248201526d3737ba103cb7bab9103a37b5b2b760911b6044820152606401610463565b4233600083815260036020526040902080546001600160a01b0319166001600160a01b03928316178155600101829055600254166342842e0e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260448101859052606401600060405180830381600087803b1580156107cc57600080fd5b505af11580156107e0573d6000803e3d6000fd5b505050507fb4caaf29adda3eefee3ad552a8e85058589bf834c7466cae4ee58787f70589ed61080c3390565b604080516001600160a01b039092168252602082018590528101839052600160608201526080015b60405180910390a15050565b6000818152600360205260409020546001600160a01b031633148061086f57506000546001600160a01b031633145b6108ac5760405162461bcd60e51b815260206004820152600e60248201526d3737ba103cb7bab9103a37b5b2b760911b6044820152606401610463565b600081815260036020526040902060010154158015906108e2575060008181526003602052604090206002810154600190910154115b6109255760405162461bcd60e51b8152602060048201526014602482015273746f6b656e206973206e6f74207374616b696e6760601b6044820152606401610463565b6000818152600360205260409081902042600280830182905554915492516323b872dd60e01b81523060048201526001600160a01b039384166024820152604481018590529092909116906323b872dd90606401600060405180830381600087803b15801561099357600080fd5b505af11580156109a7573d6000803e3d6000fd5b5050506000838152600360209081526040918290205482516001600160a01b039091168152908101859052908101839052600260608201527fb4caaf29adda3eefee3ad552a8e85058589bf834c7466cae4ee58787f70589ed9150608001610834565b6001600160a01b038116811461047557600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610a4b57600080fd5b8435610a5681610a0a565b93506020850135610a6681610a0a565b925060408501359150606085013567ffffffffffffffff80821115610a8a57600080fd5b818701915087601f830112610a9e57600080fd5b813581811115610ab057610ab0610a1f565b604051601f8201601f19908116603f01168101908382118183101715610ad857610ad8610a1f565b816040528281528a6020848701011115610af157600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060208385031215610b2857600080fd5b823567ffffffffffffffff80821115610b4057600080fd5b818501915085601f830112610b5457600080fd5b813581811115610b6357600080fd5b8660208260051b8501011115610b7857600080fd5b60209290920196919550909350505050565b602080825282518282018190526000919060409081850190868401855b82811015610bdf57815180516001600160a01b0316855286810151878601528501518585015260609093019290850190600101610ba7565b5091979650505050505050565b600060208284031215610bfe57600080fd5b8135610c0981610a0a565b9392505050565b634e487b7160e01b600052603260045260246000fd5b600060018201610c4657634e487b7160e01b600052601160045260246000fd5b5060010190565b600060208284031215610c5f57600080fd5b5051919050565b600060208284031215610c7857600080fd5b81518015158114610c0957600080fd5b600060208284031215610c9a57600080fd5b8151610c0981610a0a56fea26469706673582212201a09ee38bd8d4716dd61df3c30e1e8bdf74f9d3b3ad0080be2a8255109f7ad8064736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003f3915fb8769ee456035331bc2f7fbe380f6b4d2
-----Decoded View---------------
Arg [0] : createraAddress_ (address): 0x3F3915Fb8769Ee456035331BC2F7fBE380f6b4d2
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000003f3915fb8769ee456035331bc2f7fbe380f6b4d2
Deployed Bytecode Sourcemap
630:4031:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1262:7:6;1288:6;;1741:36:1;;-1:-1:-1;;;;;1288:6:6;;;;1767:9:1;1741:36;;;;;1767:9;;1741:36;1262:7:6;1741:36:1;1767:9;1288:6:6;1741:36:1;;;;;;;;;;;;;;;;;;;;;630:4031;;;;4459:200;;;;;;;;;;-1:-1:-1;4459:200:1;;;;;:::i;:::-;-1:-1:-1;;;4459:200:1;;;;;;;;;;-1:-1:-1;;;;;;1715:33:8;;;1697:52;;1685:2;1670:18;4459:200:1;;;;;;;;825:30;;;;;;;;;;-1:-1:-1;825:30:1;;;;-1:-1:-1;;;;;825:30:1;;;;;;-1:-1:-1;;;;;1924:32:8;;;1906:51;;1894:2;1879:18;825:30:1;1760:203:8;1846:101:6;;;;;;;;;;;;;:::i;1216:85::-;;;;;;;;;;-1:-1:-1;1262:7:6;1288:6;-1:-1:-1;;;;;1288:6:6;1216:85;;4030:281:1;;;;;;;;;;-1:-1:-1;4030:281:1;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2080:173::-;;;;;;;;;;-1:-1:-1;2080:173:1;;;;;:::i;:::-;;:::i;2957:177::-;;;;;;;;;;-1:-1:-1;2957:177:1;;;;;:::i;:::-;;:::i;2096:232:6:-;;;;;;;;;;-1:-1:-1;2096:232:6;;;;;:::i;:::-;;:::i;1816:185:1:-;;;;;;;;;;-1:-1:-1;1816:185:1;;;;;:::i;:::-;;:::i;1846:101:6:-;1109:13;:11;:13::i;:::-;1910:30:::1;1937:1;1910:18;:30::i;:::-;1846:101::o:0;4030:281:1:-;4116:25;4178:8;4166:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4166:28:1;;;;;;;;;;;;;;;;;4153:41;;4209:6;4204:101;4221:19;;;4204:101;;;4277:4;:17;4282:8;;4291:1;4282:11;;;;;;;:::i;:::-;;;;;;;;;;4277:17;;-1:-1:-1;4277:17:1;;;;;;;;;;;-1:-1:-1;4277:17:1;4261:33;;;;;;;;;-1:-1:-1;;;;;4261:33:1;;;;;;;;;;;;;;;;;;;;;:13;;:10;;4272:1;;4261:13;;;;;;:::i;:::-;;;;;;:33;;;;4242:3;;;;;:::i;:::-;;;;4204:101;;;;4030:281;;;;:::o;2080:173::-;2261:21:7;:19;:21::i;:::-;2166:6:1::1;2161:86;2178:19:::0;;::::1;2161:86;;;2218:18;2224:8;;2233:1;2224:11;;;;;;;:::i;:::-;;;;;;;2218:5;:18::i;:::-;2199:3:::0;::::1;::::0;::::1;:::i;:::-;;;;2161:86;;;;2303:20:7::0;1716:1;2809:22;;2629:209;2303:20;2080:173:1;;:::o;2957:177::-;2261:21:7;:19;:21::i;:::-;3045:6:1::1;3040:88;3057:19:::0;;::::1;3040:88;;;3097:20;3105:8;;3114:1;3105:11;;;;;;;:::i;:::-;;;;;;;3097:7;:20::i;:::-;3078:3:::0;::::1;::::0;::::1;:::i;:::-;;;;3040:88;;2096:232:6::0;1109:13;:11;:13::i;:::-;-1:-1:-1;;;;;2197:22:6;::::1;2176:107;;;::::0;-1:-1:-1;;;2176:107:6;;4277:2:8;2176:107:6::1;::::0;::::1;4259:21:8::0;4316:2;4296:18;;;4289:30;4355:34;4335:18;;;4328:62;-1:-1:-1;;;4406:18:8;;;4399:36;4452:19;;2176:107:6::1;;;;;;;;;2293:28;2312:8;2293:18;:28::i;:::-;2096:232:::0;:::o;1816:185:1:-;1109:13:6;:11;:13::i;:::-;1898:38:1::1;::::0;-1:-1:-1;;;1898:38:1;;1930:4:::1;1898:38;::::0;::::1;1906:51:8::0;1881:14:1::1;::::0;-1:-1:-1;;;;;1898:23:1;::::1;::::0;::::1;::::0;1879:18:8;;1898:38:1::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1881:55;;1961:5;-1:-1:-1::0;;;;;1954:22:1::1;;1977:7;1262::6::0;1288:6;-1:-1:-1;;;;;1288:6:6;;1216:85;1977:7:1::1;1954:39;::::0;-1:-1:-1;;;;;;1954:39:1::1;::::0;;;;;;-1:-1:-1;;;;;4863:32:8;;;1954:39:1::1;::::0;::::1;4845:51:8::0;4912:18;;;4905:34;;;4818:18;;1954:39:1::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1946:48;;;::::0;::::1;1374:130:6::0;1262:7;1288:6;-1:-1:-1;;;;;1288:6:6;719:10:0;1437:23:6;1429:68;;;;-1:-1:-1;;;1429:68:6;;5434:2:8;1429:68:6;;;5416:21:8;;;5453:18;;;5446:30;5512:34;5492:18;;;5485:62;5564:18;;1429:68:6;5232:356:8;2482:187:6;2555:16;2574:6;;-1:-1:-1;;;;;2590:17:6;;;-1:-1:-1;;;;;;2590:17:6;;;;;;2622:40;;2574:6;;;;;;;2622:40;;2555:16;2622:40;2545:124;2482:187;:::o;2336:287:7:-;1759:1;2468:7;;:19;2460:63;;;;-1:-1:-1;;;2460:63:7;;5795:2:8;2460:63:7;;;5777:21:8;5834:2;5814:18;;;5807:30;5873:33;5853:18;;;5846:61;5924:18;;2460:63:7;5593:355:8;2460:63:7;1759:1;2598:7;:18;2336:287::o;2275:498:1:-;719:10:0;2354:15:1;;2346:41;;-1:-1:-1;;;2346:41:1;;;;;6099:25:8;;;-1:-1:-1;;;;;2346:57:1;;;;2354:15;;;;2346:32;;6072:18:8;;2346:41:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2346:57:1;;2325:118;;;;-1:-1:-1;;;2325:118:1;;6593:2:8;2325:118:1;;;6575:21:8;6632:2;6612:18;;;6605:30;-1:-1:-1;;;6651:18:8;;;6644:44;6705:18;;2325:118:1;6391:338:8;2325:118:1;2472:15;719:10:0;2498:13:1;;;;:4;:13;;;;;:34;;-1:-1:-1;;;;;;2498:34:1;-1:-1:-1;;;;;2498:34:1;;;;;;-1:-1:-1;2542:21:1;:31;;;2592:15;;;2584:41;719:10:0;2584:125:1;;-1:-1:-1;;;;;;2584:125:1;;;;;;;-1:-1:-1;;;;;6992:15:8;;;2584:125:1;;;6974:34:8;2673:4:1;7024:18:8;;;7017:43;7076:18;;;7069:34;;;6909:18;;2584:125:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2725:41;2732:12;719:10:0;;640:96;2732:12:1;2725:41;;;-1:-1:-1;;;;;7371:32:8;;;7353:51;;7435:2;7420:18;;7413:34;;;7463:18;;7456:34;;;2764:1:1;7521:2:8;7506:18;;7499:34;7340:3;7325:19;2725:41:1;;;;;;;;2315:458;2275:498;:::o;3156:650::-;3229:13;;;;:4;:13;;;;;:19;-1:-1:-1;;;;;3229:19:1;719:10:0;3229:35:1;;:62;;-1:-1:-1;1262:7:6;1288:6;-1:-1:-1;;;;;1288:6:6;719:10:0;3268:23:1;3229:62;3208:123;;;;-1:-1:-1;;;3208:123:1;;6593:2:8;3208:123:1;;;6575:21:8;6632:2;6612:18;;;6605:30;-1:-1:-1;;;6651:18:8;;;6644:44;6705:18;;3208:123:1;6391:338:8;3208:123:1;3363:13;;;;:4;:13;;;;;:21;;;:26;;;;:93;;-1:-1:-1;3433:13:1;;;;:4;:13;;;;;:23;;;;3409:21;;;;;:47;3363:93;3342:160;;;;-1:-1:-1;;;3342:160:1;;7746:2:8;3342:160:1;;;7728:21:8;7785:2;7765:18;;;7758:30;-1:-1:-1;;;7804:18:8;;;7797:50;7864:18;;3342:160:1;7544:344:8;3342:160:1;3513:17;3559:13;;;:4;:13;;;;;;;3533:15;3559:23;;;;:35;;;3613:15;3683:19;;3605:128;;-1:-1:-1;;;3605:128:1;;3664:4;3605:128;;;6974:34:8;-1:-1:-1;;;;;3683:19:1;;;7024:18:8;;;7017:43;7076:18;;;7069:34;;;3533:15:1;;3613;;;;3605:37;;6909:18:8;;3605:128:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3756:13:1;;;;:4;:13;;;;;;;;;:19;3749:50;;-1:-1:-1;;;;;3756:19:1;;;7353:51:8;;7420:18;;;7413:34;;;7463:18;;;7456:34;;;3797:1:1;7521:2:8;7506:18;;7499:34;3749:50:1;;-1:-1:-1;7340:3:8;7325:19;3749:50:1;7114:425:8;14:131;-1:-1:-1;;;;;89:31:8;;79:42;;69:70;;135:1;132;125:12;150:127;211:10;206:3;202:20;199:1;192:31;242:4;239:1;232:15;266:4;263:1;256:15;282:1266;377:6;385;393;401;454:3;442:9;433:7;429:23;425:33;422:53;;;471:1;468;461:12;422:53;510:9;497:23;529:31;554:5;529:31;:::i;:::-;579:5;-1:-1:-1;636:2:8;621:18;;608:32;649:33;608:32;649:33;:::i;:::-;701:7;-1:-1:-1;755:2:8;740:18;;727:32;;-1:-1:-1;810:2:8;795:18;;782:32;833:18;863:14;;;860:34;;;890:1;887;880:12;860:34;928:6;917:9;913:22;903:32;;973:7;966:4;962:2;958:13;954:27;944:55;;995:1;992;985:12;944:55;1031:2;1018:16;1053:2;1049;1046:10;1043:36;;;1059:18;;:::i;:::-;1134:2;1128:9;1102:2;1188:13;;-1:-1:-1;;1184:22:8;;;1208:2;1180:31;1176:40;1164:53;;;1232:18;;;1252:22;;;1229:46;1226:72;;;1278:18;;:::i;:::-;1318:10;1314:2;1307:22;1353:2;1345:6;1338:18;1393:7;1388:2;1383;1379;1375:11;1371:20;1368:33;1365:53;;;1414:1;1411;1404:12;1365:53;1470:2;1465;1461;1457:11;1452:2;1444:6;1440:15;1427:46;1515:1;1510:2;1505;1497:6;1493:15;1489:24;1482:35;1536:6;1526:16;;;;;;;282:1266;;;;;;;:::o;1968:615::-;2054:6;2062;2115:2;2103:9;2094:7;2090:23;2086:32;2083:52;;;2131:1;2128;2121:12;2083:52;2171:9;2158:23;2200:18;2241:2;2233:6;2230:14;2227:34;;;2257:1;2254;2247:12;2227:34;2295:6;2284:9;2280:22;2270:32;;2340:7;2333:4;2329:2;2325:13;2321:27;2311:55;;2362:1;2359;2352:12;2311:55;2402:2;2389:16;2428:2;2420:6;2417:14;2414:34;;;2444:1;2441;2434:12;2414:34;2497:7;2492:2;2482:6;2479:1;2475:14;2471:2;2467:23;2463:32;2460:45;2457:65;;;2518:1;2515;2508:12;2457:65;2549:2;2541:11;;;;;2571:6;;-1:-1:-1;1968:615:8;;-1:-1:-1;;;;1968:615:8:o;2588:861::-;2801:2;2853:21;;;2923:13;;2826:18;;;2945:22;;;2772:4;;2801:2;2986;;3004:18;;;;3045:15;;;2772:4;3088:335;3102:6;3099:1;3096:13;3088:335;;;3161:13;;3203:9;;-1:-1:-1;;;;;3199:35:8;3187:48;;3275:11;;;3269:18;3255:12;;;3248:40;3328:11;;3322:18;3308:12;;;3301:40;3370:4;3361:14;;;;3398:15;;;;3231:1;3117:9;3088:335;;;-1:-1:-1;3440:3:8;;2588:861;-1:-1:-1;;;;;;;2588:861:8:o;3454:247::-;3513:6;3566:2;3554:9;3545:7;3541:23;3537:32;3534:52;;;3582:1;3579;3572:12;3534:52;3621:9;3608:23;3640:31;3665:5;3640:31;:::i;:::-;3690:5;3454:247;-1:-1:-1;;;3454:247:8:o;3706:127::-;3767:10;3762:3;3758:20;3755:1;3748:31;3798:4;3795:1;3788:15;3822:4;3819:1;3812:15;3838:232;3877:3;3898:17;;;3895:140;;3957:10;3952:3;3948:20;3945:1;3938:31;3992:4;3989:1;3982:15;4020:4;4017:1;4010:15;3895:140;-1:-1:-1;4062:1:8;4051:13;;3838:232::o;4482:184::-;4552:6;4605:2;4593:9;4584:7;4580:23;4576:32;4573:52;;;4621:1;4618;4611:12;4573:52;-1:-1:-1;4644:16:8;;4482:184;-1:-1:-1;4482:184:8:o;4950:277::-;5017:6;5070:2;5058:9;5049:7;5045:23;5041:32;5038:52;;;5086:1;5083;5076:12;5038:52;5118:9;5112:16;5171:5;5164:13;5157:21;5150:5;5147:32;5137:60;;5193:1;5190;5183:12;6135:251;6205:6;6258:2;6246:9;6237:7;6233:23;6229:32;6226:52;;;6274:1;6271;6264:12;6226:52;6306:9;6300:16;6325:31;6350:5;6325:31;:::i
Swarm Source
ipfs://1a09ee38bd8d4716dd61df3c30e1e8bdf74f9d3b3ad0080be2a8255109f7ad80
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.