import { BigNumber } from 'ethers';

export interface UFOConfig {
  ufoTokenOnEth: string;
  ufoLPTokenOnEth: string;
  plasmaTokenOnEth?: string;
  ufoTokenOnMatic: string;
  ufoLPTokenOnMatic: string;
  plasmaTokenOnMatic: string;
  ufoTokenOnBeamTestNet: string;
  ufoLPTokenOnBeamTestNet: string;
  plasmaTokenOnBeamTestNet: string;
  usdtTokenOnBeamTestNet: string;
  WETHOnEth?: string;
  WETHOnMatic: string;
  WETHOnBeamTestNet: string;
  uapOnEth?: string;
  uapOnMatic: string;
  uapOnBeamTestNet: string;
}

export interface UFOMarketplaceConfig {
  ufoSuperGalaticFactory: string;
  ufoMarketplace: string;
  ufoConfig: UFOConfig;
}

export interface NFTInfo {
  nftId: BigNumber;
  nftContract: string;
  sellType: string;
  userAddr: string;
  price: BigNumber;
  priceUnit: BigNumber;
  start: BigNumber;
  end: BigNumber;
  salt: BigNumber;
}

export interface UAPClaimInfo {
  amount: BigNumber;
  user: string;
  salt: BigNumber;
}

export interface BucketInfo {
  nftIds: [BigNumber];
  nftContracts: [string];
  userAddrs: [string];
  prices: [BigNumber];
  priceUnits: [BigNumber];
  nftTypes: [BigNumber];
  salt: BigNumber;
}

export interface WeaponInfo {
  rarity: BigNumber;
  weaponType: BigNumber;
  owner: string;
  salt: BigNumber;
  tokenId: string;
}

export interface LootBuySellInfo {
  nftContract: string;
  nftIds: [BigNumber];
  prices: [BigNumber];
  priceUnits: [BigNumber];
  userAddrs: [string]; 
  buySellType: string;
  start: BigNumber;
  end: BigNumber;  
  salt: BigNumber;
}

export enum PurchaseType {
  PLASMA,
  BEAM,
  USDT
}