Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 273 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
White List Sales | 17671196 | 360 days ago | IN | 0 ETH | 0.00337694 | ||||
White List Sales | 17671168 | 360 days ago | IN | 0 ETH | 0.00371524 | ||||
White List Sales | 17671153 | 360 days ago | IN | 0 ETH | 0.00401232 | ||||
White List Sales | 17671143 | 360 days ago | IN | 0 ETH | 0.00406866 | ||||
White List Sales | 17671143 | 360 days ago | IN | 0 ETH | 0.00406956 | ||||
White List Sales | 17671134 | 360 days ago | IN | 0 ETH | 0.00447842 | ||||
White List Sales | 17671132 | 360 days ago | IN | 0 ETH | 0.00539172 | ||||
White List Sales | 17671131 | 360 days ago | IN | 0 ETH | 0.00429147 | ||||
White List Sales | 17671131 | 360 days ago | IN | 0 ETH | 0.00429204 | ||||
White List Sales | 17671131 | 360 days ago | IN | 0 ETH | 0.00429099 | ||||
White List Sales | 17671131 | 360 days ago | IN | 0 ETH | 0.00429147 | ||||
White List Sales | 17671131 | 360 days ago | IN | 0 ETH | 0.00429223 | ||||
White List Sales | 17671131 | 360 days ago | IN | 0 ETH | 0.00429194 | ||||
White List Sales | 17671131 | 360 days ago | IN | 0 ETH | 0.00420341 | ||||
White List Sales | 17671131 | 360 days ago | IN | 0 ETH | 0.00429233 | ||||
White List Sales | 17671131 | 360 days ago | IN | 0 ETH | 0.00429061 | ||||
White List Sales | 17671131 | 360 days ago | IN | 0 ETH | 0.00429328 | ||||
White List Sales | 17671131 | 360 days ago | IN | 0 ETH | 0.00429194 | ||||
White List Sales | 17671131 | 360 days ago | IN | 0 ETH | 0.00429242 | ||||
White List Sales | 17671131 | 360 days ago | IN | 0 ETH | 0.00429242 | ||||
White List Sales | 17671131 | 360 days ago | IN | 0 ETH | 0.00420446 | ||||
White List Sales | 17671131 | 360 days ago | IN | 0 ETH | 0.00429194 | ||||
White List Sales | 17671131 | 360 days ago | IN | 0 ETH | 0.00429185 | ||||
White List Sales | 17671131 | 360 days ago | IN | 0 ETH | 0.00429242 | ||||
White List Sales | 17671131 | 360 days ago | IN | 0 ETH | 0.00429347 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
TwinCloudSale
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.9; import "./interface/ITwinCloud.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; import "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol"; import "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; contract TwinCloudSale is Ownable, IERC721Receiver, ReentrancyGuard { address public twinCloud; uint256 public maxSalesPerAccount; uint256 public salePrice; uint256 public startTime; uint256 public whitelistSaleInterval; bytes32 public whiteListMerkleRoot; mapping(address => uint256) public userSales; constructor(address twinCloud_, uint256 maxSalesPerAccount_, uint256 salePrice_, uint256 startTime_, uint256 whitelistSaleInterval_) { twinCloud = twinCloud_; maxSalesPerAccount = maxSalesPerAccount_; salePrice = salePrice_; startTime = startTime_; whitelistSaleInterval = whitelistSaleInterval_; } function whiteListSales( uint256 index, uint256 amount, bytes32[] calldata merkleProof ) external payable nonReentrant{ require(block.timestamp >= startTime, "sale did not start"); require(block.timestamp <= startTime + whitelistSaleInterval, "whitelist sales ended"); uint256 salt = 0x0a; bytes32 node = keccak256(abi.encodePacked(index, msg.sender, salt)); require( MerkleProof.verify(merkleProof, whiteListMerkleRoot, node), "MerkleDistributor: Invalid proof." ); _sale(msg.sender, amount); } function isWhiteList(uint256 index, address account, bytes32[] calldata merkleProof) external view returns(bool){ uint256 salt = 0x0a; bytes32 node = keccak256(abi.encodePacked(index, account, salt)); return MerkleProof.verify(merkleProof, whiteListMerkleRoot, node); } function publicSales(uint256 amount) external payable nonReentrant{ require((startTime + whitelistSaleInterval) <= block.timestamp, "public sale did not start"); _sale(msg.sender, amount); } function _sale(address account, uint256 amount) internal{ require(amount > 0, "sales:invalid sale amount"); require(salePrice * amount <= msg.value, "sales: Insufficient Balance"); require( (userSales[account] + amount) <= maxSalesPerAccount, "sales:exceed max sales"); userSales[account] = userSales[account] + amount; ITwinCloud(twinCloud).safeMint(account, amount); } //===================admin function================ function setTwinCloud(address twinCloud_) external onlyOwner{ twinCloud = twinCloud_; } function setMaxSalesPerAccount(uint256 newMaxSales_) external onlyOwner{ maxSalesPerAccount = newMaxSales_; } function setSalePrice(uint256 salePrice_) external onlyOwner{ salePrice = salePrice_; } function setStartTime(uint256 startTime_) external onlyOwner { startTime = startTime_; } function setWhitelistSaleInterval(uint256 whitelistSaleInterval_) external onlyOwner{ whitelistSaleInterval = whitelistSaleInterval_; } function setWhitelistMerkleRoot(bytes32 merkleRoot_) external onlyOwner{ whiteListMerkleRoot = merkleRoot_; } function withdraw() external onlyOwner{ payable(msg.sender).transfer(address(this).balance); } //===================view function =================== function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external override returns (bytes4) { return this.onERC721Received.selector; } }
// 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.9.2) (utils/cryptography/MerkleProof.sol) pragma solidity ^0.8.0; /** * @dev These functions deal with verification of Merkle Tree proofs. * * The tree and the proofs can be generated using our * https://github.com/OpenZeppelin/merkle-tree[JavaScript library]. * You will find a quickstart guide in the readme. * * WARNING: You should avoid using leaf values that are 64 bytes long prior to * hashing, or use a hash function other than keccak256 for hashing leaves. * This is because the concatenation of a sorted pair of internal nodes in * the merkle tree could be reinterpreted as a leaf value. * OpenZeppelin's JavaScript library generates merkle trees that are safe * against this attack out of the box. */ library MerkleProof { /** * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree * defined by `root`. For this, a `proof` must be provided, containing * sibling hashes on the branch from the leaf to the root of the tree. Each * pair of leaves and each pair of pre-images are assumed to be sorted. */ function verify(bytes32[] memory proof, bytes32 root, bytes32 leaf) internal pure returns (bool) { return processProof(proof, leaf) == root; } /** * @dev Calldata version of {verify} * * _Available since v4.7._ */ function verifyCalldata(bytes32[] calldata proof, bytes32 root, bytes32 leaf) internal pure returns (bool) { return processProofCalldata(proof, leaf) == root; } /** * @dev Returns the rebuilt hash obtained by traversing a Merkle tree up * from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt * hash matches the root of the tree. When processing the proof, the pairs * of leafs & pre-images are assumed to be sorted. * * _Available since v4.4._ */ function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) { bytes32 computedHash = leaf; for (uint256 i = 0; i < proof.length; i++) { computedHash = _hashPair(computedHash, proof[i]); } return computedHash; } /** * @dev Calldata version of {processProof} * * _Available since v4.7._ */ function processProofCalldata(bytes32[] calldata proof, bytes32 leaf) internal pure returns (bytes32) { bytes32 computedHash = leaf; for (uint256 i = 0; i < proof.length; i++) { computedHash = _hashPair(computedHash, proof[i]); } return computedHash; } /** * @dev Returns true if the `leaves` can be simultaneously proven to be a part of a merkle tree defined by * `root`, according to `proof` and `proofFlags` as described in {processMultiProof}. * * CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details. * * _Available since v4.7._ */ function multiProofVerify( bytes32[] memory proof, bool[] memory proofFlags, bytes32 root, bytes32[] memory leaves ) internal pure returns (bool) { return processMultiProof(proof, proofFlags, leaves) == root; } /** * @dev Calldata version of {multiProofVerify} * * CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details. * * _Available since v4.7._ */ function multiProofVerifyCalldata( bytes32[] calldata proof, bool[] calldata proofFlags, bytes32 root, bytes32[] memory leaves ) internal pure returns (bool) { return processMultiProofCalldata(proof, proofFlags, leaves) == root; } /** * @dev Returns the root of a tree reconstructed from `leaves` and sibling nodes in `proof`. The reconstruction * proceeds by incrementally reconstructing all inner nodes by combining a leaf/inner node with either another * leaf/inner node or a proof sibling node, depending on whether each `proofFlags` item is true or false * respectively. * * CAUTION: Not all merkle trees admit multiproofs. To use multiproofs, it is sufficient to ensure that: 1) the tree * is complete (but not necessarily perfect), 2) the leaves to be proven are in the opposite order they are in the * tree (i.e., as seen from right to left starting at the deepest layer and continuing at the next layer). * * _Available since v4.7._ */ function processMultiProof( bytes32[] memory proof, bool[] memory proofFlags, bytes32[] memory leaves ) internal pure returns (bytes32 merkleRoot) { // This function rebuilds the root hash by traversing the tree up from the leaves. The root is rebuilt by // consuming and producing values on a queue. The queue starts with the `leaves` array, then goes onto the // `hashes` array. At the end of the process, the last hash in the `hashes` array should contain the root of // the merkle tree. uint256 leavesLen = leaves.length; uint256 proofLen = proof.length; uint256 totalHashes = proofFlags.length; // Check proof validity. require(leavesLen + proofLen - 1 == totalHashes, "MerkleProof: invalid multiproof"); // The xxxPos values are "pointers" to the next value to consume in each array. All accesses are done using // `xxx[xxxPos++]`, which return the current value and increment the pointer, thus mimicking a queue's "pop". bytes32[] memory hashes = new bytes32[](totalHashes); uint256 leafPos = 0; uint256 hashPos = 0; uint256 proofPos = 0; // At each step, we compute the next hash using two values: // - a value from the "main queue". If not all leaves have been consumed, we get the next leaf, otherwise we // get the next hash. // - depending on the flag, either another value from the "main queue" (merging branches) or an element from the // `proof` array. for (uint256 i = 0; i < totalHashes; i++) { bytes32 a = leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++]; bytes32 b = proofFlags[i] ? (leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++]) : proof[proofPos++]; hashes[i] = _hashPair(a, b); } if (totalHashes > 0) { require(proofPos == proofLen, "MerkleProof: invalid multiproof"); unchecked { return hashes[totalHashes - 1]; } } else if (leavesLen > 0) { return leaves[0]; } else { return proof[0]; } } /** * @dev Calldata version of {processMultiProof}. * * CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details. * * _Available since v4.7._ */ function processMultiProofCalldata( bytes32[] calldata proof, bool[] calldata proofFlags, bytes32[] memory leaves ) internal pure returns (bytes32 merkleRoot) { // This function rebuilds the root hash by traversing the tree up from the leaves. The root is rebuilt by // consuming and producing values on a queue. The queue starts with the `leaves` array, then goes onto the // `hashes` array. At the end of the process, the last hash in the `hashes` array should contain the root of // the merkle tree. uint256 leavesLen = leaves.length; uint256 proofLen = proof.length; uint256 totalHashes = proofFlags.length; // Check proof validity. require(leavesLen + proofLen - 1 == totalHashes, "MerkleProof: invalid multiproof"); // The xxxPos values are "pointers" to the next value to consume in each array. All accesses are done using // `xxx[xxxPos++]`, which return the current value and increment the pointer, thus mimicking a queue's "pop". bytes32[] memory hashes = new bytes32[](totalHashes); uint256 leafPos = 0; uint256 hashPos = 0; uint256 proofPos = 0; // At each step, we compute the next hash using two values: // - a value from the "main queue". If not all leaves have been consumed, we get the next leaf, otherwise we // get the next hash. // - depending on the flag, either another value from the "main queue" (merging branches) or an element from the // `proof` array. for (uint256 i = 0; i < totalHashes; i++) { bytes32 a = leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++]; bytes32 b = proofFlags[i] ? (leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++]) : proof[proofPos++]; hashes[i] = _hashPair(a, b); } if (totalHashes > 0) { require(proofPos == proofLen, "MerkleProof: invalid multiproof"); unchecked { return hashes[totalHashes - 1]; } } else if (leavesLen > 0) { return leaves[0]; } else { return proof[0]; } } function _hashPair(bytes32 a, bytes32 b) private pure returns (bytes32) { return a < b ? _efficientHash(a, b) : _efficientHash(b, a); } function _efficientHash(bytes32 a, bytes32 b) private pure returns (bytes32 value) { /// @solidity memory-safe-assembly assembly { mstore(0x00, a) mstore(0x20, b) value := keccak256(0x00, 0x40) } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.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; } /** * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a * `nonReentrant` function in the call stack. */ function _reentrancyGuardEntered() internal view returns (bool) { return _status == _ENTERED; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev 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. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling 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 // ERC721A Contracts v4.2.3 // Creator: Chiru Labs pragma solidity ^0.8.4; interface ITwinCloud { function safeMint(address to, uint256 quantity) external; function safeTransferFrom(address from,address to,uint256 tokenId) external payable; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"twinCloud_","type":"address"},{"internalType":"uint256","name":"maxSalesPerAccount_","type":"uint256"},{"internalType":"uint256","name":"salePrice_","type":"uint256"},{"internalType":"uint256","name":"startTime_","type":"uint256"},{"internalType":"uint256","name":"whitelistSaleInterval_","type":"uint256"}],"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"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"isWhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSalesPerAccount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"publicSales","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"salePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxSales_","type":"uint256"}],"name":"setMaxSalesPerAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"salePrice_","type":"uint256"}],"name":"setSalePrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"startTime_","type":"uint256"}],"name":"setStartTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"twinCloud_","type":"address"}],"name":"setTwinCloud","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"merkleRoot_","type":"bytes32"}],"name":"setWhitelistMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"whitelistSaleInterval_","type":"uint256"}],"name":"setWhitelistSaleInterval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"twinCloud","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userSales","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"whiteListMerkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"whiteListSales","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"whitelistSaleInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801562000010575f80fd5b5060405162001b2b38038062001b2b833981810160405281019062000036919062000229565b620000566200004a620000c460201b60201c565b620000cb60201b60201c565b600180819055508460025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550836003819055508260048190555081600581905550806006819055505050505050620002ad565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620001bb8262000190565b9050919050565b620001cd81620001af565b8114620001d8575f80fd5b50565b5f81519050620001eb81620001c2565b92915050565b5f819050919050565b6200020581620001f1565b811462000210575f80fd5b50565b5f815190506200022381620001fa565b92915050565b5f805f805f60a086880312156200024557620002446200018c565b5b5f6200025488828901620001db565b9550506020620002678882890162000213565b94505060406200027a8882890162000213565b93505060606200028d8882890162000213565b9250506080620002a08882890162000213565b9150509295509295909350565b61187080620002bb5f395ff3fe608060405260043610610129575f3560e01c8063715018a6116100aa578063943cf9371161006e578063943cf93714610391578063bd32fb66146103b9578063bf09414c146103e1578063d7d9253514610409578063f2fde38b14610431578063f51f96dd1461045957610129565b8063715018a6146102c157806378e97925146102d75780637c219ff11461030157806381cc85a21461032b5780638da5cb5b1461036757610129565b80633e0a322d116100f15780633e0a322d146101ed57806356023cc2146102155780635ca5c2c7146102315780635cf754b51461026d5780636c58d3641461029757610129565b8063150b7a021461012d5780631919fed714610169578063343200411461019157806334b6ab1a146101ad5780633ccfd60b146101d7575b5f80fd5b348015610138575f80fd5b50610153600480360381019061014e9190610e84565b610483565b6040516101609190610f42565b60405180910390f35b348015610174575f80fd5b5061018f600480360381019061018a9190610f5b565b610497565b005b6101ab60048036038101906101a69190610f5b565b6104a9565b005b3480156101b8575f80fd5b506101c1610518565b6040516101ce9190610f9e565b60405180910390f35b3480156101e2575f80fd5b506101eb61051e565b005b3480156101f8575f80fd5b50610213600480360381019061020e9190610f5b565b61056c565b005b61022f600480360381019061022a919061100c565b61057e565b005b34801561023c575f80fd5b506102576004803603810190610252919061107d565b6106f6565b6040516102649190611108565b60405180910390f35b348015610278575f80fd5b50610281610783565b60405161028e9190611130565b60405180910390f35b3480156102a2575f80fd5b506102ab6107a8565b6040516102b89190611158565b60405180910390f35b3480156102cc575f80fd5b506102d56107ae565b005b3480156102e2575f80fd5b506102eb6107c1565b6040516102f89190611158565b60405180910390f35b34801561030c575f80fd5b506103156107c7565b6040516103229190611158565b60405180910390f35b348015610336575f80fd5b50610351600480360381019061034c9190611171565b6107cd565b60405161035e9190611158565b60405180910390f35b348015610372575f80fd5b5061037b6107e2565b6040516103889190611130565b60405180910390f35b34801561039c575f80fd5b506103b760048036038101906103b29190611171565b610809565b005b3480156103c4575f80fd5b506103df60048036038101906103da91906111c6565b610854565b005b3480156103ec575f80fd5b5061040760048036038101906104029190610f5b565b610866565b005b348015610414575f80fd5b5061042f600480360381019061042a9190610f5b565b610878565b005b34801561043c575f80fd5b5061045760048036038101906104529190611171565b61088a565b005b348015610464575f80fd5b5061046d61090c565b60405161047a9190611158565b60405180910390f35b5f63150b7a0260e01b905095945050505050565b61049f610912565b8060048190555050565b6104b1610990565b426006546005546104c2919061121e565b1115610503576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104fa906112ab565b60405180910390fd5b61050d33826109df565b610515610c15565b50565b60075481565b610526610912565b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610569573d5f803e3d5ffd5b50565b610574610912565b8060058190555050565b610586610990565b6005544210156105cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c290611313565b60405180910390fd5b6006546005546105db919061121e565b42111561061d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106149061137b565b60405180910390fd5b5f600a90505f853383604051602001610638939291906113fe565b60405160208183030381529060405280519060200120905061069d8484808060200260200160405190810160405280939291908181526020018383602002808284375f81840152601f19601f8201169050808301925050505050505060075483610c1e565b6106dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d3906114aa565b60405180910390fd5b6106e633866109df565b50506106f0610c15565b50505050565b5f80600a90505f868683604051602001610712939291906113fe565b6040516020818303038152906040528051906020012090506107778585808060200260200160405190810160405280939291908181526020018383602002808284375f81840152601f19601f8201169050808301925050505050505060075483610c1e565b92505050949350505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b6107b6610912565b6107bf5f610c34565b565b60055481565b60065481565b6008602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610811610912565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61085c610912565b8060078190555050565b61086e610912565b8060068190555050565b610880610912565b8060038190555050565b610892610912565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f790611538565b60405180910390fd5b61090981610c34565b50565b60045481565b61091a610cf5565b73ffffffffffffffffffffffffffffffffffffffff166109386107e2565b73ffffffffffffffffffffffffffffffffffffffff161461098e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610985906115a0565b60405180910390fd5b565b6002600154036109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc90611608565b60405180910390fd5b6002600181905550565b5f8111610a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1890611670565b60405180910390fd5b3481600454610a30919061168e565b1115610a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6890611719565b60405180910390fd5b6003548160085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610abd919061121e565b1115610afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af590611781565b60405180910390fd5b8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b47919061121e565b60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a144819483836040518363ffffffff1660e01b8152600401610be492919061179f565b5f604051808303815f87803b158015610bfb575f80fd5b505af1158015610c0d573d5f803e3d5ffd5b505050505050565b60018081905550565b5f82610c2a8584610cfc565b1490509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f808290505f5b8451811015610d4557610d3082868381518110610d2357610d226117c6565b5b6020026020010151610d50565b91508080610d3d906117f3565b915050610d03565b508091505092915050565b5f818310610d6757610d628284610d7a565b610d72565b610d718383610d7a565b5b905092915050565b5f825f528160205260405f20905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610dbf82610d96565b9050919050565b610dcf81610db5565b8114610dd9575f80fd5b50565b5f81359050610dea81610dc6565b92915050565b5f819050919050565b610e0281610df0565b8114610e0c575f80fd5b50565b5f81359050610e1d81610df9565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610e4457610e43610e23565b5b8235905067ffffffffffffffff811115610e6157610e60610e27565b5b602083019150836001820283011115610e7d57610e7c610e2b565b5b9250929050565b5f805f805f60808688031215610e9d57610e9c610d8e565b5b5f610eaa88828901610ddc565b9550506020610ebb88828901610ddc565b9450506040610ecc88828901610e0f565b935050606086013567ffffffffffffffff811115610eed57610eec610d92565b5b610ef988828901610e2f565b92509250509295509295909350565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610f3c81610f08565b82525050565b5f602082019050610f555f830184610f33565b92915050565b5f60208284031215610f7057610f6f610d8e565b5b5f610f7d84828501610e0f565b91505092915050565b5f819050919050565b610f9881610f86565b82525050565b5f602082019050610fb15f830184610f8f565b92915050565b5f8083601f840112610fcc57610fcb610e23565b5b8235905067ffffffffffffffff811115610fe957610fe8610e27565b5b60208301915083602082028301111561100557611004610e2b565b5b9250929050565b5f805f806060858703121561102457611023610d8e565b5b5f61103187828801610e0f565b945050602061104287828801610e0f565b935050604085013567ffffffffffffffff81111561106357611062610d92565b5b61106f87828801610fb7565b925092505092959194509250565b5f805f806060858703121561109557611094610d8e565b5b5f6110a287828801610e0f565b94505060206110b387828801610ddc565b935050604085013567ffffffffffffffff8111156110d4576110d3610d92565b5b6110e087828801610fb7565b925092505092959194509250565b5f8115159050919050565b611102816110ee565b82525050565b5f60208201905061111b5f8301846110f9565b92915050565b61112a81610db5565b82525050565b5f6020820190506111435f830184611121565b92915050565b61115281610df0565b82525050565b5f60208201905061116b5f830184611149565b92915050565b5f6020828403121561118657611185610d8e565b5b5f61119384828501610ddc565b91505092915050565b6111a581610f86565b81146111af575f80fd5b50565b5f813590506111c08161119c565b92915050565b5f602082840312156111db576111da610d8e565b5b5f6111e8848285016111b2565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61122882610df0565b915061123383610df0565b925082820190508082111561124b5761124a6111f1565b5b92915050565b5f82825260208201905092915050565b7f7075626c69632073616c6520646964206e6f74207374617274000000000000005f82015250565b5f611295601983611251565b91506112a082611261565b602082019050919050565b5f6020820190508181035f8301526112c281611289565b9050919050565b7f73616c6520646964206e6f7420737461727400000000000000000000000000005f82015250565b5f6112fd601283611251565b9150611308826112c9565b602082019050919050565b5f6020820190508181035f83015261132a816112f1565b9050919050565b7f77686974656c6973742073616c657320656e64656400000000000000000000005f82015250565b5f611365601583611251565b915061137082611331565b602082019050919050565b5f6020820190508181035f83015261139281611359565b9050919050565b5f819050919050565b6113b36113ae82610df0565b611399565b82525050565b5f8160601b9050919050565b5f6113cf826113b9565b9050919050565b5f6113e0826113c5565b9050919050565b6113f86113f382610db5565b6113d6565b82525050565b5f61140982866113a2565b60208201915061141982856113e7565b60148201915061142982846113a2565b602082019150819050949350505050565b7f4d65726b6c654469737472696275746f723a20496e76616c69642070726f6f665f8201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b5f611494602183611251565b915061149f8261143a565b604082019050919050565b5f6020820190508181035f8301526114c181611488565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611522602683611251565b915061152d826114c8565b604082019050919050565b5f6020820190508181035f83015261154f81611516565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61158a602083611251565b915061159582611556565b602082019050919050565b5f6020820190508181035f8301526115b78161157e565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f6115f2601f83611251565b91506115fd826115be565b602082019050919050565b5f6020820190508181035f83015261161f816115e6565b9050919050565b7f73616c65733a696e76616c69642073616c6520616d6f756e74000000000000005f82015250565b5f61165a601983611251565b915061166582611626565b602082019050919050565b5f6020820190508181035f8301526116878161164e565b9050919050565b5f61169882610df0565b91506116a383610df0565b92508282026116b181610df0565b915082820484148315176116c8576116c76111f1565b5b5092915050565b7f73616c65733a20496e73756666696369656e742042616c616e636500000000005f82015250565b5f611703601b83611251565b915061170e826116cf565b602082019050919050565b5f6020820190508181035f830152611730816116f7565b9050919050565b7f73616c65733a657863656564206d61782073616c6573000000000000000000005f82015250565b5f61176b601683611251565b915061177682611737565b602082019050919050565b5f6020820190508181035f8301526117988161175f565b9050919050565b5f6040820190506117b25f830185611121565b6117bf6020830184611149565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6117fd82610df0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361182f5761182e6111f1565b5b60018201905091905056fea26469706673582212201813a81ea9492fd7cec455f4bdaa7b13c967963d50d96797f34f490ddf36284f64736f6c634300081400330000000000000000000000002f054e062cc8b11a5cecbcc25fad74a97f24e7a7000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064ad6e70000000000000000000000000000000000000000000000000000000000000a8c0
Deployed Bytecode
0x608060405260043610610129575f3560e01c8063715018a6116100aa578063943cf9371161006e578063943cf93714610391578063bd32fb66146103b9578063bf09414c146103e1578063d7d9253514610409578063f2fde38b14610431578063f51f96dd1461045957610129565b8063715018a6146102c157806378e97925146102d75780637c219ff11461030157806381cc85a21461032b5780638da5cb5b1461036757610129565b80633e0a322d116100f15780633e0a322d146101ed57806356023cc2146102155780635ca5c2c7146102315780635cf754b51461026d5780636c58d3641461029757610129565b8063150b7a021461012d5780631919fed714610169578063343200411461019157806334b6ab1a146101ad5780633ccfd60b146101d7575b5f80fd5b348015610138575f80fd5b50610153600480360381019061014e9190610e84565b610483565b6040516101609190610f42565b60405180910390f35b348015610174575f80fd5b5061018f600480360381019061018a9190610f5b565b610497565b005b6101ab60048036038101906101a69190610f5b565b6104a9565b005b3480156101b8575f80fd5b506101c1610518565b6040516101ce9190610f9e565b60405180910390f35b3480156101e2575f80fd5b506101eb61051e565b005b3480156101f8575f80fd5b50610213600480360381019061020e9190610f5b565b61056c565b005b61022f600480360381019061022a919061100c565b61057e565b005b34801561023c575f80fd5b506102576004803603810190610252919061107d565b6106f6565b6040516102649190611108565b60405180910390f35b348015610278575f80fd5b50610281610783565b60405161028e9190611130565b60405180910390f35b3480156102a2575f80fd5b506102ab6107a8565b6040516102b89190611158565b60405180910390f35b3480156102cc575f80fd5b506102d56107ae565b005b3480156102e2575f80fd5b506102eb6107c1565b6040516102f89190611158565b60405180910390f35b34801561030c575f80fd5b506103156107c7565b6040516103229190611158565b60405180910390f35b348015610336575f80fd5b50610351600480360381019061034c9190611171565b6107cd565b60405161035e9190611158565b60405180910390f35b348015610372575f80fd5b5061037b6107e2565b6040516103889190611130565b60405180910390f35b34801561039c575f80fd5b506103b760048036038101906103b29190611171565b610809565b005b3480156103c4575f80fd5b506103df60048036038101906103da91906111c6565b610854565b005b3480156103ec575f80fd5b5061040760048036038101906104029190610f5b565b610866565b005b348015610414575f80fd5b5061042f600480360381019061042a9190610f5b565b610878565b005b34801561043c575f80fd5b5061045760048036038101906104529190611171565b61088a565b005b348015610464575f80fd5b5061046d61090c565b60405161047a9190611158565b60405180910390f35b5f63150b7a0260e01b905095945050505050565b61049f610912565b8060048190555050565b6104b1610990565b426006546005546104c2919061121e565b1115610503576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104fa906112ab565b60405180910390fd5b61050d33826109df565b610515610c15565b50565b60075481565b610526610912565b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610569573d5f803e3d5ffd5b50565b610574610912565b8060058190555050565b610586610990565b6005544210156105cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c290611313565b60405180910390fd5b6006546005546105db919061121e565b42111561061d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106149061137b565b60405180910390fd5b5f600a90505f853383604051602001610638939291906113fe565b60405160208183030381529060405280519060200120905061069d8484808060200260200160405190810160405280939291908181526020018383602002808284375f81840152601f19601f8201169050808301925050505050505060075483610c1e565b6106dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d3906114aa565b60405180910390fd5b6106e633866109df565b50506106f0610c15565b50505050565b5f80600a90505f868683604051602001610712939291906113fe565b6040516020818303038152906040528051906020012090506107778585808060200260200160405190810160405280939291908181526020018383602002808284375f81840152601f19601f8201169050808301925050505050505060075483610c1e565b92505050949350505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b6107b6610912565b6107bf5f610c34565b565b60055481565b60065481565b6008602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610811610912565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61085c610912565b8060078190555050565b61086e610912565b8060068190555050565b610880610912565b8060038190555050565b610892610912565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f790611538565b60405180910390fd5b61090981610c34565b50565b60045481565b61091a610cf5565b73ffffffffffffffffffffffffffffffffffffffff166109386107e2565b73ffffffffffffffffffffffffffffffffffffffff161461098e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610985906115a0565b60405180910390fd5b565b6002600154036109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc90611608565b60405180910390fd5b6002600181905550565b5f8111610a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1890611670565b60405180910390fd5b3481600454610a30919061168e565b1115610a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6890611719565b60405180910390fd5b6003548160085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610abd919061121e565b1115610afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af590611781565b60405180910390fd5b8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b47919061121e565b60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a144819483836040518363ffffffff1660e01b8152600401610be492919061179f565b5f604051808303815f87803b158015610bfb575f80fd5b505af1158015610c0d573d5f803e3d5ffd5b505050505050565b60018081905550565b5f82610c2a8584610cfc565b1490509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f808290505f5b8451811015610d4557610d3082868381518110610d2357610d226117c6565b5b6020026020010151610d50565b91508080610d3d906117f3565b915050610d03565b508091505092915050565b5f818310610d6757610d628284610d7a565b610d72565b610d718383610d7a565b5b905092915050565b5f825f528160205260405f20905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610dbf82610d96565b9050919050565b610dcf81610db5565b8114610dd9575f80fd5b50565b5f81359050610dea81610dc6565b92915050565b5f819050919050565b610e0281610df0565b8114610e0c575f80fd5b50565b5f81359050610e1d81610df9565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610e4457610e43610e23565b5b8235905067ffffffffffffffff811115610e6157610e60610e27565b5b602083019150836001820283011115610e7d57610e7c610e2b565b5b9250929050565b5f805f805f60808688031215610e9d57610e9c610d8e565b5b5f610eaa88828901610ddc565b9550506020610ebb88828901610ddc565b9450506040610ecc88828901610e0f565b935050606086013567ffffffffffffffff811115610eed57610eec610d92565b5b610ef988828901610e2f565b92509250509295509295909350565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610f3c81610f08565b82525050565b5f602082019050610f555f830184610f33565b92915050565b5f60208284031215610f7057610f6f610d8e565b5b5f610f7d84828501610e0f565b91505092915050565b5f819050919050565b610f9881610f86565b82525050565b5f602082019050610fb15f830184610f8f565b92915050565b5f8083601f840112610fcc57610fcb610e23565b5b8235905067ffffffffffffffff811115610fe957610fe8610e27565b5b60208301915083602082028301111561100557611004610e2b565b5b9250929050565b5f805f806060858703121561102457611023610d8e565b5b5f61103187828801610e0f565b945050602061104287828801610e0f565b935050604085013567ffffffffffffffff81111561106357611062610d92565b5b61106f87828801610fb7565b925092505092959194509250565b5f805f806060858703121561109557611094610d8e565b5b5f6110a287828801610e0f565b94505060206110b387828801610ddc565b935050604085013567ffffffffffffffff8111156110d4576110d3610d92565b5b6110e087828801610fb7565b925092505092959194509250565b5f8115159050919050565b611102816110ee565b82525050565b5f60208201905061111b5f8301846110f9565b92915050565b61112a81610db5565b82525050565b5f6020820190506111435f830184611121565b92915050565b61115281610df0565b82525050565b5f60208201905061116b5f830184611149565b92915050565b5f6020828403121561118657611185610d8e565b5b5f61119384828501610ddc565b91505092915050565b6111a581610f86565b81146111af575f80fd5b50565b5f813590506111c08161119c565b92915050565b5f602082840312156111db576111da610d8e565b5b5f6111e8848285016111b2565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61122882610df0565b915061123383610df0565b925082820190508082111561124b5761124a6111f1565b5b92915050565b5f82825260208201905092915050565b7f7075626c69632073616c6520646964206e6f74207374617274000000000000005f82015250565b5f611295601983611251565b91506112a082611261565b602082019050919050565b5f6020820190508181035f8301526112c281611289565b9050919050565b7f73616c6520646964206e6f7420737461727400000000000000000000000000005f82015250565b5f6112fd601283611251565b9150611308826112c9565b602082019050919050565b5f6020820190508181035f83015261132a816112f1565b9050919050565b7f77686974656c6973742073616c657320656e64656400000000000000000000005f82015250565b5f611365601583611251565b915061137082611331565b602082019050919050565b5f6020820190508181035f83015261139281611359565b9050919050565b5f819050919050565b6113b36113ae82610df0565b611399565b82525050565b5f8160601b9050919050565b5f6113cf826113b9565b9050919050565b5f6113e0826113c5565b9050919050565b6113f86113f382610db5565b6113d6565b82525050565b5f61140982866113a2565b60208201915061141982856113e7565b60148201915061142982846113a2565b602082019150819050949350505050565b7f4d65726b6c654469737472696275746f723a20496e76616c69642070726f6f665f8201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b5f611494602183611251565b915061149f8261143a565b604082019050919050565b5f6020820190508181035f8301526114c181611488565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611522602683611251565b915061152d826114c8565b604082019050919050565b5f6020820190508181035f83015261154f81611516565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61158a602083611251565b915061159582611556565b602082019050919050565b5f6020820190508181035f8301526115b78161157e565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f6115f2601f83611251565b91506115fd826115be565b602082019050919050565b5f6020820190508181035f83015261161f816115e6565b9050919050565b7f73616c65733a696e76616c69642073616c6520616d6f756e74000000000000005f82015250565b5f61165a601983611251565b915061166582611626565b602082019050919050565b5f6020820190508181035f8301526116878161164e565b9050919050565b5f61169882610df0565b91506116a383610df0565b92508282026116b181610df0565b915082820484148315176116c8576116c76111f1565b5b5092915050565b7f73616c65733a20496e73756666696369656e742042616c616e636500000000005f82015250565b5f611703601b83611251565b915061170e826116cf565b602082019050919050565b5f6020820190508181035f830152611730816116f7565b9050919050565b7f73616c65733a657863656564206d61782073616c6573000000000000000000005f82015250565b5f61176b601683611251565b915061177682611737565b602082019050919050565b5f6020820190508181035f8301526117988161175f565b9050919050565b5f6040820190506117b25f830185611121565b6117bf6020830184611149565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6117fd82610df0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361182f5761182e6111f1565b5b60018201905091905056fea26469706673582212201813a81ea9492fd7cec455f4bdaa7b13c967963d50d96797f34f490ddf36284f64736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000002f054e062cc8b11a5cecbcc25fad74a97f24e7a7000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064ad6e70000000000000000000000000000000000000000000000000000000000000a8c0
-----Decoded View---------------
Arg [0] : twinCloud_ (address): 0x2F054E062CC8B11a5cECbCC25fAD74a97f24e7A7
Arg [1] : maxSalesPerAccount_ (uint256): 5
Arg [2] : salePrice_ (uint256): 0
Arg [3] : startTime_ (uint256): 1689087600
Arg [4] : whitelistSaleInterval_ (uint256): 43200
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000002f054e062cc8b11a5cecbcc25fad74a97f24e7a7
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 0000000000000000000000000000000000000000000000000000000064ad6e70
Arg [4] : 000000000000000000000000000000000000000000000000000000000000a8c0
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.