pumpfun-swap-sdk
Version:
SDK for interacting with the PumpFun AMM on Solana
78 lines (77 loc) • 6.44 kB
TypeScript
import { BN } from '@coral-xyz/anchor';
import { Connection, PublicKey, TransactionInstruction } from '@solana/web3.js';
import { BuyBaseInputResult, BuyQuoteInputResult, DepositBaseResult, DepositQuoteResult, SellBaseInputResult, SellQuoteInputResult, WithdrawResult } from '../types/sdk';
export declare class PumpAmmInternalSdk {
private readonly connection;
private readonly program;
private readonly globalConfig;
constructor(connection: Connection, programId?: string);
programId(): PublicKey;
globalConfigKey(): PublicKey;
poolKey(index: number, creator: PublicKey, baseMint: PublicKey, quoteMint: PublicKey): [PublicKey, number];
lpMintKey(pool: PublicKey): [PublicKey, number];
fetchGlobalConfigAccount(): Promise<{
admin: PublicKey;
lpFeeBasisPoints: BN;
protocolFeeBasisPoints: BN;
disableFlags: number;
protocolFeeRecipients: PublicKey[];
}>;
fetchPool(pool: PublicKey): Promise<{
poolBump: number;
index: number;
creator: PublicKey;
baseMint: PublicKey;
quoteMint: PublicKey;
lpMint: PublicKey;
poolBaseTokenAccount: PublicKey;
poolQuoteTokenAccount: PublicKey;
lpSupply: BN;
}>;
createPoolInstructionsInternal(index: number, creator: PublicKey, baseMint: PublicKey, quoteMint: PublicKey, baseIn: BN, quoteIn: BN, userBaseTokenAccount?: PublicKey | undefined, userQuoteTokenAccount?: PublicKey | undefined): Promise<TransactionInstruction[]>;
depositInstructionsInternal(pool: PublicKey, lpToken: BN, maxBase: BN, maxQuote: BN, user: PublicKey, userBaseTokenAccount?: PublicKey | undefined, userQuoteTokenAccount?: PublicKey | undefined, userPoolTokenAccount?: PublicKey | undefined): Promise<TransactionInstruction[]>;
private withWsolAccounts;
private withWsolAccount;
private accountExists;
depositBaseInputInternal(pool: PublicKey, base: BN, slippage: number): Promise<DepositBaseResult>;
depositQuoteInputInternal(pool: PublicKey, quote: BN, slippage: number): Promise<DepositQuoteResult>;
withdrawInstructionsInternal(pool: PublicKey, lpTokenAmountIn: BN, minBaseAmountOut: BN, minQuoteAmountOut: BN, user: PublicKey, userBaseTokenAccount?: PublicKey | undefined, userQuoteTokenAccount?: PublicKey | undefined, userPoolTokenAccount?: PublicKey | undefined): Promise<TransactionInstruction[]>;
withdrawInputsInternal(pool: PublicKey, lpAmount: BN, slippage: number): Promise<WithdrawResult>;
getPoolBaseAndQuoteAmounts(pool: PublicKey): Promise<{
fetchedPool: {
poolBump: number;
index: number;
creator: PublicKey;
baseMint: PublicKey;
quoteMint: PublicKey;
lpMint: PublicKey;
poolBaseTokenAccount: PublicKey;
poolQuoteTokenAccount: PublicKey;
lpSupply: BN;
};
poolBaseAmount: BN;
poolQuoteAmount: BN;
}>;
private liquidityAccounts;
buyInstructionsInternal(pool: PublicKey, baseOut: BN, maxQuoteIn: BN, user: PublicKey, protocolFeeRecipient?: PublicKey | undefined, userBaseTokenAccount?: PublicKey | undefined, userQuoteTokenAccount?: PublicKey | undefined): Promise<TransactionInstruction[]>;
buyInstructionsInternalNoPool(index: number, creator: PublicKey, baseMint: PublicKey, quoteMint: PublicKey, baseOut: BN, maxQuoteIn: BN, user: PublicKey, protocolFeeRecipient?: PublicKey | undefined, userBaseTokenAccount?: PublicKey | undefined, userQuoteTokenAccount?: PublicKey | undefined): Promise<TransactionInstruction[]>;
buyBaseInput(pool: PublicKey, base: BN, slippage: number, user: PublicKey, protocolFeeRecipient?: PublicKey | undefined, userBaseTokenAccount?: PublicKey | undefined, userQuoteTokenAccount?: PublicKey | undefined): Promise<TransactionInstruction[]>;
buyQuoteInput(pool: PublicKey, quote: BN, slippage: number, user: PublicKey, protocolFeeRecipient?: PublicKey | undefined, userBaseTokenAccount?: PublicKey | undefined, userQuoteTokenAccount?: PublicKey | undefined): Promise<TransactionInstruction[]>;
buyAutocompleteQuoteFromBase(pool: PublicKey, base: BN, slippage: number): Promise<BN>;
buyAutocompleteBaseFromQuote(pool: PublicKey, quote: BN, slippage: number): Promise<BN>;
buyBaseInputInternal(pool: PublicKey, base: BN, slippage: number): Promise<BuyBaseInputResult>;
buyQuoteInputInternal(pool: PublicKey, quote: BN, slippage: number): Promise<BuyQuoteInputResult>;
buyQuoteInputInternalNoPool(quote: BN, slippage: number, poolBaseAmount: BN, poolQuoteAmount: BN): Promise<BuyQuoteInputResult>;
sellInstructionsInternal(pool: PublicKey, baseAmountIn: BN, minQuoteAmountOut: BN, user: PublicKey, protocolFeeRecipient?: PublicKey | undefined, userBaseTokenAccount?: PublicKey | undefined, userQuoteTokenAccount?: PublicKey | undefined): Promise<TransactionInstruction[]>;
sellInstructionsInternalNoPool(index: number, creator: PublicKey, baseMint: PublicKey, quoteMint: PublicKey, baseAmountIn: BN, minQuoteAmountOut: BN, user: PublicKey, protocolFeeRecipient?: PublicKey | undefined, userBaseTokenAccount?: PublicKey | undefined, userQuoteTokenAccount?: PublicKey | undefined): Promise<TransactionInstruction[]>;
sellBaseInput(pool: PublicKey, base: BN, slippage: number, user: PublicKey, protocolFeeRecipient?: PublicKey | undefined, userBaseTokenAccount?: PublicKey | undefined, userQuoteTokenAccount?: PublicKey | undefined): Promise<TransactionInstruction[]>;
sellQuoteInput(pool: PublicKey, quote: BN, slippage: number, user: PublicKey, protocolFeeRecipient?: PublicKey | undefined, userBaseTokenAccount?: PublicKey | undefined, userQuoteTokenAccount?: PublicKey | undefined): Promise<TransactionInstruction[]>;
sellAutocompleteQuoteFromBase(pool: PublicKey, base: BN, slippage: number): Promise<BN>;
sellAutocompleteBaseFromQuote(pool: PublicKey, quote: BN, slippage: number): Promise<BN>;
sellBaseInputInternal(pool: PublicKey, base: BN, slippage: number): Promise<SellBaseInputResult>;
sellBaseInputInternalNoPool(base: BN, slippage: number, poolBaseAmount: BN, poolQuoteAmount: BN): Promise<SellBaseInputResult>;
sellQuoteInputInternal(pool: PublicKey, quote: BN, slippage: number): Promise<SellQuoteInputResult>;
extendAccount(account: PublicKey, user: PublicKey): Promise<TransactionInstruction>;
private swapAccounts;
private getMintTokenPrograms;
}