@coinbarrel/sdk 1.2.0 → 2.0.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.
@@ -0,0 +1,274 @@
1
+ /**
2
+ * CoinBarrel SDK
3
+ *
4
+ * SDK for integrating with CoinBarrel AMM - bonding curves and liquidity pools on Solana.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { CoinBarrel } from '@coinbarrel/sdk';
9
+ *
10
+ * // Initialize SDK
11
+ * const sdk = new CoinBarrel({
12
+ * connection: new Connection('https://api.mainnet-beta.solana.com'),
13
+ * network: 'mainnet'
14
+ * });
15
+ *
16
+ * // Get a buy quote
17
+ * const quote = await sdk.curve.getBuyQuote(tokenMint, solAmount);
18
+ *
19
+ * // Build buy instruction
20
+ * const instructions = await sdk.curve.buildBuyInstruction({
21
+ * tokenMint,
22
+ * buyer: userWallet.publicKey,
23
+ * lamportsIn: BigInt(0.1 * 1e9) // 0.1 SOL
24
+ * });
25
+ * ```
26
+ *
27
+ * @packageDocumentation
28
+ */
29
+ import { Connection, Keypair, PublicKey, TransactionInstruction } from '@solana/web3.js';
30
+ import { type Network } from './constants.js';
31
+ import * as metadata from './metadata.js';
32
+ import type { CoinBarrelConfig, BondingCurveState, PoolState, MarketInfo, BuyOnCurveParams, SellOnCurveParams, SellMaxOnCurveParams, SwapSolToTokenParams, SwapTokenToSolParams, SwapTokenToSolMaxParams, CreateBarrelTokenParams, BuyQuote, SellQuote, SwapQuote } from './types.js';
33
+ export * from './constants.js';
34
+ export * from './types.js';
35
+ export * from './pda.js';
36
+ export { getBondingCurveState, getPoolState, getMarketInfo, getUserTokenBalance, } from './accounts.js';
37
+ export { getBuyQuote, getSellQuote, willTriggerMigration, MIGRATION_THRESHOLDS, buildBuyOnCurveInstruction, buildBuyOnCurveWithMigrationInstruction, } from './curve.js';
38
+ export { getMigrationPDAs } from './pda.js';
39
+ export type { MigrationPDAs } from './pda.js';
40
+ export { getSwapSolToTokenQuote, getSwapTokenToSolQuote } from './pool.js';
41
+ export { getTokenMetadata, getTokenMetadataJson, batchGetTokenMetadata, getMetadataPda, parseMetaplexMetadata, type TokenMetadata, type TokenMetadataJson, } from './metadata.js';
42
+ export { buildCreateBarrelTokenInstruction } from './create.js';
43
+ export { buildClaimHolderRewardsCurveInstruction, buildClaimHolderRewardsInstruction, } from './rewards.js';
44
+ /**
45
+ * CoinBarrel SDK - Main entry point
46
+ *
47
+ * Provides easy access to all CoinBarrel AMM functionality:
48
+ * - Bonding curve trading (pre-graduation)
49
+ * - AMM pool trading (post-graduation)
50
+ * - Market data and quotes
51
+ *
52
+ * @remarks
53
+ * Fee recipients are read from on-chain state and cannot be modified.
54
+ * The program enforces that all fees go to the correct recipients.
55
+ */
56
+ export declare class CoinBarrel {
57
+ /** Solana RPC connection */
58
+ readonly connection: Connection;
59
+ /** Network (devnet or mainnet) */
60
+ readonly network: Network;
61
+ /** Program ID for the current network */
62
+ readonly programId: PublicKey;
63
+ /** Admin fee recipient for the current network */
64
+ readonly adminFeeRecipient: PublicKey;
65
+ /** Bonding curve operations */
66
+ readonly curve: CurveModule;
67
+ /** AMM pool operations */
68
+ readonly pool: PoolModule;
69
+ constructor(config: CoinBarrelConfig);
70
+ /**
71
+ * Get comprehensive market info for a token
72
+ * Automatically detects if on bonding curve or AMM pool
73
+ */
74
+ getMarketInfo(tokenMint: PublicKey): Promise<MarketInfo | null>;
75
+ /**
76
+ * Get user's token balance
77
+ */
78
+ getUserBalance(tokenMint: PublicKey, user: PublicKey): Promise<bigint>;
79
+ /**
80
+ * Check if a token is on bonding curve (not yet graduated to pool)
81
+ * Returns true if curve exists AND pool does not exist
82
+ */
83
+ isOnCurve(tokenMint: PublicKey): Promise<boolean>;
84
+ /**
85
+ * Check if a token has graduated to AMM pool
86
+ */
87
+ isOnPool(tokenMint: PublicKey): Promise<boolean>;
88
+ /**
89
+ * Get on-chain token metadata (name, symbol, uri)
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * const meta = await sdk.getTokenMetadata(tokenMint);
94
+ * console.log(meta?.name, meta?.symbol);
95
+ * ```
96
+ */
97
+ getTokenMetadata(tokenMint: PublicKey): Promise<metadata.TokenMetadata | null>;
98
+ /**
99
+ * Get full token metadata including off-chain JSON (image, description, socials)
100
+ *
101
+ * @example
102
+ * ```typescript
103
+ * const meta = await sdk.getTokenMetadataJson(tokenMint);
104
+ * console.log(meta?.name, meta?.image, meta?.twitter);
105
+ * ```
106
+ */
107
+ getTokenMetadataJson(tokenMint: PublicKey, options?: {
108
+ timeoutMs?: number;
109
+ }): Promise<metadata.TokenMetadataJson | null>;
110
+ /**
111
+ * Batch fetch metadata for multiple tokens (more efficient)
112
+ *
113
+ * @example
114
+ * ```typescript
115
+ * const mints = [mint1, mint2, mint3];
116
+ * const metadataMap = await sdk.batchGetTokenMetadata(mints);
117
+ * ```
118
+ */
119
+ batchGetTokenMetadata(mints: PublicKey[]): Promise<Map<string, metadata.TokenMetadata | null>>;
120
+ /** Get bonding curve PDA for a token */
121
+ getBondingCurvePda(tokenMint: PublicKey): PublicKey;
122
+ /** Get pool PDA for a token */
123
+ getPoolPda(tokenMint: PublicKey): PublicKey;
124
+ /** Get holder reward PDA for a user + token */
125
+ getHolderRewardPda(tokenMint: PublicKey, holder: PublicKey): PublicKey;
126
+ /** Get Metaplex metadata PDA for a token */
127
+ getMetadataPda(tokenMint: PublicKey): PublicKey;
128
+ /**
129
+ * Build create barrel token instruction
130
+ *
131
+ * Creates a new token with atomically revoked mint/freeze authority.
132
+ * Returns the instruction and a mint keypair that must sign the transaction.
133
+ *
134
+ * @example
135
+ * ```typescript
136
+ * const { instructions, mintKeypair } = sdk.buildCreateTokenInstruction({
137
+ * payer: wallet.publicKey,
138
+ * name: "My Token",
139
+ * symbol: "MTK",
140
+ * uri: "https://...",
141
+ * creatorFeeRecipient: wallet.publicKey,
142
+ * });
143
+ *
144
+ * // Add mintKeypair as signer when sending transaction
145
+ * ```
146
+ */
147
+ buildCreateTokenInstruction(params: CreateBarrelTokenParams): {
148
+ instructions: TransactionInstruction[];
149
+ mintKeypair: Keypair;
150
+ };
151
+ /**
152
+ * Build claim holder rewards instruction for bonding curve
153
+ *
154
+ * Claims accumulated holder rewards paid in SOL.
155
+ */
156
+ buildClaimRewardsCurveInstruction(tokenMint: PublicKey, holder: PublicKey): Promise<TransactionInstruction[]>;
157
+ /**
158
+ * Build claim holder rewards instruction for AMM pool
159
+ *
160
+ * Claims accumulated holder rewards (WSOL unwrapped to SOL).
161
+ */
162
+ buildClaimRewardsPoolInstruction(tokenMint: PublicKey, holder: PublicKey): Promise<TransactionInstruction[]>;
163
+ }
164
+ /**
165
+ * Bonding Curve Operations
166
+ * For trading tokens that haven't graduated yet
167
+ */
168
+ declare class CurveModule {
169
+ private sdk;
170
+ constructor(sdk: CoinBarrel);
171
+ /**
172
+ * Get bonding curve state
173
+ */
174
+ getState(tokenMint: PublicKey): Promise<BondingCurveState | null>;
175
+ /**
176
+ * Get buy quote - how many tokens for X SOL
177
+ * @param tokenMint Token to buy
178
+ * @param solAmount SOL amount in lamports
179
+ */
180
+ getBuyQuote(tokenMint: PublicKey, solAmount: bigint): Promise<BuyQuote | null>;
181
+ /**
182
+ * Get sell quote - how much SOL for X tokens
183
+ * @param tokenMint Token to sell
184
+ * @param tokenAmount Token amount (raw, with decimals)
185
+ */
186
+ getSellQuote(tokenMint: PublicKey, tokenAmount: bigint): Promise<SellQuote | null>;
187
+ /**
188
+ * Build buy instruction with migration accounts
189
+ *
190
+ * @remarks
191
+ * - Always includes migration accounts - if threshold is reached, pool is created atomically
192
+ * - Requires ~600K compute units when migration triggers
193
+ * - Fee recipients are read from on-chain and cannot be modified
194
+ */
195
+ buildBuyInstruction(params: BuyOnCurveParams): Promise<TransactionInstruction[]>;
196
+ /**
197
+ * Build sell instruction
198
+ */
199
+ buildSellInstruction(params: SellOnCurveParams): Promise<TransactionInstruction[]>;
200
+ /**
201
+ * Build sell max instruction (sell entire balance)
202
+ */
203
+ buildSellMaxInstruction(params: SellMaxOnCurveParams): Promise<TransactionInstruction[]>;
204
+ /**
205
+ * Check if a buy will trigger the migration threshold
206
+ *
207
+ * @param tokenMint Token to buy
208
+ * @param lamportsIn SOL amount in lamports
209
+ * @returns true if this buy will trigger migration
210
+ */
211
+ willTriggerMigration(tokenMint: PublicKey, lamportsIn: bigint): Promise<boolean>;
212
+ /**
213
+ * @deprecated Use buildBuyInstruction instead - it now always includes migration accounts
214
+ */
215
+ buildBuyWithMigrationInstruction(params: BuyOnCurveParams): Promise<TransactionInstruction[]>;
216
+ }
217
+ /**
218
+ * AMM Pool Operations
219
+ * For trading tokens that have graduated to the AMM
220
+ */
221
+ declare class PoolModule {
222
+ private sdk;
223
+ constructor(sdk: CoinBarrel);
224
+ /**
225
+ * Get pool state
226
+ */
227
+ getState(tokenMint: PublicKey): Promise<PoolState | null>;
228
+ /**
229
+ * Get pool balances
230
+ */
231
+ getBalances(tokenMint: PublicKey): Promise<{
232
+ solBalance: bigint;
233
+ tokenBalance: bigint;
234
+ } | null>;
235
+ /**
236
+ * Get swap quote for SOL -> Token
237
+ */
238
+ getSwapSolToTokenQuote(tokenMint: PublicKey, solAmount: bigint): Promise<SwapQuote | null>;
239
+ /**
240
+ * Get swap quote for Token -> SOL
241
+ */
242
+ getSwapTokenToSolQuote(tokenMint: PublicKey, tokenAmount: bigint): Promise<SwapQuote | null>;
243
+ /**
244
+ * Build swap SOL to token instruction
245
+ *
246
+ * @remarks Fee recipients are read from on-chain and cannot be modified.
247
+ */
248
+ buildSwapSolToTokenInstruction(params: SwapSolToTokenParams): Promise<TransactionInstruction[]>;
249
+ /**
250
+ * Build swap token to SOL instruction
251
+ */
252
+ buildSwapTokenToSolInstruction(params: SwapTokenToSolParams): Promise<TransactionInstruction[]>;
253
+ /**
254
+ * Build swap token to SOL max instruction (sell entire balance)
255
+ */
256
+ buildSwapTokenToSolMaxInstruction(params: SwapTokenToSolMaxParams): Promise<TransactionInstruction[]>;
257
+ }
258
+ /**
259
+ * Convert SOL to lamports
260
+ */
261
+ export declare function solToLamports(sol: number): bigint;
262
+ /**
263
+ * Convert lamports to SOL
264
+ */
265
+ export declare function lamportsToSol(lamports: bigint): number;
266
+ /**
267
+ * Convert token amount to raw (with decimals)
268
+ */
269
+ export declare function toRawAmount(amount: number, decimals?: number): bigint;
270
+ /**
271
+ * Convert raw amount to UI (without decimals)
272
+ */
273
+ export declare function toUiAmount(rawAmount: bigint, decimals?: number): number;
274
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -64,7 +64,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
64
64
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
65
65
  };
66
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.getSellQuote = exports.getBuyQuote = exports.getUserTokenBalance = exports.getMarketInfo = exports.getPoolState = exports.getBondingCurveState = void 0;
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
68
  exports.solToLamports = solToLamports;
69
69
  exports.lamportsToSol = lamportsToSol;
70
70
  exports.toRawAmount = toRawAmount;
@@ -89,6 +89,12 @@ Object.defineProperty(exports, "getUserTokenBalance", { enumerable: true, get: f
89
89
  var curve_js_1 = require("./curve.js");
90
90
  Object.defineProperty(exports, "getBuyQuote", { enumerable: true, get: function () { return curve_js_1.getBuyQuote; } });
91
91
  Object.defineProperty(exports, "getSellQuote", { enumerable: true, get: function () { return curve_js_1.getSellQuote; } });
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; } });
92
98
  var pool_js_1 = require("./pool.js");
93
99
  Object.defineProperty(exports, "getSwapSolToTokenQuote", { enumerable: true, get: function () { return pool_js_1.getSwapSolToTokenQuote; } });
94
100
  Object.defineProperty(exports, "getSwapTokenToSolQuote", { enumerable: true, get: function () { return pool_js_1.getSwapTokenToSolQuote; } });
@@ -152,14 +158,16 @@ class CoinBarrel {
152
158
  return accounts.getUserTokenBalance(this.connection, tokenMint, user);
153
159
  }
154
160
  /**
155
- * Check if a token is on bonding curve (not yet graduated)
161
+ * Check if a token is on bonding curve (not yet graduated to pool)
162
+ * Returns true if curve exists AND pool does not exist
156
163
  */
157
164
  async isOnCurve(tokenMint) {
158
165
  const curveState = await accounts.getBondingCurveState(this.connection, tokenMint, this.programId);
159
166
  if (!curveState)
160
167
  return false;
161
- // If paused or max supply reached, it's graduated
162
- return !curveState.paused && curveState.totalSold < curveState.maxSupply;
168
+ // Check if pool exists - if it does, token has graduated
169
+ const poolState = await accounts.getPoolState(this.connection, tokenMint, this.programId);
170
+ return poolState === null;
163
171
  }
164
172
  /**
165
173
  * Check if a token has graduated to AMM pool
@@ -297,10 +305,12 @@ class CurveModule {
297
305
  return curve.getSellQuote(this.sdk.connection, tokenMint, tokenAmount, this.sdk.programId);
298
306
  }
299
307
  /**
300
- * Build buy instruction
308
+ * Build buy instruction with migration accounts
301
309
  *
302
- * @remarks Fee recipients are read from on-chain and cannot be modified.
303
- * The program enforces fees go to the correct recipients.
310
+ * @remarks
311
+ * - Always includes migration accounts - if threshold is reached, pool is created atomically
312
+ * - Requires ~600K compute units when migration triggers
313
+ * - Fee recipients are read from on-chain and cannot be modified
304
314
  */
305
315
  async buildBuyInstruction(params) {
306
316
  return curve.buildBuyOnCurveInstruction(this.sdk.connection, params, this.sdk.programId);
@@ -317,6 +327,22 @@ class CurveModule {
317
327
  async buildSellMaxInstruction(params) {
318
328
  return curve.buildSellMaxOnCurveInstruction(this.sdk.connection, params, this.sdk.programId);
319
329
  }
330
+ /**
331
+ * Check if a buy will trigger the migration threshold
332
+ *
333
+ * @param tokenMint Token to buy
334
+ * @param lamportsIn SOL amount in lamports
335
+ * @returns true if this buy will trigger migration
336
+ */
337
+ async willTriggerMigration(tokenMint, lamportsIn) {
338
+ return curve.willTriggerMigration(this.sdk.connection, tokenMint, lamportsIn, this.sdk.programId);
339
+ }
340
+ /**
341
+ * @deprecated Use buildBuyInstruction instead - it now always includes migration accounts
342
+ */
343
+ async buildBuyWithMigrationInstruction(params) {
344
+ return this.buildBuyInstruction(params);
345
+ }
320
346
  }
321
347
  // ============= Pool Module =============
322
348
  /**
@@ -398,3 +424,4 @@ function toRawAmount(amount, decimals = 6) {
398
424
  function toUiAmount(rawAmount, decimals = 6) {
399
425
  return Number(rawAmount) / 10 ** decimals;
400
426
  }
427
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Token Metadata Fetching
3
+ * Read Metaplex token metadata for CoinBarrel tokens
4
+ */
5
+ import { Connection, PublicKey } from '@solana/web3.js';
6
+ /**
7
+ * On-chain token metadata from Metaplex
8
+ */
9
+ export interface TokenMetadata {
10
+ /** Token name */
11
+ name: string;
12
+ /** Token symbol/ticker */
13
+ symbol: string;
14
+ /** URI pointing to off-chain JSON metadata */
15
+ uri: string;
16
+ }
17
+ /**
18
+ * Off-chain token metadata JSON (common Metaplex-style schema).
19
+ *
20
+ * This is intentionally permissive since creators may include extra fields.
21
+ */
22
+ export interface TokenMetadataJson extends TokenMetadata {
23
+ /** Short description */
24
+ description?: string;
25
+ /** Image URL */
26
+ image?: string;
27
+ /** Project website / external URL */
28
+ external_url?: string;
29
+ /** Common socials */
30
+ twitter?: string;
31
+ telegram?: string;
32
+ website?: string;
33
+ [key: string]: unknown;
34
+ }
35
+ /**
36
+ * Derive Metaplex metadata PDA for a token mint
37
+ */
38
+ export declare function getMetadataPda(mint: PublicKey): PublicKey;
39
+ /**
40
+ * Parse Metaplex metadata from raw account data
41
+ *
42
+ * Layout:
43
+ * - key: 1 byte
44
+ * - update_authority: 32 bytes
45
+ * - mint: 32 bytes
46
+ * - name: 4 bytes length + string
47
+ * - symbol: 4 bytes length + string
48
+ * - uri: 4 bytes length + string
49
+ */
50
+ export declare function parseMetaplexMetadata(data: Buffer): TokenMetadata | null;
51
+ /**
52
+ * Fetch on-chain token metadata from Metaplex
53
+ *
54
+ * Returns the name, symbol, and URI stored on-chain.
55
+ * Use `getTokenMetadataJson` to also fetch the off-chain JSON.
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * const metadata = await getTokenMetadata(connection, tokenMint);
60
+ * if (metadata) {
61
+ * console.log(metadata.name); // "My Token"
62
+ * console.log(metadata.symbol); // "MTK"
63
+ * console.log(metadata.uri); // "https://..."
64
+ * }
65
+ * ```
66
+ */
67
+ export declare function getTokenMetadata(connection: Connection, mint: PublicKey): Promise<TokenMetadata | null>;
68
+ /**
69
+ * Fetch on-chain Metaplex metadata and then fetch the off-chain JSON pointed to by the URI.
70
+ */
71
+ export declare function getTokenMetadataJson(connection: Connection, mint: PublicKey, options?: {
72
+ timeoutMs?: number;
73
+ }): Promise<TokenMetadataJson | null>;
74
+ /**
75
+ * Batch fetch metadata for multiple tokens
76
+ *
77
+ * More efficient than calling getTokenMetadata individually.
78
+ *
79
+ * @param connection - Solana RPC connection
80
+ * @param mints - Array of token mint addresses
81
+ * @returns Map of mint address string to metadata
82
+ *
83
+ * @example
84
+ * ```typescript
85
+ * const mints = [mint1, mint2, mint3];
86
+ * const metadataMap = await batchGetTokenMetadata(connection, mints);
87
+ *
88
+ * for (const [mintStr, metadata] of metadataMap) {
89
+ * console.log(`${mintStr}: ${metadata?.name}`);
90
+ * }
91
+ * ```
92
+ */
93
+ export declare function batchGetTokenMetadata(connection: Connection, mints: PublicKey[]): Promise<Map<string, TokenMetadata | null>>;
94
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAKxD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;CACZ;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACvD,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAID;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAMzD;AAmBD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CA0BxE;AAID;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CACrC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,GACb,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAa/B;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACzC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,OAAO,CAAC,EAAE;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAC,GAC5B,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA4DnC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,qBAAqB,CAC1C,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,SAAS,EAAE,GAChB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC,CAAC,CAuC5C"}
package/dist/metadata.js CHANGED
@@ -209,3 +209,4 @@ async function batchGetTokenMetadata(connection, mints) {
209
209
  }
210
210
  return results;
211
211
  }
212
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
package/dist/pda.d.ts ADDED
@@ -0,0 +1,69 @@
1
+ /**
2
+ * PDA Derivation Helpers
3
+ * All Program Derived Addresses for CoinBarrel AMM
4
+ */
5
+ import { PublicKey } from '@solana/web3.js';
6
+ /**
7
+ * Derive bonding curve PDA for a token mint
8
+ */
9
+ export declare function getBondingCurvePda(mint: PublicKey, programId: PublicKey): PublicKey;
10
+ /**
11
+ * Derive bonding authority PDA (signs transfers from curve)
12
+ */
13
+ export declare function getBondingAuthorityPda(bondingCurve: PublicKey, programId: PublicKey): PublicKey;
14
+ /**
15
+ * Derive SOL escrow PDA for bonding curve
16
+ */
17
+ export declare function getSolEscrowPda(bondingCurve: PublicKey, programId: PublicKey): PublicKey;
18
+ /**
19
+ * Derive pool PDA for a WSOL <-> Token pair
20
+ */
21
+ export declare function getPoolPda(tokenMint: PublicKey, programId: PublicKey): PublicKey;
22
+ /**
23
+ * Derive pool authority PDA (signs transfers from pool vaults)
24
+ */
25
+ export declare function getPoolAuthorityPda(pool: PublicKey, programId: PublicKey): PublicKey;
26
+ /**
27
+ * Derive vault PDA for a pool + mint
28
+ */
29
+ export declare function getVaultPda(pool: PublicKey, mint: PublicKey, programId: PublicKey): PublicKey;
30
+ /**
31
+ * Derive WSOL vault PDA for a pool
32
+ */
33
+ export declare function getPoolWsolVaultPda(pool: PublicKey, programId: PublicKey): PublicKey;
34
+ /**
35
+ * Derive token vault PDA for a pool
36
+ */
37
+ export declare function getPoolTokenVaultPda(pool: PublicKey, tokenMint: PublicKey, programId: PublicKey): PublicKey;
38
+ /**
39
+ * Derive LP mint PDA for a pool
40
+ */
41
+ export declare function getLpMintPda(pool: PublicKey, programId: PublicKey): PublicKey;
42
+ /**
43
+ * Derive LP vault PDA (holds burned/locked LP tokens)
44
+ */
45
+ export declare function getLpVaultPda(pool: PublicKey, programId: PublicKey): PublicKey;
46
+ export interface MigrationPDAs {
47
+ poolPda: PublicKey;
48
+ poolBump: number;
49
+ tokenAVaultPda: PublicKey;
50
+ tokenBVaultPda: PublicKey;
51
+ lpMintPda: PublicKey;
52
+ lpVaultPda: PublicKey;
53
+ poolAuthorityPda: PublicKey;
54
+ }
55
+ /**
56
+ * Derive all PDAs needed for inline migration from bonding curve to pool.
57
+ * Used when a buy reaches the migration threshold and triggers auto-migration.
58
+ *
59
+ * @param tokenMint - The token mint being migrated
60
+ * @param programId - CoinBarrel program ID
61
+ * @returns All migration PDAs and pool bump
62
+ */
63
+ export declare function getMigrationPDAs(tokenMint: PublicKey, programId: PublicKey): MigrationPDAs;
64
+ /**
65
+ * Derive holder reward account PDA for a user + token
66
+ * Used for tracking holder rewards across buys/sells
67
+ */
68
+ export declare function getHolderRewardPda(tokenMint: PublicKey, holder: PublicKey, programId: PublicKey): PublicKey;
69
+ //# sourceMappingURL=pda.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pda.d.ts","sourceRoot":"","sources":["../src/pda.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAK5C;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,CAGnF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,CAM/F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,CAMxF;AAID;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,CAMhF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,CAGpF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,CAM7F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,CAEpF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CACnC,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,GAClB,SAAS,CAEX;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,CAG7E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,CAG9E;AAID,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,SAAS,CAAC;IAC1B,cAAc,EAAE,SAAS,CAAC;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,gBAAgB,EAAE,SAAS,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,aAAa,CA8C1F;AAID;;;GAGG;AACH,wBAAgB,kBAAkB,CACjC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,SAAS,GAClB,SAAS,CAMX"}
package/dist/pda.js CHANGED
@@ -14,6 +14,7 @@ exports.getPoolWsolVaultPda = getPoolWsolVaultPda;
14
14
  exports.getPoolTokenVaultPda = getPoolTokenVaultPda;
15
15
  exports.getLpMintPda = getLpMintPda;
16
16
  exports.getLpVaultPda = getLpVaultPda;
17
+ exports.getMigrationPDAs = getMigrationPDAs;
17
18
  exports.getHolderRewardPda = getHolderRewardPda;
18
19
  const web3_js_1 = require("@solana/web3.js");
19
20
  const constants_js_1 = require("./constants.js");
@@ -87,6 +88,37 @@ function getLpVaultPda(pool, programId) {
87
88
  const [pda] = web3_js_1.PublicKey.findProgramAddressSync([constants_js_1.SEEDS.LP_VAULT, pool.toBuffer()], programId);
88
89
  return pda;
89
90
  }
91
+ /**
92
+ * Derive all PDAs needed for inline migration from bonding curve to pool.
93
+ * Used when a buy reaches the migration threshold and triggers auto-migration.
94
+ *
95
+ * @param tokenMint - The token mint being migrated
96
+ * @param programId - CoinBarrel program ID
97
+ * @returns All migration PDAs and pool bump
98
+ */
99
+ function getMigrationPDAs(tokenMint, programId) {
100
+ // Pool: seeds = ["pool", wsol_mint, token_mint]
101
+ const [poolPda, poolBump] = web3_js_1.PublicKey.findProgramAddressSync([constants_js_1.SEEDS.POOL, constants_js_1.NATIVE_MINT.toBuffer(), tokenMint.toBuffer()], programId);
102
+ // Token A vault (WSOL): seeds = ["vault", pool, wsol_mint]
103
+ const [tokenAVaultPda] = web3_js_1.PublicKey.findProgramAddressSync([constants_js_1.SEEDS.VAULT, poolPda.toBuffer(), constants_js_1.NATIVE_MINT.toBuffer()], programId);
104
+ // Token B vault: seeds = ["vault", pool, token_mint]
105
+ const [tokenBVaultPda] = web3_js_1.PublicKey.findProgramAddressSync([constants_js_1.SEEDS.VAULT, poolPda.toBuffer(), tokenMint.toBuffer()], programId);
106
+ // LP mint: seeds = ["lp_mint", pool]
107
+ const [lpMintPda] = web3_js_1.PublicKey.findProgramAddressSync([constants_js_1.SEEDS.LP_MINT, poolPda.toBuffer()], programId);
108
+ // LP vault: seeds = ["lp_vault", pool]
109
+ const [lpVaultPda] = web3_js_1.PublicKey.findProgramAddressSync([constants_js_1.SEEDS.LP_VAULT, poolPda.toBuffer()], programId);
110
+ // Pool authority: seeds = ["authority", pool]
111
+ const [poolAuthorityPda] = web3_js_1.PublicKey.findProgramAddressSync([constants_js_1.SEEDS.AUTHORITY, poolPda.toBuffer()], programId);
112
+ return {
113
+ poolPda,
114
+ poolBump,
115
+ tokenAVaultPda,
116
+ tokenBVaultPda,
117
+ lpMintPda,
118
+ lpVaultPda,
119
+ poolAuthorityPda,
120
+ };
121
+ }
90
122
  // ============= Holder Reward PDAs =============
91
123
  /**
92
124
  * Derive holder reward account PDA for a user + token
@@ -96,3 +128,4 @@ function getHolderRewardPda(tokenMint, holder, programId) {
96
128
  const [pda] = web3_js_1.PublicKey.findProgramAddressSync([constants_js_1.SEEDS.HOLDER_REWARD, tokenMint.toBuffer(), holder.toBuffer()], programId);
97
129
  return pda;
98
130
  }
131
+ //# sourceMappingURL=pda.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pda.js","sourceRoot":"","sources":["../src/pda.ts"],"names":[],"mappings":"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"}