Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 369 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim Monk | 18657486 | 234 days ago | IN | 0 ETH | 0.01094507 | ||||
Claim Monk | 17818193 | 351 days ago | IN | 0 ETH | 0.00195668 | ||||
Claim Monk | 17035796 | 462 days ago | IN | 0 ETH | 0.00298676 | ||||
Claim Monk | 16717970 | 506 days ago | IN | 0 ETH | 0.00199016 | ||||
Claim Monk | 16470754 | 541 days ago | IN | 0 ETH | 0.00567036 | ||||
Claim Monk | 16453200 | 543 days ago | IN | 0 ETH | 0.00180495 | ||||
Claim Monk | 16384910 | 553 days ago | IN | 0 ETH | 0.00338844 | ||||
Claim Monk | 16265316 | 570 days ago | IN | 0 ETH | 0.00187473 | ||||
Claim Monk | 16259235 | 571 days ago | IN | 0 ETH | 0.00211587 | ||||
Claim Monk | 16237859 | 574 days ago | IN | 0 ETH | 0.001439 | ||||
Claim Monk | 16231875 | 574 days ago | IN | 0 ETH | 0.00170506 | ||||
Claim Monk | 16205962 | 578 days ago | IN | 0 ETH | 0.00168524 | ||||
Claim Monk | 16198879 | 579 days ago | IN | 0 ETH | 0.00660177 | ||||
Withdraw Ether | 16188650 | 580 days ago | IN | 0 ETH | 0.00039415 | ||||
Claim Monk | 16174240 | 582 days ago | IN | 0 ETH | 0.0069367 | ||||
Claim Monk | 16172102 | 583 days ago | IN | 0 ETH | 0.00238423 | ||||
Set Public Mint | 16172090 | 583 days ago | IN | 0 ETH | 0.00057195 | ||||
Public Mint | 16171843 | 583 days ago | IN | 0.05 ETH | 0.00151398 | ||||
Public Mint | 16171372 | 583 days ago | IN | 0.05 ETH | 0.00125127 | ||||
Claim Monk | 16171243 | 583 days ago | IN | 0 ETH | 0.00356059 | ||||
Public Mint | 16171150 | 583 days ago | IN | 0.1 ETH | 0.00194403 | ||||
Public Mint | 16171121 | 583 days ago | IN | 0.1 ETH | 0.00200851 | ||||
Public Mint | 16171105 | 583 days ago | IN | 0.05 ETH | 0.00152897 | ||||
Public Mint | 16171082 | 583 days ago | IN | 0.05 ETH | 0.00180113 | ||||
Public Mint | 16171023 | 583 days ago | IN | 0.05 ETH | 0.00150372 |
Loading...
Loading
Contract Name:
VXMonksMint
Compiler Version
v0.8.13+commit.abaa5c0e
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.13; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; import "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol"; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import "../interfaces/MonksI.sol"; import "../interfaces/MonksVXI.sol"; contract VXMonksMint is ReentrancyGuard, Ownable { bytes32 public merkleRoot; MonksI public monks; MonksVXI public monksVX; uint256 public newMonks = 2000; uint256 public price = 0.05 ether; bool public publicMintOpen = false; bool public claimingOpen = false; bool public whitelistOpen = false; mapping(address => uint256) public claimedPerWallet; event ClaimedMonks(address indexed _owner, uint16[] _monksIds); event ClaimedWhitelist(address indexed _owner, uint16[] _ids); event Claimed(address indexed _owner, uint16[] _ids); event ChangedPrice(uint256 _price); event MerkleRootChanged(bytes32 _merkleRoot); event SetContract(address _contract, string _type); event ChangedIdIndex(uint256 _newIndex); event PublicMint(address indexed _owner, uint16[] ids); event PublicMintToggled(bool isOpen); event WhiteListMintToggled(bool isOpen); event ClaimingToggled(bool isOpen); error NotOwner(); error AlreadyMinted(); error MaxSupplyReached(); error WrongAmount(); error WrongLeaf(); error WrongProof(); error CapReached(); error PublicMintClosed(); error ClaimingClosed(); error WhiteListClosed(); // solhint-disable-next-line function ClaimMonk(uint16[] calldata _tokenIds) external nonReentrant { if (claimingOpen == false) revert ClaimingClosed(); uint256 i; uint16[] memory ids = new uint16[](_tokenIds.length * 2); for (i; i < _tokenIds.length; ) { unchecked { uint16 currentToken = _tokenIds[i]; if (monks.balanceOf(msg.sender, currentToken) == 0) revert NotOwner(); ids[i] = currentToken; uint256 extraIndex = _tokenIds.length + i; ids[extraIndex] = currentToken + 500; i++; } } monksVX.mintBatch(msg.sender, ids); emit ClaimedMonks(msg.sender, ids); } function claimWhitelist( uint16 _whitelistedAmount, bytes32[] calldata _merkleProof ) external nonReentrant { if (whitelistOpen == false) revert WhiteListClosed(); //check merkle if (!MerkleProof.verify(_merkleProof, merkleRoot, keccak256(abi.encodePacked(msg.sender, _whitelistedAmount)))) revert WrongProof(); //checking how much he already minted if (claimedPerWallet[msg.sender] >= _whitelistedAmount) revert CapReached(); uint16[] memory ids = new uint16[](_whitelistedAmount); uint256 i; for (i; i < _whitelistedAmount; ) { unchecked { if (newMonks >= monksVX.MAX_SUPPLY()) revert MaxSupplyReached(); ids[i] = uint16(++newMonks); i++; } } claimedPerWallet[msg.sender] += _whitelistedAmount; monksVX.mintBatch(msg.sender, ids); emit ClaimedWhitelist(msg.sender, ids); } function publicMint(uint256 _amount) external payable nonReentrant { if (publicMintOpen == false) revert PublicMintClosed(); if (newMonks + _amount > monksVX.MAX_SUPPLY()) revert MaxSupplyReached(); require(_amount <= 10 && _amount > 0, "Max 10 mint per tx, min 1"); uint256 totalPriceToPay; uint16[] memory ids = new uint16[](_amount); uint256 i; for (i; i < _amount; ) { unchecked { ids[i] = uint16(++newMonks); totalPriceToPay += price; i++; } } if (msg.value != totalPriceToPay) revert WrongAmount(); monksVX.mintBatch(msg.sender, ids); emit PublicMint(msg.sender, ids); } function setMonks(MonksI _monks) external onlyOwner { monks = _monks; emit SetContract(address(_monks), "Monks"); } function setVXMonks(MonksVXI _vxMonks) external onlyOwner { monksVX = _vxMonks; emit SetContract(address(_vxMonks), "MonksVX"); } function setPrice(uint256 _newPrice) external onlyOwner { price = _newPrice; emit ChangedPrice(_newPrice); } function setNewMonks(uint256 _newMonks) external onlyOwner { newMonks = _newMonks; emit ChangedIdIndex(_newMonks); } function setPublicMint(bool isOpen) external onlyOwner { publicMintOpen = isOpen; emit PublicMintToggled(isOpen); } function setWl(bool isOpen) external onlyOwner { whitelistOpen = isOpen; emit PublicMintToggled(isOpen); } function setClaiming(bool isOpen) external onlyOwner { claimingOpen = isOpen; emit PublicMintToggled(isOpen); } /** * @notice sets merkle root */ function setMerkleRoot(bytes32 _merkleRoot) external onlyOwner { merkleRoot = _merkleRoot; emit MerkleRootChanged(_merkleRoot); } function withdrawEther() external onlyOwner { address payable to = payable(msg.sender); to.transfer(address(this).balance); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (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 Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (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() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.5.0) (utils/cryptography/MerkleProof.sol) pragma solidity ^0.8.0; /** * @dev These functions deal with verification of Merkle Trees proofs. * * The proofs can be generated using the JavaScript library * https://github.com/miguelmota/merkletreejs[merkletreejs]. * Note: the hashing algorithm should be keccak256 and pair sorting should be enabled. * * See `test/utils/cryptography/MerkleProof.test.js` for some examples. */ 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 Returns the rebuilt hash obtained by traversing a Merklee 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++) { bytes32 proofElement = proof[i]; if (computedHash <= proofElement) { // Hash(current computed hash + current element of the proof) computedHash = _efficientHash(computedHash, proofElement); } else { // Hash(current element of the proof + current computed hash) computedHash = _efficientHash(proofElement, computedHash); } } return computedHash; } function _efficientHash(bytes32 a, bytes32 b) private pure returns (bytes32 value) { assembly { mstore(0x00, a) mstore(0x20, b) value := keccak256(0x00, 0x40) } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (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`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; }
//SPDX-License-Identifier: MIT pragma solidity 0.8.13; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/token/ERC1155/IERC1155.sol"; import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; abstract contract MonksI is IERC1155, Ownable, ReentrancyGuard {}
//SPDX-License-Identifier: MIT pragma solidity 0.8.13; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; abstract contract MonksVXI is Ownable, IERC721 { function mint(address _owner, uint256 _tokenId) external virtual; function mintBatch(address _owner, uint16[] calldata _tokenIds) external virtual; function exists(uint256 _tokenId) external view virtual returns (bool); function tokensOfOwner(address _owner) external view virtual returns (uint256[] memory); function MAX_SUPPLY() external view virtual returns (uint256); }
// 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 v4.4.1 (utils/introspection/IERC165.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC1155/IERC1155.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC1155 compliant contract, as defined in the * https://eips.ethereum.org/EIPS/eip-1155[EIP]. * * _Available since v3.1._ */ interface IERC1155 is IERC165 { /** * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`. */ event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value); /** * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all * transfers. */ event TransferBatch( address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values ); /** * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to * `approved`. */ event ApprovalForAll(address indexed account, address indexed operator, bool approved); /** * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. * * If an {URI} event was emitted for `id`, the standard * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value * returned by {IERC1155MetadataURI-uri}. */ event URI(string value, uint256 indexed id); /** * @dev Returns the amount of tokens of token type `id` owned by `account`. * * Requirements: * * - `account` cannot be the zero address. */ function balanceOf(address account, uint256 id) external view returns (uint256); /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. * * Requirements: * * - `accounts` and `ids` must have the same length. */ function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids) external view returns (uint256[] memory); /** * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, * * Emits an {ApprovalForAll} event. * * Requirements: * * - `operator` cannot be the caller. */ function setApprovalForAll(address operator, bool approved) external; /** * @dev Returns true if `operator` is approved to transfer ``account``'s tokens. * * See {setApprovalForAll}. */ function isApprovedForAll(address account, address operator) external view returns (bool); /** * @dev Transfers `amount` tokens of token type `id` from `from` to `to`. * * Emits a {TransferSingle} event. * * Requirements: * * - `to` cannot be the zero address. * - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}. * - `from` must have a balance of tokens of type `id` of at least `amount`. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the * acceptance magic value. */ function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes calldata data ) external; /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. * * Emits a {TransferBatch} event. * * Requirements: * * - `ids` and `amounts` must have the same length. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the * acceptance magic value. */ function safeBatchTransferFrom( address from, address to, uint256[] calldata ids, uint256[] calldata amounts, bytes calldata data ) external; }
{ "metadata": { "bytecodeHash": "none", "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"name":"AlreadyMinted","type":"error"},{"inputs":[],"name":"CapReached","type":"error"},{"inputs":[],"name":"ClaimingClosed","type":"error"},{"inputs":[],"name":"MaxSupplyReached","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"PublicMintClosed","type":"error"},{"inputs":[],"name":"WhiteListClosed","type":"error"},{"inputs":[],"name":"WrongAmount","type":"error"},{"inputs":[],"name":"WrongLeaf","type":"error"},{"inputs":[],"name":"WrongProof","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_newIndex","type":"uint256"}],"name":"ChangedIdIndex","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_price","type":"uint256"}],"name":"ChangedPrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":false,"internalType":"uint16[]","name":"_ids","type":"uint16[]"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":false,"internalType":"uint16[]","name":"_monksIds","type":"uint16[]"}],"name":"ClaimedMonks","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":false,"internalType":"uint16[]","name":"_ids","type":"uint16[]"}],"name":"ClaimedWhitelist","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"isOpen","type":"bool"}],"name":"ClaimingToggled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"_merkleRoot","type":"bytes32"}],"name":"MerkleRootChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":false,"internalType":"uint16[]","name":"ids","type":"uint16[]"}],"name":"PublicMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"isOpen","type":"bool"}],"name":"PublicMintToggled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_contract","type":"address"},{"indexed":false,"internalType":"string","name":"_type","type":"string"}],"name":"SetContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"isOpen","type":"bool"}],"name":"WhiteListMintToggled","type":"event"},{"inputs":[{"internalType":"uint16[]","name":"_tokenIds","type":"uint16[]"}],"name":"ClaimMonk","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_whitelistedAmount","type":"uint16"},{"internalType":"bytes32[]","name":"_merkleProof","type":"bytes32[]"}],"name":"claimWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimedPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"monks","outputs":[{"internalType":"contract MonksI","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"monksVX","outputs":[{"internalType":"contract MonksVXI","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newMonks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"publicMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"publicMintOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isOpen","type":"bool"}],"name":"setClaiming","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_merkleRoot","type":"bytes32"}],"name":"setMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract MonksI","name":"_monks","type":"address"}],"name":"setMonks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMonks","type":"uint256"}],"name":"setNewMonks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newPrice","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isOpen","type":"bool"}],"name":"setPublicMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract MonksVXI","name":"_vxMonks","type":"address"}],"name":"setVXMonks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isOpen","type":"bool"}],"name":"setWl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelistOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawEther","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526107d060055566b1a2bc2ec500006006556007805462ffffff1916905534801561002d57600080fd5b50600160005561003c33610041565b610093565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61156a806100a26000396000f3fe60806040526004361061014b5760003560e01c80637cb64759116100b65780639d34b6911161006f5780639d34b691146103a0578063a035b1fe146103c0578063bcc9ca5b146103d6578063c929db99146103f0578063f2fde38b14610410578063fb313b261461043057600080fd5b80637cb64759146102ec5780637db3aecc1461030c5780638600fe411461032c5780638da5cb5b1461034257806391b7f5ed1461036057806395ea30141461038057600080fd5b8063392d615a11610108578063392d615a146102265780633a6a821d1461025357806352c0a3fb146102735780636c7dda8e14610293578063715018a6146102c25780637362377b146102d757600080fd5b806309761a5d146101505780630e2d56cf1461017257806310ff426f146101925780632db11544146101cf5780632eb4a7ab146101e257806336c43deb14610206575b600080fd5b34801561015c57600080fd5b5061017061016b36600461128d565b610450565b005b34801561017e57600080fd5b5061017061018d3660046112cf565b6106da565b34801561019e57600080fd5b506003546101b2906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101706101dd3660046112f8565b61074c565b3480156101ee57600080fd5b506101f860025481565b6040519081526020016101c6565b34801561021257600080fd5b50610170610221366004611326565b6109e2565b34801561023257600080fd5b506101f8610241366004611326565b60086020526000908152604090205481565b34801561025f57600080fd5b5061017061026e3660046112cf565b610a76565b34801561027f57600080fd5b506004546101b2906001600160a01b031681565b34801561029f57600080fd5b506007546102b290610100900460ff1681565b60405190151581526020016101c6565b3480156102ce57600080fd5b50610170610aeb565b3480156102e357600080fd5b50610170610b21565b3480156102f857600080fd5b506101706103073660046112f8565b610b7d565b34801561031857600080fd5b506007546102b29062010000900460ff1681565b34801561033857600080fd5b506101f860055481565b34801561034e57600080fd5b506001546001600160a01b03166101b2565b34801561036c57600080fd5b5061017061037b3660046112f8565b610bdc565b34801561038c57600080fd5b5061017061039b3660046112f8565b610c3b565b3480156103ac57600080fd5b506101706103bb3660046112cf565b610c9a565b3480156103cc57600080fd5b506101f860065481565b3480156103e257600080fd5b506007546102b29060ff1681565b3480156103fc57600080fd5b5061017061040b366004611326565b610d0d565b34801561041c57600080fd5b5061017061042b366004611326565b610da3565b34801561043c57600080fd5b5061017061044b36600461135a565b610e3e565b60026000540361047b5760405162461bcd60e51b8152600401610472906113ad565b60405180910390fd5b60026000908155600754610100900460ff16151590036104ae576040516320288dad60e01b815260040160405180910390fd5b6000806104bc8360026113fa565b67ffffffffffffffff8111156104d4576104d4611419565b6040519080825280602002602001820160405280156104fd578160200160208202803683370190505b5090505b8282101561062b57600084848481811061051d5761051d61142f565b90506020020160208101906105329190611445565b600354604051627eeac760e11b815233600482015261ffff831660248201529192506001600160a01b03169062fdd58e90604401602060405180830381865afa158015610583573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a79190611460565b6000036105c7576040516330cd747160e01b815260040160405180910390fd5b808284815181106105da576105da61142f565b61ffff909216602092830291909101909101528151848401906101f483019084908390811061060b5761060b61142f565b61ffff909216602092830291909101909101525050600190910190610501565b6004805460405163e5e21bb760e01b81526001600160a01b039091169163e5e21bb79161065c9133918691016114b8565b600060405180830381600087803b15801561067657600080fd5b505af115801561068a573d6000803e3d6000fd5b50505050336001600160a01b03167faf3d6c15c090c5026841a1d131d8c804999ff899e372b24019e212f787f661ab826040516106c791906114e4565b60405180910390a2505060016000555050565b6001546001600160a01b031633146107045760405162461bcd60e51b8152600401610472906114f7565b6007805460ff19168215159081179091556040519081527fa81e445dac2343503dc87e4663774817434721db7d985310a6959766e6d4480e906020015b60405180910390a150565b60026000540361076e5760405162461bcd60e51b8152600401610472906113ad565b6002600090815560075460ff161515900361079c576040516316851fc760e11b815260040160405180910390fd5b6004805460408051630cb2dac360e21b815290516001600160a01b03909216926332cb6b0c9282820192602092908290030181865afa1580156107e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108079190611460565b81600554610815919061152c565b11156108345760405163d05cb60960e01b815260040160405180910390fd5b600a81111580156108455750600081115b6108915760405162461bcd60e51b815260206004820152601960248201527f4d6178203130206d696e74207065722074782c206d696e2031000000000000006044820152606401610472565b6000808267ffffffffffffffff8111156108ad576108ad611419565b6040519080825280602002602001820160405280156108d6578160200160208202803683370190505b50905060005b8381101561092657600580546001019081905582518390839081106109035761090361142f565b61ffff9092166020928302919091019091015260065492909201916001016108dc565b823414610946576040516349986e7360e01b815260040160405180910390fd5b6004805460405163e5e21bb760e01b81526001600160a01b039091169163e5e21bb7916109779133918791016114b8565b600060405180830381600087803b15801561099157600080fd5b505af11580156109a5573d6000803e3d6000fd5b50505050336001600160a01b03167f316a3198dc9a479db89f243e71dda16f9b8189796a6085b66a70a70222f1e59b836040516106c791906114e4565b6001546001600160a01b03163314610a0c5760405162461bcd60e51b8152600401610472906114f7565b600380546001600160a01b0319166001600160a01b0383169081179091556040805191825260208201819052600590820152644d6f6e6b7360d81b60608201527f87ae4ac29cd7bff68d926d03e0d1b716e4f823e33c9b7f235d518e283459027b90608001610741565b6001546001600160a01b03163314610aa05760405162461bcd60e51b8152600401610472906114f7565b60078054821515620100000262ff0000199091161790556040517fa81e445dac2343503dc87e4663774817434721db7d985310a6959766e6d4480e9061074190831515815260200190565b6001546001600160a01b03163314610b155760405162461bcd60e51b8152600401610472906114f7565b610b1f6000611165565b565b6001546001600160a01b03163314610b4b5760405162461bcd60e51b8152600401610472906114f7565b604051339081904780156108fc02916000818181858888f19350505050158015610b79573d6000803e3d6000fd5b5050565b6001546001600160a01b03163314610ba75760405162461bcd60e51b8152600401610472906114f7565b60028190556040518181527f1b930366dfeaa7eb3b325021e4ae81e36527063452ee55b86c95f85b36f4c31c90602001610741565b6001546001600160a01b03163314610c065760405162461bcd60e51b8152600401610472906114f7565b60068190556040518181527fd61bbbbeddbfb5eea9689a8dfb930c8e75982fa9d8f13537ce3583c0c572dc1c90602001610741565b6001546001600160a01b03163314610c655760405162461bcd60e51b8152600401610472906114f7565b60058190556040518181527fe6f9d308918044d0909dacf2ede6026b39e9370fcebaf82abb55d30d1009cc8790602001610741565b6001546001600160a01b03163314610cc45760405162461bcd60e51b8152600401610472906114f7565b600780548215156101000261ff00199091161790556040517fa81e445dac2343503dc87e4663774817434721db7d985310a6959766e6d4480e9061074190831515815260200190565b6001546001600160a01b03163314610d375760405162461bcd60e51b8152600401610472906114f7565b600480546001600160a01b0319166001600160a01b03831690811790915560408051918252602082018190526007908201526609adedcd6e6acb60cb1b60608201527f87ae4ac29cd7bff68d926d03e0d1b716e4f823e33c9b7f235d518e283459027b90608001610741565b6001546001600160a01b03163314610dcd5760405162461bcd60e51b8152600401610472906114f7565b6001600160a01b038116610e325760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610472565b610e3b81611165565b50565b600260005403610e605760405162461bcd60e51b8152600401610472906113ad565b6002600090815560075462010000900460ff1615159003610e94576040516304087ba760e01b815260040160405180910390fd5b610f1d828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506002546040516bffffffffffffffffffffffff193360601b1660208201526001600160f01b031960f08a901b1660348201529092506036019050604051602081830303815290604052805190602001206111b7565b610f3a5760405163923983b960e01b815260040160405180910390fd5b3360009081526008602052604090205461ffff841611610f6d57604051636bf4c8e960e11b815260040160405180910390fd5b60008361ffff1667ffffffffffffffff811115610f8c57610f8c611419565b604051908082528060200260200182016040528015610fb5578160200160208202803683370190505b50905060005b8461ffff1681101561108d576004805460408051630cb2dac360e21b815290516001600160a01b03909216926332cb6b0c9282820192602092908290030181865afa15801561100e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110329190611460565b600554106110535760405163d05cb60960e01b815260040160405180910390fd5b600580546001019081905582518390839081106110725761107261142f565b61ffff90921660209283029190910190910152600101610fbb565b336000908152600860205260408120805461ffff881692906110b090849061152c565b90915550506004805460405163e5e21bb760e01b81526001600160a01b039091169163e5e21bb7916110e69133918791016114b8565b600060405180830381600087803b15801561110057600080fd5b505af1158015611114573d6000803e3d6000fd5b50505050336001600160a01b03167f3ae68bddc25adfc8364085c5b94801d6fe54d882045bb19941cc99aadad7b8138360405161115191906114e4565b60405180910390a250506001600055505050565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000826111c485846111cd565b14949350505050565b600081815b84518110156112395760008582815181106111ef576111ef61142f565b602002602001015190508083116112155760008381526020829052604090209250611226565b600081815260208490526040902092505b508061123181611544565b9150506111d2565b509392505050565b60008083601f84011261125357600080fd5b50813567ffffffffffffffff81111561126b57600080fd5b6020830191508360208260051b850101111561128657600080fd5b9250929050565b600080602083850312156112a057600080fd5b823567ffffffffffffffff8111156112b757600080fd5b6112c385828601611241565b90969095509350505050565b6000602082840312156112e157600080fd5b813580151581146112f157600080fd5b9392505050565b60006020828403121561130a57600080fd5b5035919050565b6001600160a01b0381168114610e3b57600080fd5b60006020828403121561133857600080fd5b81356112f181611311565b803561ffff8116811461135557600080fd5b919050565b60008060006040848603121561136f57600080fd5b61137884611343565b9250602084013567ffffffffffffffff81111561139457600080fd5b6113a086828701611241565b9497909650939450505050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611414576114146113e4565b500290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561145757600080fd5b6112f182611343565b60006020828403121561147257600080fd5b5051919050565b600081518084526020808501945080840160005b838110156114ad57815161ffff168752958201959082019060010161148d565b509495945050505050565b6001600160a01b03831681526040602082018190526000906114dc90830184611479565b949350505050565b6020815260006112f16020830184611479565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000821982111561153f5761153f6113e4565b500190565b600060018201611556576115566113e4565b506001019056fea164736f6c634300080d000a
Deployed Bytecode
0x60806040526004361061014b5760003560e01c80637cb64759116100b65780639d34b6911161006f5780639d34b691146103a0578063a035b1fe146103c0578063bcc9ca5b146103d6578063c929db99146103f0578063f2fde38b14610410578063fb313b261461043057600080fd5b80637cb64759146102ec5780637db3aecc1461030c5780638600fe411461032c5780638da5cb5b1461034257806391b7f5ed1461036057806395ea30141461038057600080fd5b8063392d615a11610108578063392d615a146102265780633a6a821d1461025357806352c0a3fb146102735780636c7dda8e14610293578063715018a6146102c25780637362377b146102d757600080fd5b806309761a5d146101505780630e2d56cf1461017257806310ff426f146101925780632db11544146101cf5780632eb4a7ab146101e257806336c43deb14610206575b600080fd5b34801561015c57600080fd5b5061017061016b36600461128d565b610450565b005b34801561017e57600080fd5b5061017061018d3660046112cf565b6106da565b34801561019e57600080fd5b506003546101b2906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101706101dd3660046112f8565b61074c565b3480156101ee57600080fd5b506101f860025481565b6040519081526020016101c6565b34801561021257600080fd5b50610170610221366004611326565b6109e2565b34801561023257600080fd5b506101f8610241366004611326565b60086020526000908152604090205481565b34801561025f57600080fd5b5061017061026e3660046112cf565b610a76565b34801561027f57600080fd5b506004546101b2906001600160a01b031681565b34801561029f57600080fd5b506007546102b290610100900460ff1681565b60405190151581526020016101c6565b3480156102ce57600080fd5b50610170610aeb565b3480156102e357600080fd5b50610170610b21565b3480156102f857600080fd5b506101706103073660046112f8565b610b7d565b34801561031857600080fd5b506007546102b29062010000900460ff1681565b34801561033857600080fd5b506101f860055481565b34801561034e57600080fd5b506001546001600160a01b03166101b2565b34801561036c57600080fd5b5061017061037b3660046112f8565b610bdc565b34801561038c57600080fd5b5061017061039b3660046112f8565b610c3b565b3480156103ac57600080fd5b506101706103bb3660046112cf565b610c9a565b3480156103cc57600080fd5b506101f860065481565b3480156103e257600080fd5b506007546102b29060ff1681565b3480156103fc57600080fd5b5061017061040b366004611326565b610d0d565b34801561041c57600080fd5b5061017061042b366004611326565b610da3565b34801561043c57600080fd5b5061017061044b36600461135a565b610e3e565b60026000540361047b5760405162461bcd60e51b8152600401610472906113ad565b60405180910390fd5b60026000908155600754610100900460ff16151590036104ae576040516320288dad60e01b815260040160405180910390fd5b6000806104bc8360026113fa565b67ffffffffffffffff8111156104d4576104d4611419565b6040519080825280602002602001820160405280156104fd578160200160208202803683370190505b5090505b8282101561062b57600084848481811061051d5761051d61142f565b90506020020160208101906105329190611445565b600354604051627eeac760e11b815233600482015261ffff831660248201529192506001600160a01b03169062fdd58e90604401602060405180830381865afa158015610583573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a79190611460565b6000036105c7576040516330cd747160e01b815260040160405180910390fd5b808284815181106105da576105da61142f565b61ffff909216602092830291909101909101528151848401906101f483019084908390811061060b5761060b61142f565b61ffff909216602092830291909101909101525050600190910190610501565b6004805460405163e5e21bb760e01b81526001600160a01b039091169163e5e21bb79161065c9133918691016114b8565b600060405180830381600087803b15801561067657600080fd5b505af115801561068a573d6000803e3d6000fd5b50505050336001600160a01b03167faf3d6c15c090c5026841a1d131d8c804999ff899e372b24019e212f787f661ab826040516106c791906114e4565b60405180910390a2505060016000555050565b6001546001600160a01b031633146107045760405162461bcd60e51b8152600401610472906114f7565b6007805460ff19168215159081179091556040519081527fa81e445dac2343503dc87e4663774817434721db7d985310a6959766e6d4480e906020015b60405180910390a150565b60026000540361076e5760405162461bcd60e51b8152600401610472906113ad565b6002600090815560075460ff161515900361079c576040516316851fc760e11b815260040160405180910390fd5b6004805460408051630cb2dac360e21b815290516001600160a01b03909216926332cb6b0c9282820192602092908290030181865afa1580156107e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108079190611460565b81600554610815919061152c565b11156108345760405163d05cb60960e01b815260040160405180910390fd5b600a81111580156108455750600081115b6108915760405162461bcd60e51b815260206004820152601960248201527f4d6178203130206d696e74207065722074782c206d696e2031000000000000006044820152606401610472565b6000808267ffffffffffffffff8111156108ad576108ad611419565b6040519080825280602002602001820160405280156108d6578160200160208202803683370190505b50905060005b8381101561092657600580546001019081905582518390839081106109035761090361142f565b61ffff9092166020928302919091019091015260065492909201916001016108dc565b823414610946576040516349986e7360e01b815260040160405180910390fd5b6004805460405163e5e21bb760e01b81526001600160a01b039091169163e5e21bb7916109779133918791016114b8565b600060405180830381600087803b15801561099157600080fd5b505af11580156109a5573d6000803e3d6000fd5b50505050336001600160a01b03167f316a3198dc9a479db89f243e71dda16f9b8189796a6085b66a70a70222f1e59b836040516106c791906114e4565b6001546001600160a01b03163314610a0c5760405162461bcd60e51b8152600401610472906114f7565b600380546001600160a01b0319166001600160a01b0383169081179091556040805191825260208201819052600590820152644d6f6e6b7360d81b60608201527f87ae4ac29cd7bff68d926d03e0d1b716e4f823e33c9b7f235d518e283459027b90608001610741565b6001546001600160a01b03163314610aa05760405162461bcd60e51b8152600401610472906114f7565b60078054821515620100000262ff0000199091161790556040517fa81e445dac2343503dc87e4663774817434721db7d985310a6959766e6d4480e9061074190831515815260200190565b6001546001600160a01b03163314610b155760405162461bcd60e51b8152600401610472906114f7565b610b1f6000611165565b565b6001546001600160a01b03163314610b4b5760405162461bcd60e51b8152600401610472906114f7565b604051339081904780156108fc02916000818181858888f19350505050158015610b79573d6000803e3d6000fd5b5050565b6001546001600160a01b03163314610ba75760405162461bcd60e51b8152600401610472906114f7565b60028190556040518181527f1b930366dfeaa7eb3b325021e4ae81e36527063452ee55b86c95f85b36f4c31c90602001610741565b6001546001600160a01b03163314610c065760405162461bcd60e51b8152600401610472906114f7565b60068190556040518181527fd61bbbbeddbfb5eea9689a8dfb930c8e75982fa9d8f13537ce3583c0c572dc1c90602001610741565b6001546001600160a01b03163314610c655760405162461bcd60e51b8152600401610472906114f7565b60058190556040518181527fe6f9d308918044d0909dacf2ede6026b39e9370fcebaf82abb55d30d1009cc8790602001610741565b6001546001600160a01b03163314610cc45760405162461bcd60e51b8152600401610472906114f7565b600780548215156101000261ff00199091161790556040517fa81e445dac2343503dc87e4663774817434721db7d985310a6959766e6d4480e9061074190831515815260200190565b6001546001600160a01b03163314610d375760405162461bcd60e51b8152600401610472906114f7565b600480546001600160a01b0319166001600160a01b03831690811790915560408051918252602082018190526007908201526609adedcd6e6acb60cb1b60608201527f87ae4ac29cd7bff68d926d03e0d1b716e4f823e33c9b7f235d518e283459027b90608001610741565b6001546001600160a01b03163314610dcd5760405162461bcd60e51b8152600401610472906114f7565b6001600160a01b038116610e325760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610472565b610e3b81611165565b50565b600260005403610e605760405162461bcd60e51b8152600401610472906113ad565b6002600090815560075462010000900460ff1615159003610e94576040516304087ba760e01b815260040160405180910390fd5b610f1d828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506002546040516bffffffffffffffffffffffff193360601b1660208201526001600160f01b031960f08a901b1660348201529092506036019050604051602081830303815290604052805190602001206111b7565b610f3a5760405163923983b960e01b815260040160405180910390fd5b3360009081526008602052604090205461ffff841611610f6d57604051636bf4c8e960e11b815260040160405180910390fd5b60008361ffff1667ffffffffffffffff811115610f8c57610f8c611419565b604051908082528060200260200182016040528015610fb5578160200160208202803683370190505b50905060005b8461ffff1681101561108d576004805460408051630cb2dac360e21b815290516001600160a01b03909216926332cb6b0c9282820192602092908290030181865afa15801561100e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110329190611460565b600554106110535760405163d05cb60960e01b815260040160405180910390fd5b600580546001019081905582518390839081106110725761107261142f565b61ffff90921660209283029190910190910152600101610fbb565b336000908152600860205260408120805461ffff881692906110b090849061152c565b90915550506004805460405163e5e21bb760e01b81526001600160a01b039091169163e5e21bb7916110e69133918791016114b8565b600060405180830381600087803b15801561110057600080fd5b505af1158015611114573d6000803e3d6000fd5b50505050336001600160a01b03167f3ae68bddc25adfc8364085c5b94801d6fe54d882045bb19941cc99aadad7b8138360405161115191906114e4565b60405180910390a250506001600055505050565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000826111c485846111cd565b14949350505050565b600081815b84518110156112395760008582815181106111ef576111ef61142f565b602002602001015190508083116112155760008381526020829052604090209250611226565b600081815260208490526040902092505b508061123181611544565b9150506111d2565b509392505050565b60008083601f84011261125357600080fd5b50813567ffffffffffffffff81111561126b57600080fd5b6020830191508360208260051b850101111561128657600080fd5b9250929050565b600080602083850312156112a057600080fd5b823567ffffffffffffffff8111156112b757600080fd5b6112c385828601611241565b90969095509350505050565b6000602082840312156112e157600080fd5b813580151581146112f157600080fd5b9392505050565b60006020828403121561130a57600080fd5b5035919050565b6001600160a01b0381168114610e3b57600080fd5b60006020828403121561133857600080fd5b81356112f181611311565b803561ffff8116811461135557600080fd5b919050565b60008060006040848603121561136f57600080fd5b61137884611343565b9250602084013567ffffffffffffffff81111561139457600080fd5b6113a086828701611241565b9497909650939450505050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611414576114146113e4565b500290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561145757600080fd5b6112f182611343565b60006020828403121561147257600080fd5b5051919050565b600081518084526020808501945080840160005b838110156114ad57815161ffff168752958201959082019060010161148d565b509495945050505050565b6001600160a01b03831681526040602082018190526000906114dc90830184611479565b949350505050565b6020815260006112f16020830184611479565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000821982111561153f5761153f6113e4565b500190565b600060018201611556576115566113e4565b506001019056fea164736f6c634300080d000a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.