@metaplex-foundation/mpl-auction
Version:
MPL Token Metadata JavaScript API.
93 lines (92 loc) • 2.7 kB
TypeScript
/// <reference types="node" />
import { Account, Borsh, AnyPublicKey, StringPublicKey } from '@metaplex-foundation/mpl-core';
import { AccountInfo, Connection, PublicKey } from '@solana/web3.js';
import BN from 'bn.js';
import { Buffer } from 'buffer';
import { BidderMetadata } from './BidderMetadata';
import { BidderPot } from './BidderPot';
export declare enum AuctionState {
Created = 0,
Started = 1,
Ended = 2
}
export declare enum BidStateType {
EnglishAuction = 0,
OpenEdition = 1
}
export declare enum PriceFloorType {
None = 0,
Minimum = 1,
BlindedPrice = 2
}
declare type BidArgs = {
key: StringPublicKey;
amount: BN;
};
export declare class Bid extends Borsh.Data<BidArgs> {
static readonly SCHEMA: any;
key: StringPublicKey;
amount: BN;
}
declare type BidStateArgs = {
type: BidStateType;
bids: Bid[];
max: BN;
};
export declare class BidState extends Borsh.Data<BidStateArgs> {
static readonly SCHEMA: any;
type: BidStateType;
bids: Bid[];
max: BN;
getWinnerAt(winnerIndex: number): StringPublicKey | null;
getAmountAt(winnerIndex: number): BN | null;
getWinnerIndex(bidder: StringPublicKey): number | null;
}
declare type PriceFloorArgs = {
type: PriceFloorType;
hash?: Uint8Array;
minPrice?: BN;
};
export declare class PriceFloor extends Borsh.Data {
static readonly SCHEMA: any;
type: PriceFloorType;
hash: Uint8Array;
minPrice?: BN;
constructor(args: PriceFloorArgs);
}
declare type Args = {
authority: StringPublicKey;
tokenMint: StringPublicKey;
lastBid: BN | null;
endedAt: BN | null;
endAuctionAt: BN | null;
auctionGap: BN | null;
priceFloor: PriceFloor;
state: AuctionState;
bidState: BidState;
totalUncancelledBids: BN;
};
export declare class AuctionData extends Borsh.Data<Args> {
static readonly SCHEMA: any;
authority: StringPublicKey;
tokenMint: StringPublicKey;
lastBid: BN | null;
endedAt: BN | null;
endAuctionAt: BN | null;
auctionGap: BN | null;
priceFloor: PriceFloor;
state: AuctionState;
bidState: BidState;
bidRedemptionKey?: StringPublicKey;
}
export declare class Auction extends Account<AuctionData> {
static readonly EXTENDED_DATA_SIZE: number;
constructor(pubkey: AnyPublicKey, info: AccountInfo<Buffer>);
static getPDA(vault: AnyPublicKey): Promise<PublicKey>;
static findMany(connection: Connection, filters?: {
authority?: AnyPublicKey;
}): Promise<Auction[]>;
getBidderPots(connection: Connection): Promise<BidderPot[]>;
getBidderMetadata(connection: Connection): Promise<BidderMetadata[]>;
}
export {};