/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import type {
  BaseContract,
  BigNumber,
  BigNumberish,
  BytesLike,
  CallOverrides,
  ContractTransaction,
  Overrides,
  PopulatedTransaction,
  Signer,
  utils,
} from "ethers";
import type {
  FunctionFragment,
  Result,
  EventFragment,
} from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type {
  TypedEventFilter,
  TypedEvent,
  TypedListener,
  OnEvent,
} from "./common";

export declare namespace EIP712UfoMarketplace {
  export type BucketInfoStruct = {
    nftIds: BigNumberish[];
    nftContracts: string[];
    userAddrs: string[];
    prices: BigNumberish[];
    priceUnits: BigNumberish[];
    nftTypes: BigNumberish[];
    salt: BigNumberish;
  };

  export type BucketInfoStructOutput = [
    BigNumber[],
    string[],
    string[],
    BigNumber[],
    BigNumber[],
    BigNumber[],
    BigNumber
  ] & {
    nftIds: BigNumber[];
    nftContracts: string[];
    userAddrs: string[];
    prices: BigNumber[];
    priceUnits: BigNumber[];
    nftTypes: BigNumber[];
    salt: BigNumber;
  };

  export type NftInfoStruct = {
    nftId: BigNumberish;
    nftContract: string;
    sellType: string;
    userAddr: string;
    price: BigNumberish;
    priceUnit: BigNumberish;
    start: BigNumberish;
    end: BigNumberish;
    salt: BigNumberish;
  };

  export type NftInfoStructOutput = [
    BigNumber,
    string,
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
  ] & {
    nftId: BigNumber;
    nftContract: string;
    sellType: string;
    userAddr: string;
    price: BigNumber;
    priceUnit: BigNumber;
    start: BigNumber;
    end: BigNumber;
    salt: BigNumber;
  };

  export type LootBuySellInfoStruct = {
    nftContract: string;
    nftIds: BigNumberish[];
    prices: BigNumberish[];
    priceUnits: BigNumberish[];
    userAddrs: string[];
    buySellType: string;
    start: BigNumberish;
    end: BigNumberish;
    salt: BigNumberish;
  };

  export type LootBuySellInfoStructOutput = [
    string,
    BigNumber[],
    BigNumber[],
    BigNumber[],
    string[],
    string,
    BigNumber,
    BigNumber,
    BigNumber
  ] & {
    nftContract: string;
    nftIds: BigNumber[];
    prices: BigNumber[];
    priceUnits: BigNumber[];
    userAddrs: string[];
    buySellType: string;
    start: BigNumber;
    end: BigNumber;
    salt: BigNumber;
  };

  export type UAPClaimInfoStruct = {
    amount: BigNumberish;
    user: string;
    salt: BigNumberish;
  };

  export type UAPClaimInfoStructOutput = [BigNumber, string, BigNumber] & {
    amount: BigNumber;
    user: string;
    salt: BigNumber;
  };
}

export interface UfoMarketplaceInterface extends utils.Interface {
  functions: {
    "adminWallet()": FunctionFragment;
    "alreadyUsedSignature(bytes)": FunctionFragment;
    "backendSigner()": FunctionFragment;
    "buyCartItems(uint8,bytes32,bytes32,(uint256[],address[],address[],uint256[],uint256[],uint256[],uint256))": FunctionFragment;
    "buySellItem(uint8,bytes32,bytes32,(uint256,address,string,address,uint256,uint256,uint256,uint256,uint256))": FunctionFragment;
    "buySellLootBoxes(uint8,bytes32,bytes32,(address,uint256[],uint256[],uint256[],address[],string,uint256,uint256,uint256))": FunctionFragment;
    "claimUAP(uint8,bytes32,bytes32,(uint256,address,uint256))": FunctionFragment;
    "concatSignature(uint8,bytes32,bytes32)": FunctionFragment;
    "initialize(address,uint256,address)": FunctionFragment;
    "owner()": FunctionFragment;
    "paused()": FunctionFragment;
    "platformFee()": FunctionFragment;
    "renounceOwnership()": FunctionFragment;
    "revenueWallet()": FunctionFragment;
    "setBackendSigner(address)": FunctionFragment;
    "setUAPEscrowAddress(address)": FunctionFragment;
    "setUSDTAddress(address)": FunctionFragment;
    "setUfoAddress(address)": FunctionFragment;
    "setWETHAddress(address)": FunctionFragment;
    "transferOwnership(address)": FunctionFragment;
    "uapAddress()": FunctionFragment;
    "uapEscrow()": FunctionFragment;
    "ufoAddress()": FunctionFragment;
    "updatePlateformFee(uint256)": FunctionFragment;
    "usdtAddress()": FunctionFragment;
    "wethAddr()": FunctionFragment;
    "withdraw(address)": FunctionFragment;
  };

  getFunction(
    nameOrSignatureOrTopic:
      | "adminWallet"
      | "alreadyUsedSignature"
      | "backendSigner"
      | "buyCartItems"
      | "buySellItem"
      | "buySellLootBoxes"
      | "claimUAP"
      | "concatSignature"
      | "initialize"
      | "owner"
      | "paused"
      | "platformFee"
      | "renounceOwnership"
      | "revenueWallet"
      | "setBackendSigner"
      | "setUAPEscrowAddress"
      | "setUSDTAddress"
      | "setUfoAddress"
      | "setWETHAddress"
      | "transferOwnership"
      | "uapAddress"
      | "uapEscrow"
      | "ufoAddress"
      | "updatePlateformFee"
      | "usdtAddress"
      | "wethAddr"
      | "withdraw"
  ): FunctionFragment;

  encodeFunctionData(
    functionFragment: "adminWallet",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "alreadyUsedSignature",
    values: [BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "backendSigner",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "buyCartItems",
    values: [
      BigNumberish,
      BytesLike,
      BytesLike,
      EIP712UfoMarketplace.BucketInfoStruct
    ]
  ): string;
  encodeFunctionData(
    functionFragment: "buySellItem",
    values: [
      BigNumberish,
      BytesLike,
      BytesLike,
      EIP712UfoMarketplace.NftInfoStruct
    ]
  ): string;
  encodeFunctionData(
    functionFragment: "buySellLootBoxes",
    values: [
      BigNumberish,
      BytesLike,
      BytesLike,
      EIP712UfoMarketplace.LootBuySellInfoStruct
    ]
  ): string;
  encodeFunctionData(
    functionFragment: "claimUAP",
    values: [
      BigNumberish,
      BytesLike,
      BytesLike,
      EIP712UfoMarketplace.UAPClaimInfoStruct
    ]
  ): string;
  encodeFunctionData(
    functionFragment: "concatSignature",
    values: [BigNumberish, BytesLike, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "initialize",
    values: [string, BigNumberish, string]
  ): string;
  encodeFunctionData(functionFragment: "owner", values?: undefined): string;
  encodeFunctionData(functionFragment: "paused", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "platformFee",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "renounceOwnership",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "revenueWallet",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "setBackendSigner",
    values: [string]
  ): string;
  encodeFunctionData(
    functionFragment: "setUAPEscrowAddress",
    values: [string]
  ): string;
  encodeFunctionData(
    functionFragment: "setUSDTAddress",
    values: [string]
  ): string;
  encodeFunctionData(
    functionFragment: "setUfoAddress",
    values: [string]
  ): string;
  encodeFunctionData(
    functionFragment: "setWETHAddress",
    values: [string]
  ): string;
  encodeFunctionData(
    functionFragment: "transferOwnership",
    values: [string]
  ): string;
  encodeFunctionData(
    functionFragment: "uapAddress",
    values?: undefined
  ): string;
  encodeFunctionData(functionFragment: "uapEscrow", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "ufoAddress",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "updatePlateformFee",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "usdtAddress",
    values?: undefined
  ): string;
  encodeFunctionData(functionFragment: "wethAddr", values?: undefined): string;
  encodeFunctionData(functionFragment: "withdraw", values: [string]): string;

  decodeFunctionResult(
    functionFragment: "adminWallet",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "alreadyUsedSignature",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "backendSigner",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "buyCartItems",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "buySellItem",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "buySellLootBoxes",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "claimUAP", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "concatSignature",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "platformFee",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "renounceOwnership",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "revenueWallet",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setBackendSigner",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setUAPEscrowAddress",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setUSDTAddress",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setUfoAddress",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setWETHAddress",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "transferOwnership",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "uapAddress", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "uapEscrow", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "ufoAddress", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "updatePlateformFee",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "usdtAddress",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "wethAddr", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result;

  events: {
    "AuctionSuccessful(address,uint256,uint256,uint256,address)": EventFragment;
    "ClaimUAP(address,uint256)": EventFragment;
    "FixedItemSuccessful(address,uint256,uint256,uint256,address)": EventFragment;
    "Initialized(uint8)": EventFragment;
    "LootBuySellSuccess(uint256,address,address,uint256,uint256,uint256,address)": EventFragment;
    "OwnershipTransferred(address,address)": EventFragment;
    "Paused(address)": EventFragment;
    "SetBackendSigner(address)": EventFragment;
    "Unpaused(address)": EventFragment;
    "UpdateEscrow(address)": EventFragment;
    "UpdatePlateformFee(uint256)": EventFragment;
    "UpdateUfoAddr(address)": EventFragment;
    "UpdateUsdtAddr(address)": EventFragment;
    "UpdateWrappedNativeAddr(address)": EventFragment;
    "Withdraw(address,uint256,uint256,uint256)": EventFragment;
  };

  getEvent(nameOrSignatureOrTopic: "AuctionSuccessful"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "ClaimUAP"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "FixedItemSuccessful"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "LootBuySellSuccess"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "Paused"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "SetBackendSigner"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "Unpaused"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "UpdateEscrow"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "UpdatePlateformFee"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "UpdateUfoAddr"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "UpdateUsdtAddr"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "UpdateWrappedNativeAddr"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "Withdraw"): EventFragment;
}

export interface AuctionSuccessfulEventObject {
  _nftAddress: string;
  _tokenId: BigNumber;
  _totalPrice: BigNumber;
  priceUnit: BigNumber;
  _winner: string;
}
export type AuctionSuccessfulEvent = TypedEvent<
  [string, BigNumber, BigNumber, BigNumber, string],
  AuctionSuccessfulEventObject
>;

export type AuctionSuccessfulEventFilter =
  TypedEventFilter<AuctionSuccessfulEvent>;

export interface ClaimUAPEventObject {
  _user: string;
  amount: BigNumber;
}
export type ClaimUAPEvent = TypedEvent<
  [string, BigNumber],
  ClaimUAPEventObject
>;

export type ClaimUAPEventFilter = TypedEventFilter<ClaimUAPEvent>;

export interface FixedItemSuccessfulEventObject {
  _nftAddress: string;
  _tokenId: BigNumber;
  _totalPrice: BigNumber;
  priceUnit: BigNumber;
  _buyer: string;
}
export type FixedItemSuccessfulEvent = TypedEvent<
  [string, BigNumber, BigNumber, BigNumber, string],
  FixedItemSuccessfulEventObject
>;

export type FixedItemSuccessfulEventFilter =
  TypedEventFilter<FixedItemSuccessfulEvent>;

export interface InitializedEventObject {
  version: number;
}
export type InitializedEvent = TypedEvent<[number], InitializedEventObject>;

export type InitializedEventFilter = TypedEventFilter<InitializedEvent>;

export interface LootBuySellSuccessEventObject {
  buySellType: BigNumber;
  sender: string;
  receiver: string;
  price: BigNumber;
  priceUnit: BigNumber;
  weaponId: BigNumber;
  weaponContract: string;
}
export type LootBuySellSuccessEvent = TypedEvent<
  [BigNumber, string, string, BigNumber, BigNumber, BigNumber, string],
  LootBuySellSuccessEventObject
>;

export type LootBuySellSuccessEventFilter =
  TypedEventFilter<LootBuySellSuccessEvent>;

export interface OwnershipTransferredEventObject {
  previousOwner: string;
  newOwner: string;
}
export type OwnershipTransferredEvent = TypedEvent<
  [string, string],
  OwnershipTransferredEventObject
>;

export type OwnershipTransferredEventFilter =
  TypedEventFilter<OwnershipTransferredEvent>;

export interface PausedEventObject {
  account: string;
}
export type PausedEvent = TypedEvent<[string], PausedEventObject>;

export type PausedEventFilter = TypedEventFilter<PausedEvent>;

export interface SetBackendSignerEventObject {
  signer: string;
}
export type SetBackendSignerEvent = TypedEvent<
  [string],
  SetBackendSignerEventObject
>;

export type SetBackendSignerEventFilter =
  TypedEventFilter<SetBackendSignerEvent>;

export interface UnpausedEventObject {
  account: string;
}
export type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>;

export type UnpausedEventFilter = TypedEventFilter<UnpausedEvent>;

export interface UpdateEscrowEventObject {
  escrow: string;
}
export type UpdateEscrowEvent = TypedEvent<[string], UpdateEscrowEventObject>;

export type UpdateEscrowEventFilter = TypedEventFilter<UpdateEscrowEvent>;

export interface UpdatePlateformFeeEventObject {
  newFee: BigNumber;
}
export type UpdatePlateformFeeEvent = TypedEvent<
  [BigNumber],
  UpdatePlateformFeeEventObject
>;

export type UpdatePlateformFeeEventFilter =
  TypedEventFilter<UpdatePlateformFeeEvent>;

export interface UpdateUfoAddrEventObject {
  ufo: string;
}
export type UpdateUfoAddrEvent = TypedEvent<[string], UpdateUfoAddrEventObject>;

export type UpdateUfoAddrEventFilter = TypedEventFilter<UpdateUfoAddrEvent>;

export interface UpdateUsdtAddrEventObject {
  usdt: string;
}
export type UpdateUsdtAddrEvent = TypedEvent<
  [string],
  UpdateUsdtAddrEventObject
>;

export type UpdateUsdtAddrEventFilter = TypedEventFilter<UpdateUsdtAddrEvent>;

export interface UpdateWrappedNativeAddrEventObject {
  wNative: string;
}
export type UpdateWrappedNativeAddrEvent = TypedEvent<
  [string],
  UpdateWrappedNativeAddrEventObject
>;

export type UpdateWrappedNativeAddrEventFilter =
  TypedEventFilter<UpdateWrappedNativeAddrEvent>;

export interface WithdrawEventObject {
  recipient: string;
  native: BigNumber;
  usdt: BigNumber;
  ufo: BigNumber;
}
export type WithdrawEvent = TypedEvent<
  [string, BigNumber, BigNumber, BigNumber],
  WithdrawEventObject
>;

export type WithdrawEventFilter = TypedEventFilter<WithdrawEvent>;

export interface UfoMarketplace extends BaseContract {
  connect(signerOrProvider: Signer | Provider | string): this;
  attach(addressOrName: string): this;
  deployed(): Promise<this>;

  interface: UfoMarketplaceInterface;

  queryFilter<TEvent extends TypedEvent>(
    event: TypedEventFilter<TEvent>,
    fromBlockOrBlockhash?: string | number | undefined,
    toBlock?: string | number | undefined
  ): Promise<Array<TEvent>>;

  listeners<TEvent extends TypedEvent>(
    eventFilter?: TypedEventFilter<TEvent>
  ): Array<TypedListener<TEvent>>;
  listeners(eventName?: string): Array<Listener>;
  removeAllListeners<TEvent extends TypedEvent>(
    eventFilter: TypedEventFilter<TEvent>
  ): this;
  removeAllListeners(eventName?: string): this;
  off: OnEvent<this>;
  on: OnEvent<this>;
  once: OnEvent<this>;
  removeListener: OnEvent<this>;

  functions: {
    adminWallet(overrides?: CallOverrides): Promise<[string]>;

    alreadyUsedSignature(
      arg0: BytesLike,
      overrides?: CallOverrides
    ): Promise<[boolean]>;

    backendSigner(overrides?: CallOverrides): Promise<[string]>;

    buyCartItems(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      _info: EIP712UfoMarketplace.BucketInfoStruct,
      overrides?: Overrides & { from?: string }
    ): Promise<ContractTransaction>;

    buySellItem(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      _info: EIP712UfoMarketplace.NftInfoStruct,
      overrides?: Overrides & { from?: string }
    ): Promise<ContractTransaction>;

    buySellLootBoxes(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      _info: EIP712UfoMarketplace.LootBuySellInfoStruct,
      overrides?: Overrides & { from?: string }
    ): Promise<ContractTransaction>;

    claimUAP(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      _info: EIP712UfoMarketplace.UAPClaimInfoStruct,
      overrides?: Overrides & { from?: string }
    ): Promise<ContractTransaction>;

    concatSignature(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      overrides?: CallOverrides
    ): Promise<[string]>;

    initialize(
      _admin: string,
      _platformFee: BigNumberish,
      _uap: string,
      overrides?: Overrides & { from?: string }
    ): Promise<ContractTransaction>;

    owner(overrides?: CallOverrides): Promise<[string]>;

    paused(overrides?: CallOverrides): Promise<[boolean]>;

    platformFee(overrides?: CallOverrides): Promise<[BigNumber]>;

    renounceOwnership(
      overrides?: Overrides & { from?: string }
    ): Promise<ContractTransaction>;

    revenueWallet(overrides?: CallOverrides): Promise<[string]>;

    setBackendSigner(
      _bkSigner: string,
      overrides?: Overrides & { from?: string }
    ): Promise<ContractTransaction>;

    setUAPEscrowAddress(
      escrow: string,
      overrides?: Overrides & { from?: string }
    ): Promise<ContractTransaction>;

    setUSDTAddress(
      usdtAddr: string,
      overrides?: Overrides & { from?: string }
    ): Promise<ContractTransaction>;

    setUfoAddress(
      ufoAddr: string,
      overrides?: Overrides & { from?: string }
    ): Promise<ContractTransaction>;

    setWETHAddress(
      _wethAddr: string,
      overrides?: Overrides & { from?: string }
    ): Promise<ContractTransaction>;

    transferOwnership(
      newOwner: string,
      overrides?: Overrides & { from?: string }
    ): Promise<ContractTransaction>;

    uapAddress(overrides?: CallOverrides): Promise<[string]>;

    uapEscrow(overrides?: CallOverrides): Promise<[string]>;

    ufoAddress(overrides?: CallOverrides): Promise<[string]>;

    updatePlateformFee(
      newFee: BigNumberish,
      overrides?: Overrides & { from?: string }
    ): Promise<ContractTransaction>;

    usdtAddress(overrides?: CallOverrides): Promise<[string]>;

    wethAddr(overrides?: CallOverrides): Promise<[string]>;

    withdraw(
      addr: string,
      overrides?: Overrides & { from?: string }
    ): Promise<ContractTransaction>;
  };

  adminWallet(overrides?: CallOverrides): Promise<string>;

  alreadyUsedSignature(
    arg0: BytesLike,
    overrides?: CallOverrides
  ): Promise<boolean>;

  backendSigner(overrides?: CallOverrides): Promise<string>;

  buyCartItems(
    v: BigNumberish,
    r: BytesLike,
    s: BytesLike,
    _info: EIP712UfoMarketplace.BucketInfoStruct,
    overrides?: Overrides & { from?: string }
  ): Promise<ContractTransaction>;

  buySellItem(
    v: BigNumberish,
    r: BytesLike,
    s: BytesLike,
    _info: EIP712UfoMarketplace.NftInfoStruct,
    overrides?: Overrides & { from?: string }
  ): Promise<ContractTransaction>;

  buySellLootBoxes(
    v: BigNumberish,
    r: BytesLike,
    s: BytesLike,
    _info: EIP712UfoMarketplace.LootBuySellInfoStruct,
    overrides?: Overrides & { from?: string }
  ): Promise<ContractTransaction>;

  claimUAP(
    v: BigNumberish,
    r: BytesLike,
    s: BytesLike,
    _info: EIP712UfoMarketplace.UAPClaimInfoStruct,
    overrides?: Overrides & { from?: string }
  ): Promise<ContractTransaction>;

  concatSignature(
    v: BigNumberish,
    r: BytesLike,
    s: BytesLike,
    overrides?: CallOverrides
  ): Promise<string>;

  initialize(
    _admin: string,
    _platformFee: BigNumberish,
    _uap: string,
    overrides?: Overrides & { from?: string }
  ): Promise<ContractTransaction>;

  owner(overrides?: CallOverrides): Promise<string>;

  paused(overrides?: CallOverrides): Promise<boolean>;

  platformFee(overrides?: CallOverrides): Promise<BigNumber>;

  renounceOwnership(
    overrides?: Overrides & { from?: string }
  ): Promise<ContractTransaction>;

  revenueWallet(overrides?: CallOverrides): Promise<string>;

  setBackendSigner(
    _bkSigner: string,
    overrides?: Overrides & { from?: string }
  ): Promise<ContractTransaction>;

  setUAPEscrowAddress(
    escrow: string,
    overrides?: Overrides & { from?: string }
  ): Promise<ContractTransaction>;

  setUSDTAddress(
    usdtAddr: string,
    overrides?: Overrides & { from?: string }
  ): Promise<ContractTransaction>;

  setUfoAddress(
    ufoAddr: string,
    overrides?: Overrides & { from?: string }
  ): Promise<ContractTransaction>;

  setWETHAddress(
    _wethAddr: string,
    overrides?: Overrides & { from?: string }
  ): Promise<ContractTransaction>;

  transferOwnership(
    newOwner: string,
    overrides?: Overrides & { from?: string }
  ): Promise<ContractTransaction>;

  uapAddress(overrides?: CallOverrides): Promise<string>;

  uapEscrow(overrides?: CallOverrides): Promise<string>;

  ufoAddress(overrides?: CallOverrides): Promise<string>;

  updatePlateformFee(
    newFee: BigNumberish,
    overrides?: Overrides & { from?: string }
  ): Promise<ContractTransaction>;

  usdtAddress(overrides?: CallOverrides): Promise<string>;

  wethAddr(overrides?: CallOverrides): Promise<string>;

  withdraw(
    addr: string,
    overrides?: Overrides & { from?: string }
  ): Promise<ContractTransaction>;

  callStatic: {
    adminWallet(overrides?: CallOverrides): Promise<string>;

    alreadyUsedSignature(
      arg0: BytesLike,
      overrides?: CallOverrides
    ): Promise<boolean>;

    backendSigner(overrides?: CallOverrides): Promise<string>;

    buyCartItems(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      _info: EIP712UfoMarketplace.BucketInfoStruct,
      overrides?: CallOverrides
    ): Promise<void>;

    buySellItem(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      _info: EIP712UfoMarketplace.NftInfoStruct,
      overrides?: CallOverrides
    ): Promise<void>;

    buySellLootBoxes(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      _info: EIP712UfoMarketplace.LootBuySellInfoStruct,
      overrides?: CallOverrides
    ): Promise<void>;

    claimUAP(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      _info: EIP712UfoMarketplace.UAPClaimInfoStruct,
      overrides?: CallOverrides
    ): Promise<void>;

    concatSignature(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      overrides?: CallOverrides
    ): Promise<string>;

    initialize(
      _admin: string,
      _platformFee: BigNumberish,
      _uap: string,
      overrides?: CallOverrides
    ): Promise<void>;

    owner(overrides?: CallOverrides): Promise<string>;

    paused(overrides?: CallOverrides): Promise<boolean>;

    platformFee(overrides?: CallOverrides): Promise<BigNumber>;

    renounceOwnership(overrides?: CallOverrides): Promise<void>;

    revenueWallet(overrides?: CallOverrides): Promise<string>;

    setBackendSigner(
      _bkSigner: string,
      overrides?: CallOverrides
    ): Promise<void>;

    setUAPEscrowAddress(
      escrow: string,
      overrides?: CallOverrides
    ): Promise<void>;

    setUSDTAddress(usdtAddr: string, overrides?: CallOverrides): Promise<void>;

    setUfoAddress(ufoAddr: string, overrides?: CallOverrides): Promise<void>;

    setWETHAddress(_wethAddr: string, overrides?: CallOverrides): Promise<void>;

    transferOwnership(
      newOwner: string,
      overrides?: CallOverrides
    ): Promise<void>;

    uapAddress(overrides?: CallOverrides): Promise<string>;

    uapEscrow(overrides?: CallOverrides): Promise<string>;

    ufoAddress(overrides?: CallOverrides): Promise<string>;

    updatePlateformFee(
      newFee: BigNumberish,
      overrides?: CallOverrides
    ): Promise<void>;

    usdtAddress(overrides?: CallOverrides): Promise<string>;

    wethAddr(overrides?: CallOverrides): Promise<string>;

    withdraw(addr: string, overrides?: CallOverrides): Promise<void>;
  };

  filters: {
    "AuctionSuccessful(address,uint256,uint256,uint256,address)"(
      _nftAddress?: string | null,
      _tokenId?: BigNumberish | null,
      _totalPrice?: null,
      priceUnit?: null,
      _winner?: null
    ): AuctionSuccessfulEventFilter;
    AuctionSuccessful(
      _nftAddress?: string | null,
      _tokenId?: BigNumberish | null,
      _totalPrice?: null,
      priceUnit?: null,
      _winner?: null
    ): AuctionSuccessfulEventFilter;

    "ClaimUAP(address,uint256)"(
      _user?: string | null,
      amount?: null
    ): ClaimUAPEventFilter;
    ClaimUAP(_user?: string | null, amount?: null): ClaimUAPEventFilter;

    "FixedItemSuccessful(address,uint256,uint256,uint256,address)"(
      _nftAddress?: string | null,
      _tokenId?: BigNumberish | null,
      _totalPrice?: null,
      priceUnit?: null,
      _buyer?: null
    ): FixedItemSuccessfulEventFilter;
    FixedItemSuccessful(
      _nftAddress?: string | null,
      _tokenId?: BigNumberish | null,
      _totalPrice?: null,
      priceUnit?: null,
      _buyer?: null
    ): FixedItemSuccessfulEventFilter;

    "Initialized(uint8)"(version?: null): InitializedEventFilter;
    Initialized(version?: null): InitializedEventFilter;

    "LootBuySellSuccess(uint256,address,address,uint256,uint256,uint256,address)"(
      buySellType?: null,
      sender?: null,
      receiver?: null,
      price?: null,
      priceUnit?: null,
      weaponId?: null,
      weaponContract?: null
    ): LootBuySellSuccessEventFilter;
    LootBuySellSuccess(
      buySellType?: null,
      sender?: null,
      receiver?: null,
      price?: null,
      priceUnit?: null,
      weaponId?: null,
      weaponContract?: null
    ): LootBuySellSuccessEventFilter;

    "OwnershipTransferred(address,address)"(
      previousOwner?: string | null,
      newOwner?: string | null
    ): OwnershipTransferredEventFilter;
    OwnershipTransferred(
      previousOwner?: string | null,
      newOwner?: string | null
    ): OwnershipTransferredEventFilter;

    "Paused(address)"(account?: null): PausedEventFilter;
    Paused(account?: null): PausedEventFilter;

    "SetBackendSigner(address)"(signer?: null): SetBackendSignerEventFilter;
    SetBackendSigner(signer?: null): SetBackendSignerEventFilter;

    "Unpaused(address)"(account?: null): UnpausedEventFilter;
    Unpaused(account?: null): UnpausedEventFilter;

    "UpdateEscrow(address)"(escrow?: null): UpdateEscrowEventFilter;
    UpdateEscrow(escrow?: null): UpdateEscrowEventFilter;

    "UpdatePlateformFee(uint256)"(newFee?: null): UpdatePlateformFeeEventFilter;
    UpdatePlateformFee(newFee?: null): UpdatePlateformFeeEventFilter;

    "UpdateUfoAddr(address)"(ufo?: null): UpdateUfoAddrEventFilter;
    UpdateUfoAddr(ufo?: null): UpdateUfoAddrEventFilter;

    "UpdateUsdtAddr(address)"(usdt?: null): UpdateUsdtAddrEventFilter;
    UpdateUsdtAddr(usdt?: null): UpdateUsdtAddrEventFilter;

    "UpdateWrappedNativeAddr(address)"(
      wNative?: null
    ): UpdateWrappedNativeAddrEventFilter;
    UpdateWrappedNativeAddr(wNative?: null): UpdateWrappedNativeAddrEventFilter;

    "Withdraw(address,uint256,uint256,uint256)"(
      recipient?: null,
      native?: null,
      usdt?: null,
      ufo?: null
    ): WithdrawEventFilter;
    Withdraw(
      recipient?: null,
      native?: null,
      usdt?: null,
      ufo?: null
    ): WithdrawEventFilter;
  };

  estimateGas: {
    adminWallet(overrides?: CallOverrides): Promise<BigNumber>;

    alreadyUsedSignature(
      arg0: BytesLike,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    backendSigner(overrides?: CallOverrides): Promise<BigNumber>;

    buyCartItems(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      _info: EIP712UfoMarketplace.BucketInfoStruct,
      overrides?: Overrides & { from?: string }
    ): Promise<BigNumber>;

    buySellItem(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      _info: EIP712UfoMarketplace.NftInfoStruct,
      overrides?: Overrides & { from?: string }
    ): Promise<BigNumber>;

    buySellLootBoxes(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      _info: EIP712UfoMarketplace.LootBuySellInfoStruct,
      overrides?: Overrides & { from?: string }
    ): Promise<BigNumber>;

    claimUAP(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      _info: EIP712UfoMarketplace.UAPClaimInfoStruct,
      overrides?: Overrides & { from?: string }
    ): Promise<BigNumber>;

    concatSignature(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    initialize(
      _admin: string,
      _platformFee: BigNumberish,
      _uap: string,
      overrides?: Overrides & { from?: string }
    ): Promise<BigNumber>;

    owner(overrides?: CallOverrides): Promise<BigNumber>;

    paused(overrides?: CallOverrides): Promise<BigNumber>;

    platformFee(overrides?: CallOverrides): Promise<BigNumber>;

    renounceOwnership(
      overrides?: Overrides & { from?: string }
    ): Promise<BigNumber>;

    revenueWallet(overrides?: CallOverrides): Promise<BigNumber>;

    setBackendSigner(
      _bkSigner: string,
      overrides?: Overrides & { from?: string }
    ): Promise<BigNumber>;

    setUAPEscrowAddress(
      escrow: string,
      overrides?: Overrides & { from?: string }
    ): Promise<BigNumber>;

    setUSDTAddress(
      usdtAddr: string,
      overrides?: Overrides & { from?: string }
    ): Promise<BigNumber>;

    setUfoAddress(
      ufoAddr: string,
      overrides?: Overrides & { from?: string }
    ): Promise<BigNumber>;

    setWETHAddress(
      _wethAddr: string,
      overrides?: Overrides & { from?: string }
    ): Promise<BigNumber>;

    transferOwnership(
      newOwner: string,
      overrides?: Overrides & { from?: string }
    ): Promise<BigNumber>;

    uapAddress(overrides?: CallOverrides): Promise<BigNumber>;

    uapEscrow(overrides?: CallOverrides): Promise<BigNumber>;

    ufoAddress(overrides?: CallOverrides): Promise<BigNumber>;

    updatePlateformFee(
      newFee: BigNumberish,
      overrides?: Overrides & { from?: string }
    ): Promise<BigNumber>;

    usdtAddress(overrides?: CallOverrides): Promise<BigNumber>;

    wethAddr(overrides?: CallOverrides): Promise<BigNumber>;

    withdraw(
      addr: string,
      overrides?: Overrides & { from?: string }
    ): Promise<BigNumber>;
  };

  populateTransaction: {
    adminWallet(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    alreadyUsedSignature(
      arg0: BytesLike,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    backendSigner(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    buyCartItems(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      _info: EIP712UfoMarketplace.BucketInfoStruct,
      overrides?: Overrides & { from?: string }
    ): Promise<PopulatedTransaction>;

    buySellItem(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      _info: EIP712UfoMarketplace.NftInfoStruct,
      overrides?: Overrides & { from?: string }
    ): Promise<PopulatedTransaction>;

    buySellLootBoxes(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      _info: EIP712UfoMarketplace.LootBuySellInfoStruct,
      overrides?: Overrides & { from?: string }
    ): Promise<PopulatedTransaction>;

    claimUAP(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      _info: EIP712UfoMarketplace.UAPClaimInfoStruct,
      overrides?: Overrides & { from?: string }
    ): Promise<PopulatedTransaction>;

    concatSignature(
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    initialize(
      _admin: string,
      _platformFee: BigNumberish,
      _uap: string,
      overrides?: Overrides & { from?: string }
    ): Promise<PopulatedTransaction>;

    owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    platformFee(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    renounceOwnership(
      overrides?: Overrides & { from?: string }
    ): Promise<PopulatedTransaction>;

    revenueWallet(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    setBackendSigner(
      _bkSigner: string,
      overrides?: Overrides & { from?: string }
    ): Promise<PopulatedTransaction>;

    setUAPEscrowAddress(
      escrow: string,
      overrides?: Overrides & { from?: string }
    ): Promise<PopulatedTransaction>;

    setUSDTAddress(
      usdtAddr: string,
      overrides?: Overrides & { from?: string }
    ): Promise<PopulatedTransaction>;

    setUfoAddress(
      ufoAddr: string,
      overrides?: Overrides & { from?: string }
    ): Promise<PopulatedTransaction>;

    setWETHAddress(
      _wethAddr: string,
      overrides?: Overrides & { from?: string }
    ): Promise<PopulatedTransaction>;

    transferOwnership(
      newOwner: string,
      overrides?: Overrides & { from?: string }
    ): Promise<PopulatedTransaction>;

    uapAddress(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    uapEscrow(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    ufoAddress(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    updatePlateformFee(
      newFee: BigNumberish,
      overrides?: Overrides & { from?: string }
    ): Promise<PopulatedTransaction>;

    usdtAddress(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    wethAddr(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    withdraw(
      addr: string,
      overrides?: Overrides & { from?: string }
    ): Promise<PopulatedTransaction>;
  };
}
