@settlemint/solidity-token-erc721a
Version:
Smart contract set to build an ERC721a token in SettleMint
1 lines • 52.3 kB
JSON
{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ConsecutiveTransfer","inputs":[{"name":"fromTokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"toTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"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":[]},{"type":"error","name":"OwnerQueryForNonexistentToken","inputs":[]},{"type":"error","name":"OwnershipNotInitializedForExtraData","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":[]}],"bytecode":{"object":"0x60806040523461007f57610fcf8038038061001981610097565b92833981019060408183031261007f5780516001600160401b03811161007f57826100459183016100c1565b6020820151929091906001600160401b03841161007f576100709361006a92016100c1565b906102ce565b604051610c1490816103bb8239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f191682016001600160401b038111838210176100bc57604052565b610083565b81601f8201121561007f578051906001600160401b0382116100bc576100f0601f8301601f1916602001610097565b928284526020838301011161007f57815f9260208093018386015e8301015290565b90600182811c92168015610140575b602083101461012c57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610121565b601f8111610156575050565b60025f5260205f20906020601f840160051c83019310610190575b601f0160051c01905b818110610185575050565b5f815560010161017a565b9091508190610171565b601f82116101a757505050565b5f5260205f20906020601f840160051c830193106101df575b601f0160051c01905b8181106101d4575050565b5f81556001016101c9565b90915081906101c0565b80519091906001600160401b0381116100bc576102128161020b600354610112565b600361019a565b602092601f821160011461025257610242929382915f92610247575b50508160011b915f199060031b1c19161790565b600355565b015190505f8061022e565b60035f52601f198216937fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f5b8681106102b6575083600195961061029e575b505050811b01600355565b01515f1960f88460031b161c191690555f8080610293565b91926020600181928685015181550194019201610280565b8051906001600160401b0382116100bc576102f3826102ee600254610112565b61014a565b602090601f83116001146103335791806103269261032e95945f926102475750508160011b915f199060031b1c19161790565b6002556101e9565b5f8055565b60025f52601f19831691907f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace925f5b8181106103a2575091600193918561032e9796941061038a575b505050811b016002556101e9565b01515f1960f88460031b161c191690555f808061037c565b9293602060018192878601518155019501930161036256fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146100f457806306fdde03146100ef578063081812fc146100ea578063095ea7b3146100e557806318160ddd146100e057806323b872dd146100db57806342842e0e146100d65780636352211e146100d157806370a08231146100cc57806395d89b41146100c7578063a22cb465146100c2578063b88d4fde146100bd578063c87b56dd146100b85763e985e9c5146100b3575f80fd5b610787565b61071f565b61069c565b6105b8565b610503565b6104ac565b61047d565b610459565b610445565b6103ea565b610323565b6102a8565b6101b5565b61010f565b6001600160e01b031981160361010b57565b5f80fd5b3461010b57602036600319011261010b57602060043561012e816100f9565b63ffffffff60e01b166301ffc9a760e01b811490811561016c575b811561015b575b506040519015158152f35b635b5e139f60e01b1490505f610150565b6380ac58cd60e01b81149150610149565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9060206101b292818152019061017d565b90565b3461010b575f36600319011261010b576040515f6002548060011c906001811690811561029e575b60208310821461028a578285526020850191908115610271575060011461021f575b61021b8461020f81860382610659565b604051918291826101a1565b0390f35b60025f9081529250907f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b81841061025d5750500161020f826101ff565b80548484015260209093019260010161024a565b60ff191682525090151560051b01905061020f826101ff565b634e487b7160e01b5f52602260045260245ffd5b91607f16916101dd565b3461010b57602036600319011261010b576004356102c5816109c6565b156102e8575f526006602052602060018060a01b0360405f205416604051908152f35b6333d1c03960e21b5f5260045ffd5b600435906001600160a01b038216820361010b57565b602435906001600160a01b038216820361010b57565b604036600319011261010b576103376102f7565b602435906001600160a01b0361034c83610a54565b16908133036103bb575b61038b8161036c855f52600660205260405f2090565b80546001600160a01b0319166001600160a01b03909216919091179055565b6001600160a01b0316907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a4005b5f82815260076020908152604080832033845290915290205460ff16610356576367d9dca160e11b5f5260045ffd5b3461010b575f36600319011261010b5760205f546001549003604051908152f35b606090600319011261010b576004356001600160a01b038116810361010b57906024356001600160a01b038116810361010b579060443590565b6104576104513661040b565b916107e3565b005b6104576104653661040b565b9060405192610475602085610659565b5f8452610985565b3461010b57602036600319011261010b5760206001600160a01b036104a3600435610a54565b16604051908152f35b3461010b57602036600319011261010b576001600160a01b036104cd6102f7565b1680156104f4575f526005602052602067ffffffffffffffff60405f205416604051908152f35b6323d3ad8160e21b5f5260045ffd5b3461010b575f36600319011261010b576040515f6003548060011c90600181169081156105ae575b60208310821461028a578285526020850191908115610271575060011461055c5761021b8461020f81860382610659565b60035f9081529250907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b81841061059a5750500161020f826101ff565b805484840152602090930192600101610587565b91607f169161052b565b3461010b57604036600319011261010b576105d16102f7565b6024359081151580920361010b57335f9081526007602090815260408083206001600160a01b0385168452909152902060ff1981541660ff841617905560405191825260018060a01b0316907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761067b57604052565b610645565b67ffffffffffffffff811161067b57601f01601f191660200190565b608036600319011261010b576106b06102f7565b6106b861030d565b906044356064359267ffffffffffffffff841161010b573660238501121561010b578360040135926106e984610680565b936106f76040519586610659565b808552366024828801011161010b576020815f92602461045799018389013786010152610985565b3461010b57602036600319011261010b5761073b6004356109c6565b15610778575f60405161074f602082610659565b5261021b604051610761602082610659565b5f815260405191829160208352602083019061017d565b630a14c4b560e41b5f5260045ffd5b3461010b57604036600319011261010b57602060ff6107d76107a76102f7565b6107af61030d565b6001600160a01b039182165f9081526007865260408082209290931681526020919091522090565b54166040519015158152f35b91906107ee82610a54565b6001600160a01b03938416938116849003610980575f838152600660205260409020805461082f6001600160a01b03871633908114908314171590565b1590565b610936575b61092d575b506001600160a01b0384165f90815260056020526040902080545f190190556001600160a01b0382165f908152600560205260409020805460010190556001600160a01b0382164260a01b17600160e11b1761089d845f52600460205260405f2090565b55600160e11b8116156108e8575b506001600160a01b03169182907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4156108e357565b610a36565b600183016108fe815f52600460205260405f2090565b541561090b575b506108ab565b5f54811461090557610925905f52600460205260405f2090565b555f80610905565b5f90555f610839565b61097661082b61096f3361095a8a60018060a01b03165f52600760205260405f2090565b9060018060a01b03165f5260205260405f2090565b5460ff1690565b1561083457610a27565b610a19565b9291906109938282866107e3565b803b6109a0575b50505050565b6109a993610b39565b156109b7575f80808061099a565b6368d2bf6b60e11b5f5260045ffd5b905f915f5481106109d45750565b9091505b805f52600460205260405f205480610a0d575080156109f9575f19016109d8565b634e487b7160e01b5f52601160045260245ffd5b600160e01b1615919050565b62a1148160e81b5f5260045ffd5b632ce44b5f60e11b5f5260045ffd5b633a954ecd60e21b5f5260045ffd5b636f96cda160e11b5f5260045ffd5b610a66815f52600460205260405f2090565b54908115610a7d5750600160e01b8116610a455790565b90505f54811015610a45575b5f19015f81815260046020526040902054908115610abd5750600160e01b8116156101b257636f96cda160e11b5f5260045ffd5b9050610a89565b9081602091031261010b57516101b2816100f9565b6001600160a01b0391821681529116602082015260408101919091526080606082018190526101b29291019061017d565b3d15610b34573d90610b1b82610680565b91610b296040519384610659565b82523d5f602084013e565b606090565b906020925f610b61959360405196879586948593630a85bd0160e11b85523360048601610ad9565b03926001600160a01b03165af15f9181610bad575b50610b9757610b83610b0a565b805115610b9257805190602001fd5b6109b7565b6001600160e01b031916630a85bd0160e11b1490565b610bd091925060203d602011610bd7575b610bc88183610659565b810190610ac4565b905f610b76565b503d610bbe56fea2646970667358221220952df8b5b203b478c7489f7cc5be9752aa22b30c59c1722085cd140b362f719964736f6c634300081e0033","sourceMap":"1053:48812:35:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1053:48812:35;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1053:48812:35;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;1053:48812:35;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1053:48812:35;;;-1:-1:-1;;;;;1053:48812:35;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1053:48812:35;;;;;;;;-1:-1:-1;;1053:48812:35;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;1053:48812:35;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;5327:13;-1:-1:-1;1053:48812:35;;-1:-1:-1;1053:48812:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;1053:48812:35;;;;;;;;;-1:-1:-1;1053:48812:35;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;1053:48812:35;;-1:-1:-1;1053:48812:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;1053:48812:35;;;;;;;;;-1:-1:-1;1053:48812:35;;;;;;;;;;-1:-1:-1;;;;;1053:48812:35;;;;;;;5350:17;1053:48812;;:::i;:::-;5350:17;1053:48812;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5350:17;1053:48812;:::o;:::-;;;;-1:-1:-1;1053:48812:35;;;;;5350:17;1053:48812;;-1:-1:-1;;1053:48812:35;;;;;;;;;;;;;;;;;;;;;;;;;;;5350:17;1053:48812;:::o;:::-;;;;;;;5350:17;1053:48812;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5261:246;1053:48812;;;-1:-1:-1;;;;;1053:48812:35;;;;;;;5327:13;1053:48812;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5327:13;1053:48812;;:::i;:::-;;;;5261:246::o;1053:48812::-;5327:13;1053:48812;;-1:-1:-1;;1053:48812:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5327:13;1053:48812;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146100f457806306fdde03146100ef578063081812fc146100ea578063095ea7b3146100e557806318160ddd146100e057806323b872dd146100db57806342842e0e146100d65780636352211e146100d157806370a08231146100cc57806395d89b41146100c7578063a22cb465146100c2578063b88d4fde146100bd578063c87b56dd146100b85763e985e9c5146100b3575f80fd5b610787565b61071f565b61069c565b6105b8565b610503565b6104ac565b61047d565b610459565b610445565b6103ea565b610323565b6102a8565b6101b5565b61010f565b6001600160e01b031981160361010b57565b5f80fd5b3461010b57602036600319011261010b57602060043561012e816100f9565b63ffffffff60e01b166301ffc9a760e01b811490811561016c575b811561015b575b506040519015158152f35b635b5e139f60e01b1490505f610150565b6380ac58cd60e01b81149150610149565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9060206101b292818152019061017d565b90565b3461010b575f36600319011261010b576040515f6002548060011c906001811690811561029e575b60208310821461028a578285526020850191908115610271575060011461021f575b61021b8461020f81860382610659565b604051918291826101a1565b0390f35b60025f9081529250907f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b81841061025d5750500161020f826101ff565b80548484015260209093019260010161024a565b60ff191682525090151560051b01905061020f826101ff565b634e487b7160e01b5f52602260045260245ffd5b91607f16916101dd565b3461010b57602036600319011261010b576004356102c5816109c6565b156102e8575f526006602052602060018060a01b0360405f205416604051908152f35b6333d1c03960e21b5f5260045ffd5b600435906001600160a01b038216820361010b57565b602435906001600160a01b038216820361010b57565b604036600319011261010b576103376102f7565b602435906001600160a01b0361034c83610a54565b16908133036103bb575b61038b8161036c855f52600660205260405f2090565b80546001600160a01b0319166001600160a01b03909216919091179055565b6001600160a01b0316907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a4005b5f82815260076020908152604080832033845290915290205460ff16610356576367d9dca160e11b5f5260045ffd5b3461010b575f36600319011261010b5760205f546001549003604051908152f35b606090600319011261010b576004356001600160a01b038116810361010b57906024356001600160a01b038116810361010b579060443590565b6104576104513661040b565b916107e3565b005b6104576104653661040b565b9060405192610475602085610659565b5f8452610985565b3461010b57602036600319011261010b5760206001600160a01b036104a3600435610a54565b16604051908152f35b3461010b57602036600319011261010b576001600160a01b036104cd6102f7565b1680156104f4575f526005602052602067ffffffffffffffff60405f205416604051908152f35b6323d3ad8160e21b5f5260045ffd5b3461010b575f36600319011261010b576040515f6003548060011c90600181169081156105ae575b60208310821461028a578285526020850191908115610271575060011461055c5761021b8461020f81860382610659565b60035f9081529250907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b81841061059a5750500161020f826101ff565b805484840152602090930192600101610587565b91607f169161052b565b3461010b57604036600319011261010b576105d16102f7565b6024359081151580920361010b57335f9081526007602090815260408083206001600160a01b0385168452909152902060ff1981541660ff841617905560405191825260018060a01b0316907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761067b57604052565b610645565b67ffffffffffffffff811161067b57601f01601f191660200190565b608036600319011261010b576106b06102f7565b6106b861030d565b906044356064359267ffffffffffffffff841161010b573660238501121561010b578360040135926106e984610680565b936106f76040519586610659565b808552366024828801011161010b576020815f92602461045799018389013786010152610985565b3461010b57602036600319011261010b5761073b6004356109c6565b15610778575f60405161074f602082610659565b5261021b604051610761602082610659565b5f815260405191829160208352602083019061017d565b630a14c4b560e41b5f5260045ffd5b3461010b57604036600319011261010b57602060ff6107d76107a76102f7565b6107af61030d565b6001600160a01b039182165f9081526007865260408082209290931681526020919091522090565b54166040519015158152f35b91906107ee82610a54565b6001600160a01b03938416938116849003610980575f838152600660205260409020805461082f6001600160a01b03871633908114908314171590565b1590565b610936575b61092d575b506001600160a01b0384165f90815260056020526040902080545f190190556001600160a01b0382165f908152600560205260409020805460010190556001600160a01b0382164260a01b17600160e11b1761089d845f52600460205260405f2090565b55600160e11b8116156108e8575b506001600160a01b03169182907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4156108e357565b610a36565b600183016108fe815f52600460205260405f2090565b541561090b575b506108ab565b5f54811461090557610925905f52600460205260405f2090565b555f80610905565b5f90555f610839565b61097661082b61096f3361095a8a60018060a01b03165f52600760205260405f2090565b9060018060a01b03165f5260205260405f2090565b5460ff1690565b1561083457610a27565b610a19565b9291906109938282866107e3565b803b6109a0575b50505050565b6109a993610b39565b156109b7575f80808061099a565b6368d2bf6b60e11b5f5260045ffd5b905f915f5481106109d45750565b9091505b805f52600460205260405f205480610a0d575080156109f9575f19016109d8565b634e487b7160e01b5f52601160045260245ffd5b600160e01b1615919050565b62a1148160e81b5f5260045ffd5b632ce44b5f60e11b5f5260045ffd5b633a954ecd60e21b5f5260045ffd5b636f96cda160e11b5f5260045ffd5b610a66815f52600460205260405f2090565b54908115610a7d5750600160e01b8116610a455790565b90505f54811015610a45575b5f19015f81815260046020526040902054908115610abd5750600160e01b8116156101b257636f96cda160e11b5f5260045ffd5b9050610a89565b9081602091031261010b57516101b2816100f9565b6001600160a01b0391821681529116602082015260408101919091526080606082018190526101b29291019061017d565b3d15610b34573d90610b1b82610680565b91610b296040519384610659565b82523d5f602084013e565b606090565b906020925f610b61959360405196879586948593630a85bd0160e11b85523360048601610ad9565b03926001600160a01b03165af15f9181610bad575b50610b9757610b83610b0a565b805115610b9257805190602001fd5b6109b7565b6001600160e01b031916630a85bd0160e11b1490565b610bd091925060203d602011610bd7575b610bc88183610659565b810190610ac4565b905f610b76565b503d610bbe56fea2646970667358221220952df8b5b203b478c7489f7cc5be9752aa22b30c59c1722085cd140b362f719964736f6c634300081e0033","sourceMap":"1053:48812:35:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;;1053:48812:35;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;1053:48812:35;;;;;;;;;;:::i;:::-;;;;;;;;11092:25;;:101;;;;;1053:48812;11092:177;;;;1053:48812;;;;;;;;;;11092:177;-1:-1:-1;;;11244:25:35;;-1:-1:-1;11092:177:35;;;:101;-1:-1:-1;;;11168:25:35;;;-1:-1:-1;11092:101:35;;1053:48812;;;;;;;;;;;;;;;;;-1:-1:-1;1053:48812:35;;;;;;;;-1:-1:-1;;1053:48812:35;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;1053:48812:35;;;;;;;11659:5;1053:48812;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;11659:5;1053:48812;;;;;-1:-1:-1;1053:48812:35;;;;;;;;-1:-1:-1;;1053:48812:35;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1053:48812:35;;;-1:-1:-1;1053:48812:35;;;;;;;-1:-1:-1;1053:48812:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1053:48812:35;;;;;;18736:16;;;:::i;:::-;18735:17;18731:73;;-1:-1:-1;1053:48812:35;18822:15;1053:48812;;;;;;;;;-1:-1:-1;1053:48812:35;;;;;;;;;18731:73;18762:41;;;-1:-1:-1;49766:91:35;1053:48812;-1:-1:-1;49766:91:35;1053:48812;;;;-1:-1:-1;;;;;1053:48812:35;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1053:48812:35;;;;;;:::o;:::-;;;-1:-1:-1;;1053:48812:35;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;13048:27:35;1053:48812;13048:27;:::i;:::-;1053:48812;47819:10;;;41521:28;41500:198;;1053:48812;41708:35;:24;;;1053:48812;;41708:15;1053:48812;;;;;;;41708:24;1053:48812;;-1:-1:-1;;;;;;1053:48812:35;-1:-1:-1;;;;;1053:48812:35;;;;;;;;;;41708:35;-1:-1:-1;;;;;1053:48812:35;;41758:28;-1:-1:-1;;41758:28:35;1053:48812;41500:198;-1:-1:-1;2943:14:35;;;19687:18;1053:48812;2943:14;;;1053:48812;2943:14;;;47819:10;2943:14;;;;;;;1053:48812;;;41500:198;41563:135;41640:42;;;49766:91;;;;;1053:48812;;;;;;-1:-1:-1;;1053:48812:35;;;;;;;7328:12;1053:48812;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1053:48812:35;;;;;;;;;-1:-1:-1;;;;;1053:48812:35;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;:::i;:::-;;;26475:39;1053:48812;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;26475:39;:::i;1053:48812::-;;;;;;-1:-1:-1;;1053:48812:35;;;;;-1:-1:-1;;;;;13048:27:35;1053:48812;;13048:27;:::i;:::-;1053:48812;;;;;;;;;;;;;-1:-1:-1;;1053:48812:35;;;;-1:-1:-1;;;;;1053:48812:35;;:::i;:::-;;8665:19;;8661:69;;-1:-1:-1;2943:14:35;8747:18;1053:48812;2943:14;1053:48812;1518:13;2943:14;-1:-1:-1;2943:14:35;1053:48812;8747:55;2943:14;1053:48812;;;;;8661:69;8694:35;;;-1:-1:-1;49766:91:35;1053:48812;-1:-1:-1;49766:91:35;1053:48812;;;;;;-1:-1:-1;;1053:48812:35;;;;;;;11830:7;1053:48812;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11830:7;1053:48812;;;;;-1:-1:-1;1053:48812:35;;;;;;;;-1:-1:-1;;1053:48812:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1053:48812:35;;;;;;:::i;:::-;;;;;;;;;;;;47819:10;-1:-1:-1;2943:14:35;;;19280:18;1053:48812;2943:14;;;1053:48812;2943:14;;;-1:-1:-1;;;;;1053:48812:35;;2943:14;;;;;;;1053:48812;;;;;;;;;;;;;;;;;;;;;;47819:10;19355:55;1053:48812;47819:10;19355:55;;1053:48812;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;-1:-1:-1;;1053:48812:35;;;;:::o;:::-;;;-1:-1:-1;;1053:48812:35;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;1053:48812:35;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1053:48812:35;;;;12048:16;1053:48812;;12048:16;:::i;:::-;12047:17;12043:68;;-1:-1:-1;1053:48812:35;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;12173:87;1053:48812;;;;;;;;;;;;;;;:::i;12043:68::-;12074:36;;;-1:-1:-1;49766:91:35;1053:48812;-1:-1:-1;49766:91:35;1053:48812;;;;;;-1:-1:-1;;1053:48812:35;;;;;;19687:35;1053:48812;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;1053:48812:35;;;-1:-1:-1;2943:14:35;;;19687:18;2943:14;;1053:48812;2943:14;;;1053:48812;;;;2943:14;;-1:-1:-1;2943:14:35;;;;;;;19687:35;1053:48812;;;;;;;;;;22796:3447;;;22963:27;;;:::i;:::-;-1:-1:-1;;;;;1053:48812:35;;;;;;23173:45;;;23169:95;;-1:-1:-1;1053:48812:35;;;21929:15;1053:48812;;;;;22057:132;;23463:69;-1:-1:-1;;;;;21135:472:35;;47819:10;21135:472;;;;;;;23463:69;;1053:48812;23464:68;23463:69;;1053:48812;23463:69;23459:188;;22796:3447;23764:190;;22796:3447;-1:-1:-1;;;;;;1053:48812:35;;2943:14;;;;24316:18;2943:14;;;;;1053:48812;;-1:-1:-1;;2943:14:35;;;-1:-1:-1;;;;;1053:48812:35;;2943:14;;;;24316:18;2943:14;;;;;1053:48812;;2943:14;;;;-1:-1:-1;;;;;17192:331:35;;;;;;-1:-1:-1;;;17192:331:35;24670:26;;1053:48812;;24670:17;1053:48812;;;;;;;24670:26;2943:14;-1:-1:-1;;;24959:47:35;;:52;24955:617;;22796:3447;-1:-1:-1;;;;;;1053:48812:35;;;;25749:367;-1:-1:-1;;25749:367:35;26129:13;26125:58;;22796:3447::o;26125:58::-;26152:30;:::i;24955:617::-;25063:1;1053:48812;;25184:30;;1053:48812;;24670:17;1053:48812;;;;;;;25184:30;1053:48812;25184:35;25180:378;;24955:617;;;;25180:378;-1:-1:-1;1053:48812:35;25301:239;;25180:378;25301:239;25465:30;;1053:48812;;24670:17;1053:48812;;;;;;;25465:30;2943:14;25301:239;;25180:378;;23764:190;;;;;;;23459:188;23550:44;19687:35;;47819:10;19687:25;;1053:48812;;;;;;2943:14;;19687:18;2943:14;;;;;;;19687:25;2943:14;1053:48812;;;;;;2943:14;;;;;;;;;19687:35;1053:48812;;;;;23550:44;23546:101;23459:188;23546:101;23604:42;:::i;23169:95::-;23228:35;:::i;27102:405::-;;;;27294:7;;;;;:::i;:::-;27316:14;;27312:189;;27102:405;;;;;:::o;27312:189::-;27354:56;;;:::i;:::-;27353:57;27349:152;;27312:189;;;;;;27349:152;27438:47;;;27334:1;49766:91;;27334:1;49766:91;19978:465;;1053:48812;;;;20221:23;;20217:210;;19978:465;:::o;20217:210::-;20264:14;;;20296:60;1053:48812;;;20313:17;1053:48812;;;;;;20303:42;;;20347:9;1053:48812;;;;-1:-1:-1;;1053:48812:35;20296:60;;1053:48812;;;;;;;20313:17;1053:48812;;;;20303:42;-1:-1:-1;;;20383:24:35;:29;;20217:210;-1:-1:-1;19978:465:35:o;49703:160::-;23228:35;;;49766:91;;;;;49703:160;23604:42;;;49766:91;;;;;49703:160;26152:30;;;49766:91;;;;;49703:160;14916:38;;;49766:91;;;;;14380:2173;14528:26;;1053:48812;;24670:17;1053:48812;;;;;;;14528:26;1053:48812;14847:11;;;14843:1270;;-1:-1:-1;;;;16435:24:35;;16507:38;16431:48;16466:13;:::o;14843:1270::-;1053:48812;;;;14882:24;;;14878:77;;15502:597;-1:-1:-1;;2943:14:35;;1053:48812;;;24670:17;1053:48812;;;;;;15654:11;;;15650:25;;-1:-1:-1;;;;15701:24:35;;:29;15697:48;;14916:38;;;49766:91;;;;;15650:25;15502:597;-1:-1:-1;15502:597:35;;1053:48812;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1053:48812:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1053:48812:35;;;;:::o;:::-;;;:::o;29533:673::-;;29711:88;29533:673;1053:48812;29711:88;29533:673;;1053:48812;;;;;;;;;;;;29711:88;;47819:10;29711:88;;;;:::i;:::-;;;-1:-1:-1;;;;;1053:48812:35;29711:88;;1053:48812;;29711:88;;;29533:673;-1:-1:-1;29707:493:35;;29943:257;;:::i;:::-;1053:48812;;29989:18;29985:113;;30111:79;;;29711:88;30111:79;;29985:113;30035:47;:::i;29707:493::-;-1:-1:-1;;;;;;1053:48812:35;-1:-1:-1;;;29867:64:35;;29860:71::o;29711:88::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ApprovalCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApprovalQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceQueryForZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintERC2309QuantityExceedsLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintZeroQuantity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotCompatibleWithSpotMints\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnerQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnershipNotInitializedForExtraData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SequentialMintExceedsLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SequentialUpToTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SpotMintTokenIdTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromIncorrectOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToNonERC721ReceiverImplementer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"URIQueryForNonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"toTokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"ConsecutiveTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"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\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the [ERC721](https://eips.ethereum.org/EIPS/eip-721) Non-Fungible Token Standard, including the Metadata extension. Optimized for lower gas during batch mints. Token IDs are minted in sequential order (e.g. 0, 1, 2, 3, ...) starting from `_startTokenId()`. The `_sequentialUpTo()` function can be overriden to enable spot mints (i.e. non-consecutive mints) for `tokenId`s greater than `_sequentialUpTo()`. Assumptions: - An owner cannot have more than 2**64 - 1 (max value of uint64) of supply. - The maximum token ID cannot exceed 2**256 - 1 (max value of uint256).\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"ConsecutiveTransfer(uint256,uint256,address,address)\":{\"details\":\"Emitted when tokens in `fromTokenId` to `toTokenId` (inclusive) is transferred from `from` to `to`, as defined in the [ERC2309](https://eips.ethereum.org/EIPS/eip-2309) standard. See {_mintERC2309} for more details.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"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.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"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.\"}},\"title\":\"ERC721A\",\"version\":1},\"userdoc\":{\"errors\":{\"ApprovalCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"ApprovalQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"BalanceQueryForZeroAddress()\":[{\"notice\":\"Cannot query the balance for the zero address.\"}],\"MintERC2309QuantityExceedsLimit()\":[{\"notice\":\"The `quantity` minted with ERC2309 exceeds the safety limit.\"}],\"MintToZeroAddress()\":[{\"notice\":\"Cannot mint to the zero address.\"}],\"MintZeroQuantity()\":[{\"notice\":\"The quantity of tokens minted must be more than zero.\"}],\"NotCompatibleWithSpotMints()\":[{\"notice\":\"The feature is not compatible with spot mints.\"}],\"OwnerQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"OwnershipNotInitializedForExtraData()\":[{\"notice\":\"The `extraData` cannot be set on an unintialized ownership slot.\"}],\"SequentialMintExceedsLimit()\":[{\"notice\":\"The `tokenId` of a sequential mint exceeds `_sequentialUpTo()`.\"}],\"SequentialUpToTooSmall()\":[{\"notice\":\"`_sequentialUpTo()` must be greater than `_startTokenId()`.\"}],\"SpotMintTokenIdTooSmall()\":[{\"notice\":\"Spot minting requires a `tokenId` greater than `_sequentialUpTo()`.\"}],\"TokenAlreadyExists()\":[{\"notice\":\"Cannot mint over a token that already exists.\"}],\"TransferCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"TransferFromIncorrectOwner()\":[{\"notice\":\"The token must be owned by `from`.\"}],\"TransferToNonERC721ReceiverImplementer()\":[{\"notice\":\"Cannot safely transfer to a contract that does not implement the ERC721Receiver interface.\"}],\"TransferToZeroAddress()\":[{\"notice\":\"Cannot transfer to the zero address.\"}],\"URIQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}]},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/erc721a/contracts/ERC721A.sol\":\"ERC721A\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"node_modules/erc721a/contracts/ERC721A.sol\":{\"keccak256\":\"0xede758d13ccce2f54a4bcd16816456109b290759d43988205539cf632f4c8a55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b63befef8f79ec44ebe5db096767cab6772485c2b01a431759e7fcdcf7fd0bb1\",\"dweb:/ipfs/QmV45KT2ai7PnVRhpJKjB29A15VGnhsvxxBFrrUSwhe2fr\"]},\"node_modules/erc721a/contracts/IERC721A.sol\":{\"keccak256\":\"0xc9a2a00612e0d121aef3f716877ada17177d5b2d5a4c780d22cade46da2ff294\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1435542fc553d2fb9181191f126a1f97e2cc5570c2459c862f54ba415a22bf02\",\"dweb:/ipfs/QmaQJ14ajkHgymY5TtoxHnpiN5u4TpwXCqKr2B6DM8SHkn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"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":[],"type":"error","name":"OwnerQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"OwnershipNotInitializedForExtraData"},{"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":"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":[{"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":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"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":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"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":"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"}],"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."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"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 ca