@coinbarrel/sdk 2.0.0 → 2.0.2
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/dist/accounts.js +25 -33
- package/dist/accounts.js.map +1 -1
- package/dist/constants.js +17 -20
- 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.map +1 -1
- package/dist/curve.js +68 -76
- package/dist/curve.js.map +1 -1
- package/dist/index.js +28 -92
- package/dist/index.js.map +1 -1
- package/dist/metadata.js +8 -15
- package/dist/metadata.js.map +1 -1
- package/dist/pda.js +30 -44
- 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.js +1 -2
- package/dist/types.js.map +1 -1
- package/package.json +2 -1
package/dist/curve.js
CHANGED
|
@@ -1,22 +1,13 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Bonding Curve Operations
|
|
4
3
|
* Buy and sell tokens on the bonding curve
|
|
5
4
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
exports.buildSellMaxOnCurveInstruction = buildSellMaxOnCurveInstruction;
|
|
13
|
-
exports.willTriggerMigration = willTriggerMigration;
|
|
14
|
-
const web3_js_1 = require("@solana/web3.js");
|
|
15
|
-
const spl_token_1 = require("@solana/spl-token");
|
|
16
|
-
const constants_js_1 = require("./constants.js");
|
|
17
|
-
const web3_js_2 = require("@solana/web3.js");
|
|
18
|
-
const pda_js_1 = require("./pda.js");
|
|
19
|
-
const accounts_js_1 = require("./accounts.js");
|
|
5
|
+
import { SystemProgram, TransactionInstruction } from '@solana/web3.js';
|
|
6
|
+
import { TOKEN_PROGRAM_ID, getAssociatedTokenAddressSync, createAssociatedTokenAccountInstruction, getAccount, } from '@solana/spl-token';
|
|
7
|
+
import { DISCRIMINATORS, LAMPORTS_PER_SOL, TOKEN_DECIMALS_MULTIPLIER, NATIVE_MINT } from './constants.js';
|
|
8
|
+
import { SYSVAR_RENT_PUBKEY } from '@solana/web3.js';
|
|
9
|
+
import { getBondingCurvePda, getBondingAuthorityPda, getSolEscrowPda, getHolderRewardPda, getMigrationPDAs, } from './pda.js';
|
|
10
|
+
import { getBondingCurveState } from './accounts.js';
|
|
20
11
|
// ============= Buffer Helpers =============
|
|
21
12
|
function writeU64LE(n) {
|
|
22
13
|
const b = Buffer.alloc(8);
|
|
@@ -29,8 +20,8 @@ function writeU64LE(n) {
|
|
|
29
20
|
* Uses amplified constant product formula matching the program:
|
|
30
21
|
* k = vSol_eff * vToken_eff where _eff = base * amp_bps / 10000
|
|
31
22
|
*/
|
|
32
|
-
async function getBuyQuote(connection, tokenMint, solIn, programId) {
|
|
33
|
-
const state = await
|
|
23
|
+
export async function getBuyQuote(connection, tokenMint, solIn, programId) {
|
|
24
|
+
const state = await getBondingCurveState(connection, tokenMint, programId);
|
|
34
25
|
if (!state)
|
|
35
26
|
return null;
|
|
36
27
|
const feeBps = BigInt(state.feeBps);
|
|
@@ -56,8 +47,8 @@ async function getBuyQuote(connection, tokenMint, solIn, programId) {
|
|
|
56
47
|
const newVSolEff = vSolEff + netCost;
|
|
57
48
|
const newVTokenEff = kDiv;
|
|
58
49
|
// Price impact
|
|
59
|
-
const priceBeforeLamports = vTokenEff > 0n ? (vSolEff *
|
|
60
|
-
const priceAfterLamports = newVTokenEff > 0n ? (newVSolEff *
|
|
50
|
+
const priceBeforeLamports = vTokenEff > 0n ? (vSolEff * LAMPORTS_PER_SOL) / vTokenEff : 0n;
|
|
51
|
+
const priceAfterLamports = newVTokenEff > 0n ? (newVSolEff * LAMPORTS_PER_SOL) / newVTokenEff : 0n;
|
|
61
52
|
const priceImpactBps = priceBeforeLamports > 0n
|
|
62
53
|
? Number(((priceAfterLamports - priceBeforeLamports) * 10000n) / priceBeforeLamports)
|
|
63
54
|
: 0;
|
|
@@ -67,7 +58,7 @@ async function getBuyQuote(connection, tokenMint, solIn, programId) {
|
|
|
67
58
|
adminFee,
|
|
68
59
|
creatorFee,
|
|
69
60
|
holderRewards,
|
|
70
|
-
pricePerToken: tokensOut > 0n ? (solIn *
|
|
61
|
+
pricePerToken: tokensOut > 0n ? (solIn * TOKEN_DECIMALS_MULTIPLIER) / tokensOut : 0n,
|
|
71
62
|
priceImpactBps,
|
|
72
63
|
};
|
|
73
64
|
}
|
|
@@ -75,8 +66,8 @@ async function getBuyQuote(connection, tokenMint, solIn, programId) {
|
|
|
75
66
|
* Calculate sell quote for bonding curve
|
|
76
67
|
* Uses amplified constant product formula matching the program
|
|
77
68
|
*/
|
|
78
|
-
async function getSellQuote(connection, tokenMint, tokensIn, programId) {
|
|
79
|
-
const state = await
|
|
69
|
+
export async function getSellQuote(connection, tokenMint, tokensIn, programId) {
|
|
70
|
+
const state = await getBondingCurveState(connection, tokenMint, programId);
|
|
80
71
|
if (!state)
|
|
81
72
|
return null;
|
|
82
73
|
// Amplified constant product formula (matches program)
|
|
@@ -100,8 +91,8 @@ async function getSellQuote(connection, tokenMint, tokensIn, programId) {
|
|
|
100
91
|
const newVTokenEff = denominator;
|
|
101
92
|
const newVSolEff = kDiv;
|
|
102
93
|
// Price impact
|
|
103
|
-
const priceBeforeLamports = vTokenEff > 0n ? (vSolEff *
|
|
104
|
-
const priceAfterLamports = newVTokenEff > 0n ? (newVSolEff *
|
|
94
|
+
const priceBeforeLamports = vTokenEff > 0n ? (vSolEff * LAMPORTS_PER_SOL) / vTokenEff : 0n;
|
|
95
|
+
const priceAfterLamports = newVTokenEff > 0n ? (newVSolEff * LAMPORTS_PER_SOL) / newVTokenEff : 0n;
|
|
105
96
|
const priceImpactBps = priceBeforeLamports > 0n
|
|
106
97
|
? Number(((priceBeforeLamports - priceAfterLamports) * 10000n) / priceBeforeLamports)
|
|
107
98
|
: 0;
|
|
@@ -111,7 +102,7 @@ async function getSellQuote(connection, tokenMint, tokensIn, programId) {
|
|
|
111
102
|
adminFee,
|
|
112
103
|
creatorFee,
|
|
113
104
|
holderRewards,
|
|
114
|
-
pricePerToken: tokensIn > 0n ? (solOutNetEff *
|
|
105
|
+
pricePerToken: tokensIn > 0n ? (solOutNetEff * TOKEN_DECIMALS_MULTIPLIER) / tokensIn : 0n,
|
|
115
106
|
priceImpactBps,
|
|
116
107
|
};
|
|
117
108
|
}
|
|
@@ -125,33 +116,33 @@ async function getSellQuote(connection, tokenMint, tokensIn, programId) {
|
|
|
125
116
|
*
|
|
126
117
|
* Fee recipients are read from on-chain state and cannot be modified.
|
|
127
118
|
*/
|
|
128
|
-
async function buildBuyOnCurveInstruction(connection, params, programId) {
|
|
119
|
+
export async function buildBuyOnCurveInstruction(connection, params, programId) {
|
|
129
120
|
const { tokenMint, buyer, lamportsIn } = params;
|
|
130
121
|
// Fetch curve state to get fee recipients (enforced on-chain)
|
|
131
|
-
const state = await
|
|
122
|
+
const state = await getBondingCurveState(connection, tokenMint, programId);
|
|
132
123
|
if (!state) {
|
|
133
124
|
throw new Error('Bonding curve not found for this token');
|
|
134
125
|
}
|
|
135
|
-
const bondingCurve =
|
|
136
|
-
const bondingAuthority =
|
|
137
|
-
const solEscrow =
|
|
138
|
-
const buyerAta =
|
|
139
|
-
const holderRewardAccount =
|
|
126
|
+
const bondingCurve = getBondingCurvePda(tokenMint, programId);
|
|
127
|
+
const bondingAuthority = getBondingAuthorityPda(bondingCurve, programId);
|
|
128
|
+
const solEscrow = getSolEscrowPda(bondingCurve, programId);
|
|
129
|
+
const buyerAta = getAssociatedTokenAddressSync(tokenMint, buyer);
|
|
130
|
+
const holderRewardAccount = getHolderRewardPda(tokenMint, buyer, programId);
|
|
140
131
|
// Always derive migration PDAs - program requires them
|
|
141
|
-
const migrationPDAs =
|
|
132
|
+
const migrationPDAs = getMigrationPDAs(tokenMint, programId);
|
|
142
133
|
const instructions = [];
|
|
143
134
|
// Check if buyer's ATA exists, create if needed
|
|
144
135
|
try {
|
|
145
|
-
await
|
|
136
|
+
await getAccount(connection, buyerAta);
|
|
146
137
|
}
|
|
147
138
|
catch {
|
|
148
|
-
instructions.push(
|
|
139
|
+
instructions.push(createAssociatedTokenAccountInstruction(buyer, buyerAta, buyer, tokenMint));
|
|
149
140
|
}
|
|
150
141
|
// Build buy instruction with migration accounts in remaining_accounts
|
|
151
|
-
// Layout for inline_migrate (remaining_accounts indices
|
|
152
|
-
// [
|
|
153
|
-
// [
|
|
154
|
-
const buyIx = new
|
|
142
|
+
// Layout for inline_migrate (remaining_accounts indices 0-14, 15 accounts total):
|
|
143
|
+
// [0] pool, [1] wsol_mint, [2] token_a_vault, [3] token_b_vault, [4] lp_mint, [5] lp_vault, [6] pool_authority, [7] rent
|
|
144
|
+
// [8] token_vault (bonding), [9] sol_escrow, [10] bonding_authority, [11] creator_fee_recipient, [12] buyer, [13] system_program, [14] token_mint
|
|
145
|
+
const buyIx = new TransactionInstruction({
|
|
155
146
|
programId,
|
|
156
147
|
keys: [
|
|
157
148
|
// Formal accounts (match BuyOnCurve struct)
|
|
@@ -165,25 +156,26 @@ async function buildBuyOnCurveInstruction(connection, params, programId) {
|
|
|
165
156
|
{ pubkey: state.adminFeeRecipient, isWritable: true, isSigner: false },
|
|
166
157
|
{ pubkey: state.creatorFeeRecipient, isWritable: true, isSigner: false },
|
|
167
158
|
{ pubkey: holderRewardAccount, isWritable: true, isSigner: false },
|
|
168
|
-
{ pubkey:
|
|
169
|
-
{ pubkey:
|
|
170
|
-
// Migration accounts (remaining_accounts[
|
|
159
|
+
{ pubkey: TOKEN_PROGRAM_ID, isWritable: false, isSigner: false },
|
|
160
|
+
{ pubkey: SystemProgram.programId, isWritable: false, isSigner: false },
|
|
161
|
+
// Migration accounts (remaining_accounts[0-14])
|
|
171
162
|
{ pubkey: migrationPDAs.poolPda, isWritable: true, isSigner: false },
|
|
172
|
-
{ pubkey:
|
|
163
|
+
{ pubkey: NATIVE_MINT, isWritable: false, isSigner: false },
|
|
173
164
|
{ pubkey: migrationPDAs.tokenAVaultPda, isWritable: true, isSigner: false },
|
|
174
165
|
{ pubkey: migrationPDAs.tokenBVaultPda, isWritable: true, isSigner: false },
|
|
175
166
|
{ pubkey: migrationPDAs.lpMintPda, isWritable: true, isSigner: false },
|
|
176
167
|
{ pubkey: migrationPDAs.lpVaultPda, isWritable: true, isSigner: false },
|
|
177
168
|
{ pubkey: migrationPDAs.poolAuthorityPda, isWritable: false, isSigner: false },
|
|
178
|
-
{ pubkey:
|
|
169
|
+
{ pubkey: SYSVAR_RENT_PUBKEY, isWritable: false, isSigner: false },
|
|
179
170
|
{ pubkey: state.tokenVault, isWritable: true, isSigner: false },
|
|
180
171
|
{ pubkey: solEscrow, isWritable: true, isSigner: false },
|
|
181
172
|
{ pubkey: bondingAuthority, isWritable: false, isSigner: false },
|
|
182
173
|
{ pubkey: state.creatorFeeRecipient, isWritable: true, isSigner: false },
|
|
183
|
-
{ pubkey: buyer, isWritable: true, isSigner:
|
|
184
|
-
{ pubkey:
|
|
174
|
+
{ pubkey: buyer, isWritable: true, isSigner: true }, // Must be signer for account creation in CPI
|
|
175
|
+
{ pubkey: SystemProgram.programId, isWritable: false, isSigner: false },
|
|
176
|
+
{ pubkey: tokenMint, isWritable: false, isSigner: false }, // Token mint for initialize_account3 CPI
|
|
185
177
|
],
|
|
186
|
-
data: Buffer.concat([
|
|
178
|
+
data: Buffer.concat([DISCRIMINATORS.buy_on_curve, writeU64LE(lamportsIn)]),
|
|
187
179
|
});
|
|
188
180
|
instructions.push(buyIx);
|
|
189
181
|
return instructions;
|
|
@@ -194,19 +186,19 @@ async function buildBuyOnCurveInstruction(connection, params, programId) {
|
|
|
194
186
|
* IMPORTANT: Fee recipients are read from on-chain state and cannot be modified.
|
|
195
187
|
* Includes holder reward account in remaining_accounts for auto-payout.
|
|
196
188
|
*/
|
|
197
|
-
async function buildSellOnCurveInstruction(connection, params, programId) {
|
|
189
|
+
export async function buildSellOnCurveInstruction(connection, params, programId) {
|
|
198
190
|
const { tokenMint, seller, tokenAmount } = params;
|
|
199
191
|
// Fetch curve state to get fee recipients (enforced on-chain)
|
|
200
|
-
const state = await
|
|
192
|
+
const state = await getBondingCurveState(connection, tokenMint, programId);
|
|
201
193
|
if (!state) {
|
|
202
194
|
throw new Error('Bonding curve not found for this token');
|
|
203
195
|
}
|
|
204
|
-
const bondingCurve =
|
|
205
|
-
const bondingAuthority =
|
|
206
|
-
const solEscrow =
|
|
207
|
-
const sellerAta =
|
|
208
|
-
const holderRewardAccount =
|
|
209
|
-
const sellIx = new
|
|
196
|
+
const bondingCurve = getBondingCurvePda(tokenMint, programId);
|
|
197
|
+
const bondingAuthority = getBondingAuthorityPda(bondingCurve, programId);
|
|
198
|
+
const solEscrow = getSolEscrowPda(bondingCurve, programId);
|
|
199
|
+
const sellerAta = getAssociatedTokenAddressSync(tokenMint, seller);
|
|
200
|
+
const holderRewardAccount = getHolderRewardPda(tokenMint, seller, programId);
|
|
201
|
+
const sellIx = new TransactionInstruction({
|
|
210
202
|
programId,
|
|
211
203
|
keys: [
|
|
212
204
|
{ pubkey: bondingCurve, isWritable: true, isSigner: false },
|
|
@@ -219,12 +211,12 @@ async function buildSellOnCurveInstruction(connection, params, programId) {
|
|
|
219
211
|
// Fee recipients - read from on-chain state, cannot be modified
|
|
220
212
|
{ pubkey: state.adminFeeRecipient, isWritable: true, isSigner: false },
|
|
221
213
|
{ pubkey: state.creatorFeeRecipient, isWritable: true, isSigner: false },
|
|
222
|
-
{ pubkey:
|
|
223
|
-
{ pubkey:
|
|
214
|
+
{ pubkey: TOKEN_PROGRAM_ID, isWritable: false, isSigner: false },
|
|
215
|
+
{ pubkey: SystemProgram.programId, isWritable: false, isSigner: false },
|
|
224
216
|
// Holder reward account in remaining_accounts for auto-payout
|
|
225
217
|
{ pubkey: holderRewardAccount, isWritable: true, isSigner: false },
|
|
226
218
|
],
|
|
227
|
-
data: Buffer.concat([
|
|
219
|
+
data: Buffer.concat([DISCRIMINATORS.sell_on_curve, writeU64LE(tokenAmount)]),
|
|
228
220
|
});
|
|
229
221
|
return [sellIx];
|
|
230
222
|
}
|
|
@@ -232,19 +224,19 @@ async function buildSellOnCurveInstruction(connection, params, programId) {
|
|
|
232
224
|
* Build sell_max_on_curve instruction (sell entire balance)
|
|
233
225
|
* Includes holder reward account in remaining_accounts for auto-payout.
|
|
234
226
|
*/
|
|
235
|
-
async function buildSellMaxOnCurveInstruction(connection, params, programId) {
|
|
227
|
+
export async function buildSellMaxOnCurveInstruction(connection, params, programId) {
|
|
236
228
|
const { tokenMint, seller } = params;
|
|
237
229
|
// Fetch curve state to get fee recipients (enforced on-chain)
|
|
238
|
-
const state = await
|
|
230
|
+
const state = await getBondingCurveState(connection, tokenMint, programId);
|
|
239
231
|
if (!state) {
|
|
240
232
|
throw new Error('Bonding curve not found for this token');
|
|
241
233
|
}
|
|
242
|
-
const bondingCurve =
|
|
243
|
-
const bondingAuthority =
|
|
244
|
-
const solEscrow =
|
|
245
|
-
const sellerAta =
|
|
246
|
-
const holderRewardAccount =
|
|
247
|
-
const sellMaxIx = new
|
|
234
|
+
const bondingCurve = getBondingCurvePda(tokenMint, programId);
|
|
235
|
+
const bondingAuthority = getBondingAuthorityPda(bondingCurve, programId);
|
|
236
|
+
const solEscrow = getSolEscrowPda(bondingCurve, programId);
|
|
237
|
+
const sellerAta = getAssociatedTokenAddressSync(tokenMint, seller);
|
|
238
|
+
const holderRewardAccount = getHolderRewardPda(tokenMint, seller, programId);
|
|
239
|
+
const sellMaxIx = new TransactionInstruction({
|
|
248
240
|
programId,
|
|
249
241
|
keys: [
|
|
250
242
|
{ pubkey: bondingCurve, isWritable: true, isSigner: false },
|
|
@@ -257,12 +249,12 @@ async function buildSellMaxOnCurveInstruction(connection, params, programId) {
|
|
|
257
249
|
// Fee recipients - read from on-chain state, cannot be modified
|
|
258
250
|
{ pubkey: state.adminFeeRecipient, isWritable: true, isSigner: false },
|
|
259
251
|
{ pubkey: state.creatorFeeRecipient, isWritable: true, isSigner: false },
|
|
260
|
-
{ pubkey:
|
|
261
|
-
{ pubkey:
|
|
252
|
+
{ pubkey: TOKEN_PROGRAM_ID, isWritable: false, isSigner: false },
|
|
253
|
+
{ pubkey: SystemProgram.programId, isWritable: false, isSigner: false },
|
|
262
254
|
// Holder reward account in remaining_accounts for auto-payout
|
|
263
255
|
{ pubkey: holderRewardAccount, isWritable: true, isSigner: false },
|
|
264
256
|
],
|
|
265
|
-
data:
|
|
257
|
+
data: DISCRIMINATORS.sell_max_on_curve,
|
|
266
258
|
});
|
|
267
259
|
return [sellMaxIx];
|
|
268
260
|
}
|
|
@@ -272,7 +264,7 @@ async function buildSellMaxOnCurveInstruction(connection, params, programId) {
|
|
|
272
264
|
* Variant 0: 90 SOL
|
|
273
265
|
* Variant 1: 120 SOL
|
|
274
266
|
*/
|
|
275
|
-
|
|
267
|
+
export const MIGRATION_THRESHOLDS = {
|
|
276
268
|
0: 90000000000n, // 90 SOL
|
|
277
269
|
1: 120000000000n, // 120 SOL
|
|
278
270
|
};
|
|
@@ -285,12 +277,12 @@ exports.MIGRATION_THRESHOLDS = {
|
|
|
285
277
|
* @param programId - CoinBarrel program ID
|
|
286
278
|
* @returns true if this buy will push the escrow past migration threshold
|
|
287
279
|
*/
|
|
288
|
-
async function willTriggerMigration(connection, tokenMint, lamportsIn, programId) {
|
|
289
|
-
const state = await
|
|
280
|
+
export async function willTriggerMigration(connection, tokenMint, lamportsIn, programId) {
|
|
281
|
+
const state = await getBondingCurveState(connection, tokenMint, programId);
|
|
290
282
|
if (!state)
|
|
291
283
|
return false;
|
|
292
|
-
const bondingCurve =
|
|
293
|
-
const solEscrow =
|
|
284
|
+
const bondingCurve = getBondingCurvePda(tokenMint, programId);
|
|
285
|
+
const solEscrow = getSolEscrowPda(bondingCurve, programId);
|
|
294
286
|
// Get current escrow balance
|
|
295
287
|
const escrowInfo = await connection.getAccountInfo(solEscrow);
|
|
296
288
|
const currentEscrow = BigInt(escrowInfo ? escrowInfo.lamports : 0);
|
|
@@ -300,11 +292,11 @@ async function willTriggerMigration(connection, tokenMint, lamportsIn, programId
|
|
|
300
292
|
const approxNetToEscrow = (lamportsIn * (10000n - feeBps)) / 10000n;
|
|
301
293
|
const postBuyEscrow = currentEscrow + approxNetToEscrow;
|
|
302
294
|
// Get threshold for this variant
|
|
303
|
-
const threshold =
|
|
295
|
+
const threshold = MIGRATION_THRESHOLDS[state.variant] ?? MIGRATION_THRESHOLDS[0];
|
|
304
296
|
return postBuyEscrow >= threshold;
|
|
305
297
|
}
|
|
306
298
|
/**
|
|
307
299
|
* @deprecated Use buildBuyOnCurveInstruction instead - it now always includes migration accounts
|
|
308
300
|
*/
|
|
309
|
-
|
|
301
|
+
export const buildBuyOnCurveWithMigrationInstruction = buildBuyOnCurveInstruction;
|
|
310
302
|
//# sourceMappingURL=curve.js.map
|
package/dist/curve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curve.js","sourceRoot":"","sources":["../src/curve.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"curve.js","sourceRoot":"","sources":["../src/curve.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* CoinBarrel SDK
|
|
4
3
|
*
|
|
@@ -27,88 +26,26 @@
|
|
|
27
26
|
*
|
|
28
27
|
* @packageDocumentation
|
|
29
28
|
*/
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if (k2 === undefined) k2 = k;
|
|
39
|
-
o[k2] = m[k];
|
|
40
|
-
}));
|
|
41
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
42
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
43
|
-
}) : function(o, v) {
|
|
44
|
-
o["default"] = v;
|
|
45
|
-
});
|
|
46
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
47
|
-
var ownKeys = function(o) {
|
|
48
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
49
|
-
var ar = [];
|
|
50
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
51
|
-
return ar;
|
|
52
|
-
};
|
|
53
|
-
return ownKeys(o);
|
|
54
|
-
};
|
|
55
|
-
return function (mod) {
|
|
56
|
-
if (mod && mod.__esModule) return mod;
|
|
57
|
-
var result = {};
|
|
58
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
59
|
-
__setModuleDefault(result, mod);
|
|
60
|
-
return result;
|
|
61
|
-
};
|
|
62
|
-
})();
|
|
63
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
64
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
65
|
-
};
|
|
66
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
67
|
-
exports.CoinBarrel = exports.buildClaimHolderRewardsInstruction = exports.buildClaimHolderRewardsCurveInstruction = exports.buildCreateBarrelTokenInstruction = exports.parseMetaplexMetadata = exports.getMetadataPda = exports.batchGetTokenMetadata = exports.getTokenMetadataJson = exports.getTokenMetadata = exports.getSwapTokenToSolQuote = exports.getSwapSolToTokenQuote = exports.getMigrationPDAs = exports.buildBuyOnCurveWithMigrationInstruction = exports.buildBuyOnCurveInstruction = exports.MIGRATION_THRESHOLDS = exports.willTriggerMigration = exports.getSellQuote = exports.getBuyQuote = exports.getUserTokenBalance = exports.getMarketInfo = exports.getPoolState = exports.getBondingCurveState = void 0;
|
|
68
|
-
exports.solToLamports = solToLamports;
|
|
69
|
-
exports.lamportsToSol = lamportsToSol;
|
|
70
|
-
exports.toRawAmount = toRawAmount;
|
|
71
|
-
exports.toUiAmount = toUiAmount;
|
|
72
|
-
const constants_js_1 = require("./constants.js");
|
|
73
|
-
const pda = __importStar(require("./pda.js"));
|
|
74
|
-
const accounts = __importStar(require("./accounts.js"));
|
|
75
|
-
const curve = __importStar(require("./curve.js"));
|
|
76
|
-
const pool = __importStar(require("./pool.js"));
|
|
77
|
-
const metadata = __importStar(require("./metadata.js"));
|
|
78
|
-
const create = __importStar(require("./create.js"));
|
|
79
|
-
const rewards = __importStar(require("./rewards.js"));
|
|
29
|
+
import { PROGRAM_IDS, ADMIN_FEE_RECIPIENTS, LAMPORTS_PER_SOL } from './constants.js';
|
|
30
|
+
import * as pda from './pda.js';
|
|
31
|
+
import * as accounts from './accounts.js';
|
|
32
|
+
import * as curve from './curve.js';
|
|
33
|
+
import * as pool from './pool.js';
|
|
34
|
+
import * as metadata from './metadata.js';
|
|
35
|
+
import * as create from './create.js';
|
|
36
|
+
import * as rewards from './rewards.js';
|
|
80
37
|
// ============= Re-exports =============
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
Object.defineProperty(exports, "willTriggerMigration", { enumerable: true, get: function () { return curve_js_1.willTriggerMigration; } });
|
|
93
|
-
Object.defineProperty(exports, "MIGRATION_THRESHOLDS", { enumerable: true, get: function () { return curve_js_1.MIGRATION_THRESHOLDS; } });
|
|
94
|
-
Object.defineProperty(exports, "buildBuyOnCurveInstruction", { enumerable: true, get: function () { return curve_js_1.buildBuyOnCurveInstruction; } });
|
|
95
|
-
Object.defineProperty(exports, "buildBuyOnCurveWithMigrationInstruction", { enumerable: true, get: function () { return curve_js_1.buildBuyOnCurveWithMigrationInstruction; } });
|
|
96
|
-
var pda_js_1 = require("./pda.js");
|
|
97
|
-
Object.defineProperty(exports, "getMigrationPDAs", { enumerable: true, get: function () { return pda_js_1.getMigrationPDAs; } });
|
|
98
|
-
var pool_js_1 = require("./pool.js");
|
|
99
|
-
Object.defineProperty(exports, "getSwapSolToTokenQuote", { enumerable: true, get: function () { return pool_js_1.getSwapSolToTokenQuote; } });
|
|
100
|
-
Object.defineProperty(exports, "getSwapTokenToSolQuote", { enumerable: true, get: function () { return pool_js_1.getSwapTokenToSolQuote; } });
|
|
101
|
-
var metadata_js_1 = require("./metadata.js");
|
|
102
|
-
Object.defineProperty(exports, "getTokenMetadata", { enumerable: true, get: function () { return metadata_js_1.getTokenMetadata; } });
|
|
103
|
-
Object.defineProperty(exports, "getTokenMetadataJson", { enumerable: true, get: function () { return metadata_js_1.getTokenMetadataJson; } });
|
|
104
|
-
Object.defineProperty(exports, "batchGetTokenMetadata", { enumerable: true, get: function () { return metadata_js_1.batchGetTokenMetadata; } });
|
|
105
|
-
Object.defineProperty(exports, "getMetadataPda", { enumerable: true, get: function () { return metadata_js_1.getMetadataPda; } });
|
|
106
|
-
Object.defineProperty(exports, "parseMetaplexMetadata", { enumerable: true, get: function () { return metadata_js_1.parseMetaplexMetadata; } });
|
|
107
|
-
var create_js_1 = require("./create.js");
|
|
108
|
-
Object.defineProperty(exports, "buildCreateBarrelTokenInstruction", { enumerable: true, get: function () { return create_js_1.buildCreateBarrelTokenInstruction; } });
|
|
109
|
-
var rewards_js_1 = require("./rewards.js");
|
|
110
|
-
Object.defineProperty(exports, "buildClaimHolderRewardsCurveInstruction", { enumerable: true, get: function () { return rewards_js_1.buildClaimHolderRewardsCurveInstruction; } });
|
|
111
|
-
Object.defineProperty(exports, "buildClaimHolderRewardsInstruction", { enumerable: true, get: function () { return rewards_js_1.buildClaimHolderRewardsInstruction; } });
|
|
38
|
+
export * from './constants.js';
|
|
39
|
+
export * from './types.js';
|
|
40
|
+
export * from './pda.js';
|
|
41
|
+
export { getBondingCurveState, getPoolState, getMarketInfo, getUserTokenBalance, } from './accounts.js';
|
|
42
|
+
export { getBuyQuote, getSellQuote, willTriggerMigration, MIGRATION_THRESHOLDS, buildBuyOnCurveInstruction, buildBuyOnCurveWithMigrationInstruction, // deprecated, alias for buildBuyOnCurveInstruction
|
|
43
|
+
} from './curve.js';
|
|
44
|
+
export { getMigrationPDAs } from './pda.js';
|
|
45
|
+
export { getSwapSolToTokenQuote, getSwapTokenToSolQuote } from './pool.js';
|
|
46
|
+
export { getTokenMetadata, getTokenMetadataJson, batchGetTokenMetadata, getMetadataPda, parseMetaplexMetadata, } from './metadata.js';
|
|
47
|
+
export { buildCreateBarrelTokenInstruction } from './create.js';
|
|
48
|
+
export { buildClaimHolderRewardsCurveInstruction, buildClaimHolderRewardsInstruction, } from './rewards.js';
|
|
112
49
|
// ============= SDK Class =============
|
|
113
50
|
/**
|
|
114
51
|
* CoinBarrel SDK - Main entry point
|
|
@@ -122,7 +59,7 @@ Object.defineProperty(exports, "buildClaimHolderRewardsInstruction", { enumerabl
|
|
|
122
59
|
* Fee recipients are read from on-chain state and cannot be modified.
|
|
123
60
|
* The program enforces that all fees go to the correct recipients.
|
|
124
61
|
*/
|
|
125
|
-
class CoinBarrel {
|
|
62
|
+
export class CoinBarrel {
|
|
126
63
|
/** Solana RPC connection */
|
|
127
64
|
connection;
|
|
128
65
|
/** Network (devnet or mainnet) */
|
|
@@ -138,8 +75,8 @@ class CoinBarrel {
|
|
|
138
75
|
constructor(config) {
|
|
139
76
|
this.connection = config.connection;
|
|
140
77
|
this.network = config.network;
|
|
141
|
-
this.programId =
|
|
142
|
-
this.adminFeeRecipient =
|
|
78
|
+
this.programId = PROGRAM_IDS[config.network];
|
|
79
|
+
this.adminFeeRecipient = ADMIN_FEE_RECIPIENTS[config.network];
|
|
143
80
|
this.curve = new CurveModule(this);
|
|
144
81
|
this.pool = new PoolModule(this);
|
|
145
82
|
}
|
|
@@ -271,7 +208,6 @@ class CoinBarrel {
|
|
|
271
208
|
return rewards.buildClaimHolderRewardsInstruction(this.connection, { tokenMint, holder }, this.programId);
|
|
272
209
|
}
|
|
273
210
|
}
|
|
274
|
-
exports.CoinBarrel = CoinBarrel;
|
|
275
211
|
// ============= Curve Module =============
|
|
276
212
|
/**
|
|
277
213
|
* Bonding Curve Operations
|
|
@@ -403,25 +339,25 @@ class PoolModule {
|
|
|
403
339
|
/**
|
|
404
340
|
* Convert SOL to lamports
|
|
405
341
|
*/
|
|
406
|
-
function solToLamports(sol) {
|
|
407
|
-
return BigInt(Math.floor(sol * Number(
|
|
342
|
+
export function solToLamports(sol) {
|
|
343
|
+
return BigInt(Math.floor(sol * Number(LAMPORTS_PER_SOL)));
|
|
408
344
|
}
|
|
409
345
|
/**
|
|
410
346
|
* Convert lamports to SOL
|
|
411
347
|
*/
|
|
412
|
-
function lamportsToSol(lamports) {
|
|
413
|
-
return Number(lamports) / Number(
|
|
348
|
+
export function lamportsToSol(lamports) {
|
|
349
|
+
return Number(lamports) / Number(LAMPORTS_PER_SOL);
|
|
414
350
|
}
|
|
415
351
|
/**
|
|
416
352
|
* Convert token amount to raw (with decimals)
|
|
417
353
|
*/
|
|
418
|
-
function toRawAmount(amount, decimals = 6) {
|
|
354
|
+
export function toRawAmount(amount, decimals = 6) {
|
|
419
355
|
return BigInt(Math.floor(amount * 10 ** decimals));
|
|
420
356
|
}
|
|
421
357
|
/**
|
|
422
358
|
* Convert raw amount to UI (without decimals)
|
|
423
359
|
*/
|
|
424
|
-
function toUiAmount(rawAmount, decimals = 6) {
|
|
360
|
+
export function toUiAmount(rawAmount, decimals = 6) {
|
|
425
361
|
return Number(rawAmount) / 10 ** decimals;
|
|
426
362
|
}
|
|
427
363
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/metadata.js
CHANGED
|
@@ -1,22 +1,15 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Token Metadata Fetching
|
|
4
3
|
* Read Metaplex token metadata for CoinBarrel tokens
|
|
5
4
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
exports.parseMetaplexMetadata = parseMetaplexMetadata;
|
|
9
|
-
exports.getTokenMetadata = getTokenMetadata;
|
|
10
|
-
exports.getTokenMetadataJson = getTokenMetadataJson;
|
|
11
|
-
exports.batchGetTokenMetadata = batchGetTokenMetadata;
|
|
12
|
-
const web3_js_1 = require("@solana/web3.js");
|
|
13
|
-
const constants_js_1 = require("./constants.js");
|
|
5
|
+
import { PublicKey } from '@solana/web3.js';
|
|
6
|
+
import { TOKEN_METADATA_PROGRAM_ID } from './constants.js';
|
|
14
7
|
// ============= PDA =============
|
|
15
8
|
/**
|
|
16
9
|
* Derive Metaplex metadata PDA for a token mint
|
|
17
10
|
*/
|
|
18
|
-
function getMetadataPda(mint) {
|
|
19
|
-
const [pda] =
|
|
11
|
+
export function getMetadataPda(mint) {
|
|
12
|
+
const [pda] = PublicKey.findProgramAddressSync([Buffer.from('metadata'), TOKEN_METADATA_PROGRAM_ID.toBuffer(), mint.toBuffer()], TOKEN_METADATA_PROGRAM_ID);
|
|
20
13
|
return pda;
|
|
21
14
|
}
|
|
22
15
|
// ============= Parsing =============
|
|
@@ -45,7 +38,7 @@ function readLengthPrefixedString(data, offset) {
|
|
|
45
38
|
* - symbol: 4 bytes length + string
|
|
46
39
|
* - uri: 4 bytes length + string
|
|
47
40
|
*/
|
|
48
|
-
function parseMetaplexMetadata(data) {
|
|
41
|
+
export function parseMetaplexMetadata(data) {
|
|
49
42
|
try {
|
|
50
43
|
if (!data || data.length < 65)
|
|
51
44
|
return null;
|
|
@@ -86,7 +79,7 @@ function parseMetaplexMetadata(data) {
|
|
|
86
79
|
* }
|
|
87
80
|
* ```
|
|
88
81
|
*/
|
|
89
|
-
async function getTokenMetadata(connection, mint) {
|
|
82
|
+
export async function getTokenMetadata(connection, mint) {
|
|
90
83
|
try {
|
|
91
84
|
const metadataPda = getMetadataPda(mint);
|
|
92
85
|
const accountInfo = await connection.getAccountInfo(metadataPda);
|
|
@@ -102,7 +95,7 @@ async function getTokenMetadata(connection, mint) {
|
|
|
102
95
|
/**
|
|
103
96
|
* Fetch on-chain Metaplex metadata and then fetch the off-chain JSON pointed to by the URI.
|
|
104
97
|
*/
|
|
105
|
-
async function getTokenMetadataJson(connection, mint, options) {
|
|
98
|
+
export async function getTokenMetadataJson(connection, mint, options) {
|
|
106
99
|
const meta = await getTokenMetadata(connection, mint);
|
|
107
100
|
if (!meta)
|
|
108
101
|
return null;
|
|
@@ -175,7 +168,7 @@ async function getTokenMetadataJson(connection, mint, options) {
|
|
|
175
168
|
* }
|
|
176
169
|
* ```
|
|
177
170
|
*/
|
|
178
|
-
async function batchGetTokenMetadata(connection, mints) {
|
|
171
|
+
export async function batchGetTokenMetadata(connection, mints) {
|
|
179
172
|
const results = new Map();
|
|
180
173
|
if (mints.length === 0) {
|
|
181
174
|
return results;
|