@pump-fun/pump-swap-sdk
TypeScript icon, indicating that this package has built-in type declarations

1.5.1 • Public • Published

Pump Swap SDK

The SDK is structured as follows:

  • PumpAmmSdk is the high level SDK, useful for UI integrations.
  • PumpAmmInternalSdk is the low level SDK, useful for programmatic integrations, allowing full customization of instructions.
  • PumpAmmAdminSdk is the SDK which allows access to admin-protected instructions.

Installation

npm install @pump-fun/pump-swap-sdk

Usage

import { PumpAmmSdk } from "@pump-fun/swap-sdk";

// Initialize SDK
const pumpAmmSdk = new PumpAmmSdk();

Create pool

// Create a (base, quote) pool instructions
const createPoolSolanaState = await this.pumpAmmSdk.createPoolSolanaState(
  index,
  creator,
  baseMint,
  quoteMint,
);

const createPoolInstructions = await pumpAmmSdk.createPoolInstructions(
  createPoolSolanaState,
  baseIn,
  quoteIn,
);

// Get initial pool price for UI
const initialPoolPrice = pumpAmmSdk.createAutocompleteInitialPoolPrice(
  initialBase,
  initialQuote,
);

Deposit

For depositing into a (quote, base) pool:

// When base input changes
const liquiditySolanaState = await this.pumpAmmSdk.liquiditySolanaState(
  poolKey,
  user,
);

const { quote, lpToken } =
  await pumpAmmSdk.depositAutocompleteQuoteAndLpTokenFromBase(
    liquiditySolanaState,
    base,
    slippage,
  );

const { base, lpToken } =
  await pumpAmmSdk.depositAutocompleteBaseAndLpTokenFromQuote(
    liquiditySolanaState,
    quote,
    slippage,
  );

// Deposit instructions
const depositInstructions = await pumpAmmSdk.depositInstructions(
  liquiditySolanaState,
  lpToken,
  slippage,
);

Swap

The SDK supports bi-directional swaps:

const swapSolanaState = await this.pumpAmmlSdk.swapSolanaState(poolKey, user);

const { globalConfig, pool, poolBaseAmount, poolQuoteAmount } = swapSolanaState;

const baseReserve = poolBaseAmount;
const quoteReserve = poolQuoteAmount;

const { uiQuote } = buyBaseInputInternal(
  baseAmount,
  slippage,
  baseReserve,
  quoteReserve,
  globalConfig,
  pool.creator,
);

const { base } = buyQuoteInputInternal(
  quoteAmount,
  slippage,
  baseReserve,
  quoteReserve,
  globalConfig,
  pool.creator,
);

const { uiQuote } = sellBaseInputInternal(
  baseAmount,
  slippage,
  baseReserve,
  quoteReserve,
  globalConfig,
  pool.creator,
);

const { base } = sellQuoteInputInternal(
  quoteAmount,
  slippage,
  baseReserve,
  quoteReserve,
  globalConfig,
  pool.creator,
);

// Swap instructions
await pumpAmmInternalSdk.buyBaseInput(swapSolanaState, baseAmount, slippage);

await pumpAmmInternalSdk.sellBaseInput(swapSolanaState, baseAmount, slippage);

await pumpAmmInternalSdk.buyQuoteInput(swapSolanaState, quoteAmount, slippage);

await pumpAmmInternalSdk.sellQuoteInput(swapSolanaState, quoteAmount, slippage);

Withdraw

const liquiditySolanaState = await this.pumpAmmSdk.liquiditySolanaState(
  poolKey,
  user,
);

const { base, quote } = pumpAmmSdk.withdrawAutocompleteBaseAndQuoteFromLpToken(
  liquiditySolanaState,
  lpAmount,
  slippage,
);

// Withdraw instructions
const withdrawInstructions = await pumpAmmSdk.withdrawInstructions(
  liquiditySolanaState,
  lpToken,
  slippage,
);

License

MIT

Links

Dependents (12)

Package Sidebar

Install

npm i @pump-fun/pump-swap-sdk

Weekly Downloads

24,210

Version

1.5.1

License

MIT

Unpacked Size

2.01 MB

Total Files

71

Last publish

Collaborators

  • sharukpump
  • pumpfun
  • kyrylo-baton
  • chris-pump
  • aakash-pump
  • jbaton
  • andrei-baton
  • adam-baton
  • kieran-baton
  • okto-baton
  • nathancoh
  • ryan-baton
  • laser-baton
  • mahir-baton
  • shrihari-baton
  • abbas-baton
  • andres-pump
  • cheffo-baton
  • edmond-baton
  • arv-baton
  • ranqi
  • mike-baton
  • cam_baton
  • mukesh_baton
  • gitesh_baton
  • mohamed-baton
  • rafe-baton
  • aaronbaton
  • alex-baton
  • tobias1905
  • hamza-baton
  • hans-baton
  • qi-baton
  • nick-baton
  • jdesign-baton
  • lennart-baton
  • natt-baton
  • mo-baton
  • interviewee-baton
  • jshabo-dev
  • jasonh-baton
  • harish-baton
  • oussama-baton
  • stacebaton