UNPKG

@settlemint/solidity-token-erc721a

Version:
1,012 lines 28.7 kB
{ "compiler": { "version": "0.8.27+commit.40a35a09" }, "language": "Solidity", "output": { "abi": [ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "string", "name": "baseTokenURI_", "type": "string" }, { "internalType": "address payable", "name": "wallet_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "type": "error", "name": "ApprovalCallerNotOwnerNorApproved" }, { "inputs": [], "type": "error", "name": "ApprovalQueryForNonexistentToken" }, { "inputs": [], "type": "error", "name": "BalanceQueryForZeroAddress" }, { "inputs": [], "type": "error", "name": "MintERC2309QuantityExceedsLimit" }, { "inputs": [], "type": "error", "name": "MintToZeroAddress" }, { "inputs": [], "type": "error", "name": "MintZeroQuantity" }, { "inputs": [], "type": "error", "name": "NotCompatibleWithSpotMints" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "type": "error", "name": "OwnableInvalidOwner" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "type": "error", "name": "OwnableUnauthorizedAccount" }, { "inputs": [], "type": "error", "name": "OwnerQueryForNonexistentToken" }, { "inputs": [], "type": "error", "name": "OwnershipNotInitializedForExtraData" }, { "inputs": [], "type": "error", "name": "ReentrancyGuardReentrantCall" }, { "inputs": [], "type": "error", "name": "SequentialMintExceedsLimit" }, { "inputs": [], "type": "error", "name": "SequentialUpToTooSmall" }, { "inputs": [], "type": "error", "name": "SpotMintTokenIdTooSmall" }, { "inputs": [], "type": "error", "name": "TokenAlreadyExists" }, { "inputs": [], "type": "error", "name": "TransferCallerNotOwnerNorApproved" }, { "inputs": [], "type": "error", "name": "TransferFromIncorrectOwner" }, { "inputs": [], "type": "error", "name": "TransferToNonERC721ReceiverImplementer" }, { "inputs": [], "type": "error", "name": "TransferToZeroAddress" }, { "inputs": [], "type": "error", "name": "URIQueryForNonexistentToken" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address", "indexed": true }, { "internalType": "address", "name": "approved", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "tokenId", "type": "uint256", "indexed": true } ], "type": "event", "name": "Approval", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address", "indexed": true }, { "internalType": "address", "name": "operator", "type": "address", "indexed": true }, { "internalType": "bool", "name": "approved", "type": "bool", "indexed": false } ], "type": "event", "name": "ApprovalForAll", "anonymous": false }, { "inputs": [ { "internalType": "uint256", "name": "fromTokenId", "type": "uint256", "indexed": true }, { "internalType": "uint256", "name": "toTokenId", "type": "uint256", "indexed": false }, { "internalType": "address", "name": "from", "type": "address", "indexed": true }, { "internalType": "address", "name": "to", "type": "address", "indexed": true } ], "type": "event", "name": "ConsecutiveTransfer", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "previousOwner", "type": "address", "indexed": true }, { "internalType": "address", "name": "newOwner", "type": "address", "indexed": true } ], "type": "event", "name": "OwnershipTransferred", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address", "indexed": true }, { "internalType": "address", "name": "to", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "tokenId", "type": "uint256", "indexed": true } ], "type": "event", "name": "Transfer", "anonymous": false }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "MAX_PER_TX", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "MAX_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "PRICE_IN_WEI_PUBLIC", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "PRICE_IN_WEI_WHITELIST", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "RESERVES", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "_whiteListMerkleRoot", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ] }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "payable", "type": "function", "name": "approve" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "stateMutability": "view", "type": "function", "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ] }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "collectReserves" }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "disableWhitelistMerkleRoot" }, { "inputs": [ { "internalType": "string", "name": "allowance", "type": "string" }, { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" } ], "stateMutability": "view", "type": "function", "name": "getAllowance", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ] }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "view", "type": "function", "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] }, { "inputs": [ { "internalType": "address[]", "name": "recipients_", "type": "address[]" } ], "stateMutability": "nonpayable", "type": "function", "name": "gift" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "stateMutability": "view", "type": "function", "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "view", "type": "function", "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] }, { "inputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" } ], "stateMutability": "payable", "type": "function", "name": "publicMint" }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "renounceOwnership" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "payable", "type": "function", "name": "safeTransferFrom" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "stateMutability": "payable", "type": "function", "name": "safeTransferFrom" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function", "name": "setApprovalForAll" }, { "inputs": [ { "internalType": "string", "name": "baseTokenURI_", "type": "string" } ], "stateMutability": "nonpayable", "type": "function", "name": "setBaseURI" }, { "inputs": [ { "internalType": "bytes32", "name": "whitelistMerkleRoot_", "type": "bytes32" } ], "stateMutability": "nonpayable", "type": "function", "name": "setWhitelistMerkleRoot" }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "startPublicSale" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "stateMutability": "view", "type": "function", "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ] }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "view", "type": "function", "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ] }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "payable", "type": "function", "name": "transferFrom" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "stateMutability": "nonpayable", "type": "function", "name": "transferOwnership" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "wallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] }, { "inputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" } ], "stateMutability": "payable", "type": "function", "name": "whitelistMint" }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "withdraw" } ], "devdoc": { "kind": "dev", "methods": { "approve(address,uint256)": { "details": "Gives permission to `to` to transfer `tokenId` token to another account. See {ERC721A-_approve}. Requirements: - The caller must own the token or be an approved operator." }, "balanceOf(address)": { "details": "Returns the number of tokens in `owner`'s account." }, "getApproved(uint256)": { "details": "Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist." }, "isApprovedForAll(address,address)": { "details": "Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}." }, "name()": { "details": "Returns the token collection name." }, "owner()": { "details": "Returns the address of the current owner." }, "ownerOf(uint256)": { "details": "Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist." }, "renounceOwnership()": { "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner." }, "safeTransferFrom(address,address,uint256)": { "details": "Equivalent to `safeTransferFrom(from, to, tokenId, '')`." }, "safeTransferFrom(address,address,uint256,bytes)": { "details": "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." }, "setApprovalForAll(address,bool)": { "details": "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." }, "supportsInterface(bytes4)": { "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified) to learn more about how these ids are created. This function call must use less than 30000 gas." }, "symbol()": { "details": "Returns the token collection symbol." }, "tokenURI(uint256)": { "details": "Returns the Uniform Resource Identifier (URI) for `tokenId` token." }, "totalSupply()": { "details": "Returns the total number of tokens in existence. Burned tokens will reduce the count. To get the total number of tokens minted, please see {_totalMinted}." }, "transferFrom(address,address,uint256)": { "details": "Transfers `tokenId` from `from` to `to`. 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." }, "transferOwnership(address)": { "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." } }, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }, "settings": { "remappings": [ "@openzeppelin/=node_modules/@openzeppelin/", "erc721a/=node_modules/erc721a/", "eth-gas-reporter/=node_modules/eth-gas-reporter/", "forge-std/=lib/forge-std/src/", "hardhat/=node_modules/hardhat/" ], "optimizer": { "enabled": true, "runs": 10000 }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "contracts/ExampleERC721a.sol": "ExampleERC721a" }, "evmVersion": "cancun", "libraries": {}, "viaIR": true }, "sources": { "contracts/ExampleERC721a.sol": { "keccak256": "0x00addefc9a75c2dc0813364aeaf33b15b3f1343d452d4687c12cc335f6a6f7d7", "urls": [ "bzz-raw://a1c2fc23f4ebb26e890812133e7a19d833b1a91cf045adf1ca8d8bd370e1acf9", "dweb:/ipfs/QmfUVX4M5csjuxHbfiVGJdwXkiLMME735hC9X7rF6jRLGE" ], "license": "FSL-1.1-MIT" }, "contracts/extensions/ERC721Whitelist.sol": { "keccak256": "0xaeca4ec90abae77327fd57f8486255bbb3f49cb9408818d1c93cce29be6ed756", "urls": [ "bzz-raw://defe0fca6246a0f00c76421d30da6e5c408bcd825fa26cba5f8930c5e5077ff1", "dweb:/ipfs/QmQDfWtBgmRmdf2TxS3Kx97V5ynheZe8C7RWQzLiVYocGN" ], "license": "UNLICENSED" }, "node_modules/@openzeppelin/contracts/access/Ownable.sol": { "keccak256": "0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb", "urls": [ "bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6", "dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/interfaces/IERC2981.sol": { "keccak256": "0x3b017a19c1730050d0fdff8dfa9255741634699aa4217442724746ca49e13292", "urls": [ "bzz-raw://05530a2959e8be01cd88993970924cd6081c3462395f6fc0e73c034519259b05", "dweb:/ipfs/QmXAG8dF9fiYE8iVWJYWxmbEMNL6RvBAxzRGq2nyLanB2M" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/token/common/ERC2981.sol": { "keccak256": "0xbc10927da9f47d87e6cd46a3218526b7718716a717d07722791eb7de6befc2a8", "urls": [ "bzz-raw://d838bc5e79732a20acc5578a4fa0dd88ba484c906346ad4daea2654ecb922a94", "dweb:/ipfs/QmaXqkJiniK3xSi5MEaCrYnFDa9AXd6FvByHMMKaWEEEK7" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/Context.sol": { "keccak256": "0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2", "urls": [ "bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12", "dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/Panic.sol": { "keccak256": "0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a", "urls": [ "bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a", "dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol": { "keccak256": "0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3", "urls": [ "bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a", "dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/Strings.sol": { "keccak256": "0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae", "urls": [ "bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6", "dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/cryptography/Hashes.sol": { "keccak256": "0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269", "urls": [ "bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11", "dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol": { "keccak256": "0x36a0c409c437a753cac9b92b75f93b0fbe92803bf2c8ff1517e54b247f166134", "urls": [ "bzz-raw://0f91ba472de411aa557cdbf6560c40750d87bd11c9060bc04d2ba7119af9d5a6", "dweb:/ipfs/QmQjtYo2i7dDvzCEzZ67bDoNSG4RrwMoxPWuqFmX5Xzpuw" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol": { "keccak256": "0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa", "urls": [ "bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287", "dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": { "keccak256": "0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8", "urls": [ "bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621", "dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/math/Math.sol": { "keccak256": "0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6", "urls": [ "bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3", "dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol": { "keccak256": "0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54", "urls": [ "bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8", "dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol": { "keccak256": "0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3", "urls": [ "bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03", "dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ" ], "license": "MIT" }, "node_modules/erc721a/contracts/ERC721A.sol": { "keccak256": "0xede758d13ccce2f54a4bcd16816456109b290759d43988205539cf632f4c8a55", "urls": [ "bzz-raw://b63befef8f79ec44ebe5db096767cab6772485c2b01a431759e7fcdcf7fd0bb1", "dweb:/ipfs/QmV45KT2ai7PnVRhpJKjB29A15VGnhsvxxBFrrUSwhe2fr" ], "license": "MIT" }, "node_modules/erc721a/contracts/IERC721A.sol": { "keccak256": "0xc9a2a00612e0d121aef3f716877ada17177d5b2d5a4c780d22cade46da2ff294", "urls": [ "bzz-raw://1435542fc553d2fb9181191f126a1f97e2cc5570c2459c862f54ba415a22bf02", "dweb:/ipfs/QmaQJ14ajkHgymY5TtoxHnpiN5u4TpwXCqKr2B6DM8SHkn" ], "license": "MIT" } }, "version": 1 }