pumpdotfun-sdk-sp
Version:
A simple SDK for interacting with pumpdotfun
1 lines • 7.91 kB
Source Map (JSON)
{"version":3,"file":"pumpswap.cjs","sources":["../../../src/pumpswap.ts"],"sourcesContent":["import { BN, Program, Provider } from \"@coral-xyz/anchor\";\nimport {\n pumpAmmJson,\n PumpAmm,\n canonicalPumpPoolPda,\n PUMP_AMM_EVENT_AUTHORITY_PDA,\n userVolumeAccumulatorPda,\n getPumpAmmProgram,\n GLOBAL_VOLUME_ACCUMULATOR_PDA,\n GLOBAL_CONFIG_PDA,\n coinCreatorVaultAuthorityPda,\n coinCreatorVaultAtaPda,\n} from \"@pump-fun/pump-swap-sdk\";\nimport { Connection, PublicKey, SystemProgram } from \"@solana/web3.js\";\nimport { estimateTokenReceived } from \"./util.js\";\nimport {\n getAssociatedTokenAddressSync,\n NATIVE_MINT,\n TOKEN_2022_PROGRAM_ID,\n TOKEN_PROGRAM_ID,\n} from \"@solana/spl-token\";\n\nexport const PUMPSWAP_PROTOCOL_FEE_RECIPIENT = new PublicKey(\n \"7hTckgnGnLQR6sdH7YkqFTAA7VwTfYFaZ6EhEsU3saCX\"\n);\nexport class PumpSwapBondingSDK {\n public program: Program<PumpAmm>;\n public offlineProgram: Program<PumpAmm>;\n public connection: Connection;\n constructor(provider?: Provider) {\n this.program = new Program<PumpAmm>(pumpAmmJson as PumpAmm, provider);\n this.offlineProgram = getPumpAmmProgram(null as any);\n\n this.connection = this.program.provider.connection;\n }\n\n async getBondingBuyInstructions(\n buyer: PublicKey,\n creator: PublicKey,\n mint: PublicKey,\n buyAmountToken: bigint,\n maxSolAmount: bigint\n ) {\n const poolId = canonicalPumpPoolPda(mint);\n const baseTokenATA = getAssociatedTokenAddressSync(\n mint,\n buyer,\n true,\n TOKEN_2022_PROGRAM_ID\n );\n const quoteTokenATA = getAssociatedTokenAddressSync(\n NATIVE_MINT,\n buyer,\n true,\n TOKEN_PROGRAM_ID\n );\n\n const coinCreatorVaultAuthority = coinCreatorVaultAuthorityPda(creator);\n\n const coinCreatorVaultAta = coinCreatorVaultAtaPda(\n coinCreatorVaultAuthority,\n NATIVE_MINT,\n TOKEN_PROGRAM_ID\n );\n\n const poolBaseTokenAccount = getAssociatedTokenAddressSync(\n mint,\n poolId,\n true,\n TOKEN_2022_PROGRAM_ID\n );\n\n const poolQuoteTokenAccount = getAssociatedTokenAddressSync(\n NATIVE_MINT,\n poolId,\n true,\n TOKEN_PROGRAM_ID\n );\n\n const protocolFeeRecipientAta = getAssociatedTokenAddressSync(\n NATIVE_MINT,\n PUMPSWAP_PROTOCOL_FEE_RECIPIENT,\n true,\n TOKEN_PROGRAM_ID\n );\n const userVolumeAccumulator = userVolumeAccumulatorPda(buyer);\n console.log({\n pool: poolId.toBase58(),\n user: buyer.toBase58(),\n globalConfig: GLOBAL_CONFIG_PDA.toBase58(),\n baseMint: mint.toBase58(),\n quoteMint: NATIVE_MINT.toBase58(),\n userBaseTokenAccount: baseTokenATA.toBase58(),\n userQuoteTokenAccount: quoteTokenATA.toBase58(),\n poolBaseTokenAccount: poolBaseTokenAccount.toBase58(),\n poolQuoteTokenAccount: poolQuoteTokenAccount.toBase58(),\n protocolFeeRecipient: PUMPSWAP_PROTOCOL_FEE_RECIPIENT.toBase58(),\n protocolFeeRecipientTokenAccount: protocolFeeRecipientAta.toBase58(),\n quoteTokenProgram: TOKEN_PROGRAM_ID.toBase58(),\n baseTokenProgram: TOKEN_2022_PROGRAM_ID.toBase58(),\n program: this.program.programId.toBase58(),\n coinCreatorVaultAuthority: coinCreatorVaultAuthority.toBase58(),\n coinCreatorVaultAta: coinCreatorVaultAta.toBase58(),\n eventAuthority: PUMP_AMM_EVENT_AUTHORITY_PDA.toBase58(),\n globalVolumeAccumulator: GLOBAL_VOLUME_ACCUMULATOR_PDA.toBase58(),\n userVolumeAccumulator: userVolumeAccumulator.toBase58(),\n systemProgram: SystemProgram.programId,\n })\n return await this.offlineProgram.methods\n .buy(\n new BN(buyAmountToken),\n new BN(maxSolAmount),\n false\n )\n .accountsPartial({\n pool: poolId,\n user: buyer,\n globalConfig: GLOBAL_CONFIG_PDA,\n baseMint: mint,\n quoteMint: NATIVE_MINT,\n userBaseTokenAccount: baseTokenATA,\n userQuoteTokenAccount: quoteTokenATA,\n poolBaseTokenAccount: poolBaseTokenAccount,\n poolQuoteTokenAccount: poolQuoteTokenAccount,\n protocolFeeRecipient: PUMPSWAP_PROTOCOL_FEE_RECIPIENT,\n protocolFeeRecipientTokenAccount: protocolFeeRecipientAta,\n quoteTokenProgram: TOKEN_PROGRAM_ID,\n baseTokenProgram: TOKEN_2022_PROGRAM_ID,\n program: this.program.programId,\n coinCreatorVaultAuthority: coinCreatorVaultAuthority,\n coinCreatorVaultAta: coinCreatorVaultAta,\n eventAuthority: PUMP_AMM_EVENT_AUTHORITY_PDA,\n globalVolumeAccumulator: GLOBAL_VOLUME_ACCUMULATOR_PDA,\n userVolumeAccumulator,\n systemProgram: SystemProgram.programId,\n })\n .instruction();\n }\n}\n"],"names":["PublicKey","Program","pumpAmmJson","getPumpAmmProgram","canonicalPumpPoolPda","getAssociatedTokenAddressSync","TOKEN_2022_PROGRAM_ID","NATIVE_MINT","TOKEN_PROGRAM_ID","coinCreatorVaultAuthorityPda","coinCreatorVaultAtaPda","userVolumeAccumulatorPda","GLOBAL_CONFIG_PDA","PUMP_AMM_EVENT_AUTHORITY_PDA","GLOBAL_VOLUME_ACCUMULATOR_PDA","SystemProgram","BN"],"mappings":"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"}