Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 44 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Mint | 19109577 | 299 days ago | IN | 0 ETH | 0.00797704 | ||||
Mint | 18636263 | 366 days ago | IN | 0 ETH | 0.00920444 | ||||
Mint | 18603162 | 370 days ago | IN | 0 ETH | 0.00717971 | ||||
Mint | 18602265 | 370 days ago | IN | 0 ETH | 0.00618531 | ||||
Mint | 18602265 | 370 days ago | IN | 0 ETH | 0.00934528 | ||||
Mint | 18559876 | 376 days ago | IN | 0 ETH | 0.01051874 | ||||
Mint | 18558963 | 376 days ago | IN | 0 ETH | 0.0081914 | ||||
Mint | 18557566 | 377 days ago | IN | 0 ETH | 0.00918989 | ||||
Mint | 18553797 | 377 days ago | IN | 0 ETH | 0.00948399 | ||||
Mint | 18553791 | 377 days ago | IN | 0 ETH | 0.00800238 | ||||
Mint | 18552956 | 377 days ago | IN | 0 ETH | 0.00542798 | ||||
Mint | 18548191 | 378 days ago | IN | 0 ETH | 0.00572481 | ||||
Mint | 18547546 | 378 days ago | IN | 0 ETH | 0.00663112 | ||||
Mint | 18547330 | 378 days ago | IN | 0 ETH | 0.00587419 | ||||
Mint | 18546490 | 378 days ago | IN | 0 ETH | 0.01288224 | ||||
Mint | 18545215 | 378 days ago | IN | 0 ETH | 0.00819282 | ||||
Mint | 18534371 | 380 days ago | IN | 0 ETH | 0.0220848 | ||||
Mint | 18533492 | 380 days ago | IN | 0 ETH | 0.00949364 | ||||
Mint | 18533482 | 380 days ago | IN | 0 ETH | 0.02175253 | ||||
Mint | 18533457 | 380 days ago | IN | 0 ETH | 0.01068815 | ||||
Mint | 18533033 | 380 days ago | IN | 0 ETH | 0.00890213 | ||||
Mint | 18532306 | 380 days ago | IN | 0 ETH | 0.01366721 | ||||
Mint | 18529656 | 380 days ago | IN | 0 ETH | 0.02551968 | ||||
Set Merkle Root | 18528840 | 381 days ago | IN | 0 ETH | 0.00188221 | ||||
Mint | 18505766 | 384 days ago | IN | 0 ETH | 0.01590904 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
NethermorphsSummoning
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.4; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol"; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import "./interfaces/INethermorphs.sol"; import "@openzeppelin/contracts/security/Pausable.sol"; contract NethermorphsSummoning is Ownable, Pausable { address public constant BURN_ADDRESS = 0x000000000000000000000000000000000000dEaD; uint public maxRegularSupply; uint public maxRareSupply; INethermorphs public nethermorphsContract; IERC721 public totemsContract; mapping(bytes32 => bool) private _merkleRoots; constructor( address nethermorphsContractAddress, address totemsContractAddress, uint _maxRegularSupply, uint _maxRareSupply ) { nethermorphsContract = INethermorphs(nethermorphsContractAddress); totemsContract = IERC721(totemsContractAddress); maxRegularSupply = _maxRegularSupply; maxRareSupply = _maxRareSupply; } function mint( uint regularQty, uint rareQty, uint[][] calldata totemsToBurnForRegulars, uint[][] calldata totemsToBurnForRares, bytes32 merkleRoot, bytes32[] calldata merkleProof ) external whenNotPaused { require(regularQty == totemsToBurnForRegulars.length, "NethermorphsSummoning: Invalid regularQty"); require(rareQty == totemsToBurnForRares.length, "NethermorphsSummoning: Invalid rareQty"); require(nethermorphsContract.regularsMinted() + regularQty <= maxRegularSupply, "NethermorphsSummoning: Max regular supply exceeded"); require(nethermorphsContract.raresMinted() + rareQty <= maxRareSupply, "NethermorphsSummoning: Max rare supply exceeded"); require(_merkleRoots[merkleRoot], "NethermorphsSummoning: Invalid merkle root"); require(merkleProof.length > 0, "NethermorphsSummoning: Invalid merkle proof"); bytes32 leaf = _createLeaf(msg.sender, regularQty, rareQty, totemsToBurnForRegulars, totemsToBurnForRares); require(MerkleProof.verify(merkleProof, merkleRoot, leaf), "NethermorphsSummoning: Unable to verify merkle proof"); if (regularQty > 0) { for (uint i = 0; i < regularQty; i++) { for (uint j = 0; j < totemsToBurnForRegulars[i].length; j++) { totemsContract.transferFrom(msg.sender, BURN_ADDRESS, totemsToBurnForRegulars[i][j]); } } } if (rareQty > 0) { for (uint i = 0; i < rareQty; i++) { for (uint j = 0; j < totemsToBurnForRares[i].length; j++) { totemsContract.transferFrom(msg.sender, BURN_ADDRESS, totemsToBurnForRares[i][j]); } } } nethermorphsContract.mint(msg.sender, regularQty, rareQty); } function setNethermorphsContract(address _nethermorphsContract) public onlyOwner { nethermorphsContract = INethermorphs(_nethermorphsContract); } function setTotemsContract(address _totemsContract) public onlyOwner { totemsContract = IERC721(_totemsContract); } function setMaxRegularSupply(uint _maxRegularSupply) public onlyOwner { maxRegularSupply = _maxRegularSupply; } function setMaxRareSupply(uint _maxRareSupply) public onlyOwner { maxRareSupply = _maxRareSupply; } function setMerkleRoot(bytes32 merkleRoot, bool value) public onlyOwner { _merkleRoots[merkleRoot] = value; } function pause() public onlyOwner { _pause(); } function unpause() public onlyOwner { _unpause(); } function _createLeaf( address sender, uint regularsQty, uint raresQty, uint[][] calldata totemsToBurnForRegulars, uint[][] calldata totemsToBurnForRares ) private pure returns (bytes32) { bytes memory totemsToBurnForRegularsBytes; bytes memory totemsToBurnForRaresBytes; for (uint i = 0; i < totemsToBurnForRegulars.length; i++) { totemsToBurnForRegularsBytes = abi.encodePacked(totemsToBurnForRegularsBytes, totemsToBurnForRegulars[i]); } for (uint i = 0; i < totemsToBurnForRares.length; i++) { totemsToBurnForRaresBytes = abi.encodePacked(totemsToBurnForRaresBytes, totemsToBurnForRares[i]); } return keccak256(abi.encodePacked(sender, regularsQty, raresQty, totemsToBurnForRegularsBytes, totemsToBurnForRaresBytes)); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.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 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.7.0) (security/Pausable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { _requireNotPaused(); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { _requirePaused(); _; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Throws if the contract is paused. */ function _requireNotPaused() internal view virtual { require(!paused(), "Pausable: paused"); } /** * @dev Throws if the contract is not paused. */ function _requirePaused() internal view virtual { require(paused(), "Pausable: not paused"); } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * 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 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; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.8.0) (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 rebuild 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 totalHashes = proofFlags.length; // Check proof validity. require(leavesLen + proof.length - 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 for 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) { 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 rebuild 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 totalHashes = proofFlags.length; // Check proof validity. require(leavesLen + proof.length - 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 for 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) { 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 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 pragma solidity ^0.8.4; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; interface INethermorphs is IERC721 { function mint(address to, uint regularQty, uint rareQty) external; function regularsMinted() external view returns (uint); function raresMinted() external view returns (uint); function safeTransferFrom(address from, address to, uint256 tokenId) external override; }
{ "evmVersion": "istanbul", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "enabled": false, "runs": 200 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"nethermorphsContractAddress","type":"address"},{"internalType":"address","name":"totemsContractAddress","type":"address"},{"internalType":"uint256","name":"_maxRegularSupply","type":"uint256"},{"internalType":"uint256","name":"_maxRareSupply","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"BURN_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxRareSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxRegularSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"regularQty","type":"uint256"},{"internalType":"uint256","name":"rareQty","type":"uint256"},{"internalType":"uint256[][]","name":"totemsToBurnForRegulars","type":"uint256[][]"},{"internalType":"uint256[][]","name":"totemsToBurnForRares","type":"uint256[][]"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nethermorphsContract","outputs":[{"internalType":"contract INethermorphs","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxRareSupply","type":"uint256"}],"name":"setMaxRareSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxRegularSupply","type":"uint256"}],"name":"setMaxRegularSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_nethermorphsContract","type":"address"}],"name":"setNethermorphsContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_totemsContract","type":"address"}],"name":"setTotemsContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totemsContract","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040516200226938038062002269833981810160405281019062000037919062000205565b620000576200004b6200010b60201b60201c565b6200011360201b60201c565b60008060146101000a81548160ff02191690831515021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816001819055508060028190555050505050620002e3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050620001e881620002af565b92915050565b600081519050620001ff81620002c9565b92915050565b600080600080608085870312156200021c57600080fd5b60006200022c87828801620001d7565b94505060206200023f87828801620001d7565b93505060406200025287828801620001ee565b92505060606200026587828801620001ee565b91505092959194509250565b60006200027e8262000285565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b620002ba8162000271565b8114620002c657600080fd5b50565b620002d481620002a5565b8114620002e057600080fd5b50565b611f7680620002f36000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80638da5cb5b116100a2578063f2fde38b11610071578063f2fde38b14610234578063f4ba32e314610250578063f89ca46e1461026c578063fb4c13e114610288578063fccc2813146102a65761010b565b80638da5cb5b146101c0578063a8f1c6d8146101de578063b7f24320146101fa578063d86bcaee146102165761010b565b806356a8fe55116100de57806356a8fe55146101725780635c975abb1461018e578063715018a6146101ac5780638456cb59146101b65761010b565b806325ba5f56146101105780632e71e6171461012e5780633f4ba83a1461014a5780634d538bcc14610154575b600080fd5b6101186102c4565b6040516101259190611968565b60405180910390f35b61014860048036038101906101439190611298565b6102ca565b005b610152610316565b005b61015c610328565b60405161016991906117ed565b60405180910390f35b61018c60048036038101906101879190611298565b61034e565b005b61019661039a565b6040516101a391906117b7565b60405180910390f35b6101b46103b0565b005b6101be6103c4565b005b6101c86103d6565b6040516101d5919061172e565b60405180910390f35b6101f860048036038101906101f391906112c1565b6103ff565b005b610214600480360381019061020f91906112fd565b610436565b005b61021e610448565b60405161022b91906117d2565b60405180910390f35b61024e60048036038101906102499190611298565b61046e565b005b61026a6004803603810190610265919061134f565b6104f2565b005b610286600480360381019061028191906112fd565b610ca1565b005b610290610cb3565b60405161029d9190611968565b60405180910390f35b6102ae610cb9565b6040516102bb919061172e565b60405180910390f35b60025481565b6102d2610cbf565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61031e610cbf565b610326610d3d565b565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610356610cbf565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060149054906101000a900460ff16905090565b6103b8610cbf565b6103c26000610d9f565b565b6103cc610cbf565b6103d4610e63565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610407610cbf565b806005600084815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61043e610cbf565b8060028190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610476610cbf565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156104e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104dd90611828565b60405180910390fd5b6104ef81610d9f565b50565b6104fa610ec6565b86869050891461053f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053690611888565b60405180910390fd5b848490508814610584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057b906118c8565b60405180910390fd5b60015489600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a60cd206040518163ffffffff1660e01b815260040160206040518083038186803b1580156105f057600080fd5b505afa158015610604573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106289190611326565b6106329190611a0c565b1115610673576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066a90611908565b60405180910390fd5b60025488600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166304e510eb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106df57600080fd5b505afa1580156106f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107179190611326565b6107219190611a0c565b1115610762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075990611868565b60405180910390fd5b6005600084815260200190815260200160002060009054906101000a900460ff166107c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b990611948565b60405180910390fd5b60008282905011610808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ff906118e8565b60405180910390fd5b6000610819338b8b8b8b8b8b610f10565b9050610867838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508583611075565b6108a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089d90611848565b60405180910390fd5b60008a1115610a555760005b8a811015610a535760005b8989838181106108f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020028101906109089190611983565b9050811015610a3f57600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3361dead8d8d8781811061098c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200281019061099e9190611983565b868181106109d5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201356040518463ffffffff1660e01b81526004016109fa93929190611749565b600060405180830381600087803b158015610a1457600080fd5b505af1158015610a28573d6000803e3d6000fd5b505050508080610a3790611b3e565b9150506108bd565b508080610a4b90611b3e565b9150506108b2565b505b6000891115610c045760005b89811015610c025760005b878783818110610aa5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002810190610ab79190611983565b9050811015610bee57600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3361dead8b8b87818110610b3b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002810190610b4d9190611983565b86818110610b84577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201356040518463ffffffff1660e01b8152600401610ba993929190611749565b600060405180830381600087803b158015610bc357600080fd5b505af1158015610bd7573d6000803e3d6000fd5b505050508080610be690611b3e565b915050610a6c565b508080610bfa90611b3e565b915050610a61565b505b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f6338c8c6040518463ffffffff1660e01b8152600401610c6393929190611780565b600060405180830381600087803b158015610c7d57600080fd5b505af1158015610c91573d6000803e3d6000fd5b5050505050505050505050505050565b610ca9610cbf565b8060018190555050565b60015481565b61dead81565b610cc761108c565b73ffffffffffffffffffffffffffffffffffffffff16610ce56103d6565b73ffffffffffffffffffffffffffffffffffffffff1614610d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3290611928565b60405180910390fd5b565b610d45611094565b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610d8861108c565b604051610d95919061172e565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b610e6b610ec6565b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610eaf61108c565b604051610ebc919061172e565b60405180910390a1565b610ece61039a565b15610f0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f05906118a8565b60405180910390fd5b565b600060608060005b87879050811015610fa55782888883818110610f5d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002810190610f6f9190611983565b604051602001610f8193929190611708565b60405160208183030381529060405292508080610f9d90611b3e565b915050610f18565b5060005b858590508110156110365781868683818110610fee577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020028101906110009190611983565b60405160200161101293929190611708565b6040516020818303038152906040529150808061102e90611b3e565b915050610fa9565b5089898984846040516020016110509594939291906116b1565b6040516020818303038152906040528051906020012092505050979650505050505050565b60008261108285846110dd565b1490509392505050565b600033905090565b61109c61039a565b6110db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d290611808565b60405180910390fd5b565b60008082905060005b845181101561114e576111398286838151811061112c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151611159565b9150808061114690611b3e565b9150506110e6565b508091505092915050565b60008183106111715761116c8284611184565b61117c565b61117b8383611184565b5b905092915050565b600082600052816020526040600020905092915050565b6000813590506111aa81611ee4565b92915050565b60008083601f8401126111c257600080fd5b8235905067ffffffffffffffff8111156111db57600080fd5b6020830191508360208202830111156111f357600080fd5b9250929050565b60008083601f84011261120c57600080fd5b8235905067ffffffffffffffff81111561122557600080fd5b60208301915083602082028301111561123d57600080fd5b9250929050565b60008135905061125381611efb565b92915050565b60008135905061126881611f12565b92915050565b60008135905061127d81611f29565b92915050565b60008151905061129281611f29565b92915050565b6000602082840312156112aa57600080fd5b60006112b88482850161119b565b91505092915050565b600080604083850312156112d457600080fd5b60006112e285828601611259565b92505060206112f385828601611244565b9150509250929050565b60006020828403121561130f57600080fd5b600061131d8482850161126e565b91505092915050565b60006020828403121561133857600080fd5b600061134684828501611283565b91505092915050565b600080600080600080600080600060c08a8c03121561136d57600080fd5b600061137b8c828d0161126e565b995050602061138c8c828d0161126e565b98505060408a013567ffffffffffffffff8111156113a957600080fd5b6113b58c828d016111b0565b975097505060608a013567ffffffffffffffff8111156113d457600080fd5b6113e08c828d016111b0565b955095505060806113f38c828d01611259565b93505060a08a013567ffffffffffffffff81111561141057600080fd5b61141c8c828d016111fa565b92509250509295985092959850929598565b61143781611a62565b82525050565b61144e61144982611a62565b611b87565b82525050565b600061146083856119e5565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561148f57600080fd5b6020830292506114a0838584611afc565b82840190509392505050565b6114b581611a74565b82525050565b60006114c6826119da565b6114d081856119f0565b93506114e0818560208601611b0b565b80840191505092915050565b6114f581611ab4565b82525050565b61150481611ad8565b82525050565b60006115176014836119fb565b915061152282611bf1565b602082019050919050565b600061153a6026836119fb565b915061154582611c1a565b604082019050919050565b600061155d6034836119fb565b915061156882611c69565b604082019050919050565b6000611580602f836119fb565b915061158b82611cb8565b604082019050919050565b60006115a36029836119fb565b91506115ae82611d07565b604082019050919050565b60006115c66010836119fb565b91506115d182611d56565b602082019050919050565b60006115e96026836119fb565b91506115f482611d7f565b604082019050919050565b600061160c602b836119fb565b915061161782611dce565b604082019050919050565b600061162f6032836119fb565b915061163a82611e1d565b604082019050919050565b60006116526020836119fb565b915061165d82611e6c565b602082019050919050565b6000611675602a836119fb565b915061168082611e95565b604082019050919050565b61169481611aaa565b82525050565b6116ab6116a682611aaa565b611bab565b82525050565b60006116bd828861143d565b6014820191506116cd828761169a565b6020820191506116dd828661169a565b6020820191506116ed82856114bb565b91506116f982846114bb565b91508190509695505050505050565b600061171482866114bb565b9150611721828486611454565b9150819050949350505050565b6000602082019050611743600083018461142e565b92915050565b600060608201905061175e600083018661142e565b61176b602083018561142e565b611778604083018461168b565b949350505050565b6000606082019050611795600083018661142e565b6117a2602083018561168b565b6117af604083018461168b565b949350505050565b60006020820190506117cc60008301846114ac565b92915050565b60006020820190506117e760008301846114ec565b92915050565b600060208201905061180260008301846114fb565b92915050565b600060208201905081810360008301526118218161150a565b9050919050565b600060208201905081810360008301526118418161152d565b9050919050565b6000602082019050818103600083015261186181611550565b9050919050565b6000602082019050818103600083015261188181611573565b9050919050565b600060208201905081810360008301526118a181611596565b9050919050565b600060208201905081810360008301526118c1816115b9565b9050919050565b600060208201905081810360008301526118e1816115dc565b9050919050565b60006020820190508181036000830152611901816115ff565b9050919050565b6000602082019050818103600083015261192181611622565b9050919050565b6000602082019050818103600083015261194181611645565b9050919050565b6000602082019050818103600083015261196181611668565b9050919050565b600060208201905061197d600083018461168b565b92915050565b6000808335600160200384360303811261199c57600080fd5b80840192508235915067ffffffffffffffff8211156119ba57600080fd5b6020830192506020820236038313156119d257600080fd5b509250929050565b600081519050919050565b600081905092915050565b600081905092915050565b600082825260208201905092915050565b6000611a1782611aaa565b9150611a2283611aaa565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611a5757611a56611bb5565b5b828201905092915050565b6000611a6d82611a8a565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611abf82611ac6565b9050919050565b6000611ad182611a8a565b9050919050565b6000611ae382611aea565b9050919050565b6000611af582611a8a565b9050919050565b82818337600083830152505050565b60005b83811015611b29578082015181840152602081019050611b0e565b83811115611b38576000848401525b50505050565b6000611b4982611aaa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611b7c57611b7b611bb5565b5b600182019050919050565b6000611b9282611b99565b9050919050565b6000611ba482611be4565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160601b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4e65746865726d6f7270687353756d6d6f6e696e673a20556e61626c6520746f60008201527f20766572696679206d65726b6c652070726f6f66000000000000000000000000602082015250565b7f4e65746865726d6f7270687353756d6d6f6e696e673a204d617820726172652060008201527f737570706c792065786365656465640000000000000000000000000000000000602082015250565b7f4e65746865726d6f7270687353756d6d6f6e696e673a20496e76616c6964207260008201527f6567756c61725174790000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f4e65746865726d6f7270687353756d6d6f6e696e673a20496e76616c6964207260008201527f6172655174790000000000000000000000000000000000000000000000000000602082015250565b7f4e65746865726d6f7270687353756d6d6f6e696e673a20496e76616c6964206d60008201527f65726b6c652070726f6f66000000000000000000000000000000000000000000602082015250565b7f4e65746865726d6f7270687353756d6d6f6e696e673a204d617820726567756c60008201527f617220737570706c792065786365656465640000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4e65746865726d6f7270687353756d6d6f6e696e673a20496e76616c6964206d60008201527f65726b6c6520726f6f7400000000000000000000000000000000000000000000602082015250565b611eed81611a62565b8114611ef857600080fd5b50565b611f0481611a74565b8114611f0f57600080fd5b50565b611f1b81611a80565b8114611f2657600080fd5b50565b611f3281611aaa565b8114611f3d57600080fd5b5056fea2646970667358221220b03dd0e8fbac25bc3bf35bdd8249a306c9f3f13631262e5fd4cd89e4f0398bce64736f6c63430008040033000000000000000000000000cebdb45336ac427c6099e807af1bafce82c9bc680000000000000000000000003cabf160081387cd7dcb775434339c42c232e23a000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000028
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80638da5cb5b116100a2578063f2fde38b11610071578063f2fde38b14610234578063f4ba32e314610250578063f89ca46e1461026c578063fb4c13e114610288578063fccc2813146102a65761010b565b80638da5cb5b146101c0578063a8f1c6d8146101de578063b7f24320146101fa578063d86bcaee146102165761010b565b806356a8fe55116100de57806356a8fe55146101725780635c975abb1461018e578063715018a6146101ac5780638456cb59146101b65761010b565b806325ba5f56146101105780632e71e6171461012e5780633f4ba83a1461014a5780634d538bcc14610154575b600080fd5b6101186102c4565b6040516101259190611968565b60405180910390f35b61014860048036038101906101439190611298565b6102ca565b005b610152610316565b005b61015c610328565b60405161016991906117ed565b60405180910390f35b61018c60048036038101906101879190611298565b61034e565b005b61019661039a565b6040516101a391906117b7565b60405180910390f35b6101b46103b0565b005b6101be6103c4565b005b6101c86103d6565b6040516101d5919061172e565b60405180910390f35b6101f860048036038101906101f391906112c1565b6103ff565b005b610214600480360381019061020f91906112fd565b610436565b005b61021e610448565b60405161022b91906117d2565b60405180910390f35b61024e60048036038101906102499190611298565b61046e565b005b61026a6004803603810190610265919061134f565b6104f2565b005b610286600480360381019061028191906112fd565b610ca1565b005b610290610cb3565b60405161029d9190611968565b60405180910390f35b6102ae610cb9565b6040516102bb919061172e565b60405180910390f35b60025481565b6102d2610cbf565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61031e610cbf565b610326610d3d565b565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610356610cbf565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060149054906101000a900460ff16905090565b6103b8610cbf565b6103c26000610d9f565b565b6103cc610cbf565b6103d4610e63565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610407610cbf565b806005600084815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61043e610cbf565b8060028190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610476610cbf565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156104e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104dd90611828565b60405180910390fd5b6104ef81610d9f565b50565b6104fa610ec6565b86869050891461053f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053690611888565b60405180910390fd5b848490508814610584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057b906118c8565b60405180910390fd5b60015489600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a60cd206040518163ffffffff1660e01b815260040160206040518083038186803b1580156105f057600080fd5b505afa158015610604573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106289190611326565b6106329190611a0c565b1115610673576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066a90611908565b60405180910390fd5b60025488600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166304e510eb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106df57600080fd5b505afa1580156106f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107179190611326565b6107219190611a0c565b1115610762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075990611868565b60405180910390fd5b6005600084815260200190815260200160002060009054906101000a900460ff166107c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b990611948565b60405180910390fd5b60008282905011610808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ff906118e8565b60405180910390fd5b6000610819338b8b8b8b8b8b610f10565b9050610867838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508583611075565b6108a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089d90611848565b60405180910390fd5b60008a1115610a555760005b8a811015610a535760005b8989838181106108f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020028101906109089190611983565b9050811015610a3f57600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3361dead8d8d8781811061098c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200281019061099e9190611983565b868181106109d5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201356040518463ffffffff1660e01b81526004016109fa93929190611749565b600060405180830381600087803b158015610a1457600080fd5b505af1158015610a28573d6000803e3d6000fd5b505050508080610a3790611b3e565b9150506108bd565b508080610a4b90611b3e565b9150506108b2565b505b6000891115610c045760005b89811015610c025760005b878783818110610aa5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002810190610ab79190611983565b9050811015610bee57600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3361dead8b8b87818110610b3b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002810190610b4d9190611983565b86818110610b84577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201356040518463ffffffff1660e01b8152600401610ba993929190611749565b600060405180830381600087803b158015610bc357600080fd5b505af1158015610bd7573d6000803e3d6000fd5b505050508080610be690611b3e565b915050610a6c565b508080610bfa90611b3e565b915050610a61565b505b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f6338c8c6040518463ffffffff1660e01b8152600401610c6393929190611780565b600060405180830381600087803b158015610c7d57600080fd5b505af1158015610c91573d6000803e3d6000fd5b5050505050505050505050505050565b610ca9610cbf565b8060018190555050565b60015481565b61dead81565b610cc761108c565b73ffffffffffffffffffffffffffffffffffffffff16610ce56103d6565b73ffffffffffffffffffffffffffffffffffffffff1614610d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3290611928565b60405180910390fd5b565b610d45611094565b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610d8861108c565b604051610d95919061172e565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b610e6b610ec6565b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610eaf61108c565b604051610ebc919061172e565b60405180910390a1565b610ece61039a565b15610f0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f05906118a8565b60405180910390fd5b565b600060608060005b87879050811015610fa55782888883818110610f5d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002810190610f6f9190611983565b604051602001610f8193929190611708565b60405160208183030381529060405292508080610f9d90611b3e565b915050610f18565b5060005b858590508110156110365781868683818110610fee577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020028101906110009190611983565b60405160200161101293929190611708565b6040516020818303038152906040529150808061102e90611b3e565b915050610fa9565b5089898984846040516020016110509594939291906116b1565b6040516020818303038152906040528051906020012092505050979650505050505050565b60008261108285846110dd565b1490509392505050565b600033905090565b61109c61039a565b6110db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d290611808565b60405180910390fd5b565b60008082905060005b845181101561114e576111398286838151811061112c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151611159565b9150808061114690611b3e565b9150506110e6565b508091505092915050565b60008183106111715761116c8284611184565b61117c565b61117b8383611184565b5b905092915050565b600082600052816020526040600020905092915050565b6000813590506111aa81611ee4565b92915050565b60008083601f8401126111c257600080fd5b8235905067ffffffffffffffff8111156111db57600080fd5b6020830191508360208202830111156111f357600080fd5b9250929050565b60008083601f84011261120c57600080fd5b8235905067ffffffffffffffff81111561122557600080fd5b60208301915083602082028301111561123d57600080fd5b9250929050565b60008135905061125381611efb565b92915050565b60008135905061126881611f12565b92915050565b60008135905061127d81611f29565b92915050565b60008151905061129281611f29565b92915050565b6000602082840312156112aa57600080fd5b60006112b88482850161119b565b91505092915050565b600080604083850312156112d457600080fd5b60006112e285828601611259565b92505060206112f385828601611244565b9150509250929050565b60006020828403121561130f57600080fd5b600061131d8482850161126e565b91505092915050565b60006020828403121561133857600080fd5b600061134684828501611283565b91505092915050565b600080600080600080600080600060c08a8c03121561136d57600080fd5b600061137b8c828d0161126e565b995050602061138c8c828d0161126e565b98505060408a013567ffffffffffffffff8111156113a957600080fd5b6113b58c828d016111b0565b975097505060608a013567ffffffffffffffff8111156113d457600080fd5b6113e08c828d016111b0565b955095505060806113f38c828d01611259565b93505060a08a013567ffffffffffffffff81111561141057600080fd5b61141c8c828d016111fa565b92509250509295985092959850929598565b61143781611a62565b82525050565b61144e61144982611a62565b611b87565b82525050565b600061146083856119e5565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561148f57600080fd5b6020830292506114a0838584611afc565b82840190509392505050565b6114b581611a74565b82525050565b60006114c6826119da565b6114d081856119f0565b93506114e0818560208601611b0b565b80840191505092915050565b6114f581611ab4565b82525050565b61150481611ad8565b82525050565b60006115176014836119fb565b915061152282611bf1565b602082019050919050565b600061153a6026836119fb565b915061154582611c1a565b604082019050919050565b600061155d6034836119fb565b915061156882611c69565b604082019050919050565b6000611580602f836119fb565b915061158b82611cb8565b604082019050919050565b60006115a36029836119fb565b91506115ae82611d07565b604082019050919050565b60006115c66010836119fb565b91506115d182611d56565b602082019050919050565b60006115e96026836119fb565b91506115f482611d7f565b604082019050919050565b600061160c602b836119fb565b915061161782611dce565b604082019050919050565b600061162f6032836119fb565b915061163a82611e1d565b604082019050919050565b60006116526020836119fb565b915061165d82611e6c565b602082019050919050565b6000611675602a836119fb565b915061168082611e95565b604082019050919050565b61169481611aaa565b82525050565b6116ab6116a682611aaa565b611bab565b82525050565b60006116bd828861143d565b6014820191506116cd828761169a565b6020820191506116dd828661169a565b6020820191506116ed82856114bb565b91506116f982846114bb565b91508190509695505050505050565b600061171482866114bb565b9150611721828486611454565b9150819050949350505050565b6000602082019050611743600083018461142e565b92915050565b600060608201905061175e600083018661142e565b61176b602083018561142e565b611778604083018461168b565b949350505050565b6000606082019050611795600083018661142e565b6117a2602083018561168b565b6117af604083018461168b565b949350505050565b60006020820190506117cc60008301846114ac565b92915050565b60006020820190506117e760008301846114ec565b92915050565b600060208201905061180260008301846114fb565b92915050565b600060208201905081810360008301526118218161150a565b9050919050565b600060208201905081810360008301526118418161152d565b9050919050565b6000602082019050818103600083015261186181611550565b9050919050565b6000602082019050818103600083015261188181611573565b9050919050565b600060208201905081810360008301526118a181611596565b9050919050565b600060208201905081810360008301526118c1816115b9565b9050919050565b600060208201905081810360008301526118e1816115dc565b9050919050565b60006020820190508181036000830152611901816115ff565b9050919050565b6000602082019050818103600083015261192181611622565b9050919050565b6000602082019050818103600083015261194181611645565b9050919050565b6000602082019050818103600083015261196181611668565b9050919050565b600060208201905061197d600083018461168b565b92915050565b6000808335600160200384360303811261199c57600080fd5b80840192508235915067ffffffffffffffff8211156119ba57600080fd5b6020830192506020820236038313156119d257600080fd5b509250929050565b600081519050919050565b600081905092915050565b600081905092915050565b600082825260208201905092915050565b6000611a1782611aaa565b9150611a2283611aaa565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611a5757611a56611bb5565b5b828201905092915050565b6000611a6d82611a8a565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611abf82611ac6565b9050919050565b6000611ad182611a8a565b9050919050565b6000611ae382611aea565b9050919050565b6000611af582611a8a565b9050919050565b82818337600083830152505050565b60005b83811015611b29578082015181840152602081019050611b0e565b83811115611b38576000848401525b50505050565b6000611b4982611aaa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611b7c57611b7b611bb5565b5b600182019050919050565b6000611b9282611b99565b9050919050565b6000611ba482611be4565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160601b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4e65746865726d6f7270687353756d6d6f6e696e673a20556e61626c6520746f60008201527f20766572696679206d65726b6c652070726f6f66000000000000000000000000602082015250565b7f4e65746865726d6f7270687353756d6d6f6e696e673a204d617820726172652060008201527f737570706c792065786365656465640000000000000000000000000000000000602082015250565b7f4e65746865726d6f7270687353756d6d6f6e696e673a20496e76616c6964207260008201527f6567756c61725174790000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f4e65746865726d6f7270687353756d6d6f6e696e673a20496e76616c6964207260008201527f6172655174790000000000000000000000000000000000000000000000000000602082015250565b7f4e65746865726d6f7270687353756d6d6f6e696e673a20496e76616c6964206d60008201527f65726b6c652070726f6f66000000000000000000000000000000000000000000602082015250565b7f4e65746865726d6f7270687353756d6d6f6e696e673a204d617820726567756c60008201527f617220737570706c792065786365656465640000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4e65746865726d6f7270687353756d6d6f6e696e673a20496e76616c6964206d60008201527f65726b6c6520726f6f7400000000000000000000000000000000000000000000602082015250565b611eed81611a62565b8114611ef857600080fd5b50565b611f0481611a74565b8114611f0f57600080fd5b50565b611f1b81611a80565b8114611f2657600080fd5b50565b611f3281611aaa565b8114611f3d57600080fd5b5056fea2646970667358221220b03dd0e8fbac25bc3bf35bdd8249a306c9f3f13631262e5fd4cd89e4f0398bce64736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000cebdb45336ac427c6099e807af1bafce82c9bc680000000000000000000000003cabf160081387cd7dcb775434339c42c232e23a000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000028
-----Decoded View---------------
Arg [0] : nethermorphsContractAddress (address): 0xcEbdb45336ac427c6099E807AF1BAfce82C9Bc68
Arg [1] : totemsContractAddress (address): 0x3CabF160081387cd7Dcb775434339c42c232e23A
Arg [2] : _maxRegularSupply (uint256): 60
Arg [3] : _maxRareSupply (uint256): 40
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000cebdb45336ac427c6099e807af1bafce82c9bc68
Arg [1] : 0000000000000000000000003cabf160081387cd7dcb775434339c42c232e23a
Arg [2] : 000000000000000000000000000000000000000000000000000000000000003c
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000028
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.