@coinbarrel/sdk 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -0
- package/dist/accounts.js +33 -26
- package/dist/constants.js +21 -18
- package/dist/create.js +100 -0
- package/dist/curve.js +57 -51
- package/dist/index.js +126 -23
- package/dist/metadata.js +60 -96
- package/dist/pda.js +36 -24
- package/dist/pool.js +61 -55
- package/dist/rewards.js +97 -0
- package/dist/types.js +2 -2
- package/package.json +2 -3
- package/dist/accounts.d.ts +0 -36
- package/dist/accounts.d.ts.map +0 -1
- package/dist/accounts.js.map +0 -1
- package/dist/constants.d.ts +0 -80
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/curve.d.ts +0 -37
- package/dist/curve.d.ts.map +0 -1
- package/dist/curve.js.map +0 -1
- package/dist/index.d.ts +0 -220
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/metadata.d.ts +0 -113
- package/dist/metadata.d.ts.map +0 -1
- package/dist/metadata.js.map +0 -1
- package/dist/pda.d.ts +0 -51
- package/dist/pda.d.ts.map +0 -1
- package/dist/pda.js.map +0 -1
- package/dist/pool.d.ts +0 -32
- package/dist/pool.d.ts.map +0 -1
- package/dist/pool.js.map +0 -1
- package/dist/types.d.ts +0 -162
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
package/dist/pool.js
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* AMM Pool Operations
|
|
3
4
|
* Swap tokens on graduated AMM pools
|
|
4
5
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.getSwapSolToTokenQuote = getSwapSolToTokenQuote;
|
|
8
|
+
exports.getSwapTokenToSolQuote = getSwapTokenToSolQuote;
|
|
9
|
+
exports.buildSwapSolToTokenInstruction = buildSwapSolToTokenInstruction;
|
|
10
|
+
exports.buildSwapTokenToSolInstruction = buildSwapTokenToSolInstruction;
|
|
11
|
+
exports.buildSwapTokenToSolMaxInstruction = buildSwapTokenToSolMaxInstruction;
|
|
12
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
13
|
+
const spl_token_1 = require("@solana/spl-token");
|
|
14
|
+
const constants_js_1 = require("./constants.js");
|
|
15
|
+
const pda_js_1 = require("./pda.js");
|
|
16
|
+
const accounts_js_1 = require("./accounts.js");
|
|
10
17
|
// ============= Buffer Helpers =============
|
|
11
18
|
function writeU64LE(n) {
|
|
12
19
|
const b = Buffer.alloc(8);
|
|
@@ -17,9 +24,9 @@ function writeU64LE(n) {
|
|
|
17
24
|
/**
|
|
18
25
|
* Calculate swap quote for SOL -> Token
|
|
19
26
|
*/
|
|
20
|
-
|
|
21
|
-
const balances = await getPoolBalances(connection, tokenMint, programId);
|
|
22
|
-
const state = await getPoolState(connection, tokenMint, programId);
|
|
27
|
+
async function getSwapSolToTokenQuote(connection, tokenMint, solIn, programId) {
|
|
28
|
+
const balances = await (0, accounts_js_1.getPoolBalances)(connection, tokenMint, programId);
|
|
29
|
+
const state = await (0, accounts_js_1.getPoolState)(connection, tokenMint, programId);
|
|
23
30
|
if (!balances || !state)
|
|
24
31
|
return null;
|
|
25
32
|
const { solBalance, tokenBalance } = balances;
|
|
@@ -48,9 +55,9 @@ export async function getSwapSolToTokenQuote(connection, tokenMint, solIn, progr
|
|
|
48
55
|
/**
|
|
49
56
|
* Calculate swap quote for Token -> SOL
|
|
50
57
|
*/
|
|
51
|
-
|
|
52
|
-
const balances = await getPoolBalances(connection, tokenMint, programId);
|
|
53
|
-
const state = await getPoolState(connection, tokenMint, programId);
|
|
58
|
+
async function getSwapTokenToSolQuote(connection, tokenMint, tokensIn, programId) {
|
|
59
|
+
const balances = await (0, accounts_js_1.getPoolBalances)(connection, tokenMint, programId);
|
|
60
|
+
const state = await (0, accounts_js_1.getPoolState)(connection, tokenMint, programId);
|
|
54
61
|
if (!balances || !state)
|
|
55
62
|
return null;
|
|
56
63
|
const { solBalance, tokenBalance } = balances;
|
|
@@ -83,31 +90,31 @@ export async function getSwapTokenToSolQuote(connection, tokenMint, tokensIn, pr
|
|
|
83
90
|
* IMPORTANT: Fee recipients are read from on-chain state and cannot be modified.
|
|
84
91
|
* The program enforces that fees go to the correct recipients.
|
|
85
92
|
*/
|
|
86
|
-
|
|
93
|
+
async function buildSwapSolToTokenInstruction(connection, params, programId) {
|
|
87
94
|
const { tokenMint, user, lamportsIn, minimumAmountOut } = params;
|
|
88
95
|
// Fetch pool state to get fee recipients and vault addresses (enforced on-chain)
|
|
89
|
-
const state = await getPoolState(connection, tokenMint, programId);
|
|
96
|
+
const state = await (0, accounts_js_1.getPoolState)(connection, tokenMint, programId);
|
|
90
97
|
if (!state) {
|
|
91
98
|
throw new Error("Pool not found for this token");
|
|
92
99
|
}
|
|
93
100
|
// Determine which vault is WSOL and which is the token based on stored mints
|
|
94
|
-
const isTokenANative = state.tokenAMint.equals(NATIVE_MINT);
|
|
101
|
+
const isTokenANative = state.tokenAMint.equals(constants_js_1.NATIVE_MINT);
|
|
95
102
|
const wsolVault = isTokenANative ? state.tokenAVault : state.tokenBVault;
|
|
96
103
|
const tokenVault = isTokenANative ? state.tokenBVault : state.tokenAVault;
|
|
97
|
-
const pool = getPoolPda(tokenMint, programId);
|
|
98
|
-
const authority = getPoolAuthorityPda(pool, programId);
|
|
99
|
-
const userTokenAta = getAssociatedTokenAddressSync(tokenMint, user);
|
|
100
|
-
const holderRewardAccount = getHolderRewardPda(tokenMint, user, programId);
|
|
104
|
+
const pool = (0, pda_js_1.getPoolPda)(tokenMint, programId);
|
|
105
|
+
const authority = (0, pda_js_1.getPoolAuthorityPda)(pool, programId);
|
|
106
|
+
const userTokenAta = (0, spl_token_1.getAssociatedTokenAddressSync)(tokenMint, user);
|
|
107
|
+
const holderRewardAccount = (0, pda_js_1.getHolderRewardPda)(tokenMint, user, programId);
|
|
101
108
|
const instructions = [];
|
|
102
109
|
// Check if user's token ATA exists, create if needed
|
|
103
110
|
try {
|
|
104
|
-
await getAccount(connection, userTokenAta);
|
|
111
|
+
await (0, spl_token_1.getAccount)(connection, userTokenAta);
|
|
105
112
|
}
|
|
106
113
|
catch {
|
|
107
|
-
instructions.push(createAssociatedTokenAccountInstruction(user, userTokenAta, user, tokenMint));
|
|
114
|
+
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(user, userTokenAta, user, tokenMint));
|
|
108
115
|
}
|
|
109
116
|
// Build swap instruction
|
|
110
|
-
const swapIx = new TransactionInstruction({
|
|
117
|
+
const swapIx = new web3_js_1.TransactionInstruction({
|
|
111
118
|
programId,
|
|
112
119
|
keys: [
|
|
113
120
|
{ pubkey: pool, isWritable: true, isSigner: false },
|
|
@@ -121,11 +128,11 @@ export async function buildSwapSolToTokenInstruction(connection, params, program
|
|
|
121
128
|
// Holder reward account
|
|
122
129
|
{ pubkey: holderRewardAccount, isWritable: true, isSigner: false },
|
|
123
130
|
{ pubkey: user, isWritable: true, isSigner: true },
|
|
124
|
-
{ pubkey: TOKEN_PROGRAM_ID, isWritable: false, isSigner: false },
|
|
125
|
-
{ pubkey: SystemProgram.programId, isWritable: false, isSigner: false },
|
|
131
|
+
{ pubkey: spl_token_1.TOKEN_PROGRAM_ID, isWritable: false, isSigner: false },
|
|
132
|
+
{ pubkey: web3_js_1.SystemProgram.programId, isWritable: false, isSigner: false },
|
|
126
133
|
],
|
|
127
134
|
data: Buffer.concat([
|
|
128
|
-
DISCRIMINATORS.swap_sol_to_token,
|
|
135
|
+
constants_js_1.DISCRIMINATORS.swap_sol_to_token,
|
|
129
136
|
writeU64LE(lamportsIn),
|
|
130
137
|
writeU64LE(minimumAmountOut),
|
|
131
138
|
]),
|
|
@@ -138,32 +145,32 @@ export async function buildSwapSolToTokenInstruction(connection, params, program
|
|
|
138
145
|
*
|
|
139
146
|
* IMPORTANT: Fee recipients are read from on-chain state and cannot be modified.
|
|
140
147
|
*/
|
|
141
|
-
|
|
148
|
+
async function buildSwapTokenToSolInstruction(connection, params, programId) {
|
|
142
149
|
const { tokenMint, user, amountIn, minimumLamportsOut } = params;
|
|
143
150
|
// Fetch pool state to get fee recipients and vault addresses (enforced on-chain)
|
|
144
|
-
const state = await getPoolState(connection, tokenMint, programId);
|
|
151
|
+
const state = await (0, accounts_js_1.getPoolState)(connection, tokenMint, programId);
|
|
145
152
|
if (!state) {
|
|
146
153
|
throw new Error("Pool not found for this token");
|
|
147
154
|
}
|
|
148
155
|
// Determine which vault is WSOL and which is the token based on stored mints
|
|
149
|
-
const isTokenANative = state.tokenAMint.equals(NATIVE_MINT);
|
|
156
|
+
const isTokenANative = state.tokenAMint.equals(constants_js_1.NATIVE_MINT);
|
|
150
157
|
const wsolVault = isTokenANative ? state.tokenAVault : state.tokenBVault;
|
|
151
158
|
const tokenVault = isTokenANative ? state.tokenBVault : state.tokenAVault;
|
|
152
|
-
const pool = getPoolPda(tokenMint, programId);
|
|
153
|
-
const authority = getPoolAuthorityPda(pool, programId);
|
|
154
|
-
const userTokenAta = getAssociatedTokenAddressSync(tokenMint, user);
|
|
155
|
-
const userWsolAta = getAssociatedTokenAddressSync(NATIVE_MINT, user);
|
|
156
|
-
const holderRewardAccount = getHolderRewardPda(tokenMint, user, programId);
|
|
159
|
+
const pool = (0, pda_js_1.getPoolPda)(tokenMint, programId);
|
|
160
|
+
const authority = (0, pda_js_1.getPoolAuthorityPda)(pool, programId);
|
|
161
|
+
const userTokenAta = (0, spl_token_1.getAssociatedTokenAddressSync)(tokenMint, user);
|
|
162
|
+
const userWsolAta = (0, spl_token_1.getAssociatedTokenAddressSync)(constants_js_1.NATIVE_MINT, user);
|
|
163
|
+
const holderRewardAccount = (0, pda_js_1.getHolderRewardPda)(tokenMint, user, programId);
|
|
157
164
|
const instructions = [];
|
|
158
165
|
// Create WSOL ATA if needed (for receiving output)
|
|
159
166
|
try {
|
|
160
|
-
await getAccount(connection, userWsolAta);
|
|
167
|
+
await (0, spl_token_1.getAccount)(connection, userWsolAta);
|
|
161
168
|
}
|
|
162
169
|
catch {
|
|
163
|
-
instructions.push(createAssociatedTokenAccountInstruction(user, userWsolAta, user, NATIVE_MINT));
|
|
170
|
+
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(user, userWsolAta, user, constants_js_1.NATIVE_MINT));
|
|
164
171
|
}
|
|
165
172
|
// Build swap instruction
|
|
166
|
-
const swapIx = new TransactionInstruction({
|
|
173
|
+
const swapIx = new web3_js_1.TransactionInstruction({
|
|
167
174
|
programId,
|
|
168
175
|
keys: [
|
|
169
176
|
{ pubkey: pool, isWritable: true, isSigner: false },
|
|
@@ -178,49 +185,49 @@ export async function buildSwapTokenToSolInstruction(connection, params, program
|
|
|
178
185
|
// Holder reward account
|
|
179
186
|
{ pubkey: holderRewardAccount, isWritable: true, isSigner: false },
|
|
180
187
|
{ pubkey: user, isWritable: true, isSigner: true },
|
|
181
|
-
{ pubkey: TOKEN_PROGRAM_ID, isWritable: false, isSigner: false },
|
|
182
|
-
{ pubkey: SystemProgram.programId, isWritable: false, isSigner: false },
|
|
188
|
+
{ pubkey: spl_token_1.TOKEN_PROGRAM_ID, isWritable: false, isSigner: false },
|
|
189
|
+
{ pubkey: web3_js_1.SystemProgram.programId, isWritable: false, isSigner: false },
|
|
183
190
|
],
|
|
184
191
|
data: Buffer.concat([
|
|
185
|
-
DISCRIMINATORS.swap_token_to_sol,
|
|
192
|
+
constants_js_1.DISCRIMINATORS.swap_token_to_sol,
|
|
186
193
|
writeU64LE(amountIn),
|
|
187
194
|
writeU64LE(minimumLamportsOut),
|
|
188
195
|
]),
|
|
189
196
|
});
|
|
190
197
|
instructions.push(swapIx);
|
|
191
198
|
// Close WSOL account to unwrap to SOL
|
|
192
|
-
instructions.push(createCloseAccountInstruction(userWsolAta, user, user));
|
|
199
|
+
instructions.push((0, spl_token_1.createCloseAccountInstruction)(userWsolAta, user, user));
|
|
193
200
|
return instructions;
|
|
194
201
|
}
|
|
195
202
|
/**
|
|
196
203
|
* Build swap_token_to_sol_max instruction (sell entire balance)
|
|
197
204
|
*/
|
|
198
|
-
|
|
205
|
+
async function buildSwapTokenToSolMaxInstruction(connection, params, programId) {
|
|
199
206
|
const { tokenMint, user } = params;
|
|
200
207
|
// Fetch pool state to get fee recipients and vault addresses (enforced on-chain)
|
|
201
|
-
const state = await getPoolState(connection, tokenMint, programId);
|
|
208
|
+
const state = await (0, accounts_js_1.getPoolState)(connection, tokenMint, programId);
|
|
202
209
|
if (!state) {
|
|
203
210
|
throw new Error("Pool not found for this token");
|
|
204
211
|
}
|
|
205
212
|
// Determine which vault is WSOL and which is the token based on stored mints
|
|
206
|
-
const isTokenANative = state.tokenAMint.equals(NATIVE_MINT);
|
|
213
|
+
const isTokenANative = state.tokenAMint.equals(constants_js_1.NATIVE_MINT);
|
|
207
214
|
const wsolVault = isTokenANative ? state.tokenAVault : state.tokenBVault;
|
|
208
215
|
const tokenVault = isTokenANative ? state.tokenBVault : state.tokenAVault;
|
|
209
|
-
const pool = getPoolPda(tokenMint, programId);
|
|
210
|
-
const authority = getPoolAuthorityPda(pool, programId);
|
|
211
|
-
const userTokenAta = getAssociatedTokenAddressSync(tokenMint, user);
|
|
212
|
-
const userWsolAta = getAssociatedTokenAddressSync(NATIVE_MINT, user);
|
|
213
|
-
const holderRewardAccount = getHolderRewardPda(tokenMint, user, programId);
|
|
216
|
+
const pool = (0, pda_js_1.getPoolPda)(tokenMint, programId);
|
|
217
|
+
const authority = (0, pda_js_1.getPoolAuthorityPda)(pool, programId);
|
|
218
|
+
const userTokenAta = (0, spl_token_1.getAssociatedTokenAddressSync)(tokenMint, user);
|
|
219
|
+
const userWsolAta = (0, spl_token_1.getAssociatedTokenAddressSync)(constants_js_1.NATIVE_MINT, user);
|
|
220
|
+
const holderRewardAccount = (0, pda_js_1.getHolderRewardPda)(tokenMint, user, programId);
|
|
214
221
|
const instructions = [];
|
|
215
222
|
// Create WSOL ATA if needed (for receiving output)
|
|
216
223
|
try {
|
|
217
|
-
await getAccount(connection, userWsolAta);
|
|
224
|
+
await (0, spl_token_1.getAccount)(connection, userWsolAta);
|
|
218
225
|
}
|
|
219
226
|
catch {
|
|
220
|
-
instructions.push(createAssociatedTokenAccountInstruction(user, userWsolAta, user, NATIVE_MINT));
|
|
227
|
+
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(user, userWsolAta, user, constants_js_1.NATIVE_MINT));
|
|
221
228
|
}
|
|
222
229
|
// Build swap max instruction
|
|
223
|
-
const swapMaxIx = new TransactionInstruction({
|
|
230
|
+
const swapMaxIx = new web3_js_1.TransactionInstruction({
|
|
224
231
|
programId,
|
|
225
232
|
keys: [
|
|
226
233
|
{ pubkey: pool, isWritable: true, isSigner: false },
|
|
@@ -235,14 +242,13 @@ export async function buildSwapTokenToSolMaxInstruction(connection, params, prog
|
|
|
235
242
|
// Holder reward account
|
|
236
243
|
{ pubkey: holderRewardAccount, isWritable: true, isSigner: false },
|
|
237
244
|
{ pubkey: user, isWritable: true, isSigner: true },
|
|
238
|
-
{ pubkey: TOKEN_PROGRAM_ID, isWritable: false, isSigner: false },
|
|
239
|
-
{ pubkey: SystemProgram.programId, isWritable: false, isSigner: false },
|
|
245
|
+
{ pubkey: spl_token_1.TOKEN_PROGRAM_ID, isWritable: false, isSigner: false },
|
|
246
|
+
{ pubkey: web3_js_1.SystemProgram.programId, isWritable: false, isSigner: false },
|
|
240
247
|
],
|
|
241
|
-
data: DISCRIMINATORS.swap_token_to_sol_max,
|
|
248
|
+
data: constants_js_1.DISCRIMINATORS.swap_token_to_sol_max,
|
|
242
249
|
});
|
|
243
250
|
instructions.push(swapMaxIx);
|
|
244
251
|
// Close WSOL account to unwrap to SOL
|
|
245
|
-
instructions.push(createCloseAccountInstruction(userWsolAta, user, user));
|
|
252
|
+
instructions.push((0, spl_token_1.createCloseAccountInstruction)(userWsolAta, user, user));
|
|
246
253
|
return instructions;
|
|
247
254
|
}
|
|
248
|
-
//# sourceMappingURL=pool.js.map
|
package/dist/rewards.js
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Holder Rewards
|
|
4
|
+
* Claim accumulated holder rewards from bonding curves and AMM pools
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.buildClaimHolderRewardsCurveInstruction = buildClaimHolderRewardsCurveInstruction;
|
|
8
|
+
exports.buildClaimHolderRewardsInstruction = buildClaimHolderRewardsInstruction;
|
|
9
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
10
|
+
const spl_token_1 = require("@solana/spl-token");
|
|
11
|
+
const constants_js_1 = require("./constants.js");
|
|
12
|
+
const pda_js_1 = require("./pda.js");
|
|
13
|
+
const accounts_js_1 = require("./accounts.js");
|
|
14
|
+
// ============= Claim from Bonding Curve =============
|
|
15
|
+
/**
|
|
16
|
+
* Build claim_holder_rewards_curve instruction
|
|
17
|
+
*
|
|
18
|
+
* Claims accumulated holder rewards from a bonding curve.
|
|
19
|
+
* Rewards are paid in SOL directly to the holder's wallet.
|
|
20
|
+
*/
|
|
21
|
+
async function buildClaimHolderRewardsCurveInstruction(connection, params, programId) {
|
|
22
|
+
const { tokenMint, holder } = params;
|
|
23
|
+
// Derive PDAs
|
|
24
|
+
const bondingCurve = (0, pda_js_1.getBondingCurvePda)(tokenMint, programId);
|
|
25
|
+
const solEscrow = (0, pda_js_1.getSolEscrowPda)(bondingCurve, programId);
|
|
26
|
+
const holderTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(tokenMint, holder);
|
|
27
|
+
const holderRewardAccount = (0, pda_js_1.getHolderRewardPda)(tokenMint, holder, programId);
|
|
28
|
+
const claimIx = new web3_js_1.TransactionInstruction({
|
|
29
|
+
programId,
|
|
30
|
+
keys: [
|
|
31
|
+
{ pubkey: bondingCurve, isWritable: true, isSigner: false },
|
|
32
|
+
{ pubkey: tokenMint, isWritable: false, isSigner: false },
|
|
33
|
+
{ pubkey: solEscrow, isWritable: true, isSigner: false },
|
|
34
|
+
{ pubkey: holderTokenAccount, isWritable: false, isSigner: false },
|
|
35
|
+
{ pubkey: holderRewardAccount, isWritable: true, isSigner: false },
|
|
36
|
+
{ pubkey: holder, isWritable: true, isSigner: true },
|
|
37
|
+
{ pubkey: web3_js_1.SystemProgram.programId, isWritable: false, isSigner: false },
|
|
38
|
+
],
|
|
39
|
+
data: constants_js_1.DISCRIMINATORS.claim_holder_rewards_curve,
|
|
40
|
+
});
|
|
41
|
+
return [claimIx];
|
|
42
|
+
}
|
|
43
|
+
// ============= Claim from AMM Pool =============
|
|
44
|
+
/**
|
|
45
|
+
* Build claim_holder_rewards instruction
|
|
46
|
+
*
|
|
47
|
+
* Claims accumulated holder rewards from an AMM pool (post-graduation).
|
|
48
|
+
* Rewards are paid in WSOL which is then unwrapped to SOL.
|
|
49
|
+
*/
|
|
50
|
+
async function buildClaimHolderRewardsInstruction(connection, params, programId) {
|
|
51
|
+
const { tokenMint, holder } = params;
|
|
52
|
+
// Fetch pool state
|
|
53
|
+
const state = await (0, accounts_js_1.getPoolState)(connection, tokenMint, programId);
|
|
54
|
+
if (!state) {
|
|
55
|
+
throw new Error('Pool not found for this token');
|
|
56
|
+
}
|
|
57
|
+
// Derive PDAs
|
|
58
|
+
const pool = (0, pda_js_1.getPoolPda)(tokenMint, programId);
|
|
59
|
+
const authority = (0, pda_js_1.getPoolAuthorityPda)(pool, programId);
|
|
60
|
+
const holderTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(tokenMint, holder);
|
|
61
|
+
const holderRewardAccount = (0, pda_js_1.getHolderRewardPda)(tokenMint, holder, programId);
|
|
62
|
+
const holderWsolAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(constants_js_1.NATIVE_MINT, holder);
|
|
63
|
+
// Determine which vault is which
|
|
64
|
+
const isTokenANative = state.tokenAMint.equals(constants_js_1.NATIVE_MINT);
|
|
65
|
+
const solVault = isTokenANative ? state.tokenAVault : state.tokenBVault;
|
|
66
|
+
const tokenVault = isTokenANative ? state.tokenBVault : state.tokenAVault;
|
|
67
|
+
const instructions = [];
|
|
68
|
+
// Create WSOL ATA if needed
|
|
69
|
+
try {
|
|
70
|
+
await (0, spl_token_1.getAccount)(connection, holderWsolAccount);
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(holder, holderWsolAccount, holder, constants_js_1.NATIVE_MINT));
|
|
74
|
+
}
|
|
75
|
+
const claimIx = new web3_js_1.TransactionInstruction({
|
|
76
|
+
programId,
|
|
77
|
+
keys: [
|
|
78
|
+
{ pubkey: pool, isWritable: true, isSigner: false },
|
|
79
|
+
{ pubkey: tokenMint, isWritable: false, isSigner: false },
|
|
80
|
+
{ pubkey: state.lpMint, isWritable: false, isSigner: false },
|
|
81
|
+
{ pubkey: tokenVault, isWritable: false, isSigner: false },
|
|
82
|
+
{ pubkey: solVault, isWritable: true, isSigner: false },
|
|
83
|
+
{ pubkey: holderTokenAccount, isWritable: false, isSigner: false },
|
|
84
|
+
{ pubkey: holderWsolAccount, isWritable: true, isSigner: false },
|
|
85
|
+
{ pubkey: holderRewardAccount, isWritable: true, isSigner: false },
|
|
86
|
+
{ pubkey: authority, isWritable: false, isSigner: false },
|
|
87
|
+
{ pubkey: holder, isWritable: true, isSigner: true },
|
|
88
|
+
{ pubkey: spl_token_1.TOKEN_PROGRAM_ID, isWritable: false, isSigner: false },
|
|
89
|
+
{ pubkey: web3_js_1.SystemProgram.programId, isWritable: false, isSigner: false },
|
|
90
|
+
],
|
|
91
|
+
data: constants_js_1.DISCRIMINATORS.claim_holder_rewards,
|
|
92
|
+
});
|
|
93
|
+
instructions.push(claimIx);
|
|
94
|
+
// Close WSOL account to unwrap to SOL
|
|
95
|
+
instructions.push((0, spl_token_1.createCloseAccountInstruction)(holderWsolAccount, holder, holder));
|
|
96
|
+
return instructions;
|
|
97
|
+
}
|
package/dist/types.js
CHANGED
package/package.json
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coinbarrel/sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "SDK for CoinBarrel AMM - bonding curves and liquidity pools on Solana",
|
|
5
5
|
"author": "CoinBarrel",
|
|
6
6
|
"license": "MIT",
|
|
7
|
-
"type": "module",
|
|
8
7
|
"main": "./dist/index.js",
|
|
9
8
|
"module": "./dist/index.js",
|
|
10
9
|
"types": "./dist/index.d.ts",
|
|
@@ -20,7 +19,7 @@
|
|
|
20
19
|
"README.md"
|
|
21
20
|
],
|
|
22
21
|
"scripts": {
|
|
23
|
-
"build": "tsc -p tsconfig.
|
|
22
|
+
"build": "tsc -p tsconfig.json",
|
|
24
23
|
"clean": "rm -rf dist",
|
|
25
24
|
"prepublishOnly": "npm run clean && npm run build"
|
|
26
25
|
},
|
package/dist/accounts.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Account Fetching and Parsing
|
|
3
|
-
* Read on-chain account data for bonding curves and pools
|
|
4
|
-
*/
|
|
5
|
-
import { Connection, PublicKey } from '@solana/web3.js';
|
|
6
|
-
import type { BondingCurveState, PoolState, MarketInfo } from './types.js';
|
|
7
|
-
/**
|
|
8
|
-
* Fetch and parse bonding curve state
|
|
9
|
-
*/
|
|
10
|
-
export declare function getBondingCurveState(connection: Connection, tokenMint: PublicKey, programId: PublicKey): Promise<BondingCurveState | null>;
|
|
11
|
-
/**
|
|
12
|
-
* Get SOL balance in bonding curve escrow
|
|
13
|
-
*/
|
|
14
|
-
export declare function getCurveSolBalance(connection: Connection, tokenMint: PublicKey, programId: PublicKey): Promise<bigint>;
|
|
15
|
-
/**
|
|
16
|
-
* Fetch and parse pool state
|
|
17
|
-
*/
|
|
18
|
-
export declare function getPoolState(connection: Connection, tokenMint: PublicKey, programId: PublicKey): Promise<PoolState | null>;
|
|
19
|
-
/**
|
|
20
|
-
* Get pool vault balances
|
|
21
|
-
* Uses vault addresses stored in Pool state rather than deriving PDAs
|
|
22
|
-
*/
|
|
23
|
-
export declare function getPoolBalances(connection: Connection, tokenMint: PublicKey, programId: PublicKey): Promise<{
|
|
24
|
-
solBalance: bigint;
|
|
25
|
-
tokenBalance: bigint;
|
|
26
|
-
} | null>;
|
|
27
|
-
/**
|
|
28
|
-
* Get comprehensive market info for a token
|
|
29
|
-
* Automatically detects if on bonding curve or AMM pool
|
|
30
|
-
*/
|
|
31
|
-
export declare function getMarketInfo(connection: Connection, tokenMint: PublicKey, programId: PublicKey): Promise<MarketInfo | null>;
|
|
32
|
-
/**
|
|
33
|
-
* Get user's token balance
|
|
34
|
-
*/
|
|
35
|
-
export declare function getUserTokenBalance(connection: Connection, tokenMint: PublicKey, user: PublicKey): Promise<bigint>;
|
|
36
|
-
//# sourceMappingURL=accounts.d.ts.map
|
package/dist/accounts.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../src/accounts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA4B3E;;GAEG;AACH,wBAAsB,oBAAoB,CACzC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA4BnC;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACvC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,MAAM,CAAC,CAKjB;AAID;;GAEG;AACH,wBAAsB,YAAY,CACjC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CA0B3B;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACpC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAyB9D;AAID;;;GAGG;AACH,wBAAsB,aAAa,CAClC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAgE5B;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACxC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,SAAS,GACb,OAAO,CAAC,MAAM,CAAC,CAQjB"}
|
package/dist/accounts.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../src/accounts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAc,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3E,6CAA6C;AAE7C,SAAS,SAAS,CAAC,IAAY,EAAE,MAAc;IAC9C,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,MAAc;IAC9C,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,MAAc;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9C,OAAO,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,MAAc;IAC/C,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,MAAc;IAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,4CAA4C;AAE5C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,UAAsB,EACtB,SAAoB,EACpB,SAAoB;IAEpB,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAElE,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAC9B,MAAM,CAAC,GAAG,qBAAqB,CAAC;IAEhC,OAAO;QACN,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC;QACzC,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC;QAC3C,iBAAiB,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,mBAAmB,CAAC;QAC1D,mBAAmB,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,qBAAqB,CAAC;QAC9D,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC;QAClC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QACxB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAClB,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC;QACnC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;QAC/B,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC;QAClC,qBAAqB,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,wBAAwB,CAAC;QAClE,wBAAwB,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC;QACtD,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC;QACzC,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC;QACzC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;KAChC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,UAAsB,EACtB,SAAoB,EACpB,SAAoB;IAEpB,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,eAAe,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACvD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,uCAAuC;AAEvC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,UAAsB,EACtB,SAAoB,EACpB,SAAoB;IAEpB,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAE1D,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAC9B,MAAM,CAAC,GAAG,YAAY,CAAC;IAEvB,OAAO;QACN,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC;QAC5C,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC;QAC5C,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC;QAC9C,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC;QAC9C,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC;QACnC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC;QACpC,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC;QACxC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAClB,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC;QACrC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3B,qBAAqB,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,wBAAwB,CAAC;QAClE,iBAAiB,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,mBAAmB,CAAC;QAC1D,mBAAmB,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,qBAAqB,CAAC;KAC9D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,UAAsB,EACtB,SAAoB,EACpB,SAAoB;IAEpB,uDAAuD;IACvD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACnE,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACb,CAAC;IAED,6EAA6E;IAC7E,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;IACzE,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;IAE1E,IAAI,CAAC;QACJ,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACrD,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC;YACjC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC;SAClC,CAAC,CAAC;QAEH,OAAO;YACN,UAAU,EAAE,WAAW,CAAC,MAAM;YAC9B,YAAY,EAAE,YAAY,CAAC,MAAM;SACjC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,0CAA0C;AAE1C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,UAAsB,EACtB,SAAoB,EACpB,SAAoB;IAEpB,0BAA0B;IAC1B,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAEhF,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACtC,8EAA8E;QAC9E,IAAI,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YACjD,yBAAyB;YACzB,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAE9E,+DAA+D;YAC/D,MAAM,KAAK,GACV,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,gBAAgB,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAExF,0CAA0C;YAC1C,MAAM,YAAY,GACjB,UAAU,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;YAEpF,OAAO;gBACN,SAAS;gBACT,KAAK,EAAE,OAAO;gBACd,KAAK;gBACL,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS;gBACzD,YAAY;gBACZ,iBAAiB,EAAE,UAAU,CAAC,SAAS;gBACvC,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,MAAM,EAAE,UAAU,CAAC,MAAM;aACzB,CAAC;QACH,CAAC;IACF,CAAC;IAED,eAAe;IACf,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEhG,IAAI,SAAS,IAAI,YAAY,EAAE,CAAC;QAC/B,mEAAmE;QACnE,MAAM,KAAK,GACV,YAAY,CAAC,YAAY,GAAG,EAAE;YAC7B,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,GAAG,gBAAgB,CAAC,GAAG,YAAY,CAAC,YAAY;YAC1E,CAAC,CAAC,EAAE,CAAC;QAEP,uDAAuD;QACvD,6DAA6D;QAC7D,MAAM,YAAY,GACjB,YAAY,CAAC,YAAY,GAAG,EAAE;YAC7B,CAAC,CAAC,YAAY,CAAC,UAAU,GAAG,EAAE,CAAC,kCAAkC;YACjE,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO;YACN,SAAS;YACT,KAAK,EAAE,MAAM;YACb,KAAK;YACL,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,YAAY,EAAE,YAAY,CAAC,YAAY;YACvC,YAAY;YACZ,iBAAiB,EAAE,EAAE,EAAE,gCAAgC;YACvD,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;YACjC,MAAM,EAAE,KAAK;SACb,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,UAAsB,EACtB,SAAoB,EACpB,IAAe;IAEf,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,6BAA6B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC,MAAM,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,CAAC;IACX,CAAC;AACF,CAAC"}
|
package/dist/constants.d.ts
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CoinBarrel SDK Constants
|
|
3
|
-
* Network-specific program IDs and configuration
|
|
4
|
-
*/
|
|
5
|
-
import { PublicKey } from '@solana/web3.js';
|
|
6
|
-
export type Network = 'devnet' | 'mainnet';
|
|
7
|
-
export declare const PROGRAM_IDS: Record<Network, PublicKey>;
|
|
8
|
-
export declare const ADMIN_FEE_RECIPIENTS: Record<Network, PublicKey>;
|
|
9
|
-
export declare const NATIVE_MINT: PublicKey;
|
|
10
|
-
export declare const TOKEN_METADATA_PROGRAM_ID: PublicKey;
|
|
11
|
-
export declare const SEEDS: {
|
|
12
|
-
readonly BONDING: Buffer<ArrayBuffer>;
|
|
13
|
-
readonly BONDING_AUTHORITY: Buffer<ArrayBuffer>;
|
|
14
|
-
readonly BONDING_SOL: Buffer<ArrayBuffer>;
|
|
15
|
-
readonly POOL: Buffer<ArrayBuffer>;
|
|
16
|
-
readonly AUTHORITY: Buffer<ArrayBuffer>;
|
|
17
|
-
readonly VAULT: Buffer<ArrayBuffer>;
|
|
18
|
-
readonly LP_MINT: Buffer<ArrayBuffer>;
|
|
19
|
-
readonly LP_VAULT: Buffer<ArrayBuffer>;
|
|
20
|
-
readonly HOLDER_REWARD: Buffer<ArrayBuffer>;
|
|
21
|
-
};
|
|
22
|
-
export declare const DISCRIMINATORS: {
|
|
23
|
-
readonly initialize_barrel_curve: Buffer<ArrayBuffer>;
|
|
24
|
-
readonly buy_on_curve: Buffer<ArrayBuffer>;
|
|
25
|
-
readonly sell_on_curve: Buffer<ArrayBuffer>;
|
|
26
|
-
readonly sell_max_on_curve: Buffer<ArrayBuffer>;
|
|
27
|
-
readonly configure_bonding_fees: Buffer<ArrayBuffer>;
|
|
28
|
-
readonly configure_virtual_curve: Buffer<ArrayBuffer>;
|
|
29
|
-
readonly initialize_pool: Buffer<ArrayBuffer>;
|
|
30
|
-
readonly swap_sol_to_token: Buffer<ArrayBuffer>;
|
|
31
|
-
readonly swap_token_to_sol: Buffer<ArrayBuffer>;
|
|
32
|
-
readonly swap_token_to_sol_max: Buffer<ArrayBuffer>;
|
|
33
|
-
readonly swap: Buffer<ArrayBuffer>;
|
|
34
|
-
readonly add_liquidity: Buffer<ArrayBuffer>;
|
|
35
|
-
readonly remove_liquidity: Buffer<ArrayBuffer>;
|
|
36
|
-
readonly migrate_barrel: Buffer<ArrayBuffer>;
|
|
37
|
-
readonly claim_holder_rewards: Buffer<ArrayBuffer>;
|
|
38
|
-
readonly claim_holder_rewards_curve: Buffer<ArrayBuffer>;
|
|
39
|
-
readonly init_holder_reward_account_curve: Buffer<ArrayBuffer>;
|
|
40
|
-
readonly init_holder_reward_account_pool: Buffer<ArrayBuffer>;
|
|
41
|
-
};
|
|
42
|
-
export declare const BONDING_CURVE_OFFSETS: {
|
|
43
|
-
readonly DISCRIMINATOR: 0;
|
|
44
|
-
readonly TOKEN_MINT: 8;
|
|
45
|
-
readonly TOKEN_VAULT: number;
|
|
46
|
-
readonly ADMIN_FEE_RECIPIENT: number;
|
|
47
|
-
readonly CREATOR_FEE_RECIPIENT: number;
|
|
48
|
-
readonly FEE_BPS: number;
|
|
49
|
-
readonly VARIANT: number;
|
|
50
|
-
readonly BUMP: number;
|
|
51
|
-
readonly V_TOKEN: number;
|
|
52
|
-
readonly V_SOL: number;
|
|
53
|
-
readonly AMP_BPS: number;
|
|
54
|
-
readonly TRADER_REWARDS_SHARE_BPS: number;
|
|
55
|
-
readonly MIN_PRICE: number;
|
|
56
|
-
readonly MAX_SUPPLY: number;
|
|
57
|
-
readonly TOTAL_SOLD: number;
|
|
58
|
-
readonly PAUSED: number;
|
|
59
|
-
};
|
|
60
|
-
export declare const POOL_OFFSETS: {
|
|
61
|
-
readonly DISCRIMINATOR: 0;
|
|
62
|
-
readonly TOKEN_A_MINT: 8;
|
|
63
|
-
readonly TOKEN_B_MINT: number;
|
|
64
|
-
readonly TOKEN_A_VAULT: number;
|
|
65
|
-
readonly TOKEN_B_VAULT: number;
|
|
66
|
-
readonly LP_MINT: number;
|
|
67
|
-
readonly FEE_RATE: number;
|
|
68
|
-
readonly AUTHORITY: number;
|
|
69
|
-
readonly BUMP: number;
|
|
70
|
-
readonly IS_LOCKED: number;
|
|
71
|
-
readonly POOL_TYPE: number;
|
|
72
|
-
readonly TRADER_REWARDS_SHARE_BPS: number;
|
|
73
|
-
readonly ADMIN_FEE_RECIPIENT: number;
|
|
74
|
-
readonly CREATOR_FEE_RECIPIENT: number;
|
|
75
|
-
};
|
|
76
|
-
export declare const DEFAULT_DECIMALS = 6;
|
|
77
|
-
export declare const DEFAULT_SLIPPAGE_BPS = 100;
|
|
78
|
-
export declare const LAMPORTS_PER_SOL = 1000000000n;
|
|
79
|
-
export declare const TOKEN_DECIMALS_MULTIPLIER = 1000000n;
|
|
80
|
-
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3C,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAGlD,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAG3D,CAAC;AAGF,eAAO,MAAM,WAAW,WAA+D,CAAC;AAGxF,eAAO,MAAM,yBAAyB,WAErC,CAAC;AAIF,eAAO,MAAM,KAAK;;;;;;;;;;CAUR,CAAC;AAKX,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;CA0BjB,CAAC;AAKX,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;CAiBxB,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;CAef,CAAC;AAIX,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,gBAAgB,cAAiB,CAAC;AAC/C,eAAO,MAAM,yBAAyB,WAAa,CAAC"}
|
package/dist/constants.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/curve.d.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Bonding Curve Operations
|
|
3
|
-
* Buy and sell tokens on the bonding curve
|
|
4
|
-
*/
|
|
5
|
-
import { Connection, PublicKey, TransactionInstruction } from '@solana/web3.js';
|
|
6
|
-
import type { BuyOnCurveParams, SellOnCurveParams, SellMaxOnCurveParams, BuyQuote, SellQuote } from './types.js';
|
|
7
|
-
/**
|
|
8
|
-
* Calculate buy quote for bonding curve
|
|
9
|
-
* Uses amplified constant product formula matching the program:
|
|
10
|
-
* k = vSol_eff * vToken_eff where _eff = base * amp_bps / 10000
|
|
11
|
-
*/
|
|
12
|
-
export declare function getBuyQuote(connection: Connection, tokenMint: PublicKey, solIn: bigint, programId: PublicKey): Promise<BuyQuote | null>;
|
|
13
|
-
/**
|
|
14
|
-
* Calculate sell quote for bonding curve
|
|
15
|
-
* Uses amplified constant product formula matching the program
|
|
16
|
-
*/
|
|
17
|
-
export declare function getSellQuote(connection: Connection, tokenMint: PublicKey, tokensIn: bigint, programId: PublicKey): Promise<SellQuote | null>;
|
|
18
|
-
/**
|
|
19
|
-
* Build buy_on_curve instruction
|
|
20
|
-
*
|
|
21
|
-
* IMPORTANT: Fee recipients are read from on-chain state and cannot be modified.
|
|
22
|
-
* The program enforces that fees go to the correct recipients.
|
|
23
|
-
*/
|
|
24
|
-
export declare function buildBuyOnCurveInstruction(connection: Connection, params: BuyOnCurveParams, programId: PublicKey): Promise<TransactionInstruction[]>;
|
|
25
|
-
/**
|
|
26
|
-
* Build sell_on_curve instruction
|
|
27
|
-
*
|
|
28
|
-
* IMPORTANT: Fee recipients are read from on-chain state and cannot be modified.
|
|
29
|
-
* Includes holder reward account in remaining_accounts for auto-payout.
|
|
30
|
-
*/
|
|
31
|
-
export declare function buildSellOnCurveInstruction(connection: Connection, params: SellOnCurveParams, programId: PublicKey): Promise<TransactionInstruction[]>;
|
|
32
|
-
/**
|
|
33
|
-
* Build sell_max_on_curve instruction (sell entire balance)
|
|
34
|
-
* Includes holder reward account in remaining_accounts for auto-payout.
|
|
35
|
-
*/
|
|
36
|
-
export declare function buildSellMaxOnCurveInstruction(connection: Connection, params: SellMaxOnCurveParams, programId: PublicKey): Promise<TransactionInstruction[]>;
|
|
37
|
-
//# sourceMappingURL=curve.d.ts.map
|
package/dist/curve.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"curve.d.ts","sourceRoot":"","sources":["../src/curve.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAiB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAe/F,OAAO,KAAK,EACX,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,QAAQ,EACR,SAAS,EACT,MAAM,YAAY,CAAC;AAYpB;;;;GAIG;AACH,wBAAsB,WAAW,CAChC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAiD1B;AAED;;;GAGG;AACH,wBAAsB,YAAY,CACjC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CA+C3B;AAID;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC/C,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAmDnC;AAED;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAChD,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAwCnC;AAED;;;GAGG;AACH,wBAAsB,8BAA8B,CACnD,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,oBAAoB,EAC5B,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAwCnC"}
|
package/dist/curve.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"curve.js","sourceRoot":"","sources":["../src/curve.ts"],"names":[],"mappings":"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"}
|