import * as ethers from "ethers"; export declare type Maybe = T | undefined | null; /** * Configuration Object */ export interface ClaimSaleConfig { /** * Address of the sale contract */ contractAddress: string; /** * web3 provider to access blockchain with (on read operations) */ web3Provider: ethers.providers.Provider; /** * Registrar that holds the domains being used to claim for this sale. */ claimingRegistrarAddress: string; /** * Advanced settings / properties */ advanced?: { /** * IPFS Gateway to use * (Should be fully formed, ie: https://ipfs.fleek.co/ipfs) */ ipfsGateway?: string; }; } export interface AirWildS2Config { /** * Address of the sale contract */ contractAddress: string; /** * Since there are going to be multiple whitelists, we need to be able to access all of them - so we have a list of merkle tree URIs */ merkleTreeFileUris: string[]; /** * web3 provider to access blockchain with (on read operations) */ web3Provider: ethers.providers.Provider; /** * amount the SDK should return for the public sale purchase limit * (in theory this is infinite) */ publicSalePurchaseLimit?: number; /** * Advanced settings / properties */ advanced?: { /** * IPFS Hashes of the merkle trees, used as a fallback if the `merkleTreeFileUris` list is not an IPFS url at a given entry */ merkleTreeFileIPFSHashes?: string[]; /** * IPFS Gateway to use * (Should be fully formed, ie: https://ipfs.fleek.co/ipfs) */ ipfsGateway?: string; }; } export interface WapeSaleConfig { /** * Address of the sale contract */ contractAddress: string; /** * URI for the merkle tree file */ merkleTreeFileUri: string; /** * web3 provider to access blockchain with (on read operations) */ web3Provider: ethers.providers.Provider; /** * amount the SDK should return for the public sale purchase limit * (in theory this is infinite) */ publicSalePurchaseLimit?: number; /** * Advanced settings / properties */ advanced?: { /** * IPFS Hashes of the merkle tree, used as a fallback if the `merkleTreeFileUri` is not an IPFS url at a given entry */ merkleTreeFileIPFSHash?: string; /** * IPFS Gateway to use * (Should be fully formed, ie: https://ipfs.fleek.co/ipfs) */ ipfsGateway?: string; }; } export interface GenSaleConfig { /** * Address of the sale contract */ contractAddress: string; /** * URI for the merkle tree file */ merkleTreeFileUri: string; /** * web3 provider to access blockchain with (on read operations) */ web3Provider: ethers.providers.Provider; /** * Advanced settings / properties */ advanced?: { /** * IPFS Hashes of the merkle tree, used as a fallback if the `merkleTreeFileUri` is not an IPFS url at a given entry */ merkleTreeFileIPFSHash?: string; /** * IPFS Gateway to use * (Should be fully formed, ie: https://ipfs.fleek.co/ipfs) */ ipfsGateway?: string; }; } export declare enum SaleStatus { NotStarted = 0, PrivateSale = 1, PublicSale = 2, Ended = 3 } export declare enum GenSaleStatus { NotStarted = 0, ClaimSale = 1, PrivateSale = 2, Ended = 3 } export interface Claim { index: number; proof: string[]; quantity: number; } export interface Claims { [address: string]: Maybe; } export interface Mintlist { merkleRoot: string; claims: Claims; } /** * A domain that could be used in a claim sale to claim a new domain. */ export interface ClaimableDomain { id: string; canBeClaimed: boolean; } export interface AirWildS2SaleData { /** * how many have been sold */ amountSold: number; /** * How many are for sale given the current phase (private or public sale) */ amountForSale: number; /** * the sale price */ salePrice: string; /** * has the sale started */ started: boolean; /** * how long the private sale will last */ privateSaleDuration: number; /** * is the sale paused */ paused: boolean; /** * when did the sale start (only defined if the sale started) */ startBlock?: number; /** * when will the public sale start (only defined if the sale started) */ publicSaleStartBlock?: number; advanced: { /** * how many are for sale during the private sale */ amountForSalePrivate: number; /** * how many are for sale during the public sale */ amountForSalePublic: number; }; } export interface AirWildS2Instance { /** Get the price of the sale */ getSalePrice(): Promise; /** Get data about the current sale */ getSaleData(): Promise; /** Get the block that the sale started on (will be zero unless the sale already started) */ getSaleStartBlock(): Promise; /** Get the current status of the sale */ getSaleStatus(): Promise; /** Get the mint list */ getMintlist(): Promise; /** Get a users claim from the mintlist */ getMintlistedUserClaim(address: string): Promise; /** Get how long the private sale lasts for */ getSaleMintlistDuration(): Promise; /** Get how many domains for for sale (in the current phase) */ getTotalForSale(): Promise; /** Get the number of domains that have been sold */ getNumberOfDomainsSold(): Promise; /** Get the current block number */ getBlockNumber(): Promise; /** Get the eth balance of a user */ getEthBalance(address: string): Promise; /** Check if a user is on the mint list */ isUserOnMintlist(address: string): Promise; /** Get the number of domains purchase by a user */ getDomainsPurchasedByAccount(address: string): Promise; /** Purchase domains */ purchaseDomains(count: ethers.BigNumber, signer: ethers.Signer): Promise; /** Admin helper to pause the sale */ setPauseStatus(pauseStatus: boolean, signer: ethers.Signer): Promise; /** Get the amount a user could purchase */ numberPurchasableByAccount(address: string): Promise; } export interface WapeSaleData { /** * How many have been sold */ amountSold: number; /** * How many are for sale given the current phase (private or public sale) */ amountForSale: number; /** * The sale price */ salePrice: string; /** * Has the sale started */ started: boolean; /** * How long the private sale will last in blocks */ privateSaleDuration: number; /** * Is the sale paused */ paused: boolean; /** * When did the sale start (only defined if the sale started) */ startBlock?: number; /** * When will the public sale start (only defined if the sale started) */ publicSaleStartBlock?: number; advanced: { /** * how many are for sale during the private sale */ amountForSalePrivate: number; /** * how many are for sale during the public sale */ amountForSalePublic: number; }; } export interface WapeSaleInstance { /** Get the price of the sale */ getSalePrice(): Promise; /** Get data about the current sale */ getSaleData(): Promise; /** Get the block that the sale started on (will be zero unless the sale already started) */ getSaleStartBlock(): Promise; /** Get the current status of the sale */ getSaleStatus(): Promise; /** Get the mint list */ getMintlist(): Promise; /** Get a users claim from the mintlist */ getMintlistedUserClaim(address: string): Promise; /** Get how long the private sale lasts for */ getSaleMintlistDuration(): Promise; /** Get how many domains for for sale (in the current phase) */ getTotalForSale(): Promise; /** Get the number of domains that have been sold */ getNumberOfDomainsSold(): Promise; /** Get the current block number */ getBlockNumber(): Promise; /** Get the eth balance of a user */ getEthBalance(address: string): Promise; /** Check if a user is on the mint list */ isUserOnMintlist(address: string): Promise; /** Get the number of domains purchase by a user */ getDomainsPurchasedByAccount(address: string): Promise; /** Purchase domains */ purchaseDomains(count: ethers.BigNumber, signer: ethers.Signer): Promise; /** Admin helper to pause the sale */ setPauseStatus(pauseStatus: boolean, signer: ethers.Signer): Promise; /** Get the amount a user could purchase */ numberPurchasableByAccount(address: string): Promise; } export interface GenSaleInstance { /** Get the price of the sale */ getSalePrice(): Promise; /** Get data about the current sale */ getSaleData(): Promise; /** Get the block that the sale started on (will be zero unless the sale already started) */ getSaleStartBlock(): Promise; /** Get the current status of the sale */ getSaleStatus(): Promise; /** Get the mint list */ getMintlist(): Promise; /** Get a users claim from the mintlist */ getMintlistedUserClaim(address: string): Promise; /** Get how many domains for for sale (in the current phase) */ getTotalForSale(): Promise; /** Get the number of domains that have been sold */ getNumberOfDomainsSold(): Promise; /** Get the current block number */ getBlockNumber(): Promise; /** Get the eth balance of a user */ getEthBalance(address: string): Promise; /** Check if a user is on the mint list */ isUserOnMintlist(address: string): Promise; /** Get the number of domains purchase by a user */ getDomainsPurchasedByAccount(address: string): Promise; /** Purchase domains */ purchaseDomains(count: ethers.BigNumber, signer: ethers.Signer): Promise; /** Admin helper to pause the sale */ setPauseStatus(pauseStatus: boolean, signer: ethers.Signer): Promise; /** Get the amount a user could purchase */ numberPurchasableByAccount(address: string): Promise; } export interface GenSaleData { /** * How many have been sold */ amountSold: number; /** * How many domains are being sold */ amountForSale: number; /** * The sale price */ salePrice: string; /** * Has the sale started */ started: boolean; /** * Is the sale paused */ paused: boolean; /** * When did the sale start (only defined if the sale started) */ startBlock?: number; /** * What phase is the sale currently in? * Not Started - The Sale has not yet started * Claim Sale - The sale is accepting GEN Claims from accounts in the Merkle Tree * Private Sale - The sale is accepting private purchases from accounts in the Merkle Tree * Ended - The sale is over */ saleStatus: GenSaleStatus; /** * How many domains a wallet may buy in one transaction in the Private Sale */ limitPerTransaction?: number; } export interface ClaimWithChildInstance { /** Get the price of the sale */ getSalePrice(): Promise; /** Get data about the current sale */ getSaleData(): Promise; /** Get the block that the sale started on (will be zero unless the sale already started) */ getSaleStartBlock(): Promise; /** Get the current status of the sale */ getSaleStatus(): Promise; /** Get how long the sale lasts for */ getSaleDuration(): Promise; /** Get how many domains for for sale (in the current phase) */ getTotalForSale(): Promise; /** Get the number of domains that have been sold */ getNumberOfDomainsSold(): Promise; /** Get the current block number */ getBlockNumber(): Promise; /** Get the eth balance of a user */ getEthBalance(address: string): Promise; /** Returns true if an NFT can still be used to make a claim, and false otherwise */ canBeClaimed(domainId: string): Promise; /** Return the address of the user who has claimed the given domain ID, or the Zero Address if no one has claimed with that ID yet. */ domainClaimedBy(domainId: string): Promise; /** Purchase domains */ claimDomains(claimingIds: string[], signer: ethers.Signer): Promise; /** Admin helper to pause the sale */ setPauseStatus(pauseStatus: boolean, signer: ethers.Signer): Promise; /** Get a list of the token IDs owned by a given wallet which could be used to claim a domain */ getClaimingIDsForUser(walletAddress: string): Promise; } export interface ClaimWithChildSaleData { /** * how many have been sold */ amountSold: number; /** * How many are for sale given the current phase (private or public sale) */ amountForSale: number; /** * the sale price */ salePrice: string; /** * has the sale started */ started: boolean; /** * how long the private sale will last */ saleDuration: number; /** * is the sale paused */ paused: boolean; /** * when did the sale start (only defined if the sale started) */ startBlock?: number; }