/* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ import { Signer, utils, Contract, ContractFactory, Overrides, BigNumberish, } from "ethers"; import { Provider, TransactionRequest } from "@ethersproject/providers"; import type { NFT, NFTInterface } from "../NFT"; const _abi = [ { inputs: [ { internalType: "address payable", name: "_controlCenter", type: "address", }, { internalType: "string", name: "_name", type: "string", }, { internalType: "string", name: "_symbol", type: "string", }, { internalType: "address", name: "_trustedForwarder", type: "address", }, { internalType: "string", name: "_uri", type: "string", }, { internalType: "uint256", name: "_royaltyBps", type: "uint256", }, ], stateMutability: "nonpayable", type: "constructor", }, { 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: "creator", type: "address", }, { indexed: true, internalType: "address", name: "to", type: "address", }, { indexed: false, internalType: "uint256", name: "tokenId", type: "uint256", }, { indexed: false, internalType: "string", name: "tokenURI", type: "string", }, ], name: "Minted", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "creator", type: "address", }, { indexed: true, internalType: "address", name: "to", type: "address", }, { indexed: false, internalType: "uint256[]", name: "tokenIds", type: "uint256[]", }, { indexed: false, internalType: "string[]", name: "tokenURI", type: "string[]", }, ], name: "MintedBatch", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "prevOwner", type: "address", }, { indexed: false, internalType: "address", name: "newOwner", type: "address", }, ], name: "NewOwner", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "account", type: "address", }, ], name: "Paused", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "bool", name: "transferable", type: "bool", }, ], name: "RestrictedTransferUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "role", type: "bytes32", }, { indexed: true, internalType: "bytes32", name: "previousAdminRole", type: "bytes32", }, { indexed: true, internalType: "bytes32", name: "newAdminRole", type: "bytes32", }, ], name: "RoleAdminChanged", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "role", type: "bytes32", }, { indexed: true, internalType: "address", name: "account", type: "address", }, { indexed: true, internalType: "address", name: "sender", type: "address", }, ], name: "RoleGranted", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "role", type: "bytes32", }, { indexed: true, internalType: "address", name: "account", type: "address", }, { indexed: true, internalType: "address", name: "sender", type: "address", }, ], name: "RoleRevoked", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "royaltyBps", type: "uint256", }, ], name: "RoyaltyUpdated", 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", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "account", type: "address", }, ], name: "Unpaused", type: "event", }, { inputs: [], name: "DEFAULT_ADMIN_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "MINTER_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "PAUSER_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "TRANSFER_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "_contractURI", outputs: [ { internalType: "string", name: "", type: "string", }, ], 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: "burn", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "contractURI", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], name: "creator", outputs: [ { internalType: "address", name: "", type: "address", }, ], 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: "bytes32", name: "role", type: "bytes32", }, ], name: "getRoleAdmin", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, { internalType: "uint256", name: "index", type: "uint256", }, ], name: "getRoleMember", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, ], name: "getRoleMemberCount", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, { internalType: "address", name: "account", type: "address", }, ], name: "grantRole", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, { internalType: "address", name: "account", type: "address", }, ], name: "hasRole", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], 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: "address", name: "forwarder", type: "address", }, ], name: "isTrustedForwarder", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "mint", outputs: [], stateMutability: "pure", type: "function", }, { inputs: [ { internalType: "address", name: "_to", type: "address", }, { internalType: "string", name: "_uri", type: "string", }, ], name: "mintNFT", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "_to", type: "address", }, { internalType: "string[]", name: "_uris", type: "string[]", }, ], name: "mintNFTBatch", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes[]", name: "data", type: "bytes[]", }, ], name: "multicall", outputs: [ { internalType: "bytes[]", name: "results", type: "bytes[]", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "name", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "nextTokenId", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], name: "nftURI", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "owner", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "tokenId", type: "uint256", }, ], name: "ownerOf", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "pause", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "paused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, { internalType: "address", name: "account", type: "address", }, ], name: "renounceRole", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, { internalType: "address", name: "account", type: "address", }, ], name: "revokeRole", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "royaltyBps", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "", type: "uint256", }, { internalType: "uint256", name: "salePrice", type: "uint256", }, ], name: "royaltyInfo", outputs: [ { internalType: "address", name: "receiver", type: "address", }, { internalType: "uint256", name: "royaltyAmount", 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: "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: "string", name: "_URI", type: "string", }, ], name: "setContractURI", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "_newOwner", type: "address", }, ], name: "setOwner", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bool", name: "_restrictedTransfer", type: "bool", }, ], name: "setRestrictedTransfer", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "_royaltyBps", type: "uint256", }, ], name: "setRoyaltyBps", 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", }, { inputs: [], name: "transfersRestricted", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "unpause", outputs: [], stateMutability: "nonpayable", type: "function", }, ]; const _bytecode = "0x60806040523480156200001157600080fd5b50604051620040eb380380620040eb83398101604081905262000034916200061f565b82858584828281600290805190602001906200005292919062000493565b5080516200006890600390602084019062000493565b5050600c805460ff191690555080516200008a90600e90602084019062000493565b50620000a160006200009b620001b8565b620001d4565b620000d07f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66200009b620001b8565b620000ff7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6200009b620001b8565b5050600f80546001600160a01b03199081166001600160a01b039485161790915560118054909116928916929092179091555081516200014790601390602085019062000493565b5062000152620001b8565b601080546001600160a01b0319166001600160a01b0392909216919091179055620001a17f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c6200009b620001b8565b620001ac81620001e4565b50505050505062000721565b6000620001cf620002ee60201b62001b911760201c565b905090565b620001e0828262000327565b5050565b620001fa6000620001f4620001b8565b6200036a565b6200024c5760405162461bcd60e51b815260206004820152601660248201527f6f6e6c79206d6f64756c652061646d696e20726f6c650000000000000000000060448201526064015b60405180910390fd5b612710811115620002b35760405162461bcd60e51b815260206004820152602a60248201527f4e46543a204270732070726f7669646564206d757374206265206c6573732074604482015269068616e2031302c3030360b41b606482015260840162000243565b60168190556040518181527f244ea8d7627f5a08f4299862bd5a45752842c183aee5b0fb0d1e4887bfa605b39060200160405180910390a150565b600f546000906001600160a01b031633141562000312575060131936013560601c90565b620001cf6200039560201b62001bb91760201c565b6200033e82826200039960201b62001bbd1760201c565b60008281526001602090815260409091206200036591839062001c5c62000423821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff165b92915050565b3390565b620003a582826200036a565b620001e0576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620003df620001b8565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006200043a836001600160a01b03841662000441565b9392505050565b60008181526001830160205260408120546200048a575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200038f565b5060006200038f565b828054620004a190620006e4565b90600052602060002090601f016020900481019282620004c5576000855562000510565b82601f10620004e057805160ff191683800117855562000510565b8280016001018555821562000510579182015b8281111562000510578251825591602001919060010190620004f3565b506200051e92915062000522565b5090565b5b808211156200051e576000815560010162000523565b6001600160a01b03811681146200054f57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200057a57600080fd5b81516001600160401b038082111562000597576200059762000552565b604051601f8301601f19908116603f01168101908282118183101715620005c257620005c262000552565b81604052838152602092508683858801011115620005df57600080fd5b600091505b83821015620006035785820183015181830184015290820190620005e4565b83821115620006155760008385830101525b9695505050505050565b60008060008060008060c087890312156200063957600080fd5b8651620006468162000539565b60208801519096506001600160401b03808211156200066457600080fd5b620006728a838b0162000568565b965060408901519150808211156200068957600080fd5b620006978a838b0162000568565b955060608901519150620006ab8262000539565b608089015191945080821115620006c157600080fd5b50620006d089828a0162000568565b92505060a087015190509295509295509295565b600181811c90821680620006f957607f821691505b602082108114156200071b57634e487b7160e01b600052602260045260246000fd5b50919050565b6139ba80620007316000396000f3fe608060405234801561001057600080fd5b506004361061032b5760003560e01c806370a08231116101b2578063ac9650d8116100f9578063d5391393116100a2578063e8a3d4851161007c578063e8a3d4851461071b578063e985e9c514610723578063eacabe141461075f578063efe476871461077257600080fd5b8063d5391393146106ba578063d547741f146106e1578063e63ab1e9146106f457600080fd5b8063c63adb2b116100d3578063c63adb2b1461068b578063c87b56dd14610694578063ca15c873146106a757600080fd5b8063ac9650d814610650578063b88d4fde14610670578063c0e727401461068357600080fd5b80639010d07c1161015b57806395d89b411161013557806395d89b411461062d578063a217fddf14610635578063a22cb4651461063d57600080fd5b80639010d07c146105d057806391d14854146105e3578063938e3d7b1461061a57600080fd5b80638456cb591161018c5780638456cb59146105ad5780638ba448c2146105b55780638da5cb5b146105c857600080fd5b806370a082311461057d57806375794a3c146105905780638423df791461059957600080fd5b80632f745c59116102765780634f6ccce71161021f5780635c975abb116101f95780635c975abb1461054c5780636352211e146105575780636a6278421461056a57600080fd5b80634f6ccce7146104ee578063510b515814610501578063572b6c051461052a57600080fd5b806342842e0e1161025057806342842e0e146104b557806342966c68146104c857806349a33a2f146104db57600080fd5b80632f745c591461048757806336568abe1461049a5780633f4ba83a146104ad57600080fd5b80631f72d831116102d8578063248a9ca3116102b2578063248a9ca31461041f5780632a55205a146104425780632f2ff15d1461047457600080fd5b80631f72d831146103d2578063206b60f9146103e557806323b872dd1461040c57600080fd5b8063095ea7b311610309578063095ea7b31461039857806313af4035146103ad57806318160ddd146103c057600080fd5b806301ffc9a71461033057806306fdde0314610358578063081812fc1461036d575b600080fd5b61034361033e3660046130e0565b610785565b60405190151581526020015b60405180910390f35b6103606107b1565b60405161034f9190613155565b61038061037b366004613168565b610843565b6040516001600160a01b03909116815260200161034f565b6103ab6103a6366004613196565b6108dd565b005b6103ab6103bb3660046131c2565b610a05565b600a545b60405190815260200161034f565b6103ab6103e0366004613168565b610b3f565b6103c47f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c81565b6103ab61041a3660046131df565b610c45565b6103c461042d366004613168565b60009081526020819052604090206001015490565b610455610450366004613220565b610cd3565b604080516001600160a01b03909316835260208301919091520161034f565b6103ab610482366004613242565b610d7a565b6103c4610495366004613196565b610da7565b6103ab6104a8366004613242565b610e4f565b6103ab610eeb565b6103ab6104c33660046131df565b610f95565b6103ab6104d6366004613168565b610fb0565b6103ab6104e93660046132be565b611039565b6103c46104fc366004613168565b611270565b61038061050f366004613168565b6015602052600090815260409020546001600160a01b031681565b6103436105383660046131c2565b600f546001600160a01b0391821691161490565b600c5460ff16610343565b610380610565366004613168565b611314565b6103ab6105783660046131c2565b61139f565b6103c461058b3660046131c2565b6113e7565b6103c460125481565b600f5461034390600160a01b900460ff1681565b6103ab611481565b6103ab6105c3366004613328565b611527565b6103806115e1565b6103806105de366004613220565b61163a565b6103436105f1366004613242565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6103ab610628366004613385565b611659565b6103606116b7565b6103c4600081565b6103ab61064b3660046133c7565b6116c6565b61066361065e3660046133f3565b6116d8565b60405161034f9190613429565b6103ab61067e3660046134a1565b6117cd565b610360611862565b6103c460165481565b6103606106a2366004613168565b6118f0565b6103c46106b5366004613168565b611992565b6103c47f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6103ab6106ef366004613242565b6119a9565b6103c47f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6103606119d1565b610343610731366004613581565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b6103ab61076d3660046135af565b6119e0565b610360610780366004613168565b611b78565b600061079082611c71565b806107ab57506001600160e01b0319821663152a902d60e11b145b92915050565b6060600280546107c0906135f7565b80601f01602080910402602001604051908101604052809291908181526020018280546107ec906135f7565b80156108395780601f1061080e57610100808354040283529160200191610839565b820191906000526020600020905b81548152906001019060200180831161081c57829003601f168201915b5050505050905090565b6000818152600460205260408120546001600160a01b03166108c15760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600660205260409020546001600160a01b031690565b60006108e882611314565b9050806001600160a01b0316836001600160a01b031614156109565760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016108b8565b806001600160a01b0316610968611c7c565b6001600160a01b03161480610984575061098481610731611c7c565b6109f65760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016108b8565b610a008383611c86565b505050565b610a1260006105f1611c7c565b610a575760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b60448201526064016108b8565b6001600160a01b03811660009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16610ade5760405162461bcd60e51b815260206004820152601b60248201527f6e6577206f776e6572206e6f74206d6f64756c652061646d696e2e000000000060448201526064016108b8565b601080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b2364910160405180910390a15050565b610b4c60006105f1611c7c565b610b915760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b60448201526064016108b8565b612710811115610c095760405162461bcd60e51b815260206004820152602a60248201527f4e46543a204270732070726f7669646564206d757374206265206c657373207460448201527f68616e2031302c3030300000000000000000000000000000000000000000000060648201526084016108b8565b60168190556040518181527f244ea8d7627f5a08f4299862bd5a45752842c183aee5b0fb0d1e4887bfa605b3906020015b60405180910390a150565b610c56610c50611c7c565b82611cf4565b610cc85760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016108b8565b610a00838383611deb565b60115460405163f2aab4b360e01b815230600482015260009182916001600160a01b039091169063f2aab4b39060240160206040518083038186803b158015610d1b57600080fd5b505afa158015610d2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d539190613632565b60165490925061271090610d679085613665565b610d719190613684565b90509250929050565b600082815260208190526040902060010154610d9d81610d98611c7c565b611faa565b610a008383612028565b6000610db2836113e7565b8210610e265760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e647300000000000000000000000000000000000000000060648201526084016108b8565b506001600160a01b03919091166000908152600860209081526040808320938352929052205490565b610e57611c7c565b6001600160a01b0316816001600160a01b031614610edd5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016108b8565b610ee7828261204a565b5050565b610f177f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6105f1611c7c565b610f8b576040805162461bcd60e51b81526020600482015260248101919091527f4552433732315072657365744d696e7465725061757365724175746f49643a2060448201527f6d75737420686176652070617573657220726f6c6520746f20756e706175736560648201526084016108b8565b610f9361206c565b565b610a00838383604051806020016040528060008152506117cd565b610fbb610c50611c7c565b61102d5760405162461bcd60e51b815260206004820152603060248201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f7665640000000000000000000000000000000060648201526084016108b8565b6110368161210e565b50565b600c5460ff161561107f5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108b8565b6110ab7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66105f1611c7c565b6111025760405162461bcd60e51b815260206004820152602260248201527f4e46543a206d7573742068617665206d696e74657220726f6c6520746f206d696044820152611b9d60f21b60648201526084016108b8565b60008167ffffffffffffffff81111561111d5761111d61348b565b604051908082528060200260200182016040528015611146578160200160208202803683370190505b506012549091506000611157611c7c565b905060005b848110156112115782848281518110611177576111776136a6565b602002602001018181525050858582818110611195576111956136a6565b90506020028101906111a791906136bc565b60008581526014602052604090206111c0929091613031565b50600083815260156020526040902080546001600160a01b0319166001600160a01b0384161790556111f287846121b5565b6111fd600184613703565b9250806112098161371b565b91505061115c565b5081601281905550856001600160a01b0316816001600160a01b03167f2a7af4d3b262c3e3d51c600cdf7a940c9aba3fedcc85148aeda266cc4c4a2f338588886040516112609392919061375f565b60405180910390a3505050505050565b600061127b600a5490565b82106112ef5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e6473000000000000000000000000000000000000000060648201526084016108b8565b600a8281548110611302576113026136a6565b90600052602060002001549050919050565b6000818152600460205260408120546001600160a01b0316806107ab5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e000000000000000000000000000000000000000000000060648201526084016108b8565b60405162461bcd60e51b815260206004820152601d60248201527f4e46543732313a2043616c6c206d696e744e465420696e73746561642e00000060448201526064016108b8565b60006001600160a01b0382166114655760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f20616464726573730000000000000000000000000000000000000000000060648201526084016108b8565b506001600160a01b031660009081526005602052604090205490565b6114ad7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6105f1611c7c565b61151f5760405162461bcd60e51b815260206004820152603e60248201527f4552433732315072657365744d696e7465725061757365724175746f49643a2060448201527f6d75737420686176652070617573657220726f6c6520746f207061757365000060648201526084016108b8565b610f93612303565b61153460006105f1611c7c565b6115795760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b60448201526064016108b8565b600f8054821515600160a01b027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9091161790556040517ffb4ba02cee22486df888d7ffb97c6100ec3193781e025cb9a4bc6fc358d626cc90610c3a90831515815260200190565b6010546001600160a01b031660009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205460ff166116285750600090565b6010546001600160a01b03165b905090565b6000828152600160205260408120611652908361237f565b9392505050565b61166660006105f1611c7c565b6116ab5760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b60448201526064016108b8565b610a0060138383613031565b6060600380546107c0906135f7565b610ee76116d1611c7c565b838361238b565b60608167ffffffffffffffff8111156116f3576116f361348b565b60405190808252806020026020018201604052801561172657816020015b60608152602001906001900390816117115790505b50905060005b828110156117c6576117963085858481811061174a5761174a6136a6565b905060200281019061175c91906136bc565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061245a92505050565b8282815181106117a8576117a86136a6565b602002602001018190525080806117be9061371b565b91505061172c565b5092915050565b6117de6117d8611c7c565b83611cf4565b6118505760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016108b8565b61185c8484848461247f565b50505050565b6013805461186f906135f7565b80601f016020809104026020016040519081016040528092919081815260200182805461189b906135f7565b80156118e85780601f106118bd576101008083540402835291602001916118e8565b820191906000526020600020905b8154815290600101906020018083116118cb57829003601f168201915b505050505081565b600081815260146020526040902080546060919061190d906135f7565b80601f0160208091040260200160405190810160405280929190818152602001828054611939906135f7565b80156119865780601f1061195b57610100808354040283529160200191611986565b820191906000526020600020905b81548152906001019060200180831161196957829003601f168201915b50505050509050919050565b60008181526001602052604081206107ab90612508565b6000828152602081905260409020600101546119c781610d98611c7c565b610a00838361204a565b6060601380546107c0906135f7565b600c5460ff1615611a265760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108b8565b611a527f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66105f1611c7c565b611aa95760405162461bcd60e51b815260206004820152602260248201527f4e46543a206d7573742068617665206d696e74657220726f6c6520746f206d696044820152611b9d60f21b60648201526084016108b8565b6012546000818152601460205260409020611ac5908484613031565b50611ace611c7c565b600082815260156020526040902080546001600160a01b0319166001600160a01b0392909216919091179055611b0484826121b5565b600160126000828254611b179190613703565b90915550506001600160a01b038416611b2e611c7c565b6001600160a01b03167fafe8c5a4c36942a61550534b714a0076ab46ef8ef23e361572aad8b7ca2ac27d838686604051611b6a93929190613833565b60405180910390a350505050565b6014602052600090815260409020805461186f906135f7565b600f546000906001600160a01b0316331415611bb4575060131936013560601c90565b503390565b3390565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610ee7576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055611c18611c7c565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611652836001600160a01b038416612512565b60006107ab82612561565b6000611635611b91565b600081815260066020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611cbb82611314565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600460205260408120546001600160a01b0316611d6d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016108b8565b6000611d7883611314565b9050806001600160a01b0316846001600160a01b03161480611db35750836001600160a01b0316611da884610843565b6001600160a01b0316145b80611de357506001600160a01b0380821660009081526007602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316611dfe82611314565b6001600160a01b031614611e7a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e000000000000000000000000000000000000000000000060648201526084016108b8565b6001600160a01b038216611edc5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016108b8565b611ee7838383612586565b611ef2600082611c86565b6001600160a01b0383166000908152600560205260408120805460019290611f1b908490613856565b90915550506001600160a01b0382166000908152600560205260408120805460019290611f49908490613703565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610ee757611fe6816001600160a01b031660146126ba565b611ff18360206126ba565b60405160200161200292919061386d565b60408051601f198184030181529082905262461bcd60e51b82526108b891600401613155565b6120328282611bbd565b6000828152600160205260409020610a009082611c5c565b6120548282612863565b6000828152600160205260409020610a009082612900565b600c5460ff166120be5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016108b8565b600c805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6120f1611c7c565b6040516001600160a01b03909116815260200160405180910390a1565b600061211982611314565b905061212781600084612586565b612132600083611c86565b6001600160a01b038116600090815260056020526040812080546001929061215b908490613856565b909155505060008281526004602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b03821661220b5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016108b8565b6000818152600460205260409020546001600160a01b0316156122705760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016108b8565b61227c60008383612586565b6001600160a01b03821660009081526005602052604081208054600192906122a5908490613703565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600c5460ff16156123495760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108b8565b600c805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586120f1611c7c565b60006116528383612915565b816001600160a01b0316836001600160a01b031614156123ed5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016108b8565b6001600160a01b03838116600081815260076020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b606061165283836040518060600160405280602781526020016139876027913961293f565b61248a848484611deb565b61249684848484612a2a565b61185c5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016108b8565b60006107ab825490565b6000818152600183016020526040812054612559575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556107ab565b5060006107ab565b60006001600160e01b0319821663780e9d6360e01b14806107ab57506107ab82612b94565b612591838383612bd4565b600f54600160a01b900460ff1680156125b257506001600160a01b03831615155b80156125c657506001600160a01b03821615155b15610a00576001600160a01b03831660009081527f7c7a990f752005aea38438cc35abc5417bd322e6c964ec21d52573494225142c602052604090205460ff168061264857506001600160a01b03821660009081527f7c7a990f752005aea38438cc35abc5417bd322e6c964ec21d52573494225142c602052604090205460ff165b610a005760405162461bcd60e51b815260206004820152603660248201527f4e46543a205472616e736665727320617265207265737472696374656420746f60448201527f205452414e534645525f524f4c4520686f6c646572730000000000000000000060648201526084016108b8565b606060006126c9836002613665565b6126d4906002613703565b67ffffffffffffffff8111156126ec576126ec61348b565b6040519080825280601f01601f191660200182016040528015612716576020820181803683370190505b509050600360fc1b81600081518110612731576127316136a6565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612760576127606136a6565b60200101906001600160f81b031916908160001a9053506000612784846002613665565b61278f906001613703565b90505b6001811115612814577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106127d0576127d06136a6565b1a60f81b8282815181106127e6576127e66136a6565b60200101906001600160f81b031916908160001a90535060049490941c9361280d816138ee565b9050612792565b5083156116525760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108b8565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610ee7576000828152602081815260408083206001600160a01b03851684529091529020805460ff191690556128bc611c7c565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000611652836001600160a01b038416612bdf565b600082600001828154811061292c5761292c6136a6565b9060005260206000200154905092915050565b6060833b6129b55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016108b8565b600080856001600160a01b0316856040516129d09190613905565b600060405180830381855af49150503d8060008114612a0b576040519150601f19603f3d011682016040523d82523d6000602084013e612a10565b606091505b5091509150612a20828286612cd2565b9695505050505050565b60006001600160a01b0384163b15612b8957836001600160a01b031663150b7a02612a53611c7c565b8786866040518563ffffffff1660e01b8152600401612a759493929190613921565b602060405180830381600087803b158015612a8f57600080fd5b505af1925050508015612abf575060408051601f3d908101601f19168201909252612abc91810190613953565b60015b612b6f573d808015612aed576040519150601f19603f3d011682016040523d82523d6000602084013e612af2565b606091505b508051612b675760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016108b8565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611de3565b506001949350505050565b60006001600160e01b031982166380ac58cd60e01b1480612bc557506001600160e01b03198216635b5e139f60e01b145b806107ab57506107ab82612d0b565b610a00838383612d30565b60008181526001830160205260408120548015612cc8576000612c03600183613856565b8554909150600090612c1790600190613856565b9050818114612c7c576000866000018281548110612c3757612c376136a6565b9060005260206000200154905080876000018481548110612c5a57612c5a6136a6565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612c8d57612c8d613970565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506107ab565b60009150506107ab565b60608315612ce1575081611652565b825115612cf15782518084602001fd5b8160405162461bcd60e51b81526004016108b89190613155565b60006001600160e01b03198216635a05180f60e01b14806107ab57506107ab82612db4565b612d3b838383612de9565b600c5460ff1615610a005760405162461bcd60e51b815260206004820152602b60248201527f4552433732315061757361626c653a20746f6b656e207472616e73666572207760448201527f68696c652070617573656400000000000000000000000000000000000000000060648201526084016108b8565b60006001600160e01b03198216637965db0b60e01b14806107ab57506301ffc9a760e01b6001600160e01b03198316146107ab565b6001600160a01b038316612e4457612e3f81600a80546000838152600b60205260408120829055600182018355919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80155565b612e67565b816001600160a01b0316836001600160a01b031614612e6757612e678382612ea1565b6001600160a01b038216612e7e57610a0081612f3e565b826001600160a01b0316826001600160a01b031614610a0057610a008282612fed565b60006001612eae846113e7565b612eb89190613856565b600083815260096020526040902054909150808214612f0b576001600160a01b03841660009081526008602090815260408083208584528252808320548484528184208190558352600990915290208190555b5060009182526009602090815260408084208490556001600160a01b039094168352600881528383209183525290812055565b600a54600090612f5090600190613856565b6000838152600b6020526040812054600a8054939450909284908110612f7857612f786136a6565b9060005260206000200154905080600a8381548110612f9957612f996136a6565b6000918252602080832090910192909255828152600b9091526040808220849055858252812055600a805480612fd157612fd1613970565b6001900381819060005260206000200160009055905550505050565b6000612ff8836113e7565b6001600160a01b039093166000908152600860209081526040808320868452825280832085905593825260099052919091209190915550565b82805461303d906135f7565b90600052602060002090601f01602090048101928261305f57600085556130a5565b82601f106130785782800160ff198235161785556130a5565b828001600101855582156130a5579182015b828111156130a557823582559160200191906001019061308a565b506130b19291506130b5565b5090565b5b808211156130b157600081556001016130b6565b6001600160e01b03198116811461103657600080fd5b6000602082840312156130f257600080fd5b8135611652816130ca565b60005b83811015613118578181015183820152602001613100565b8381111561185c5750506000910152565b600081518084526131418160208601602086016130fd565b601f01601f19169290920160200192915050565b6020815260006116526020830184613129565b60006020828403121561317a57600080fd5b5035919050565b6001600160a01b038116811461103657600080fd5b600080604083850312156131a957600080fd5b82356131b481613181565b946020939093013593505050565b6000602082840312156131d457600080fd5b813561165281613181565b6000806000606084860312156131f457600080fd5b83356131ff81613181565b9250602084013561320f81613181565b929592945050506040919091013590565b6000806040838503121561323357600080fd5b50508035926020909101359150565b6000806040838503121561325557600080fd5b82359150602083013561326781613181565b809150509250929050565b60008083601f84011261328457600080fd5b50813567ffffffffffffffff81111561329c57600080fd5b6020830191508360208260051b85010111156132b757600080fd5b9250929050565b6000806000604084860312156132d357600080fd5b83356132de81613181565b9250602084013567ffffffffffffffff8111156132fa57600080fd5b61330686828701613272565b9497909650939450505050565b8035801515811461332357600080fd5b919050565b60006020828403121561333a57600080fd5b61165282613313565b60008083601f84011261335557600080fd5b50813567ffffffffffffffff81111561336d57600080fd5b6020830191508360208285010111156132b757600080fd5b6000806020838503121561339857600080fd5b823567ffffffffffffffff8111156133af57600080fd5b6133bb85828601613343565b90969095509350505050565b600080604083850312156133da57600080fd5b82356133e581613181565b9150610d7160208401613313565b6000806020838503121561340657600080fd5b823567ffffffffffffffff81111561341d57600080fd5b6133bb85828601613272565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561347e57603f1988860301845261346c858351613129565b94509285019290850190600101613450565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156134b757600080fd5b84356134c281613181565b935060208501356134d281613181565b925060408501359150606085013567ffffffffffffffff808211156134f657600080fd5b818701915087601f83011261350a57600080fd5b81358181111561351c5761351c61348b565b604051601f8201601f19908116603f011681019083821181831017156135445761354461348b565b816040528281528a602084870101111561355d57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561359457600080fd5b823561359f81613181565b9150602083013561326781613181565b6000806000604084860312156135c457600080fd5b83356135cf81613181565b9250602084013567ffffffffffffffff8111156135eb57600080fd5b61330686828701613343565b600181811c9082168061360b57607f821691505b6020821081141561362c57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561364457600080fd5b815161165281613181565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561367f5761367f61364f565b500290565b6000826136a157634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126136d357600080fd5b83018035915067ffffffffffffffff8211156136ee57600080fd5b6020019150368190038213156132b757600080fd5b600082198211156137165761371661364f565b500190565b600060001982141561372f5761372f61364f565b5060010190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604080825284519082018190526000906020906060840190828801845b828110156137985781518452928401929084019060010161377c565b50505083810382850152848152818101600586901b820183018760005b8881101561382457848303601f190184528135368b9003601e190181126137db57600080fd5b8a01803567ffffffffffffffff8111156137f457600080fd5b8036038c131561380357600080fd5b61381085828a8501613736565b9588019594505050908501906001016137b5565b50909998505050505050505050565b83815260406020820152600061384d604083018486613736565b95945050505050565b6000828210156138685761386861364f565b500390565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516138a58160178501602088016130fd565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516138e28160288401602088016130fd565b01602801949350505050565b6000816138fd576138fd61364f565b506000190190565b600082516139178184602087016130fd565b9190910192915050565b60006001600160a01b03808716835280861660208401525083604083015260806060830152612a206080830184613129565b60006020828403121561396557600080fd5b8151611652816130ca565b634e487b7160e01b600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a"; type NFTConstructorParams = | [signer?: Signer] | ConstructorParameters; const isSuperArgs = ( xs: NFTConstructorParams ): xs is ConstructorParameters => xs.length > 1; export class NFT__factory extends ContractFactory { constructor(...args: NFTConstructorParams) { if (isSuperArgs(args)) { super(...args); } else { super(_abi, _bytecode, args[0]); } } deploy( _controlCenter: string, _name: string, _symbol: string, _trustedForwarder: string, _uri: string, _royaltyBps: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise { return super.deploy( _controlCenter, _name, _symbol, _trustedForwarder, _uri, _royaltyBps, overrides || {} ) as Promise; } getDeployTransaction( _controlCenter: string, _name: string, _symbol: string, _trustedForwarder: string, _uri: string, _royaltyBps: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): TransactionRequest { return super.getDeployTransaction( _controlCenter, _name, _symbol, _trustedForwarder, _uri, _royaltyBps, overrides || {} ); } attach(address: string): NFT { return super.attach(address) as NFT; } connect(signer: Signer): NFT__factory { return super.connect(signer) as NFT__factory; } static readonly bytecode = _bytecode; static readonly abi = _abi; static createInterface(): NFTInterface { return new utils.Interface(_abi) as NFTInterface; } static connect(address: string, signerOrProvider: Signer | Provider): NFT { return new Contract(address, _abi, signerOrProvider) as NFT; } }