@pump-fun/pump-swap-sdk
Version:
Official SDK for interacting with Pump Swap AMM protocol on Solana
2,355 lines (2,347 loc) • 145 kB
JavaScript
// src/sdk/deposit.ts
import BN from "bn.js";
function depositToken0Internal(token0, slippage, token0Reserve, token1Reserve, totalLpTokens) {
if (slippage < 0 || slippage > 100) {
throw new Error("Slippage must be between 0 and 100 (0% to 100%)");
}
const token1 = token0.mul(token1Reserve).div(token0Reserve);
const slippageFactor = new BN((1 + slippage / 100) * 1e9);
const maxToken0 = token0.mul(slippageFactor).div(new BN(1e9));
const maxToken1 = token1.mul(slippageFactor).div(new BN(1e9));
const lpToken = token0.mul(totalLpTokens).div(token0Reserve);
return {
token1,
lpToken,
maxToken0,
maxToken1
};
}
function ceilDiv(numerator, denominator) {
return numerator.add(denominator).sub(new BN(1)).div(denominator);
}
function depositLpToken(lpToken, slippage, baseReserve, quoteReserve, totalLpTokens) {
if (totalLpTokens.isZero()) {
throw new Error("Division by zero: totalLpTokens cannot be zero");
}
const baseAmountIn = ceilDiv(baseReserve.mul(lpToken), totalLpTokens);
const quoteAmountIn = ceilDiv(quoteReserve.mul(lpToken), totalLpTokens);
const slippageFactor = new BN((1 + slippage / 100) * 1e9);
const slippageDenominator = new BN(1e9);
const maxBase = baseAmountIn.mul(slippageFactor).div(slippageDenominator);
const maxQuote = quoteAmountIn.mul(slippageFactor).div(slippageDenominator);
return {
maxBase,
maxQuote
};
}
// src/sdk/pumpAmmInternal.ts
import {
PublicKey as PublicKey4,
SystemProgram
} from "@solana/web3.js";
// src/sdk/pda.ts
import { PublicKey } from "@solana/web3.js";
import BN2 from "bn.js";
import {
getAssociatedTokenAddressSync,
NATIVE_MINT,
TOKEN_2022_PROGRAM_ID
} from "@solana/spl-token";
var PUMP_AMM_PROGRAM_ID = "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA";
var PUMP_AMM_PROGRAM_ID_PUBKEY = new PublicKey(PUMP_AMM_PROGRAM_ID);
var PUMP_PROGRAM_ID = "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P";
var PUMP_PROGRAM_ID_PUBKEY = new PublicKey(PUMP_PROGRAM_ID);
var PUMP_MINT = new PublicKey(
"pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn"
);
function globalConfigPda(programId = PUMP_AMM_PROGRAM_ID_PUBKEY) {
return PublicKey.findProgramAddressSync(
[Buffer.from("global_config")],
programId
);
}
function poolPda(index, owner, baseMint, quoteMint, programId = PUMP_AMM_PROGRAM_ID_PUBKEY) {
return PublicKey.findProgramAddressSync(
[
Buffer.from("pool"),
new BN2(index).toArrayLike(Buffer, "le", 2),
owner.toBuffer(),
baseMint.toBuffer(),
quoteMint.toBuffer()
],
programId
);
}
function lpMintPda(pool, programId = PUMP_AMM_PROGRAM_ID_PUBKEY) {
return PublicKey.findProgramAddressSync(
[Buffer.from("pool_lp_mint"), pool.toBuffer()],
programId
);
}
function pumpAmmEventAuthorityPda(programId = PUMP_AMM_PROGRAM_ID_PUBKEY) {
return PublicKey.findProgramAddressSync(
[Buffer.from("__event_authority")],
programId
);
}
function globalVolumeAccumulatorPda(programId = PUMP_AMM_PROGRAM_ID_PUBKEY) {
return PublicKey.findProgramAddressSync(
[Buffer.from("global_volume_accumulator")],
programId
);
}
function userVolumeAccumulatorPda(user, programId = PUMP_AMM_PROGRAM_ID_PUBKEY) {
return PublicKey.findProgramAddressSync(
[Buffer.from("user_volume_accumulator"), user.toBuffer()],
programId
);
}
// src/sdk/pumpAmmInternal.ts
import {
AccountLayout,
ASSOCIATED_TOKEN_PROGRAM_ID,
createAssociatedTokenAccountIdempotentInstruction,
createCloseAccountInstruction,
createSyncNativeInstruction,
getAccount,
getAssociatedTokenAddressSync as getAssociatedTokenAddressSync2,
NATIVE_MINT as NATIVE_MINT2,
TOKEN_2022_PROGRAM_ID as TOKEN_2022_PROGRAM_ID2,
TOKEN_PROGRAM_ID
} from "@solana/spl-token";
// src/sdk/withdraw.ts
import BN3 from "bn.js";
function withdrawInternal(lpAmount, slippage, baseReserve, quoteReserve, totalLpTokens) {
if (lpAmount.isZero() || totalLpTokens.isZero()) {
throw new Error("LP amount or total LP tokens cannot be zero.");
}
const base = baseReserve.mul(lpAmount).div(totalLpTokens);
const quote = quoteReserve.mul(lpAmount).div(totalLpTokens);
const scaleFactor = new BN3(1e9);
const slippageFactor = new BN3((1 - slippage / 100) * 1e9);
const minBase = base.mul(slippageFactor).div(scaleFactor);
const minQuote = quote.mul(slippageFactor).div(scaleFactor);
return {
base,
quote,
minBase,
minQuote
};
}
// src/sdk/buy.ts
import BN5 from "bn.js";
// src/sdk/util.ts
import BN4 from "bn.js";
import { AnchorProvider, Program } from "@coral-xyz/anchor";
// src/idl/pump_amm.json
var pump_amm_default = {
address: "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA",
metadata: {
name: "pump_amm",
version: "0.1.0",
spec: "0.1.0",
description: "Created with Anchor"
},
instructions: [
{
name: "admin_set_coin_creator",
docs: [
"Overrides the coin creator for a canonical pump pool"
],
discriminator: [
242,
40,
117,
145,
73,
96,
105,
104
],
accounts: [
{
name: "admin_set_coin_creator_authority",
signer: true,
relations: [
"global_config"
]
},
{
name: "global_config"
},
{
name: "pool",
writable: true
},
{
name: "event_authority",
pda: {
seeds: [
{
kind: "const",
value: [
95,
95,
101,
118,
101,
110,
116,
95,
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
name: "program"
}
],
args: [
{
name: "coin_creator",
type: "pubkey"
}
]
},
{
name: "admin_update_token_incentives",
discriminator: [
209,
11,
115,
87,
213,
23,
124,
204
],
accounts: [
{
name: "admin",
writable: true,
signer: true,
relations: [
"global_config"
]
},
{
name: "global_config",
pda: {
seeds: [
{
kind: "const",
value: [
103,
108,
111,
98,
97,
108,
95,
99,
111,
110,
102,
105,
103
]
}
]
}
},
{
name: "global_volume_accumulator",
writable: true,
pda: {
seeds: [
{
kind: "const",
value: [
103,
108,
111,
98,
97,
108,
95,
118,
111,
108,
117,
109,
101,
95,
97,
99,
99,
117,
109,
117,
108,
97,
116,
111,
114
]
}
]
}
},
{
name: "mint"
},
{
name: "global_incentive_token_account",
writable: true,
pda: {
seeds: [
{
kind: "account",
path: "global_volume_accumulator"
},
{
kind: "account",
path: "token_program"
},
{
kind: "account",
path: "mint"
}
],
program: {
kind: "const",
value: [
140,
151,
37,
143,
78,
36,
137,
241,
187,
61,
16,
41,
20,
142,
13,
131,
11,
90,
19,
153,
218,
255,
16,
132,
4,
142,
123,
216,
219,
233,
248,
89
]
}
}
},
{
name: "associated_token_program",
address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
name: "system_program",
address: "11111111111111111111111111111111"
},
{
name: "token_program"
},
{
name: "event_authority",
pda: {
seeds: [
{
kind: "const",
value: [
95,
95,
101,
118,
101,
110,
116,
95,
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
name: "program"
}
],
args: [
{
name: "start_time",
type: "i64"
},
{
name: "end_time",
type: "i64"
},
{
name: "seconds_in_a_day",
type: "i64"
},
{
name: "day_number",
type: "u64"
},
{
name: "token_supply_per_day",
type: "u64"
}
]
},
{
name: "buy",
discriminator: [
102,
6,
61,
18,
1,
218,
235,
234
],
accounts: [
{
name: "pool"
},
{
name: "user",
writable: true,
signer: true
},
{
name: "global_config"
},
{
name: "base_mint",
relations: [
"pool"
]
},
{
name: "quote_mint",
relations: [
"pool"
]
},
{
name: "user_base_token_account",
writable: true
},
{
name: "user_quote_token_account",
writable: true
},
{
name: "pool_base_token_account",
writable: true,
relations: [
"pool"
]
},
{
name: "pool_quote_token_account",
writable: true,
relations: [
"pool"
]
},
{
name: "protocol_fee_recipient"
},
{
name: "protocol_fee_recipient_token_account",
writable: true,
pda: {
seeds: [
{
kind: "account",
path: "protocol_fee_recipient"
},
{
kind: "account",
path: "quote_token_program"
},
{
kind: "account",
path: "quote_mint"
}
],
program: {
kind: "const",
value: [
140,
151,
37,
143,
78,
36,
137,
241,
187,
61,
16,
41,
20,
142,
13,
131,
11,
90,
19,
153,
218,
255,
16,
132,
4,
142,
123,
216,
219,
233,
248,
89
]
}
}
},
{
name: "base_token_program"
},
{
name: "quote_token_program"
},
{
name: "system_program",
address: "11111111111111111111111111111111"
},
{
name: "associated_token_program",
address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
name: "event_authority",
pda: {
seeds: [
{
kind: "const",
value: [
95,
95,
101,
118,
101,
110,
116,
95,
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
name: "program"
},
{
name: "coin_creator_vault_ata",
writable: true,
pda: {
seeds: [
{
kind: "account",
path: "coin_creator_vault_authority"
},
{
kind: "account",
path: "quote_token_program"
},
{
kind: "account",
path: "quote_mint"
}
],
program: {
kind: "const",
value: [
140,
151,
37,
143,
78,
36,
137,
241,
187,
61,
16,
41,
20,
142,
13,
131,
11,
90,
19,
153,
218,
255,
16,
132,
4,
142,
123,
216,
219,
233,
248,
89
]
}
}
},
{
name: "coin_creator_vault_authority",
pda: {
seeds: [
{
kind: "const",
value: [
99,
114,
101,
97,
116,
111,
114,
95,
118,
97,
117,
108,
116
]
},
{
kind: "account",
path: "pool.coin_creator",
account: "Pool"
}
]
}
},
{
name: "global_volume_accumulator",
writable: true,
pda: {
seeds: [
{
kind: "const",
value: [
103,
108,
111,
98,
97,
108,
95,
118,
111,
108,
117,
109,
101,
95,
97,
99,
99,
117,
109,
117,
108,
97,
116,
111,
114
]
}
]
}
},
{
name: "user_volume_accumulator",
writable: true,
pda: {
seeds: [
{
kind: "const",
value: [
117,
115,
101,
114,
95,
118,
111,
108,
117,
109,
101,
95,
97,
99,
99,
117,
109,
117,
108,
97,
116,
111,
114
]
},
{
kind: "account",
path: "user"
}
]
}
}
],
args: [
{
name: "base_amount_out",
type: "u64"
},
{
name: "max_quote_amount_in",
type: "u64"
},
{
name: "track_volume",
type: {
defined: {
name: "OptionBool"
}
}
}
]
},
{
name: "claim_token_incentives",
discriminator: [
16,
4,
71,
28,
204,
1,
40,
27
],
accounts: [
{
name: "user"
},
{
name: "user_ata",
writable: true,
pda: {
seeds: [
{
kind: "account",
path: "user"
},
{
kind: "account",
path: "token_program"
},
{
kind: "account",
path: "mint"
}
],
program: {
kind: "const",
value: [
140,
151,
37,
143,
78,
36,
137,
241,
187,
61,
16,
41,
20,
142,
13,
131,
11,
90,
19,
153,
218,
255,
16,
132,
4,
142,
123,
216,
219,
233,
248,
89
]
}
}
},
{
name: "global_volume_accumulator",
pda: {
seeds: [
{
kind: "const",
value: [
103,
108,
111,
98,
97,
108,
95,
118,
111,
108,
117,
109,
101,
95,
97,
99,
99,
117,
109,
117,
108,
97,
116,
111,
114
]
}
]
}
},
{
name: "global_incentive_token_account",
writable: true,
pda: {
seeds: [
{
kind: "account",
path: "global_volume_accumulator"
},
{
kind: "account",
path: "token_program"
},
{
kind: "account",
path: "mint"
}
],
program: {
kind: "const",
value: [
140,
151,
37,
143,
78,
36,
137,
241,
187,
61,
16,
41,
20,
142,
13,
131,
11,
90,
19,
153,
218,
255,
16,
132,
4,
142,
123,
216,
219,
233,
248,
89
]
}
}
},
{
name: "user_volume_accumulator",
writable: true,
pda: {
seeds: [
{
kind: "const",
value: [
117,
115,
101,
114,
95,
118,
111,
108,
117,
109,
101,
95,
97,
99,
99,
117,
109,
117,
108,
97,
116,
111,
114
]
},
{
kind: "account",
path: "user"
}
]
}
},
{
name: "mint",
relations: [
"global_volume_accumulator"
]
},
{
name: "token_program"
},
{
name: "system_program",
address: "11111111111111111111111111111111"
},
{
name: "associated_token_program",
address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
name: "event_authority",
pda: {
seeds: [
{
kind: "const",
value: [
95,
95,
101,
118,
101,
110,
116,
95,
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
name: "program"
},
{
name: "payer",
writable: true,
signer: true
}
],
args: []
},
{
name: "close_user_volume_accumulator",
discriminator: [
249,
69,
164,
218,
150,
103,
84,
138
],
accounts: [
{
name: "user",
writable: true,
signer: true
},
{
name: "user_volume_accumulator",
writable: true,
pda: {
seeds: [
{
kind: "const",
value: [
117,
115,
101,
114,
95,
118,
111,
108,
117,
109,
101,
95,
97,
99,
99,
117,
109,
117,
108,
97,
116,
111,
114
]
},
{
kind: "account",
path: "user"
}
]
}
},
{
name: "event_authority",
pda: {
seeds: [
{
kind: "const",
value: [
95,
95,
101,
118,
101,
110,
116,
95,
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
name: "program"
}
],
args: []
},
{
name: "collect_coin_creator_fee",
discriminator: [
160,
57,
89,
42,
181,
139,
43,
66
],
accounts: [
{
name: "quote_mint"
},
{
name: "quote_token_program"
},
{
name: "coin_creator"
},
{
name: "coin_creator_vault_authority",
pda: {
seeds: [
{
kind: "const",
value: [
99,
114,
101,
97,
116,
111,
114,
95,
118,
97,
117,
108,
116
]
},
{
kind: "account",
path: "coin_creator"
}
]
}
},
{
name: "coin_creator_vault_ata",
writable: true,
pda: {
seeds: [
{
kind: "account",
path: "coin_creator_vault_authority"
},
{
kind: "account",
path: "quote_token_program"
},
{
kind: "account",
path: "quote_mint"
}
],
program: {
kind: "const",
value: [
140,
151,
37,
143,
78,
36,
137,
241,
187,
61,
16,
41,
20,
142,
13,
131,
11,
90,
19,
153,
218,
255,
16,
132,
4,
142,
123,
216,
219,
233,
248,
89
]
}
}
},
{
name: "coin_creator_token_account",
writable: true
},
{
name: "event_authority",
pda: {
seeds: [
{
kind: "const",
value: [
95,
95,
101,
118,
101,
110,
116,
95,
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
name: "program"
}
],
args: []
},
{
name: "create_config",
discriminator: [
201,
207,
243,
114,
75,
111,
47,
189
],
accounts: [
{
name: "admin",
writable: true,
signer: true,
address: "8LWu7QM2dGR1G8nKDHthckea57bkCzXyBTAKPJUBDHo8"
},
{
name: "global_config",
writable: true,
pda: {
seeds: [
{
kind: "const",
value: [
103,
108,
111,
98,
97,
108,
95,
99,
111,
110,
102,
105,
103
]
}
]
}
},
{
name: "system_program",
address: "11111111111111111111111111111111"
},
{
name: "event_authority",
pda: {
seeds: [
{
kind: "const",
value: [
95,
95,
101,
118,
101,
110,
116,
95,
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
name: "program"
}
],
args: [
{
name: "lp_fee_basis_points",
type: "u64"
},
{
name: "protocol_fee_basis_points",
type: "u64"
},
{
name: "protocol_fee_recipients",
type: {
array: [
"pubkey",
8
]
}
},
{
name: "coin_creator_fee_basis_points",
type: "u64"
},
{
name: "admin_set_coin_creator_authority",
type: "pubkey"
}
]
},
{
name: "create_pool",
discriminator: [
233,
146,
209,
142,
207,
104,
64,
188
],
accounts: [
{
name: "pool",
writable: true,
pda: {
seeds: [
{
kind: "const",
value: [
112,
111,
111,
108
]
},
{
kind: "arg",
path: "index"
},
{
kind: "account",
path: "creator"
},
{
kind: "account",
path: "base_mint"
},
{
kind: "account",
path: "quote_mint"
}
]
}
},
{
name: "global_config"
},
{
name: "creator",
writable: true,
signer: true
},
{
name: "base_mint"
},
{
name: "quote_mint"
},
{
name: "lp_mint",
writable: true,
pda: {
seeds: [
{
kind: "const",
value: [
112,
111,
111,
108,
95,
108,
112,
95,
109,
105,
110,
116
]
},
{
kind: "account",
path: "pool"
}
]
}
},
{
name: "user_base_token_account",
writable: true
},
{
name: "user_quote_token_account",
writable: true
},
{
name: "user_pool_token_account",
writable: true,
pda: {
seeds: [
{
kind: "account",
path: "creator"
},
{
kind: "account",
path: "token_2022_program"
},
{
kind: "account",
path: "lp_mint"
}
],
program: {
kind: "const",
value: [
140,
151,
37,
143,
78,
36,
137,
241,
187,
61,
16,
41,
20,
142,
13,
131,
11,
90,
19,
153,
218,
255,
16,
132,
4,
142,
123,
216,
219,
233,
248,
89
]
}
}
},
{
name: "pool_base_token_account",
writable: true,
pda: {
seeds: [
{
kind: "account",
path: "pool"
},
{
kind: "account",
path: "base_token_program"
},
{
kind: "account",
path: "base_mint"
}
],
program: {
kind: "const",
value: [
140,
151,
37,
143,
78,
36,
137,
241,
187,
61,
16,
41,
20,
142,
13,
131,
11,
90,
19,
153,
218,
255,
16,
132,
4,
142,
123,
216,
219,
233,
248,
89
]
}
}
},
{
name: "pool_quote_token_account",
writable: true,
pda: {
seeds: [
{
kind: "account",
path: "pool"
},
{
kind: "account",
path: "quote_token_program"
},
{
kind: "account",
path: "quote_mint"
}
],
program: {
kind: "const",
value: [
140,
151,
37,
143,
78,
36,
137,
241,
187,
61,
16,
41,
20,
142,
13,
131,
11,
90,
19,
153,
218,
255,
16,
132,
4,
142,
123,
216,
219,
233,
248,
89
]
}
}
},
{
name: "system_program",
address: "11111111111111111111111111111111"
},
{
name: "token_2022_program",
address: "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
},
{
name: "base_token_program"
},
{
name: "quote_token_program"
},
{
name: "associated_token_program",
address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
name: "event_authority",
pda: {
seeds: [
{
kind: "const",
value: [
95,
95,
101,
118,
101,
110,
116,
95,
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
name: "program"
}
],
args: [
{
name: "index",
type: "u16"
},
{
name: "base_amount_in",
type: "u64"
},
{
name: "quote_amount_in",
type: "u64"
},
{
name: "coin_creator",
type: "pubkey"
}
]
},
{
name: "deposit",
discriminator: [
242,
35,
198,
137,
82,
225,
242,
182
],
accounts: [
{
name: "pool",
writable: true
},
{
name: "global_config"
},
{
name: "user",
signer: true
},
{
name: "base_mint",
relations: [
"pool"
]
},
{
name: "quote_mint",
relations: [
"pool"
]
},
{
name: "lp_mint",
writable: true,
relations: [
"pool"
]
},
{
name: "user_base_token_account",
writable: true
},
{
name: "user_quote_token_account",
writable: true
},
{
name: "user_pool_token_account",
writable: true
},
{
name: "pool_base_token_account",
writable: true,
relations: [
"pool"
]
},
{
name: "pool_quote_token_account",
writable: true,
relations: [
"pool"
]
},
{
name: "token_program",
address: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
name: "token_2022_program",
address: "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
},
{
name: "event_authority",
pda: {
seeds: [
{
kind: "const",
value: [
95,
95,
101,
118,
101,
110,
116,
95,
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
name: "program"
}
],
args: [
{
name: "lp_token_amount_out",
type: "u64"
},
{
name: "max_base_amount_in",
type: "u64"
},
{
name: "max_quote_amount_in",
type: "u64"
}
]
},
{
name: "disable",
discriminator: [
185,
173,
187,
90,
216,
15,
238,
233
],
accounts: [
{
name: "admin",
signer: true,
relations: [
"global_config"
]
},
{
name: "global_config",
writable: true
},
{
name: "event_authority",
pda: {
seeds: [
{
kind: "const",
value: [
95,
95,
101,
118,
101,
110,
116,
95,
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
name: "program"
}
],
args: [
{
name: "disable_create_pool",
type: "bool"
},
{
name: "disable_deposit",
type: "bool"
},
{
name: "disable_withdraw",
type: "bool"
},
{
name: "disable_buy",
type: "bool"
},
{
name: "disable_sell",
type: "bool"
}
]
},
{
name: "extend_account",
discriminator: [
234,
102,
194,
203,
150,
72,
62,
229
],
accounts: [
{
name: "account",
writable: true
},
{
name: "user",
signer: true
},
{
name: "system_program",
address: "11111111111111111111111111111111"
},
{
name: "event_authority",
pda: {
seeds: [
{
kind: "const",
value: [
95,
95,
101,
118,
101,
110,
116,
95,
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
name: "program"
}
],
args: []
},
{
name: "init_user_volume_accumulator",
discriminator: [
94,
6,
202,
115,
255,
96,
232,
183
],
accounts: [
{
name: "payer",
writable: true,
signer: true
},
{
name: "user"
},
{
name: "user_volume_accumulator",
writable: true,
pda: {
seeds: [
{
kind: "const",
value: [
117,
115,
101,
114,
95,
118,
111,
108,
117,
109,
101,
95,
97,
99,
99,
117,
109,
117,
108,
97,
116,
111,
114
]
},
{
kind: "account",
path: "user"
}
]
}
},
{
name: "system_program",
address: "11111111111111111111111111111111"
},
{
name: "event_authority",
pda: {
seeds: [
{
kind: "const",
value: [
95,
95,
101,
118,
101,
110,
116,
95,
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
name: "program"
}
],
args: []
},
{
name: "sell",
discriminator: [
51,
230,
133,
164,
1,
127,
131,
173
],
accounts: [
{
name: "pool"
},
{
name: "user",
writable: true,
signer: true
},
{
name: "global_config"
},
{
name: "base_mint",
relations: [
"pool"
]
},
{
name: "quote_mint",
relations: [
"pool"
]
},
{
name: "user_base_token_account",
writable: true
},
{
name: "user_quote_token_account",
writable: true
},
{
name: "pool_base_token_account",
writable: true,
relations: [
"pool"
]
},
{
name: "pool_quote_token_account",
writable: true,
relations: [
"pool"
]
},
{
name: "protocol_fee_recipient"
},
{
name: "protocol_fee_recipient_token_account",
writable: true,
pda: {
seeds: [
{
kind: "account",
path: "protocol_fee_recipient"
},
{
kind: "account",
path: "quote_token_program"
},
{
kind: "account",
path: "quote_mint"
}
],
program: {
kind: "const",
value: [
140,
151,
37,
143,
78,
36,
137,
241,
187,
61,
16,
41,
20,
142,
13,
131,
11,
90,
19,
153,
218,
255,
16,
132,
4,
142,
123,
216,
219,
233,
248,
89
]
}
}
},
{
name: "base_token_program"
},
{
name: "quote_token_program"
},
{
name: "system_program",
address: "11111111111111111111111111111111"
},
{
name: "associated_token_program",
address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
name: "event_authority",
pda: {
seeds: [
{
kind: "const",
value: [
95,
95,
101,
118,
101,
110,
116,
95,
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
name: "program"
},
{
name: "coin_creator_vault_ata",
writable: true,
pda: {
seeds: [
{
kind: "account",
path: "coin_creator_vault_authority"
},
{
kind: "account",
path: "quote_token_program"
},
{
kind: "account",
path: "quote_mint"
}
],
program: {
kind: "const",
value: [
140,
151,
37,
143,
78,
36,
137,
241,
187,
61,
16,
41,
20,
142,
13,
131,
11,
90,
19,
153,
218,
255,
16,
132,
4,
142,
123,
216,
219,
233,
248,
89
]
}
}
},
{
name: "coin_creator_vault_authority",
pda: {
seeds: [
{
kind: "const",
value: [
99,
114,
101,
97,
116,
111,
114,
95,
118,
97,
117,
108,
116
]
},
{
kind: "account",
path: "pool.coin_creator",
account: "Pool"
}
]
}
}
],
args: [
{
name: "base_amount_in",