[ { "inputs": [ { "internalType": "contract ILPNRegistry", "name": "lpnRegistry_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "CallbackNotAuthorized", "type": "error" }, { "inputs": [], "name": "ERC721EnumerableForbiddenBatchMint", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "ERC721OutOfBoundsIndex", "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": "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": [], "name": "PUDGY_METADATA_URI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PUDGY_PENGUINS", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "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": [ { "internalType": "uint256", "name": "requestId", "type": "uint256" }, { "internalType": "uint256[]", "name": "results", "type": "uint256[]" } ], "name": "lpnCallback", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "lpnRegistry", "outputs": [ { "internalType": "contract ILPNRegistry", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "name": "mintRequests", "outputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "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": "minter", "type": "address" }, { "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "name": "requestMint", "outputs": [], "stateMutability": "payable", "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": "nonpayable", "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": "nonpayable", "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": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "", "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": "nonpayable", "type": "function" } ]
608060405234801561000f575f80fd5b506040516119e93803806119e983398101604081905261002e916100ae565b604080518082018252601081526f4c6179657265642050656e6775696e7360801b602080830191909152825180840190935260058352644c5044475960d81b908301525f80546001600160a01b0319166001600160a01b0385161790559060016100988382610173565b5060026100a58282610173565b50505050610232565b5f602082840312156100be575f80fd5b81516001600160a01b03811681146100d4575f80fd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061010357607f821691505b60208210810361012157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561016e57805f5260205f20601f840160051c8101602085101561014c5750805b601f840160051c820191505b8181101561016b575f8155600101610158565b50505b505050565b81516001600160401b0381111561018c5761018c6100db565b6101a08161019a84546100ef565b84610127565b602080601f8311600181146101d3575f84156101bc5750858301515b5f19600386901b1c1916600185901b17855561022a565b5f85815260208120601f198616915b82811015610201578886015182559484019460019091019084016101e2565b508582101561021e57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6117aa8061023f5f395ff3fe608060405260043610610131575f3560e01c806342842e0e116100a857806395d89b411161006d57806395d89b4114610365578063a22cb46514610379578063b26759df14610398578063b88d4fde146103ac578063c87b56dd146103cb578063e985e9c5146103ea575f80fd5b806342842e0e146102cb5780634f6ccce7146102ea5780636337ec5a146103095780636352211e1461032757806370a0823114610346575f80fd5b80631badbf2f116100f95780631badbf2f1461020057806323b872dd146102275780632f745c591461024657806331a02bce146102655780633e8258f114610278578063424e657514610297575f80fd5b806301ffc9a71461013557806306fdde0314610169578063081812fc1461018a578063095ea7b3146101c157806318160ddd146101e2575b5f80fd5b348015610140575f80fd5b5061015461014f366004611327565b610409565b60405190151581526020015b60405180910390f35b348015610174575f80fd5b5061017d610433565b6040516101609190611370565b348015610195575f80fd5b506101a96101a4366004611382565b6104c3565b6040516001600160a01b039091168152602001610160565b3480156101cc575f80fd5b506101e06101db3660046113b4565b6104ea565b005b3480156101ed575f80fd5b506009545b604051908152602001610160565b34801561020b575f80fd5b506101a973bd3531da5cf5857e7cfaa92426877b022e612cf881565b348015610232575f80fd5b506101e06102413660046113dc565b6104f9565b348015610251575f80fd5b506101f26102603660046113b4565b610587565b6101e06102733660046113b4565b6105ea565b348015610283575f80fd5b506101e0610292366004611415565b610631565b3480156102a2575f80fd5b506101a96102b1366004611382565b600c6020525f90815260409020546001600160a01b031681565b3480156102d6575f80fd5b506101e06102e53660046113dc565b61066b565b3480156102f5575f80fd5b506101f2610304366004611382565b610685565b348015610314575f80fd5b505f546101a9906001600160a01b031681565b348015610332575f80fd5b506101a9610341366004611382565b6106da565b348015610351575f80fd5b506101f261036036600461148d565b6106e4565b348015610370575f80fd5b5061017d610729565b348015610384575f80fd5b506101e06103933660046114a6565b610738565b3480156103a3575f80fd5b5061017d610743565b3480156103b7575f80fd5b506101e06103c63660046114f3565b61075f565b3480156103d6575f80fd5b5061017d6103e5366004611382565b610776565b3480156103f5575f80fd5b506101546104043660046115c8565b6107db565b5f6001600160e01b0319821663780e9d6360e01b148061042d575061042d82610808565b92915050565b606060018054610442906115f9565b80601f016020809104026020016040519081016040528092919081815260200182805461046e906115f9565b80156104b95780601f10610490576101008083540402835291602001916104b9565b820191905f5260205f20905b81548152906001019060200180831161049c57829003601f168201915b5050505050905090565b5f6104cd82610857565b505f828152600560205260409020546001600160a01b031661042d565b6104f582823361088f565b5050565b6001600160a01b03821661052757604051633250574960e11b81525f60048201526024015b60405180910390fd5b5f61053383833361089c565b9050836001600160a01b0316816001600160a01b031614610581576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161051e565b50505050565b5f610591836106e4565b82106105c25760405163295f44f760e21b81526001600160a01b03841660048201526024810183905260440161051e565b506001600160a01b03919091165f908152600760209081526040808320938352929052205490565b5f6105f48261096f565b60408051602080820183526001600160a01b0396871682525f938452600c90529120905181546001600160a01b0319169416939093179092555050565b5f546001600160a01b0316331461065b576040516311016bf360e01b815260040160405180910390fd5b610666838383610ab3565b505050565b61066683838360405180602001604052805f81525061075f565b5f61068f60095490565b82106106b75760405163295f44f760e21b81525f60048201526024810183905260440161051e565b600982815481106106ca576106ca611631565b905f5260205f2001549050919050565b5f61042d82610857565b5f6001600160a01b03821661070e576040516322718ad960e21b81525f600482015260240161051e565b506001600160a01b03165f9081526004602052604090205490565b606060028054610442906115f9565b6104f5338383610b26565b6040518060800160405280604381526020016117326043913981565b61076a8484846104f9565b61058184848484610bc4565b606061078182610857565b505f61078b610cea565b90505f8151116107a95760405180602001604052805f8152506107d4565b806107b384610d0a565b6040516020016107c492919061165c565b6040516020818303038152906040525b9392505050565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205460ff1690565b5f6001600160e01b031982166380ac58cd60e01b148061083857506001600160e01b03198216635b5e139f60e01b145b8061042d57506301ffc9a760e01b6001600160e01b031983161461042d565b5f818152600360205260408120546001600160a01b03168061042d57604051637e27328960e01b81526004810184905260240161051e565b6106668383836001610d9a565b5f806108a9858585610e9e565b90506001600160a01b0381166109055761090084600980545f838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0155565b610928565b846001600160a01b0316816001600160a01b031614610928576109288185610f90565b6001600160a01b0385166109445761093f8461101d565b610967565b846001600160a01b0316816001600160a01b0316146109675761096785856110c4565b949350505050565b5f80546040805163658612e960e01b815290516001600160a01b0390921691638632627e91839163658612e991600480820192602092909190829003018189875af11580156109c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e49190611670565b60408051606080820183525f808352602080840182905292840181905283519182018452604382523392820183905292019190915273bd3531da5cf5857e7cfaa92426877b022e612cf89060581b604360f81b176040516001600160e01b031960e086901b1681526001600160a01b0390921660048301526024820152604481018690526064810186905260840160206040518083038185885af1158015610a8e573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061042d9190611670565b8015801590610b06575f848152600c6020908152604091829020825191820190925290546001600160a01b0316808252600b54610af09190611112565b600b8054905f610aff8361169b565b9190505550505b5050505f908152600c6020526040902080546001600160a01b0319169055565b6001600160a01b038216610b5857604051630b61174360e31b81526001600160a01b038316600482015260240161051e565b6001600160a01b038381165f81815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561058157604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610c069033908890879087906004016116b3565b6020604051808303815f875af1925050508015610c40575060408051601f3d908101601f19168201909252610c3d918101906116ef565b60015b610ca7573d808015610c6d576040519150601f19603f3d011682016040523d82523d5f602084013e610c72565b606091505b5080515f03610c9f57604051633250574960e11b81526001600160a01b038516600482015260240161051e565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610ce357604051633250574960e11b81526001600160a01b038516600482015260240161051e565b5050505050565b606060405180608001604052806043815260200161173260439139905090565b60605f610d1683611173565b60010190505f8167ffffffffffffffff811115610d3557610d356114df565b6040519080825280601f01601f191660200182016040528015610d5f576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610d6957509392505050565b8080610dae57506001600160a01b03821615155b15610e6f575f610dbd84610857565b90506001600160a01b03831615801590610de95750826001600160a01b0316816001600160a01b031614155b8015610dfc5750610dfa81846107db565b155b15610e255760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161051e565b8115610e6d5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50505f90815260056020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b5f828152600360205260408120546001600160a01b0390811690831615610eca57610eca81848661124a565b6001600160a01b03811615610f0457610ee55f855f80610d9a565b6001600160a01b0381165f90815260046020526040902080545f190190555b6001600160a01b03851615610f32576001600160a01b0385165f908152600460205260409020805460010190555b5f8481526003602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b5f610f9a836106e4565b5f83815260086020526040902054909150808214610feb576001600160a01b0384165f9081526007602090815260408083208584528252808320548484528184208190558352600890915290208190555b505f9182526008602090815260408084208490556001600160a01b039094168352600781528383209183525290812055565b6009545f9061102e9060019061170a565b5f838152600a60205260408120546009805493945090928490811061105557611055611631565b905f5260205f2001549050806009838154811061107457611074611631565b5f918252602080832090910192909255828152600a909152604080822084905585825281205560098054806110ab576110ab61171d565b600190038181905f5260205f20015f9055905550505050565b5f60016110d0846106e4565b6110da919061170a565b6001600160a01b039093165f908152600760209081526040808320868452825280832085905593825260089052919091209190915550565b6001600160a01b03821661113b57604051633250574960e11b81525f600482015260240161051e565b5f61114783835f61089c565b90506001600160a01b03811615610666576040516339e3563760e11b81525f600482015260240161051e565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106111b15772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106111dd576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106111fb57662386f26fc10000830492506010015b6305f5e1008310611213576305f5e100830492506008015b612710831061122757612710830492506004015b60648310611239576064830492506002015b600a831061042d5760010192915050565b6112558383836112ae565b610666576001600160a01b03831661128357604051637e27328960e01b81526004810182905260240161051e565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161051e565b5f6001600160a01b038316158015906109675750826001600160a01b0316846001600160a01b031614806112e757506112e784846107db565b806109675750505f908152600560205260409020546001600160a01b03908116911614919050565b6001600160e01b031981168114611324575f80fd5b50565b5f60208284031215611337575f80fd5b81356107d48161130f565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6107d46020830184611342565b5f60208284031215611392575f80fd5b5035919050565b80356001600160a01b03811681146113af575f80fd5b919050565b5f80604083850312156113c5575f80fd5b6113ce83611399565b946020939093013593505050565b5f805f606084860312156113ee575f80fd5b6113f784611399565b925061140560208501611399565b9150604084013590509250925092565b5f805f60408486031215611427575f80fd5b83359250602084013567ffffffffffffffff80821115611445575f80fd5b818601915086601f830112611458575f80fd5b813581811115611466575f80fd5b8760208260051b850101111561147a575f80fd5b6020830194508093505050509250925092565b5f6020828403121561149d575f80fd5b6107d482611399565b5f80604083850312156114b7575f80fd5b6114c083611399565b9150602083013580151581146114d4575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f8060808587031215611506575f80fd5b61150f85611399565b935061151d60208601611399565b925060408501359150606085013567ffffffffffffffff80821115611540575f80fd5b818701915087601f830112611553575f80fd5b813581811115611565576115656114df565b604051601f8201601f19908116603f0116810190838211818310171561158d5761158d6114df565b816040528281528a60208487010111156115a5575f80fd5b826020860160208301375f60208483010152809550505050505092959194509250565b5f80604083850312156115d9575f80fd5b6115e283611399565b91506115f060208401611399565b90509250929050565b600181811c9082168061160d57607f821691505b60208210810361162b57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b5f81518060208401855e5f93019283525090919050565b5f61096761166a8386611645565b84611645565b5f60208284031215611680575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b5f600182016116ac576116ac611687565b5060010190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906116e590830184611342565b9695505050505050565b5f602082840312156116ff575f80fd5b81516107d48161130f565b8181038181111561042d5761042d611687565b634e487b7160e01b5f52603160045260245ffdfe697066733a2f2f6261667962656962633573676f32706c6d6a6b7132747a6d68726e3534626b336372686e6332337a64326d73673465613761347078726b67666e612fa26469706673582212201e9767c0a056e3d7f8ffb8ed260693483b8eb72dbae61c0c57a5b27903afca6664736f6c634300081900330000000000000000000000002584665beff871534118aabae781bc267af142f9