/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import type { Provider, TransactionRequest } from "@ethersproject/providers";
import type {
  UfoMarketplace,
  UfoMarketplaceInterface,
} from "../UfoMarketplace";

const _abi = [
  {
    type: "constructor",
    inputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "adminWallet",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "address",
        internalType: "address",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "alreadyUsedSignature",
    inputs: [
      {
        name: "",
        type: "bytes",
        internalType: "bytes",
      },
    ],
    outputs: [
      {
        name: "",
        type: "bool",
        internalType: "bool",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "backendSigner",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "address",
        internalType: "address",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "buyCartItems",
    inputs: [
      {
        name: "v",
        type: "uint8",
        internalType: "uint8",
      },
      {
        name: "r",
        type: "bytes32",
        internalType: "bytes32",
      },
      {
        name: "s",
        type: "bytes32",
        internalType: "bytes32",
      },
      {
        name: "_info",
        type: "tuple",
        internalType: "struct EIP712UfoMarketplace.BucketInfo",
        components: [
          {
            name: "nftIds",
            type: "uint256[]",
            internalType: "uint256[]",
          },
          {
            name: "nftContracts",
            type: "address[]",
            internalType: "address[]",
          },
          {
            name: "userAddrs",
            type: "address[]",
            internalType: "address[]",
          },
          {
            name: "prices",
            type: "uint256[]",
            internalType: "uint256[]",
          },
          {
            name: "priceUnits",
            type: "uint256[]",
            internalType: "uint256[]",
          },
          {
            name: "nftTypes",
            type: "uint256[]",
            internalType: "uint256[]",
          },
          {
            name: "salt",
            type: "uint256",
            internalType: "uint256",
          },
        ],
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "buySellItem",
    inputs: [
      {
        name: "v",
        type: "uint8",
        internalType: "uint8",
      },
      {
        name: "r",
        type: "bytes32",
        internalType: "bytes32",
      },
      {
        name: "s",
        type: "bytes32",
        internalType: "bytes32",
      },
      {
        name: "_info",
        type: "tuple",
        internalType: "struct EIP712UfoMarketplace.NftInfo",
        components: [
          {
            name: "nftId",
            type: "uint256",
            internalType: "uint256",
          },
          {
            name: "nftContract",
            type: "address",
            internalType: "address",
          },
          {
            name: "sellType",
            type: "string",
            internalType: "string",
          },
          {
            name: "userAddr",
            type: "address",
            internalType: "address",
          },
          {
            name: "price",
            type: "uint256",
            internalType: "uint256",
          },
          {
            name: "priceUnit",
            type: "uint256",
            internalType: "uint256",
          },
          {
            name: "start",
            type: "uint256",
            internalType: "uint256",
          },
          {
            name: "end",
            type: "uint256",
            internalType: "uint256",
          },
          {
            name: "salt",
            type: "uint256",
            internalType: "uint256",
          },
        ],
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "buySellLootBoxes",
    inputs: [
      {
        name: "v",
        type: "uint8",
        internalType: "uint8",
      },
      {
        name: "r",
        type: "bytes32",
        internalType: "bytes32",
      },
      {
        name: "s",
        type: "bytes32",
        internalType: "bytes32",
      },
      {
        name: "_info",
        type: "tuple",
        internalType: "struct EIP712UfoMarketplace.LootBuySellInfo",
        components: [
          {
            name: "nftContract",
            type: "address",
            internalType: "address",
          },
          {
            name: "nftIds",
            type: "uint256[]",
            internalType: "uint256[]",
          },
          {
            name: "prices",
            type: "uint256[]",
            internalType: "uint256[]",
          },
          {
            name: "priceUnits",
            type: "uint256[]",
            internalType: "uint256[]",
          },
          {
            name: "userAddrs",
            type: "address[]",
            internalType: "address[]",
          },
          {
            name: "buySellType",
            type: "string",
            internalType: "string",
          },
          {
            name: "start",
            type: "uint256",
            internalType: "uint256",
          },
          {
            name: "end",
            type: "uint256",
            internalType: "uint256",
          },
          {
            name: "salt",
            type: "uint256",
            internalType: "uint256",
          },
        ],
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "claimUAP",
    inputs: [
      {
        name: "v",
        type: "uint8",
        internalType: "uint8",
      },
      {
        name: "r",
        type: "bytes32",
        internalType: "bytes32",
      },
      {
        name: "s",
        type: "bytes32",
        internalType: "bytes32",
      },
      {
        name: "_info",
        type: "tuple",
        internalType: "struct EIP712UfoMarketplace.UAPClaimInfo",
        components: [
          {
            name: "amount",
            type: "uint256",
            internalType: "uint256",
          },
          {
            name: "user",
            type: "address",
            internalType: "address",
          },
          {
            name: "salt",
            type: "uint256",
            internalType: "uint256",
          },
        ],
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "concatSignature",
    inputs: [
      {
        name: "v",
        type: "uint8",
        internalType: "uint8",
      },
      {
        name: "r",
        type: "bytes32",
        internalType: "bytes32",
      },
      {
        name: "s",
        type: "bytes32",
        internalType: "bytes32",
      },
    ],
    outputs: [
      {
        name: "",
        type: "bytes",
        internalType: "bytes",
      },
    ],
    stateMutability: "pure",
  },
  {
    type: "function",
    name: "initialize",
    inputs: [
      {
        name: "_admin",
        type: "address",
        internalType: "address",
      },
      {
        name: "_platformFee",
        type: "uint256",
        internalType: "uint256",
      },
      {
        name: "_uap",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "owner",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "address",
        internalType: "address",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "paused",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "bool",
        internalType: "bool",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "platformFee",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "renounceOwnership",
    inputs: [],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "revenueWallet",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "address",
        internalType: "address",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "setBackendSigner",
    inputs: [
      {
        name: "_bkSigner",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "setUAPEscrowAddress",
    inputs: [
      {
        name: "escrow",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "setUSDTAddress",
    inputs: [
      {
        name: "usdtAddr",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "setUfoAddress",
    inputs: [
      {
        name: "ufoAddr",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "setWETHAddress",
    inputs: [
      {
        name: "_wethAddr",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "transferOwnership",
    inputs: [
      {
        name: "newOwner",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "uapAddress",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "address",
        internalType: "address",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "uapEscrow",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "address",
        internalType: "address",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "ufoAddress",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "address",
        internalType: "address",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "updatePlateformFee",
    inputs: [
      {
        name: "newFee",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "usdtAddress",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "address",
        internalType: "address",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "wethAddr",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "address",
        internalType: "address",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "withdraw",
    inputs: [
      {
        name: "addr",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "event",
    name: "AuctionSuccessful",
    inputs: [
      {
        name: "_nftAddress",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "_tokenId",
        type: "uint256",
        indexed: true,
        internalType: "uint256",
      },
      {
        name: "_totalPrice",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
      {
        name: "priceUnit",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
      {
        name: "_winner",
        type: "address",
        indexed: false,
        internalType: "address",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "ClaimUAP",
    inputs: [
      {
        name: "_user",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "amount",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "FixedItemSuccessful",
    inputs: [
      {
        name: "_nftAddress",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "_tokenId",
        type: "uint256",
        indexed: true,
        internalType: "uint256",
      },
      {
        name: "_totalPrice",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
      {
        name: "priceUnit",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
      {
        name: "_buyer",
        type: "address",
        indexed: false,
        internalType: "address",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "Initialized",
    inputs: [
      {
        name: "version",
        type: "uint8",
        indexed: false,
        internalType: "uint8",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "LootBuySellSuccess",
    inputs: [
      {
        name: "buySellType",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
      {
        name: "sender",
        type: "address",
        indexed: false,
        internalType: "address",
      },
      {
        name: "receiver",
        type: "address",
        indexed: false,
        internalType: "address",
      },
      {
        name: "price",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
      {
        name: "priceUnit",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
      {
        name: "weaponId",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
      {
        name: "weaponContract",
        type: "address",
        indexed: false,
        internalType: "address",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "OwnershipTransferred",
    inputs: [
      {
        name: "previousOwner",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "newOwner",
        type: "address",
        indexed: true,
        internalType: "address",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "Paused",
    inputs: [
      {
        name: "account",
        type: "address",
        indexed: false,
        internalType: "address",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "SetBackendSigner",
    inputs: [
      {
        name: "signer",
        type: "address",
        indexed: false,
        internalType: "address",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "Unpaused",
    inputs: [
      {
        name: "account",
        type: "address",
        indexed: false,
        internalType: "address",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "UpdateEscrow",
    inputs: [
      {
        name: "escrow",
        type: "address",
        indexed: false,
        internalType: "address",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "UpdatePlateformFee",
    inputs: [
      {
        name: "newFee",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "UpdateUfoAddr",
    inputs: [
      {
        name: "ufo",
        type: "address",
        indexed: false,
        internalType: "address",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "UpdateUsdtAddr",
    inputs: [
      {
        name: "usdt",
        type: "address",
        indexed: false,
        internalType: "address",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "UpdateWrappedNativeAddr",
    inputs: [
      {
        name: "wNative",
        type: "address",
        indexed: false,
        internalType: "address",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "Withdraw",
    inputs: [
      {
        name: "recipient",
        type: "address",
        indexed: false,
        internalType: "address",
      },
      {
        name: "native",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
      {
        name: "usdt",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
      {
        name: "ufo",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
    ],
    anonymous: false,
  },
  {
    type: "error",
    name: "AddressNotNull",
    inputs: [],
  },
  {
    type: "error",
    name: "InvalidSignature",
    inputs: [],
  },
  {
    type: "error",
    name: "WrongParam",
    inputs: [],
  },
] as const;

const _bytecode =
  "0x60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61342c80620000f36000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063715018a6116100f9578063a3d98d4511610097578063d915773411610071578063d9157734146103a5578063ddd6e640146103b8578063ea8db03a146103cb578063f2fde38b146103de57600080fd5b8063a3d98d451461035f578063c350a1b514610372578063c6d9cfcc1461038557600080fd5b80638da5cb5b116100d35780638da5cb5b1461031557806397b91e92146103265780639ab4a445146103395780639e8e7c1e1461034c57600080fd5b8063715018a6146102cc5780637d5aa5f4146102d45780638825213f146102e757600080fd5b8063444784251161016657806355eba8681161014057806355eba8681461027c5780635c975abb1461028f57806365d65e86146102a65780636a4234eb146102b957600080fd5b806344478425146102435780634d1044b91461025657806351cff8d91461026957600080fd5b806321b7e5e6146101ae57806326232a2e146101de57806334784586146101f557806336b19cd71461020a57806336f956701461021d5780633ab378a314610230575b600080fd5b60cc546101c1906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101e760cb5481565b6040519081526020016101d5565b610208610203366004612fc8565b6103f1565b005b60d0546101c1906001600160a01b031681565b61020861022b366004612e32565b610ad2565b61020861023e366004612f63565b610b56565b60cf546101c1906001600160a01b031681565b610208610264366004612e32565b610bd0565b610208610277366004612e32565b610c4d565b61020861028a366004612e32565b610e71565b60655460ff165b60405190151581526020016101d5565b6097546101c1906001600160a01b031681565b6102086102c7366004612e32565b610f38565b610208610fff565b60ca546101c1906001600160a01b031681565b6102966102f5366004612eb2565b805160208183018101805160d28252928201919093012091525460ff1681565b6033546001600160a01b03166101c1565b610208610334366004612e32565b611013565b60cd546101c1906001600160a01b031681565b61020861035a36600461308f565b6110da565b61020861036d36600461302e565b61128f565b610208610380366004612e54565b611654565b610398610393366004612f95565b611851565b6040516101d591906131cf565b6102086103b336600461302e565b61188e565b60ce546101c1906001600160a01b031681565b60d1546101c1906001600160a01b031681565b6102086103ec366004612e32565b611d54565b6103f9611dcd565b8383836000610409848484611851565b905060d28160405161041b9190613187565b9081526040519081900360200190205460ff161561044c57604051638baa579f60e01b815260040160405180910390fd5b600160d28260405161045e9190613187565b908152604051908190036020019020805491151560ff1990921691909117905561048a88888888611e13565b60405180604001604052806002815260200161032360f41b815250906104cc5760405162461bcd60e51b81526004016104c391906131cf565b60405180910390fd5b506104d78580613266565b90506104e66020870187613266565b90501460405180604001604052806002815260200161323560f01b815250906105225760405162461bcd60e51b81526004016104c391906131cf565b506105306060860186613266565b905061053f6020870187613266565b90501460405180604001604052806002815260200161323560f01b8152509061057b5760405162461bcd60e51b81526004016104c391906131cf565b506105896040860186613266565b90506105986020870187613266565b90501460405180604001604052806002815260200161323560f01b815250906105d45760405162461bcd60e51b81526004016104c391906131cf565b506105e26080860186613266565b90506105f16020870187613266565b90501460405180604001604052806002815260200161323560f01b8152509061062d5760405162461bcd60e51b81526004016104c391906131cf565b5061063b60a0860186613266565b905061064a6020870187613266565b90501460405180604001604052806002815260200161323560f01b815250906106865760405162461bcd60e51b81526004016104c391906131cf565b5060005b6106948680613266565b9050811015610ac65760cb54600090612710906106b460608a018a613266565b858181106106c4576106c46133b3565b905060200201356106d59190613320565b6106df91906132fe565b90506000816106f160608a018a613266565b85818110610701576107016133b3565b90506020020135610712919061333f565b9050600061074261072660808b018b613266565b86818110610736576107366133b3565b905060200201356121d4565b905061078c3361075560408c018c613266565b87818110610765576107656133b3565b905060200201602081019061077a9190612e32565b6001600160a01b038416919085612265565b60cf546107a8906001600160a01b038381169133911686612265565b6108366107b860208b018b613266565b868181106107c8576107c86133b3565b90506020020160208101906107dd9190612e32565b6107ea60408c018c613266565b878181106107fa576107fa6133b3565b905060200201602081019061080f9190612e32565b3361081a8d80613266565b8981811061082a5761082a6133b3565b905060200201356122d0565b61084360a08a018a613266565b85818110610853576108536133b3565b90506020020135600014156109515761086c8980613266565b8581811061087c5761087c6133b3565b905060200201358980602001906108939190613266565b868181106108a3576108a36133b3565b90506020020160208101906108b89190612e32565b6001600160a01b03167f81f11754241682998f8b7f9eefd79ff5469d62fdd5354e0e97e5c4c986ee5b2f6108ef60608d018d613266565b888181106108ff576108ff6133b3565b905060200201358c80608001906109169190613266565b89818110610926576109266133b3565b60408051948552602091820293909301359084015250339082015260600160405180910390a3610ab0565b61095e60a08a018a613266565b8581811061096e5761096e6133b3565b9050602002013560011415610a97577f6a74f267d518770174614633cca0ce832085d10a0ac3d9e957daab484448ce8560016109ad60408c018c613266565b878181106109bd576109bd6133b3565b90506020020160208101906109d29190612e32565b336109e060608e018e613266565b898181106109f0576109f06133b3565b905060200201358d8060800190610a079190613266565b8a818110610a1757610a176133b3565b60200291909101359050610a2b8f80613266565b8b818110610a3b57610a3b6133b3565b905060200201358f8060200190610a529190613266565b8c818110610a6257610a626133b3565b9050602002016020810190610a779190612e32565b604051610a8a97969594939291906131e2565b60405180910390a1610ab0565b604051636f70011560e11b815260040160405180910390fd5b5050508080610abe90613382565b91505061068a565b505b5050505050505050565b610ada612347565b6001600160a01b038116610b015760405163f8b7150760e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040519081527f51ad1d0f5aa4dce01cdbd1ffce145596092a73bcb73db321a014518db8b55b22906020015b60405180910390a150565b610b5e612347565b604080518082019091526002815261189b60f11b6020820152612710821115610b9a5760405162461bcd60e51b81526004016104c391906131cf565b5060cb8190556040518181527f1def3fe5c2d754e7b810ab3913bff7d6003b0bd23f1de160d3218de6158325ed90602001610b4b565b610bd8612347565b6001600160a01b038116610bff5760405163f8b7150760e01b815260040160405180910390fd5b60d180546001600160a01b0319166001600160a01b0383169081179091556040519081527f318fcfac94f60f12cf560cfa4a7650c22b0ff214caf5352ad84e77dee5c44a4090602001610b4b565b610c55612347565b60ca546040516370a0823160e01b81523060048201526001600160a01b039091169060009082906370a082319060240160206040518083038186803b158015610c9d57600080fd5b505afa158015610cb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd59190612f7c565b9050610ceb6001600160a01b03831684836123a1565b60cd546040516370a0823160e01b81523060048201526001600160a01b039091169060009082906370a082319060240160206040518083038186803b158015610d3357600080fd5b505afa158015610d47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6b9190612f7c565b9050610d816001600160a01b03831686836123a1565b60cc546040516370a0823160e01b81523060048201526001600160a01b039091169060009082906370a082319060240160206040518083038186803b158015610dc957600080fd5b505afa158015610ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e019190612f7c565b9050610e176001600160a01b03831688836123a1565b604080516001600160a01b038916815260208101879052908101849052606081018290527f02f25270a4d87bea75db541cdfe559334a275b4a233520ed6c0a2429667cca949060800160405180910390a150505050505050565b610e79612347565b6001600160a01b038116610ea05760405163f8b7150760e01b815260040160405180910390fd5b60cd54604080518082019091526002815261323160f01b6020820152906001600160a01b0383811691161415610ee95760405162461bcd60e51b81526004016104c391906131cf565b5060cd80546001600160a01b0319166001600160a01b0383169081179091556040519081527fa93511a455ce22450ebdd0bb324e562191f0947dfdfa6e3b87bb82f4dd8502a090602001610b4b565b610f40612347565b6001600160a01b038116610f675760405163f8b7150760e01b815260040160405180910390fd5b60ca54604080518082019091526002815261323160f01b6020820152906001600160a01b0383811691161415610fb05760405162461bcd60e51b81526004016104c391906131cf565b5060ca80546001600160a01b0319166001600160a01b0383169081179091556040519081527f76007df2bb027b05db3255d900349c109dd5f1811b2f9bf447a14144ca76452b90602001610b4b565b611007612347565b61101160006123d6565b565b61101b612347565b6001600160a01b0381166110425760405163f8b7150760e01b815260040160405180910390fd5b60cc54604080518082019091526002815261323160f01b6020820152906001600160a01b038381169116141561108b5760405162461bcd60e51b81526004016104c391906131cf565b5060cc80546001600160a01b0319166001600160a01b0383169081179091556040519081527ffffb08c841cdfb56c0107c5d4bdc815f66bdc90947ca9923bf2c58d1b5b5fbc290602001610b4b565b6110e2611dcd565b83838360006110f2848484611851565b905060d2816040516111049190613187565b9081526040519081900360200190205460ff161561113557604051638baa579f60e01b815260040160405180910390fd5b600160d2826040516111479190613187565b908152604051908190036020019020805491151560ff1990921691909117905561117388888888612428565b60405180604001604052806002815260200161032360f41b815250906111ac5760405162461bcd60e51b81526004016104c391906131cf565b5060d1546001600160a01b03166399c38ff96111ce6040880160208901612e32565b60405160e083901b6001600160e01b03191681526001600160a01b03909116600482015287356024820152604401600060405180830381600087803b15801561121657600080fd5b505af115801561122a573d6000803e3d6000fd5b5061123f925050506040860160208701612e32565b6001600160a01b03167f8d8c996e917ab50d240bb4b3eb56676b34b0ff6d7bd5a340778df824125581c2866000013560405161127d91815260200190565b60405180910390a25050505050505050565b611297611dcd565b83838360006112a7848484611851565b905060d2816040516112b99190613187565b9081526040519081900360200190205460ff16156112ea57604051638baa579f60e01b815260040160405180910390fd5b600160d2826040516112fc9190613187565b908152604051908190036020019020805491151560ff1990921691909117905561132888888888612693565b60405180604001604052806002815260200161032360f41b815250906113615760405162461bcd60e51b81526004016104c391906131cf565b50600061271060cb5487608001356113799190613320565b61138391906132fe565b9050600061139582608089013561333f565b905060006113a68860a001356121d4565b6040516c66697865642d6c697374696e6760981b6020820152909150602d01604051602081830303815290604052805190602001208880604001906113eb91906132b7565b6040516020016113fc929190613177565b6040516020818303038152906040528051906020012014156114e25761142c3361077a60808b0160608c01612e32565b60cf54611448906001600160a01b038381169133911686612265565b61147361145b60408a0160208b01612e32565b61146b60808b0160608c01612e32565b338b356122d0565b873561148560408a0160208b01612e32565b6040805160808c0135815260a08c0135602082015233918101919091526001600160a01b0391909116907f81f11754241682998f8b7f9eefd79ff5469d62fdd5354e0e97e5c4c986ee5b2f906060015b60405180910390a3611647565b6040516e61756374696f6e2d6c697374696e6760881b6020820152602f016040516020818303038152906040528051906020012088806040019061152691906132b7565b604051602001611537929190613177565b604051602081830303815290604052805190602001201415610a975761157861156660808a0160608b01612e32565b6001600160a01b038316903385612265565b6115a261158b60808a0160608b01612e32565b60cf546001600160a01b0384811692911686612265565b6115cd6115b560408a0160208b01612e32565b336115c660808c0160608d01612e32565b8b356122d0565b87356115df60408a0160208b01612e32565b6001600160a01b03167f60d6e97e9899931d93b4f8067129e005920a44a26708f624c02fc58e98005cf560808b0180359060a08d0135906116239060608f01612e32565b6040805193845260208401929092526001600160a01b0316908201526060016114d5565b5050505050505050505050565b600054610100900460ff16158080156116745750600054600160ff909116105b8061168e5750303b15801561168e575060005460ff166001145b6116f15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104c3565b6000805460ff191660011790558015611714576000805461ff0019166101001790555b6001600160a01b038416158061173157506001600160a01b038216155b1561174f5760405163f8b7150760e01b815260040160405180910390fd5b604080518082019091526002815261189b60f11b602082015261271084111561178b5760405162461bcd60e51b81526004016104c391906131cf565b50611794612821565b61179d84611d54565b6117a5612850565b60cb83905560ce80546001600160a01b0384166001600160a01b03199182161790915560cf8054821673b980d88ae1e9599096e6030fb5381483e4312f3117905560d0805490911673bcd418c12cd9910dd5b33b1f8ee47ecc562732fc179055801561184b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6040805160208101939093528281019190915260f89290921b6001600160f81b031916606082015281516041818303018152606190910190915290565b611896611dcd565b83838360006118a6848484611851565b905060d2816040516118b89190613187565b9081526040519081900360200190205460ff16156118e957604051638baa579f60e01b815260040160405180910390fd5b600160d2826040516118fb9190613187565b908152604051908190036020019020805491151560ff199092169190911790556119278888888861287f565b60405180604001604052806002815260200161032360f41b815250906119605760405162461bcd60e51b81526004016104c391906131cf565b5061196e6040860186613266565b905061197d6020870187613266565b90501460405180604001604052806002815260200161199960f11b815250906119b95760405162461bcd60e51b81526004016104c391906131cf565b506119c76080860186613266565b90506119d66020870187613266565b90501460405180604001604052806002815260200161199960f11b81525090611a125760405162461bcd60e51b81526004016104c391906131cf565b50611a206060860186613266565b9050611a2f6020870187613266565b90501460405180604001604052806002815260200161199960f11b81525090611a6b5760405162461bcd60e51b81526004016104c391906131cf565b50611a796080860186613266565b9050611a886020870187613266565b90501460405180604001604052806002815260200161199960f11b81525090611ac45760405162461bcd60e51b81526004016104c391906131cf565b506040516c66697865642d6c697374696e6760981b6020820152602d0160408051601f198184030181529190528051602090910120611b0660a08701876132b7565b604051602001611b17929190613177565b604051602081830303815290604052805190602001201415611c265760005b611b436020870187613266565b9050811015611c2057611c0e6001611b5e6060890189613266565b84818110611b6e57611b6e6133b3565b90506020020135888060400190611b859190613266565b85818110611b9557611b956133b3565b90506020020135338a8060800190611bad9190613266565b87818110611bbd57611bbd6133b3565b9050602002016020810190611bd29190612e32565b611bdf60208d018d613266565b88818110611bef57611bef6133b3565b905060200201358c6000016020810190611c099190612e32565b612ac6565b80611c1881613382565b915050611b36565b50610ac8565b6040516e61756374696f6e2d6c697374696e6760881b6020820152602f0160408051601f198184030181529190528051602090910120611c6960a08701876132b7565b604051602001611c7a929190613177565b604051602081830303815290604052805190602001201415610a975760005b611ca66020870187613266565b9050811015611c2057611d426002611cc16060890189613266565b84818110611cd157611cd16133b3565b90506020020135888060400190611ce89190613266565b85818110611cf857611cf86133b3565b90506020020135898060800190611d0f9190613266565b86818110611d1f57611d1f6133b3565b9050602002016020810190611d349190612e32565b33611bdf60208d018d613266565b80611d4c81613382565b915050611c99565b611d5c612347565b6001600160a01b038116611dc15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104c3565b611dca816123d6565b50565b60655460ff16156110115760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104c3565b604080518082018252600a8152694275636b6574496e666f60b01b6020918201528151808301835260018152603160f81b9082015290516000918291611e9f91600080516020613400833981519152917f2279716c091cf8f909ece992df3556f252808b497c784b00f1a12b44ae3022c9916000805160206133e08339815191529146913091016131a3565b60408051601f198184030181529190528051602090910120905060007fbaee57c22853a2d835dc147890f14d89b8096c9ef5306db25d721e80881383de611ee68580613266565b604051602001611ef792919061314b565b60405160208183030381529060405280519060200120858060200190611f1d9190613266565b604051602001611f2e92919061310b565b60405160208183030381529060405280519060200120868060400190611f549190613266565b604051602001611f6592919061310b565b60408051601f198184030181529190528051602090910120611f8a6060890189613266565b604051602001611f9b92919061314b565b60408051601f198184030181529190528051602090910120611fc060808a018a613266565b604051602001611fd192919061314b565b60408051601f198184030181529190528051602090910120611ff660a08b018b613266565b60405160200161200792919061314b565b60408051601f198184030181528282528051602091820120908301989098528101959095526060850193909352608084019190915260a083015260c08083019190915260e082019290925290850135610100820152610120015b604051602081830303815290604052805190602001209050600082826040516020016120a492919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff8c1692840192909252606083018a9052608083018990529092509060019060a0016020604051602081039080840390855afa15801561210f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661216d5760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b60448201526064016104c3565b6097546001600160a01b038281169116146121c35760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103130b1b5b2b7321029b4b3b732b960511b60448201526064016104c3565b60019450505050505b949350505050565b600060038210604051806040016040528060028152602001610ccd60f21b815250906122135760405162461bcd60e51b81526004016104c391906131cf565b5060008261222d575060ca546001600160a01b031661225f565b8260011415612248575060cc546001600160a01b031661225f565b826002141561225f575060cd546001600160a01b03165b92915050565b6040516001600160a01b038085166024830152831660448201526064810182905261184b9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612b94565b604051635c46a7ef60e11b81526001600160a01b038481166004830152838116602483015260448201839052608060648301526000608483015285919082169063b88d4fde9060a401600060405180830381600087803b15801561233357600080fd5b505af1158015610ac6573d6000803e3d6000fd5b6033546001600160a01b031633146110115760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104c3565b6040516001600160a01b0383166024820152604481018290526123d190849063a9059cbb60e01b90606401612299565b505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080518082018252600c81526b554150436c61696d496e666f60a01b6020918201528151808301835260018152603160f81b90820152905160009182916124b691600080516020613400833981519152917f66ae614f98e84a274b1e2f8ae9c7105bcc5396f4f7485c4faaa760723c611f67916000805160206133e08339815191529146913091016131a3565b60405160208183030381529060405280519060200120905060007f6737a58dfe339646a3f7b30b34e73d559e237b2c26daed9663ee8d80afcf137984600001358560200160208101906125099190612e32565b604080516020810194909452838101929092526001600160a01b03166060830152850135608082015260a0015b6040516020818303038152906040528051906020012090506000828260405160200161257992919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff8c1692840192909252606083018a9052608083018990529092509060019060a0016020604051602081039080840390855afa1580156125e4573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166126425760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b60448201526064016104c3565b6097546001600160a01b038281169116146121c35760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b60448201526064016104c3565b604080518082018252600b81526a4e667453656c6c496e666f60a81b6020918201528151808301835260018152603160f81b908201529051600091829161272091600080516020613400833981519152917f27d8b3ddd167e115229538258ad3d27558dbdef7a5556e2fa4cbb190bdc12eef916000805160206133e08339815191529146913091016131a3565b60405160208183030381529060405280519060200120905060007fc910aba11f78c86ead99cd6532efb76116b5bad4094b6181ea089bfe09ce434b84600001358560200160208101906127739190612e32565b61278060408801886132b7565b60405161278e929190613177565b6040519081900390206127a76080890160608a01612e32565b6040805160208101969096528501939093526001600160a01b039182166060850152608084810191909152911660a0838101919091529086013560c0838101919091529086013560e08381019190915290860135610100838101919091529086013561012083015285013561014082015261016001612536565b600054610100900460ff166128485760405162461bcd60e51b81526004016104c39061321b565b611011612c69565b600054610100900460ff166128775760405162461bcd60e51b81526004016104c39061321b565b611011612c99565b604080518082018252600f81526e4c6f6f7442757953656c6c496e666f60881b6020918201528151808301835260018152603160f81b908201529051600091829161291091600080516020613400833981519152917f97d26990b85521d3f5574125c83b33fd13365e66bb370ed0b0afcc494be99ccb916000805160206133e08339815191529146913091016131a3565b60408051601f19818403018152919052805160209182012091506000907fd8b3f1e901e5f5bd4def19a204cae74fa7320bb2fadc67a212a37c4689ca82dd9061295b90860186612e32565b6129686020870187613266565b60405160200161297992919061314b565b6040516020818303038152906040528051906020012086806040019061299f9190613266565b6040516020016129b092919061314b565b60408051601f1981840301815291905280516020909101206129d56060890189613266565b6040516020016129e692919061314b565b60408051601f198184030181529190528051602090910120612a0b60808a018a613266565b604051602001612a1c92919061310b565b60408051601f198184030181529190528051602090910120612a4160a08b018b6132b7565b604051612a4f929190613177565b6040519081900381206120619796959493929160c08d01359060e08e0135906101008f013590602001998a526001600160a01b039890981660208a015260408901969096526060880194909452608087019290925260a086015260c085015260e08401526101008301526101208201526101400190565b612ace611dcd565b6000612ad9876121d4565b9050600061271060cb5488612aee9190613320565b612af891906132fe565b90506000612b06828961333f565b9050612b1d6001600160a01b038416888884612265565b60cf54612b39906001600160a01b03858116918a911685612265565b612b45848789886122d0565b7f6a74f267d518770174614633cca0ce832085d10a0ac3d9e957daab484448ce858a87898b8d8a8a604051612b8097969594939291906131e2565b60405180910390a150505050505050505050565b6000612be9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612ccc9092919063ffffffff16565b9050805160001480612c0a575080806020019051810190612c0a9190612e90565b6123d15760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016104c3565b600054610100900460ff16612c905760405162461bcd60e51b81526004016104c39061321b565b611011336123d6565b600054610100900460ff16612cc05760405162461bcd60e51b81526004016104c39061321b565b6065805460ff19169055565b60606121cc848460008585600080866001600160a01b03168587604051612cf39190613187565b60006040518083038185875af1925050503d8060008114612d30576040519150601f19603f3d011682016040523d82523d6000602084013e612d35565b606091505b5091509150612d4687838387612d51565b979650505050505050565b60608315612dbd578251612db6576001600160a01b0385163b612db65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104c3565b50816121cc565b6121cc8383815115612dd25781518083602001fd5b8060405162461bcd60e51b81526004016104c391906131cf565b80356001600160a01b0381168114612e0357600080fd5b919050565b60006101208284031215612e1b57600080fd5b50919050565b803560ff81168114612e0357600080fd5b600060208284031215612e4457600080fd5b612e4d82612dec565b9392505050565b600080600060608486031215612e6957600080fd5b612e7284612dec565b925060208401359150612e8760408501612dec565b90509250925092565b600060208284031215612ea257600080fd5b81518015158114612e4d57600080fd5b600060208284031215612ec457600080fd5b813567ffffffffffffffff80821115612edc57600080fd5b818401915084601f830112612ef057600080fd5b813581811115612f0257612f026133c9565b604051601f8201601f19908116603f01168101908382118183101715612f2a57612f2a6133c9565b81604052828152876020848701011115612f4357600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208284031215612f7557600080fd5b5035919050565b600060208284031215612f8e57600080fd5b5051919050565b600080600060608486031215612faa57600080fd5b612fb384612e21565b95602085013595506040909401359392505050565b60008060008060808587031215612fde57600080fd5b612fe785612e21565b93506020850135925060408501359150606085013567ffffffffffffffff81111561301157600080fd5b850160e0818803121561302357600080fd5b939692955090935050565b6000806000806080858703121561304457600080fd5b61304d85612e21565b93506020850135925060408501359150606085013567ffffffffffffffff81111561307757600080fd5b61308387828801612e08565b91505092959194509250565b60008060008084860360c08112156130a657600080fd5b6130af86612e21565b945060208601359350604086013592506060605f19820112156130d157600080fd5b509295919450926060019150565b600081518084526130f7816020860160208601613356565b601f01601f19169290920160200192915050565b60008184825b85811015613140576001600160a01b0361312a83612dec565b1683526020928301929190910190600101613111565b509095945050505050565b60006001600160fb1b0383111561316157600080fd5b8260051b80858437600092019182525092915050565b8183823760009101908152919050565b60008251613199818460208701613356565b9190910192915050565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b602081526000612e4d60208301846130df565b9687526001600160a01b03958616602088015293851660408701526060860192909252608085015260a08401521660c082015260e00190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000808335601e1984360301811261327d57600080fd5b83018035915067ffffffffffffffff82111561329857600080fd5b6020019150600581901b36038213156132b057600080fd5b9250929050565b6000808335601e198436030181126132ce57600080fd5b83018035915067ffffffffffffffff8211156132e957600080fd5b6020019150368190038213156132b057600080fd5b60008261331b57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561333a5761333a61339d565b500290565b6000828210156133515761335161339d565b500390565b60005b83811015613371578181015183820152602001613359565b8381111561184b5750506000910152565b60006000198214156133965761339661339d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfec89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc68b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400fa164736f6c6343000807000a";

type UfoMarketplaceConstructorParams =
  | [signer?: Signer]
  | ConstructorParameters<typeof ContractFactory>;

const isSuperArgs = (
  xs: UfoMarketplaceConstructorParams
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;

export class UfoMarketplace__factory extends ContractFactory {
  constructor(...args: UfoMarketplaceConstructorParams) {
    if (isSuperArgs(args)) {
      super(...args);
    } else {
      super(_abi, _bytecode, args[0]);
    }
  }

  override deploy(
    overrides?: Overrides & { from?: string }
  ): Promise<UfoMarketplace> {
    return super.deploy(overrides || {}) as Promise<UfoMarketplace>;
  }
  override getDeployTransaction(
    overrides?: Overrides & { from?: string }
  ): TransactionRequest {
    return super.getDeployTransaction(overrides || {});
  }
  override attach(address: string): UfoMarketplace {
    return super.attach(address) as UfoMarketplace;
  }
  override connect(signer: Signer): UfoMarketplace__factory {
    return super.connect(signer) as UfoMarketplace__factory;
  }

  static readonly bytecode = _bytecode;
  static readonly abi = _abi;
  static createInterface(): UfoMarketplaceInterface {
    return new utils.Interface(_abi) as UfoMarketplaceInterface;
  }
  static connect(
    address: string,
    signerOrProvider: Signer | Provider
  ): UfoMarketplace {
    return new Contract(address, _abi, signerOrProvider) as UfoMarketplace;
  }
}
