/// import { TransactionInstruction } from '@solana/web3.js'; import BN from 'bn.js'; import { AccountParser } from '../contexts/accounts/types'; import { StringPublicKey } from '../utils'; export declare const AUCTION_PREFIX = "auction"; export declare const METADATA = "metadata"; export declare const EXTENDED = "extended"; export declare const BIDDER_POT_TOKEN = "bidder_pot_token"; export declare const MAX_AUCTION_DATA_EXTENDED_SIZE: number; export declare enum AuctionState { Created = 0, Started = 1, Ended = 2 } export declare enum BidStateType { EnglishAuction = 0, OpenEdition = 1 } export declare class Bid { key: StringPublicKey; amount: BN; constructor(args: { key: StringPublicKey; amount: BN; }); } export declare class BidState { type: BidStateType; bids: Bid[]; max: BN; getWinnerAt(winnerIndex: number): StringPublicKey | null; getAmountAt(winnerIndex: number): BN | null; getWinnerIndex(bidder: StringPublicKey): number | null; constructor(args: { type: BidStateType; bids: Bid[]; max: BN; }); } export declare const AuctionParser: AccountParser; export declare const decodeAuction: (buffer: Buffer) => AuctionData; export declare const BidderPotParser: AccountParser; export declare const decodeBidderPot: (buffer: Buffer) => BidderPot; export declare const AuctionDataExtendedParser: AccountParser; export declare const decodeAuctionDataExtended: (buffer: Buffer) => AuctionDataExtended; export declare const BidderMetadataParser: AccountParser; export declare const decodeBidderMetadata: (buffer: Buffer) => BidderMetadata; export declare const BASE_AUCTION_DATA_SIZE: number; export declare enum PriceFloorType { None = 0, Minimum = 1, BlindedPrice = 2 } export declare class PriceFloor { type: PriceFloorType; hash: Uint8Array; minPrice?: BN; constructor(args: { type: PriceFloorType; hash?: Uint8Array; minPrice?: BN; }); } export declare class AuctionDataExtended { totalUncancelledBids: BN; tickSize: BN | null; gapTickSizePercentage: number | null; instantSalePrice: BN | null; name: number[] | null; constructor(args: { totalUncancelledBids: BN; tickSize: BN | null; gapTickSizePercentage: number | null; instantSalePrice: BN | null; name: number[] | null; }); } export interface CountdownState { days: number; hours: number; minutes: number; seconds: number; } export declare class AuctionData { authority: StringPublicKey; tokenMint: StringPublicKey; lastBid: BN | null; endedAt: BN | null; endAuctionAt: BN | null; auctionGap: BN | null; priceFloor: PriceFloor; state: AuctionState; bidState: BidState; bidRedemptionKey?: StringPublicKey; auctionDataExtended?: StringPublicKey; timeToEnd(): CountdownState; ended(): boolean | undefined; constructor(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 const BIDDER_METADATA_LEN: number; export declare class BidderMetadata { bidderPubkey: StringPublicKey; auctionPubkey: StringPublicKey; lastBid: BN; lastBidTimestamp: BN; cancelled: boolean; constructor(args: { bidderPubkey: StringPublicKey; auctionPubkey: StringPublicKey; lastBid: BN; lastBidTimestamp: BN; cancelled: boolean; }); } export declare const BIDDER_POT_LEN: number; export declare class BidderPot { bidderPot: StringPublicKey; bidderAct: StringPublicKey; auctionAct: StringPublicKey; emptied: boolean; constructor(args: { bidderPot: StringPublicKey; bidderAct: StringPublicKey; auctionAct: StringPublicKey; emptied: boolean; }); } export declare enum WinnerLimitType { Unlimited = 0, Capped = 1 } export declare class WinnerLimit { type: WinnerLimitType; usize: BN; constructor(args: { type: WinnerLimitType; usize: BN; }); } export interface IPartialCreateAuctionArgs { winners: WinnerLimit; endAuctionAt: BN | null; auctionGap: BN | null; tokenMint: StringPublicKey; priceFloor: PriceFloor; tickSize: BN | null; gapTickSizePercentage: number | null; instantSalePrice: BN | null; name: number[] | null; } export declare class CreateAuctionArgs implements IPartialCreateAuctionArgs { instruction: number; winners: WinnerLimit; endAuctionAt: BN | null; auctionGap: BN | null; tokenMint: StringPublicKey; authority: StringPublicKey; resource: StringPublicKey; priceFloor: PriceFloor; tickSize: BN | null; gapTickSizePercentage: number | null; instantSalePrice: BN | null; name: number[] | null; constructor(args: { winners: WinnerLimit; endAuctionAt: BN | null; auctionGap: BN | null; tokenMint: StringPublicKey; authority: StringPublicKey; resource: StringPublicKey; priceFloor: PriceFloor; tickSize: BN | null; gapTickSizePercentage: number | null; name: number[] | null; instantSalePrice: BN | null; }); } export declare const AUCTION_SCHEMA: Map; export declare const decodeAuctionData: (buffer: Buffer) => AuctionData; export declare function createAuction(settings: CreateAuctionArgs, creator: StringPublicKey, instructions: TransactionInstruction[]): Promise; export declare function startAuctionWithResource(resource: StringPublicKey, creator: StringPublicKey, instructions: TransactionInstruction[]): Promise; export declare function setAuctionAuthority(auction: StringPublicKey, currentAuthority: StringPublicKey, newAuthority: StringPublicKey, instructions: TransactionInstruction[]): Promise; export declare function placeBid(bidderPubkey: StringPublicKey, bidderTokenPubkey: StringPublicKey, bidderPotTokenPubkey: StringPublicKey | undefined, tokenMintPubkey: StringPublicKey, transferAuthority: StringPublicKey, payer: StringPublicKey, resource: StringPublicKey, amount: BN, instructions: TransactionInstruction[]): Promise<{ amount: BN; }>; export declare function getBidderPotKey({ auctionProgramId, auctionKey, bidderPubkey, }: { auctionProgramId: StringPublicKey; auctionKey: StringPublicKey; bidderPubkey: StringPublicKey; }): Promise; export declare function getAuctionExtended({ auctionProgramId, resource, }: { auctionProgramId: StringPublicKey; resource: StringPublicKey; }): Promise; export declare function cancelBid(bidderPubkey: StringPublicKey, bidderTokenPubkey: StringPublicKey, bidderPotTokenPubkey: StringPublicKey, tokenMintPubkey: StringPublicKey, resource: StringPublicKey, instructions: TransactionInstruction[]): Promise; //# sourceMappingURL=auction.d.ts.map