@coinbarrel/sdk 1.3.0 → 2.0.1
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 +305 -305
- package/dist/accounts.d.ts.map +1 -1
- package/dist/accounts.js +48 -62
- package/dist/accounts.js.map +1 -1
- package/dist/constants.d.ts +2 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +20 -21
- package/dist/constants.js.map +1 -1
- package/dist/create.js +18 -21
- package/dist/create.js.map +1 -1
- package/dist/curve.d.ts +25 -2
- package/dist/curve.d.ts.map +1 -1
- package/dist/curve.js +121 -73
- package/dist/curve.js.map +1 -1
- package/dist/index.d.ts +22 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +54 -92
- package/dist/index.js.map +1 -1
- package/dist/metadata.js +8 -15
- package/dist/metadata.js.map +1 -1
- package/dist/pda.d.ts +18 -0
- package/dist/pda.d.ts.map +1 -1
- package/dist/pda.js +54 -36
- package/dist/pda.js.map +1 -1
- package/dist/pool.js +54 -61
- package/dist/pool.js.map +1 -1
- package/dist/rewards.js +28 -32
- package/dist/rewards.js.map +1 -1
- package/dist/types.d.ts +2 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -2
- package/dist/types.js.map +1 -1
- package/package.json +45 -44
package/dist/pool.js
CHANGED
|
@@ -1,19 +1,12 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* AMM Pool Operations
|
|
4
3
|
* Swap tokens on graduated AMM pools
|
|
5
4
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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");
|
|
5
|
+
import { SystemProgram, TransactionInstruction, } from "@solana/web3.js";
|
|
6
|
+
import { TOKEN_PROGRAM_ID, getAssociatedTokenAddressSync, createAssociatedTokenAccountInstruction, createCloseAccountInstruction, getAccount, } from "@solana/spl-token";
|
|
7
|
+
import { DISCRIMINATORS, NATIVE_MINT } from "./constants.js";
|
|
8
|
+
import { getPoolPda, getPoolAuthorityPda, getHolderRewardPda, } from "./pda.js";
|
|
9
|
+
import { getPoolState, getPoolBalances } from "./accounts.js";
|
|
17
10
|
// ============= Buffer Helpers =============
|
|
18
11
|
function writeU64LE(n) {
|
|
19
12
|
const b = Buffer.alloc(8);
|
|
@@ -24,9 +17,9 @@ function writeU64LE(n) {
|
|
|
24
17
|
/**
|
|
25
18
|
* Calculate swap quote for SOL -> Token
|
|
26
19
|
*/
|
|
27
|
-
async function getSwapSolToTokenQuote(connection, tokenMint, solIn, programId) {
|
|
28
|
-
const balances = await
|
|
29
|
-
const state = await
|
|
20
|
+
export async function getSwapSolToTokenQuote(connection, tokenMint, solIn, programId) {
|
|
21
|
+
const balances = await getPoolBalances(connection, tokenMint, programId);
|
|
22
|
+
const state = await getPoolState(connection, tokenMint, programId);
|
|
30
23
|
if (!balances || !state)
|
|
31
24
|
return null;
|
|
32
25
|
const { solBalance, tokenBalance } = balances;
|
|
@@ -55,9 +48,9 @@ async function getSwapSolToTokenQuote(connection, tokenMint, solIn, programId) {
|
|
|
55
48
|
/**
|
|
56
49
|
* Calculate swap quote for Token -> SOL
|
|
57
50
|
*/
|
|
58
|
-
async function getSwapTokenToSolQuote(connection, tokenMint, tokensIn, programId) {
|
|
59
|
-
const balances = await
|
|
60
|
-
const state = await
|
|
51
|
+
export async function getSwapTokenToSolQuote(connection, tokenMint, tokensIn, programId) {
|
|
52
|
+
const balances = await getPoolBalances(connection, tokenMint, programId);
|
|
53
|
+
const state = await getPoolState(connection, tokenMint, programId);
|
|
61
54
|
if (!balances || !state)
|
|
62
55
|
return null;
|
|
63
56
|
const { solBalance, tokenBalance } = balances;
|
|
@@ -90,31 +83,31 @@ async function getSwapTokenToSolQuote(connection, tokenMint, tokensIn, programId
|
|
|
90
83
|
* IMPORTANT: Fee recipients are read from on-chain state and cannot be modified.
|
|
91
84
|
* The program enforces that fees go to the correct recipients.
|
|
92
85
|
*/
|
|
93
|
-
async function buildSwapSolToTokenInstruction(connection, params, programId) {
|
|
86
|
+
export async function buildSwapSolToTokenInstruction(connection, params, programId) {
|
|
94
87
|
const { tokenMint, user, lamportsIn, minimumAmountOut } = params;
|
|
95
88
|
// Fetch pool state to get fee recipients and vault addresses (enforced on-chain)
|
|
96
|
-
const state = await
|
|
89
|
+
const state = await getPoolState(connection, tokenMint, programId);
|
|
97
90
|
if (!state) {
|
|
98
91
|
throw new Error("Pool not found for this token");
|
|
99
92
|
}
|
|
100
93
|
// Determine which vault is WSOL and which is the token based on stored mints
|
|
101
|
-
const isTokenANative = state.tokenAMint.equals(
|
|
94
|
+
const isTokenANative = state.tokenAMint.equals(NATIVE_MINT);
|
|
102
95
|
const wsolVault = isTokenANative ? state.tokenAVault : state.tokenBVault;
|
|
103
96
|
const tokenVault = isTokenANative ? state.tokenBVault : state.tokenAVault;
|
|
104
|
-
const pool =
|
|
105
|
-
const authority =
|
|
106
|
-
const userTokenAta =
|
|
107
|
-
const holderRewardAccount =
|
|
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);
|
|
108
101
|
const instructions = [];
|
|
109
102
|
// Check if user's token ATA exists, create if needed
|
|
110
103
|
try {
|
|
111
|
-
await
|
|
104
|
+
await getAccount(connection, userTokenAta);
|
|
112
105
|
}
|
|
113
106
|
catch {
|
|
114
|
-
instructions.push(
|
|
107
|
+
instructions.push(createAssociatedTokenAccountInstruction(user, userTokenAta, user, tokenMint));
|
|
115
108
|
}
|
|
116
109
|
// Build swap instruction
|
|
117
|
-
const swapIx = new
|
|
110
|
+
const swapIx = new TransactionInstruction({
|
|
118
111
|
programId,
|
|
119
112
|
keys: [
|
|
120
113
|
{ pubkey: pool, isWritable: true, isSigner: false },
|
|
@@ -128,11 +121,11 @@ async function buildSwapSolToTokenInstruction(connection, params, programId) {
|
|
|
128
121
|
// Holder reward account
|
|
129
122
|
{ pubkey: holderRewardAccount, isWritable: true, isSigner: false },
|
|
130
123
|
{ pubkey: user, isWritable: true, isSigner: true },
|
|
131
|
-
{ pubkey:
|
|
132
|
-
{ pubkey:
|
|
124
|
+
{ pubkey: TOKEN_PROGRAM_ID, isWritable: false, isSigner: false },
|
|
125
|
+
{ pubkey: SystemProgram.programId, isWritable: false, isSigner: false },
|
|
133
126
|
],
|
|
134
127
|
data: Buffer.concat([
|
|
135
|
-
|
|
128
|
+
DISCRIMINATORS.swap_sol_to_token,
|
|
136
129
|
writeU64LE(lamportsIn),
|
|
137
130
|
writeU64LE(minimumAmountOut),
|
|
138
131
|
]),
|
|
@@ -145,32 +138,32 @@ async function buildSwapSolToTokenInstruction(connection, params, programId) {
|
|
|
145
138
|
*
|
|
146
139
|
* IMPORTANT: Fee recipients are read from on-chain state and cannot be modified.
|
|
147
140
|
*/
|
|
148
|
-
async function buildSwapTokenToSolInstruction(connection, params, programId) {
|
|
141
|
+
export async function buildSwapTokenToSolInstruction(connection, params, programId) {
|
|
149
142
|
const { tokenMint, user, amountIn, minimumLamportsOut } = params;
|
|
150
143
|
// Fetch pool state to get fee recipients and vault addresses (enforced on-chain)
|
|
151
|
-
const state = await
|
|
144
|
+
const state = await getPoolState(connection, tokenMint, programId);
|
|
152
145
|
if (!state) {
|
|
153
146
|
throw new Error("Pool not found for this token");
|
|
154
147
|
}
|
|
155
148
|
// Determine which vault is WSOL and which is the token based on stored mints
|
|
156
|
-
const isTokenANative = state.tokenAMint.equals(
|
|
149
|
+
const isTokenANative = state.tokenAMint.equals(NATIVE_MINT);
|
|
157
150
|
const wsolVault = isTokenANative ? state.tokenAVault : state.tokenBVault;
|
|
158
151
|
const tokenVault = isTokenANative ? state.tokenBVault : state.tokenAVault;
|
|
159
|
-
const pool =
|
|
160
|
-
const authority =
|
|
161
|
-
const userTokenAta =
|
|
162
|
-
const userWsolAta =
|
|
163
|
-
const holderRewardAccount =
|
|
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);
|
|
164
157
|
const instructions = [];
|
|
165
158
|
// Create WSOL ATA if needed (for receiving output)
|
|
166
159
|
try {
|
|
167
|
-
await
|
|
160
|
+
await getAccount(connection, userWsolAta);
|
|
168
161
|
}
|
|
169
162
|
catch {
|
|
170
|
-
instructions.push(
|
|
163
|
+
instructions.push(createAssociatedTokenAccountInstruction(user, userWsolAta, user, NATIVE_MINT));
|
|
171
164
|
}
|
|
172
165
|
// Build swap instruction
|
|
173
|
-
const swapIx = new
|
|
166
|
+
const swapIx = new TransactionInstruction({
|
|
174
167
|
programId,
|
|
175
168
|
keys: [
|
|
176
169
|
{ pubkey: pool, isWritable: true, isSigner: false },
|
|
@@ -185,49 +178,49 @@ async function buildSwapTokenToSolInstruction(connection, params, programId) {
|
|
|
185
178
|
// Holder reward account
|
|
186
179
|
{ pubkey: holderRewardAccount, isWritable: true, isSigner: false },
|
|
187
180
|
{ pubkey: user, isWritable: true, isSigner: true },
|
|
188
|
-
{ pubkey:
|
|
189
|
-
{ pubkey:
|
|
181
|
+
{ pubkey: TOKEN_PROGRAM_ID, isWritable: false, isSigner: false },
|
|
182
|
+
{ pubkey: SystemProgram.programId, isWritable: false, isSigner: false },
|
|
190
183
|
],
|
|
191
184
|
data: Buffer.concat([
|
|
192
|
-
|
|
185
|
+
DISCRIMINATORS.swap_token_to_sol,
|
|
193
186
|
writeU64LE(amountIn),
|
|
194
187
|
writeU64LE(minimumLamportsOut),
|
|
195
188
|
]),
|
|
196
189
|
});
|
|
197
190
|
instructions.push(swapIx);
|
|
198
191
|
// Close WSOL account to unwrap to SOL
|
|
199
|
-
instructions.push(
|
|
192
|
+
instructions.push(createCloseAccountInstruction(userWsolAta, user, user));
|
|
200
193
|
return instructions;
|
|
201
194
|
}
|
|
202
195
|
/**
|
|
203
196
|
* Build swap_token_to_sol_max instruction (sell entire balance)
|
|
204
197
|
*/
|
|
205
|
-
async function buildSwapTokenToSolMaxInstruction(connection, params, programId) {
|
|
198
|
+
export async function buildSwapTokenToSolMaxInstruction(connection, params, programId) {
|
|
206
199
|
const { tokenMint, user } = params;
|
|
207
200
|
// Fetch pool state to get fee recipients and vault addresses (enforced on-chain)
|
|
208
|
-
const state = await
|
|
201
|
+
const state = await getPoolState(connection, tokenMint, programId);
|
|
209
202
|
if (!state) {
|
|
210
203
|
throw new Error("Pool not found for this token");
|
|
211
204
|
}
|
|
212
205
|
// Determine which vault is WSOL and which is the token based on stored mints
|
|
213
|
-
const isTokenANative = state.tokenAMint.equals(
|
|
206
|
+
const isTokenANative = state.tokenAMint.equals(NATIVE_MINT);
|
|
214
207
|
const wsolVault = isTokenANative ? state.tokenAVault : state.tokenBVault;
|
|
215
208
|
const tokenVault = isTokenANative ? state.tokenBVault : state.tokenAVault;
|
|
216
|
-
const pool =
|
|
217
|
-
const authority =
|
|
218
|
-
const userTokenAta =
|
|
219
|
-
const userWsolAta =
|
|
220
|
-
const holderRewardAccount =
|
|
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);
|
|
221
214
|
const instructions = [];
|
|
222
215
|
// Create WSOL ATA if needed (for receiving output)
|
|
223
216
|
try {
|
|
224
|
-
await
|
|
217
|
+
await getAccount(connection, userWsolAta);
|
|
225
218
|
}
|
|
226
219
|
catch {
|
|
227
|
-
instructions.push(
|
|
220
|
+
instructions.push(createAssociatedTokenAccountInstruction(user, userWsolAta, user, NATIVE_MINT));
|
|
228
221
|
}
|
|
229
222
|
// Build swap max instruction
|
|
230
|
-
const swapMaxIx = new
|
|
223
|
+
const swapMaxIx = new TransactionInstruction({
|
|
231
224
|
programId,
|
|
232
225
|
keys: [
|
|
233
226
|
{ pubkey: pool, isWritable: true, isSigner: false },
|
|
@@ -242,14 +235,14 @@ async function buildSwapTokenToSolMaxInstruction(connection, params, programId)
|
|
|
242
235
|
// Holder reward account
|
|
243
236
|
{ pubkey: holderRewardAccount, isWritable: true, isSigner: false },
|
|
244
237
|
{ pubkey: user, isWritable: true, isSigner: true },
|
|
245
|
-
{ pubkey:
|
|
246
|
-
{ pubkey:
|
|
238
|
+
{ pubkey: TOKEN_PROGRAM_ID, isWritable: false, isSigner: false },
|
|
239
|
+
{ pubkey: SystemProgram.programId, isWritable: false, isSigner: false },
|
|
247
240
|
],
|
|
248
|
-
data:
|
|
241
|
+
data: DISCRIMINATORS.swap_token_to_sol_max,
|
|
249
242
|
});
|
|
250
243
|
instructions.push(swapMaxIx);
|
|
251
244
|
// Close WSOL account to unwrap to SOL
|
|
252
|
-
instructions.push(
|
|
245
|
+
instructions.push(createCloseAccountInstruction(userWsolAta, user, user));
|
|
253
246
|
return instructions;
|
|
254
247
|
}
|
|
255
248
|
//# sourceMappingURL=pool.js.map
|
package/dist/pool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"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"}
|
package/dist/rewards.js
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Holder Rewards
|
|
4
3
|
* Claim accumulated holder rewards from bonding curves and AMM pools
|
|
5
4
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const constants_js_1 = require("./constants.js");
|
|
12
|
-
const pda_js_1 = require("./pda.js");
|
|
13
|
-
const accounts_js_1 = require("./accounts.js");
|
|
5
|
+
import { SystemProgram, TransactionInstruction } from '@solana/web3.js';
|
|
6
|
+
import { TOKEN_PROGRAM_ID, getAssociatedTokenAddressSync, createAssociatedTokenAccountInstruction, createCloseAccountInstruction, getAccount, } from '@solana/spl-token';
|
|
7
|
+
import { DISCRIMINATORS, NATIVE_MINT } from './constants.js';
|
|
8
|
+
import { getBondingCurvePda, getSolEscrowPda, getPoolPda, getPoolAuthorityPda, getHolderRewardPda, } from './pda.js';
|
|
9
|
+
import { getPoolState } from './accounts.js';
|
|
14
10
|
// ============= Claim from Bonding Curve =============
|
|
15
11
|
/**
|
|
16
12
|
* Build claim_holder_rewards_curve instruction
|
|
@@ -18,14 +14,14 @@ const accounts_js_1 = require("./accounts.js");
|
|
|
18
14
|
* Claims accumulated holder rewards from a bonding curve.
|
|
19
15
|
* Rewards are paid in SOL directly to the holder's wallet.
|
|
20
16
|
*/
|
|
21
|
-
async function buildClaimHolderRewardsCurveInstruction(connection, params, programId) {
|
|
17
|
+
export async function buildClaimHolderRewardsCurveInstruction(connection, params, programId) {
|
|
22
18
|
const { tokenMint, holder } = params;
|
|
23
19
|
// Derive PDAs
|
|
24
|
-
const bondingCurve =
|
|
25
|
-
const solEscrow =
|
|
26
|
-
const holderTokenAccount =
|
|
27
|
-
const holderRewardAccount =
|
|
28
|
-
const claimIx = new
|
|
20
|
+
const bondingCurve = getBondingCurvePda(tokenMint, programId);
|
|
21
|
+
const solEscrow = getSolEscrowPda(bondingCurve, programId);
|
|
22
|
+
const holderTokenAccount = getAssociatedTokenAddressSync(tokenMint, holder);
|
|
23
|
+
const holderRewardAccount = getHolderRewardPda(tokenMint, holder, programId);
|
|
24
|
+
const claimIx = new TransactionInstruction({
|
|
29
25
|
programId,
|
|
30
26
|
keys: [
|
|
31
27
|
{ pubkey: bondingCurve, isWritable: true, isSigner: false },
|
|
@@ -34,9 +30,9 @@ async function buildClaimHolderRewardsCurveInstruction(connection, params, progr
|
|
|
34
30
|
{ pubkey: holderTokenAccount, isWritable: false, isSigner: false },
|
|
35
31
|
{ pubkey: holderRewardAccount, isWritable: true, isSigner: false },
|
|
36
32
|
{ pubkey: holder, isWritable: true, isSigner: true },
|
|
37
|
-
{ pubkey:
|
|
33
|
+
{ pubkey: SystemProgram.programId, isWritable: false, isSigner: false },
|
|
38
34
|
],
|
|
39
|
-
data:
|
|
35
|
+
data: DISCRIMINATORS.claim_holder_rewards_curve,
|
|
40
36
|
});
|
|
41
37
|
return [claimIx];
|
|
42
38
|
}
|
|
@@ -47,32 +43,32 @@ async function buildClaimHolderRewardsCurveInstruction(connection, params, progr
|
|
|
47
43
|
* Claims accumulated holder rewards from an AMM pool (post-graduation).
|
|
48
44
|
* Rewards are paid in WSOL which is then unwrapped to SOL.
|
|
49
45
|
*/
|
|
50
|
-
async function buildClaimHolderRewardsInstruction(connection, params, programId) {
|
|
46
|
+
export async function buildClaimHolderRewardsInstruction(connection, params, programId) {
|
|
51
47
|
const { tokenMint, holder } = params;
|
|
52
48
|
// Fetch pool state
|
|
53
|
-
const state = await
|
|
49
|
+
const state = await getPoolState(connection, tokenMint, programId);
|
|
54
50
|
if (!state) {
|
|
55
51
|
throw new Error('Pool not found for this token');
|
|
56
52
|
}
|
|
57
53
|
// Derive PDAs
|
|
58
|
-
const pool =
|
|
59
|
-
const authority =
|
|
60
|
-
const holderTokenAccount =
|
|
61
|
-
const holderRewardAccount =
|
|
62
|
-
const holderWsolAccount =
|
|
54
|
+
const pool = getPoolPda(tokenMint, programId);
|
|
55
|
+
const authority = getPoolAuthorityPda(pool, programId);
|
|
56
|
+
const holderTokenAccount = getAssociatedTokenAddressSync(tokenMint, holder);
|
|
57
|
+
const holderRewardAccount = getHolderRewardPda(tokenMint, holder, programId);
|
|
58
|
+
const holderWsolAccount = getAssociatedTokenAddressSync(NATIVE_MINT, holder);
|
|
63
59
|
// Determine which vault is which
|
|
64
|
-
const isTokenANative = state.tokenAMint.equals(
|
|
60
|
+
const isTokenANative = state.tokenAMint.equals(NATIVE_MINT);
|
|
65
61
|
const solVault = isTokenANative ? state.tokenAVault : state.tokenBVault;
|
|
66
62
|
const tokenVault = isTokenANative ? state.tokenBVault : state.tokenAVault;
|
|
67
63
|
const instructions = [];
|
|
68
64
|
// Create WSOL ATA if needed
|
|
69
65
|
try {
|
|
70
|
-
await
|
|
66
|
+
await getAccount(connection, holderWsolAccount);
|
|
71
67
|
}
|
|
72
68
|
catch {
|
|
73
|
-
instructions.push(
|
|
69
|
+
instructions.push(createAssociatedTokenAccountInstruction(holder, holderWsolAccount, holder, NATIVE_MINT));
|
|
74
70
|
}
|
|
75
|
-
const claimIx = new
|
|
71
|
+
const claimIx = new TransactionInstruction({
|
|
76
72
|
programId,
|
|
77
73
|
keys: [
|
|
78
74
|
{ pubkey: pool, isWritable: true, isSigner: false },
|
|
@@ -85,14 +81,14 @@ async function buildClaimHolderRewardsInstruction(connection, params, programId)
|
|
|
85
81
|
{ pubkey: holderRewardAccount, isWritable: true, isSigner: false },
|
|
86
82
|
{ pubkey: authority, isWritable: false, isSigner: false },
|
|
87
83
|
{ pubkey: holder, isWritable: true, isSigner: true },
|
|
88
|
-
{ pubkey:
|
|
89
|
-
{ pubkey:
|
|
84
|
+
{ pubkey: TOKEN_PROGRAM_ID, isWritable: false, isSigner: false },
|
|
85
|
+
{ pubkey: SystemProgram.programId, isWritable: false, isSigner: false },
|
|
90
86
|
],
|
|
91
|
-
data:
|
|
87
|
+
data: DISCRIMINATORS.claim_holder_rewards,
|
|
92
88
|
});
|
|
93
89
|
instructions.push(claimIx);
|
|
94
90
|
// Close WSOL account to unwrap to SOL
|
|
95
|
-
instructions.push(
|
|
91
|
+
instructions.push(createCloseAccountInstruction(holderWsolAccount, holder, holder));
|
|
96
92
|
return instructions;
|
|
97
93
|
}
|
|
98
94
|
//# sourceMappingURL=rewards.js.map
|
package/dist/rewards.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rewards.js","sourceRoot":"","sources":["../src/rewards.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rewards.js","sourceRoot":"","sources":["../src/rewards.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -24,7 +24,8 @@ export interface BondingCurveState {
|
|
|
24
24
|
minPriceLamportsPerToken: bigint;
|
|
25
25
|
maxSupply: bigint;
|
|
26
26
|
totalSold: bigint;
|
|
27
|
-
|
|
27
|
+
accumulatedHolderRewardsSol: bigint;
|
|
28
|
+
rewardPerTokenStored: bigint;
|
|
28
29
|
}
|
|
29
30
|
export interface PoolState {
|
|
30
31
|
tokenAMint: PublicKey;
|
|
@@ -186,7 +187,5 @@ export interface MarketInfo {
|
|
|
186
187
|
circulatingSupply: bigint;
|
|
187
188
|
/** Fee rate in basis points */
|
|
188
189
|
feeBps: number;
|
|
189
|
-
/** Is trading paused? */
|
|
190
|
-
paused: boolean;
|
|
191
190
|
}
|
|
192
191
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAI9C,MAAM,WAAW,gBAAgB;IAChC,4BAA4B;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;CACjB;AAID,MAAM,WAAW,iBAAiB;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,iBAAiB,EAAE,SAAS,CAAC;IAC7B,mBAAmB,EAAE,SAAS,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,EAAE,MAAM,CAAC;IAC9B,wBAAwB,EAAE,MAAM,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/package.json
CHANGED
|
@@ -1,44 +1,45 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@coinbarrel/sdk",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "SDK for CoinBarrel AMM - bonding curves and liquidity pools on Solana",
|
|
5
|
-
"author": "CoinBarrel",
|
|
6
|
-
"license": "MIT",
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"@solana/
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"@solana/
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@coinbarrel/sdk",
|
|
3
|
+
"version": "2.0.1",
|
|
4
|
+
"description": "SDK for CoinBarrel AMM - bonding curves and liquidity pools on Solana",
|
|
5
|
+
"author": "CoinBarrel",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"main": "./dist/index.js",
|
|
9
|
+
"module": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"import": "./dist/index.js",
|
|
15
|
+
"default": "./dist/index.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist",
|
|
20
|
+
"README.md"
|
|
21
|
+
],
|
|
22
|
+
"scripts": {
|
|
23
|
+
"build": "tsc -p tsconfig.json",
|
|
24
|
+
"clean": "rm -rf dist",
|
|
25
|
+
"prepublishOnly": "npm run clean && npm run build"
|
|
26
|
+
},
|
|
27
|
+
"keywords": [
|
|
28
|
+
"solana",
|
|
29
|
+
"amm",
|
|
30
|
+
"bonding-curve",
|
|
31
|
+
"coinbarrel",
|
|
32
|
+
"defi",
|
|
33
|
+
"trading",
|
|
34
|
+
"sdk"
|
|
35
|
+
],
|
|
36
|
+
"peerDependencies": {
|
|
37
|
+
"@solana/spl-token": ">=0.4.0",
|
|
38
|
+
"@solana/web3.js": ">=1.90.0"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@solana/spl-token": "^0.4.14",
|
|
42
|
+
"@solana/web3.js": "^1.98.4",
|
|
43
|
+
"typescript": "^5.9.3"
|
|
44
|
+
}
|
|
45
|
+
}
|