Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 43 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Mint Public Batc... | 16320431 | 759 days ago | IN | 0 ETH | 0.03747635 | ||||
Mint Public Batc... | 16320383 | 759 days ago | IN | 0 ETH | 0.021496 | ||||
Mint Allow List | 16320376 | 759 days ago | IN | 0 ETH | 0.02466563 | ||||
Mint Public | 16320302 | 759 days ago | IN | 0 ETH | 0.00912882 | ||||
Mint Public Batc... | 16320256 | 759 days ago | IN | 0 ETH | 0.0408098 | ||||
Mint Public Batc... | 16320126 | 759 days ago | IN | 0 ETH | 0.01497334 | ||||
Mint Public Batc... | 16320121 | 759 days ago | IN | 0 ETH | 0.0157792 | ||||
Mint Public Batc... | 16320099 | 759 days ago | IN | 0 ETH | 0.03506028 | ||||
Mint Public Batc... | 16320083 | 759 days ago | IN | 0 ETH | 0.07541813 | ||||
Mint Public Batc... | 16320079 | 759 days ago | IN | 0 ETH | 0.02324224 | ||||
Mint Public Batc... | 16320045 | 759 days ago | IN | 0 ETH | 0.0729366 | ||||
Mint Public Batc... | 16317665 | 759 days ago | IN | 0 ETH | 0.06728189 | ||||
Mint Public Batc... | 16317434 | 759 days ago | IN | 0 ETH | 0.07179886 | ||||
Mint Public Batc... | 16316341 | 760 days ago | IN | 0 ETH | 0.0198028 | ||||
Mint Public Batc... | 16316308 | 760 days ago | IN | 0 ETH | 0.06614453 | ||||
Mint Public | 16316217 | 760 days ago | IN | 0 ETH | 0.00679418 | ||||
Mint Public Batc... | 16316197 | 760 days ago | IN | 0 ETH | 0.03954908 | ||||
Mint Public Batc... | 16316188 | 760 days ago | IN | 0 ETH | 0.03700735 | ||||
Mint Public Batc... | 16316185 | 760 days ago | IN | 0 ETH | 0.03505601 | ||||
Mint Public Batc... | 16316093 | 760 days ago | IN | 0 ETH | 0.02065359 | ||||
Mint Public Batc... | 16316086 | 760 days ago | IN | 0 ETH | 0.02093771 | ||||
Mint Public Batc... | 16316061 | 760 days ago | IN | 0 ETH | 0.01851525 | ||||
Mint Public Batc... | 16316036 | 760 days ago | IN | 0 ETH | 0.01364467 | ||||
Mint Public | 16316010 | 760 days ago | IN | 0 ETH | 0.00801114 | ||||
Mint Public | 16315994 | 760 days ago | IN | 0 ETH | 0.00804993 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
FiefdomsMinter
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.17; import "openzeppelin/utils/cryptography/MerkleProof.sol"; interface IFiefdomsKingdom { function mintBatch(address to, uint256 amount) external; function mint(address to) external; function setMinter(address newMinter) external; } contract FiefdomsMinter { IFiefdomsKingdom public fiefdomsKingdom; address public owner; bytes32 public merkleRoot; bool public isPublicMintable; uint256 public maxPerAllowed; mapping(address => uint256) public claimed; constructor(address addr) { owner = msg.sender; maxPerAllowed = 7; fiefdomsKingdom = IFiefdomsKingdom(addr); } modifier onlyOwner() { require(msg.sender == owner, "Only owner can call this function"); _; } function transferMinter(address newMinter) external onlyOwner { fiefdomsKingdom.setMinter(newMinter); } function setMerkleRoot(bytes32 root) external onlyOwner { merkleRoot = root; } function setAllowedPerMint(uint256 amount) external onlyOwner { maxPerAllowed = amount; } function setPublicMintable(bool isPublic) external onlyOwner { isPublicMintable = isPublic; } function mintAllowList( address to, uint256 amount, bytes32[] calldata merkleProof ) external { require( claimed[to] + amount <= maxPerAllowed, "Exceeds max allowed per address" ); require(verify(to, merkleProof), "Invalid proof"); claimed[to] += amount; fiefdomsKingdom.mintBatch(to, amount); } function mintPublic(address to) external { require(isPublicMintable, "Public minting is not allowed"); fiefdomsKingdom.mint(to); } function mintPublicBatch(address to, uint256 amount) external { require(isPublicMintable, "Public minting is not allowed"); fiefdomsKingdom.mintBatch(to, amount); } function verify(address to, bytes32[] calldata merkleProof) public view returns (bool) { return MerkleProof.verifyCalldata( merkleProof, merkleRoot, keccak256(abi.encodePacked(to)) ); } }
// 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 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 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 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 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) } } }
{ "remappings": [ "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", "openzeppelin/=lib/openzeppelin-contracts/contracts/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "bytecodeHash": "ipfs" }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "london", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fiefdomsKingdom","outputs":[{"internalType":"contract IFiefdomsKingdom","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPublicMintable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPerAllowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"mintAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mintPublic","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintPublicBatch","outputs":[],"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":"setAllowedPerMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"root","type":"bytes32"}],"name":"setMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isPublic","type":"bool"}],"name":"setPublicMintable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMinter","type":"address"}],"name":"transferMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"verify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516109e43803806109e483398101604081905261002f91610067565b60018054336001600160a01b0319918216179091556007600455600080549091166001600160a01b0392909216919091179055610097565b60006020828403121561007957600080fd5b81516001600160a01b038116811461009057600080fd5b9392505050565b61093e806100a66000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063a06cb7191161008c578063c884ef8311610066578063c884ef83146101d0578063d70e7b7e146101f0578063fbd9664414610203578063fe99ad5a1461021657600080fd5b8063a06cb71914610197578063b76a0df4146101aa578063b9a6a2fd146101bd57600080fd5b80635ff41a66116100c85780635ff41a661461013f57806363ba509d146101545780637cb64759146101715780638da5cb5b1461018457600080fd5b80630eb5cfe6146100ef5780632eb4a7ab1461010b5780635d7f884e14610114575b600080fd5b6100f860045481565b6040519081526020015b60405180910390f35b6100f860025481565b600054610127906001600160a01b031681565b6040516001600160a01b039091168152602001610102565b61015261014d36600461073b565b610229565b005b6003546101619060ff1681565b6040519015158152602001610102565b61015261017f366004610795565b610383565b600154610127906001600160a01b031681565b6101526101a53660046107ae565b6103b2565b6101616101b83660046107c9565b610467565b6101526101cb366004610795565b6104b7565b6100f86101de3660046107ae565b60056020526000908152604090205481565b6101526101fe36600461081c565b6104e6565b610152610211366004610846565b6105a2565b6101526102243660046107ae565b6105df565b6004546001600160a01b038516600090815260056020526040902054610250908590610885565b11156102a35760405162461bcd60e51b815260206004820152601f60248201527f45786365656473206d617820616c6c6f7765642070657220616464726573730060448201526064015b60405180910390fd5b6102ae848383610467565b6102ea5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b210383937b7b360991b604482015260640161029a565b6001600160a01b03841660009081526005602052604081208054859290610312908490610885565b9091555050600054604051630922dc7f60e21b81526001600160a01b038681166004830152602482018690529091169063248b71fc90604401600060405180830381600087803b15801561036557600080fd5b505af1158015610379573d6000803e3d6000fd5b5050505050505050565b6001546001600160a01b031633146103ad5760405162461bcd60e51b815260040161029a90610898565b600255565b60035460ff166104045760405162461bcd60e51b815260206004820152601d60248201527f5075626c6963206d696e74696e67206973206e6f7420616c6c6f776564000000604482015260640161029a565b6000546040516335313c2160e11b81526001600160a01b03838116600483015290911690636a627842906024015b600060405180830381600087803b15801561044c57600080fd5b505af1158015610460573d6000803e3d6000fd5b5050505050565b6002546040516bffffffffffffffffffffffff19606086901b1660208201526000916104af91859185916034016040516020818303038152906040528051906020012061063b565b949350505050565b6001546001600160a01b031633146104e15760405162461bcd60e51b815260040161029a90610898565b600455565b60035460ff166105385760405162461bcd60e51b815260206004820152601d60248201527f5075626c6963206d696e74696e67206973206e6f7420616c6c6f776564000000604482015260640161029a565b600054604051630922dc7f60e21b81526001600160a01b038481166004830152602482018490529091169063248b71fc90604401600060405180830381600087803b15801561058657600080fd5b505af115801561059a573d6000803e3d6000fd5b505050505050565b6001546001600160a01b031633146105cc5760405162461bcd60e51b815260040161029a90610898565b6003805460ff1916911515919091179055565b6001546001600160a01b031633146106095760405162461bcd60e51b815260040161029a90610898565b600054604051637e51dad560e11b81526001600160a01b0383811660048301529091169063fca3b5aa90602401610432565b600082610649868685610653565b1495945050505050565b600081815b848110156106965761068282878784818110610676576106766108d9565b9050602002013561069f565b91508061068e816108ef565b915050610658565b50949350505050565b60008183106106bb5760008281526020849052604090206106ca565b60008381526020839052604090205b90505b92915050565b80356001600160a01b03811681146106ea57600080fd5b919050565b60008083601f84011261070157600080fd5b50813567ffffffffffffffff81111561071957600080fd5b6020830191508360208260051b850101111561073457600080fd5b9250929050565b6000806000806060858703121561075157600080fd5b61075a856106d3565b935060208501359250604085013567ffffffffffffffff81111561077d57600080fd5b610789878288016106ef565b95989497509550505050565b6000602082840312156107a757600080fd5b5035919050565b6000602082840312156107c057600080fd5b6106ca826106d3565b6000806000604084860312156107de57600080fd5b6107e7846106d3565b9250602084013567ffffffffffffffff81111561080357600080fd5b61080f868287016106ef565b9497909650939450505050565b6000806040838503121561082f57600080fd5b610838836106d3565b946020939093013593505050565b60006020828403121561085857600080fd5b8135801515811461086857600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156106cd576106cd61086f565b60208082526021908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f6040820152603760f91b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000600182016109015761090161086f565b506001019056fea2646970667358221220ef2d8ccce9c93f97941c45ec421264c03820ebe704ed05e5053efe0e18512f7064736f6c634300081100330000000000000000000000004507c566e756e000f976fd2bfa7f6ec9e90bd667
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063a06cb7191161008c578063c884ef8311610066578063c884ef83146101d0578063d70e7b7e146101f0578063fbd9664414610203578063fe99ad5a1461021657600080fd5b8063a06cb71914610197578063b76a0df4146101aa578063b9a6a2fd146101bd57600080fd5b80635ff41a66116100c85780635ff41a661461013f57806363ba509d146101545780637cb64759146101715780638da5cb5b1461018457600080fd5b80630eb5cfe6146100ef5780632eb4a7ab1461010b5780635d7f884e14610114575b600080fd5b6100f860045481565b6040519081526020015b60405180910390f35b6100f860025481565b600054610127906001600160a01b031681565b6040516001600160a01b039091168152602001610102565b61015261014d36600461073b565b610229565b005b6003546101619060ff1681565b6040519015158152602001610102565b61015261017f366004610795565b610383565b600154610127906001600160a01b031681565b6101526101a53660046107ae565b6103b2565b6101616101b83660046107c9565b610467565b6101526101cb366004610795565b6104b7565b6100f86101de3660046107ae565b60056020526000908152604090205481565b6101526101fe36600461081c565b6104e6565b610152610211366004610846565b6105a2565b6101526102243660046107ae565b6105df565b6004546001600160a01b038516600090815260056020526040902054610250908590610885565b11156102a35760405162461bcd60e51b815260206004820152601f60248201527f45786365656473206d617820616c6c6f7765642070657220616464726573730060448201526064015b60405180910390fd5b6102ae848383610467565b6102ea5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b210383937b7b360991b604482015260640161029a565b6001600160a01b03841660009081526005602052604081208054859290610312908490610885565b9091555050600054604051630922dc7f60e21b81526001600160a01b038681166004830152602482018690529091169063248b71fc90604401600060405180830381600087803b15801561036557600080fd5b505af1158015610379573d6000803e3d6000fd5b5050505050505050565b6001546001600160a01b031633146103ad5760405162461bcd60e51b815260040161029a90610898565b600255565b60035460ff166104045760405162461bcd60e51b815260206004820152601d60248201527f5075626c6963206d696e74696e67206973206e6f7420616c6c6f776564000000604482015260640161029a565b6000546040516335313c2160e11b81526001600160a01b03838116600483015290911690636a627842906024015b600060405180830381600087803b15801561044c57600080fd5b505af1158015610460573d6000803e3d6000fd5b5050505050565b6002546040516bffffffffffffffffffffffff19606086901b1660208201526000916104af91859185916034016040516020818303038152906040528051906020012061063b565b949350505050565b6001546001600160a01b031633146104e15760405162461bcd60e51b815260040161029a90610898565b600455565b60035460ff166105385760405162461bcd60e51b815260206004820152601d60248201527f5075626c6963206d696e74696e67206973206e6f7420616c6c6f776564000000604482015260640161029a565b600054604051630922dc7f60e21b81526001600160a01b038481166004830152602482018490529091169063248b71fc90604401600060405180830381600087803b15801561058657600080fd5b505af115801561059a573d6000803e3d6000fd5b505050505050565b6001546001600160a01b031633146105cc5760405162461bcd60e51b815260040161029a90610898565b6003805460ff1916911515919091179055565b6001546001600160a01b031633146106095760405162461bcd60e51b815260040161029a90610898565b600054604051637e51dad560e11b81526001600160a01b0383811660048301529091169063fca3b5aa90602401610432565b600082610649868685610653565b1495945050505050565b600081815b848110156106965761068282878784818110610676576106766108d9565b9050602002013561069f565b91508061068e816108ef565b915050610658565b50949350505050565b60008183106106bb5760008281526020849052604090206106ca565b60008381526020839052604090205b90505b92915050565b80356001600160a01b03811681146106ea57600080fd5b919050565b60008083601f84011261070157600080fd5b50813567ffffffffffffffff81111561071957600080fd5b6020830191508360208260051b850101111561073457600080fd5b9250929050565b6000806000806060858703121561075157600080fd5b61075a856106d3565b935060208501359250604085013567ffffffffffffffff81111561077d57600080fd5b610789878288016106ef565b95989497509550505050565b6000602082840312156107a757600080fd5b5035919050565b6000602082840312156107c057600080fd5b6106ca826106d3565b6000806000604084860312156107de57600080fd5b6107e7846106d3565b9250602084013567ffffffffffffffff81111561080357600080fd5b61080f868287016106ef565b9497909650939450505050565b6000806040838503121561082f57600080fd5b610838836106d3565b946020939093013593505050565b60006020828403121561085857600080fd5b8135801515811461086857600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156106cd576106cd61086f565b60208082526021908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f6040820152603760f91b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000600182016109015761090161086f565b506001019056fea2646970667358221220ef2d8ccce9c93f97941c45ec421264c03820ebe704ed05e5053efe0e18512f7064736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004507c566e756e000f976fd2bfa7f6ec9e90bd667
-----Decoded View---------------
Arg [0] : addr (address): 0x4507C566e756e000F976fD2bfa7F6Ec9E90bd667
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000004507c566e756e000f976fd2bfa7f6ec9e90bd667
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.