@coinbarrel/sdk 1.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.
- package/README.md +220 -0
- package/dist/accounts.d.ts +35 -0
- package/dist/accounts.d.ts.map +1 -0
- package/dist/accounts.js +185 -0
- package/dist/accounts.js.map +1 -0
- package/dist/constants.d.ts +79 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +96 -0
- package/dist/constants.js.map +1 -0
- package/dist/curve.d.ts +33 -0
- package/dist/curve.d.ts.map +1 -0
- package/dist/curve.js +218 -0
- package/dist/curve.js.map +1 -0
- package/dist/index.d.ts +184 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +254 -0
- package/dist/index.js.map +1 -0
- package/dist/pda.d.ts +51 -0
- package/dist/pda.d.ts.map +1 -0
- package/dist/pda.js +86 -0
- package/dist/pda.js.map +1 -0
- package/dist/pool.d.ts +32 -0
- package/dist/pool.d.ts.map +1 -0
- package/dist/pool.js +242 -0
- package/dist/pool.js.map +1 -0
- package/dist/types.d.ts +162 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1 @@
|
|
|
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;;;GAGG;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,CAsC1B;AAED;;GAEG;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,CAsC3B;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;;;;GAIG;AACH,wBAAsB,2BAA2B,CAChD,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAqCnC;AAED;;GAEG;AACH,wBAAsB,8BAA8B,CACnD,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,oBAAoB,EAC5B,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAqCnC"}
|
package/dist/curve.js
ADDED
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bonding Curve Operations
|
|
3
|
+
* Buy and sell tokens on the bonding curve
|
|
4
|
+
*/
|
|
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 } from './constants.js';
|
|
8
|
+
import { getBondingCurvePda, getBondingAuthorityPda, getSolEscrowPda, getHolderRewardPda, } from './pda.js';
|
|
9
|
+
import { getBondingCurveState } from './accounts.js';
|
|
10
|
+
// ============= Buffer Helpers =============
|
|
11
|
+
function writeU64LE(n) {
|
|
12
|
+
const b = Buffer.alloc(8);
|
|
13
|
+
b.writeBigUInt64LE(n);
|
|
14
|
+
return b;
|
|
15
|
+
}
|
|
16
|
+
// ============= Quote Calculations =============
|
|
17
|
+
/**
|
|
18
|
+
* Calculate buy quote for bonding curve
|
|
19
|
+
* Uses constant product formula: (vSol + solIn) * (vToken - tokensOut) = k
|
|
20
|
+
*/
|
|
21
|
+
export async function getBuyQuote(connection, tokenMint, solIn, programId) {
|
|
22
|
+
const state = await getBondingCurveState(connection, tokenMint, programId);
|
|
23
|
+
if (!state || state.paused)
|
|
24
|
+
return null;
|
|
25
|
+
const feeBps = BigInt(state.feeBps);
|
|
26
|
+
const totalFee = (solIn * feeBps) / 10000n;
|
|
27
|
+
// Fee breakdown: 40% admin, 30% creator, 30% holder rewards (default split)
|
|
28
|
+
const adminFee = (totalFee * 40n) / 100n;
|
|
29
|
+
const creatorFee = (totalFee * 30n) / 100n;
|
|
30
|
+
const holderRewards = totalFee - adminFee - creatorFee;
|
|
31
|
+
const solAfterFee = solIn - totalFee;
|
|
32
|
+
// Constant product: k = vSol * vToken
|
|
33
|
+
const k = state.vSol * state.vToken;
|
|
34
|
+
const newVSol = state.vSol + solAfterFee;
|
|
35
|
+
const newVToken = k / newVSol;
|
|
36
|
+
const tokensOut = state.vToken - newVToken;
|
|
37
|
+
// Price impact
|
|
38
|
+
const priceBeforeLamports = state.vToken > 0n ? (state.vSol * LAMPORTS_PER_SOL) / state.vToken : 0n;
|
|
39
|
+
const priceAfterLamports = newVToken > 0n ? (newVSol * LAMPORTS_PER_SOL) / newVToken : 0n;
|
|
40
|
+
const priceImpactBps = priceBeforeLamports > 0n
|
|
41
|
+
? Number(((priceAfterLamports - priceBeforeLamports) * 10000n) / priceBeforeLamports)
|
|
42
|
+
: 0;
|
|
43
|
+
return {
|
|
44
|
+
solIn,
|
|
45
|
+
tokensOut,
|
|
46
|
+
adminFee,
|
|
47
|
+
creatorFee,
|
|
48
|
+
holderRewards,
|
|
49
|
+
pricePerToken: tokensOut > 0n ? (solIn * TOKEN_DECIMALS_MULTIPLIER) / tokensOut : 0n,
|
|
50
|
+
priceImpactBps,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Calculate sell quote for bonding curve
|
|
55
|
+
*/
|
|
56
|
+
export async function getSellQuote(connection, tokenMint, tokensIn, programId) {
|
|
57
|
+
const state = await getBondingCurveState(connection, tokenMint, programId);
|
|
58
|
+
if (!state || state.paused)
|
|
59
|
+
return null;
|
|
60
|
+
// Constant product: k = vSol * vToken
|
|
61
|
+
const k = state.vSol * state.vToken;
|
|
62
|
+
const newVToken = state.vToken + tokensIn;
|
|
63
|
+
const newVSol = k / newVToken;
|
|
64
|
+
const solOutBeforeFee = state.vSol - newVSol;
|
|
65
|
+
const feeBps = BigInt(state.feeBps);
|
|
66
|
+
const totalFee = (solOutBeforeFee * feeBps) / 10000n;
|
|
67
|
+
// Fee breakdown
|
|
68
|
+
const adminFee = (totalFee * 40n) / 100n;
|
|
69
|
+
const creatorFee = (totalFee * 30n) / 100n;
|
|
70
|
+
const holderRewards = totalFee - adminFee - creatorFee;
|
|
71
|
+
const solOut = solOutBeforeFee - totalFee;
|
|
72
|
+
// Price impact
|
|
73
|
+
const priceBeforeLamports = state.vToken > 0n ? (state.vSol * LAMPORTS_PER_SOL) / state.vToken : 0n;
|
|
74
|
+
const priceAfterLamports = newVToken > 0n ? (newVSol * LAMPORTS_PER_SOL) / newVToken : 0n;
|
|
75
|
+
const priceImpactBps = priceBeforeLamports > 0n
|
|
76
|
+
? Number(((priceBeforeLamports - priceAfterLamports) * 10000n) / priceBeforeLamports)
|
|
77
|
+
: 0;
|
|
78
|
+
return {
|
|
79
|
+
tokensIn,
|
|
80
|
+
solOut,
|
|
81
|
+
adminFee,
|
|
82
|
+
creatorFee,
|
|
83
|
+
holderRewards,
|
|
84
|
+
pricePerToken: tokensIn > 0n ? (solOut * TOKEN_DECIMALS_MULTIPLIER) / tokensIn : 0n,
|
|
85
|
+
priceImpactBps,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
// ============= Instruction Builders =============
|
|
89
|
+
/**
|
|
90
|
+
* Build buy_on_curve instruction
|
|
91
|
+
*
|
|
92
|
+
* IMPORTANT: Fee recipients are read from on-chain state and cannot be modified.
|
|
93
|
+
* The program enforces that fees go to the correct recipients.
|
|
94
|
+
*/
|
|
95
|
+
export async function buildBuyOnCurveInstruction(connection, params, programId) {
|
|
96
|
+
const { tokenMint, buyer, lamportsIn } = params;
|
|
97
|
+
// Fetch curve state to get fee recipients (enforced on-chain)
|
|
98
|
+
const state = await getBondingCurveState(connection, tokenMint, programId);
|
|
99
|
+
if (!state) {
|
|
100
|
+
throw new Error('Bonding curve not found for this token');
|
|
101
|
+
}
|
|
102
|
+
if (state.paused) {
|
|
103
|
+
throw new Error('Bonding curve is paused');
|
|
104
|
+
}
|
|
105
|
+
const bondingCurve = getBondingCurvePda(tokenMint, programId);
|
|
106
|
+
const bondingAuthority = getBondingAuthorityPda(bondingCurve, programId);
|
|
107
|
+
const solEscrow = getSolEscrowPda(bondingCurve, programId);
|
|
108
|
+
const buyerAta = getAssociatedTokenAddressSync(tokenMint, buyer);
|
|
109
|
+
const holderRewardAccount = getHolderRewardPda(tokenMint, buyer, programId);
|
|
110
|
+
const instructions = [];
|
|
111
|
+
// Check if buyer's ATA exists, create if needed
|
|
112
|
+
try {
|
|
113
|
+
await getAccount(connection, buyerAta);
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
instructions.push(createAssociatedTokenAccountInstruction(buyer, buyerAta, buyer, tokenMint));
|
|
117
|
+
}
|
|
118
|
+
// Build buy instruction with fee recipients from on-chain state
|
|
119
|
+
const buyIx = new TransactionInstruction({
|
|
120
|
+
programId,
|
|
121
|
+
keys: [
|
|
122
|
+
{ pubkey: bondingCurve, isWritable: true, isSigner: false },
|
|
123
|
+
{ pubkey: state.tokenVault, isWritable: true, isSigner: false },
|
|
124
|
+
{ pubkey: tokenMint, isWritable: false, isSigner: false },
|
|
125
|
+
{ pubkey: solEscrow, isWritable: true, isSigner: false },
|
|
126
|
+
{ pubkey: bondingAuthority, isWritable: false, isSigner: false },
|
|
127
|
+
{ pubkey: buyerAta, isWritable: true, isSigner: false },
|
|
128
|
+
{ pubkey: buyer, isWritable: true, isSigner: true },
|
|
129
|
+
// Fee recipients - read from on-chain state, cannot be modified
|
|
130
|
+
{ pubkey: state.adminFeeRecipient, isWritable: true, isSigner: false },
|
|
131
|
+
{ pubkey: state.creatorFeeRecipient, isWritable: true, isSigner: false },
|
|
132
|
+
// Holder reward account - auto-initialized by program
|
|
133
|
+
{ pubkey: holderRewardAccount, isWritable: true, isSigner: false },
|
|
134
|
+
{ pubkey: TOKEN_PROGRAM_ID, isWritable: false, isSigner: false },
|
|
135
|
+
{ pubkey: SystemProgram.programId, isWritable: false, isSigner: false },
|
|
136
|
+
],
|
|
137
|
+
data: Buffer.concat([DISCRIMINATORS.buy_on_curve, writeU64LE(lamportsIn)]),
|
|
138
|
+
});
|
|
139
|
+
instructions.push(buyIx);
|
|
140
|
+
return instructions;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Build sell_on_curve instruction
|
|
144
|
+
*
|
|
145
|
+
* IMPORTANT: Fee recipients are read from on-chain state and cannot be modified.
|
|
146
|
+
*/
|
|
147
|
+
export async function buildSellOnCurveInstruction(connection, params, programId) {
|
|
148
|
+
const { tokenMint, seller, tokenAmount } = params;
|
|
149
|
+
// Fetch curve state to get fee recipients (enforced on-chain)
|
|
150
|
+
const state = await getBondingCurveState(connection, tokenMint, programId);
|
|
151
|
+
if (!state) {
|
|
152
|
+
throw new Error('Bonding curve not found for this token');
|
|
153
|
+
}
|
|
154
|
+
if (state.paused) {
|
|
155
|
+
throw new Error('Bonding curve is paused');
|
|
156
|
+
}
|
|
157
|
+
const bondingCurve = getBondingCurvePda(tokenMint, programId);
|
|
158
|
+
const bondingAuthority = getBondingAuthorityPda(bondingCurve, programId);
|
|
159
|
+
const solEscrow = getSolEscrowPda(bondingCurve, programId);
|
|
160
|
+
const sellerAta = getAssociatedTokenAddressSync(tokenMint, seller);
|
|
161
|
+
const sellIx = new TransactionInstruction({
|
|
162
|
+
programId,
|
|
163
|
+
keys: [
|
|
164
|
+
{ pubkey: bondingCurve, isWritable: true, isSigner: false },
|
|
165
|
+
{ pubkey: state.tokenVault, isWritable: true, isSigner: false },
|
|
166
|
+
{ pubkey: tokenMint, isWritable: false, isSigner: false },
|
|
167
|
+
{ pubkey: solEscrow, isWritable: true, isSigner: false },
|
|
168
|
+
{ pubkey: bondingAuthority, isWritable: false, isSigner: false },
|
|
169
|
+
{ pubkey: sellerAta, isWritable: true, isSigner: false },
|
|
170
|
+
{ pubkey: seller, isWritable: true, isSigner: true },
|
|
171
|
+
// Fee recipients - read from on-chain state, cannot be modified
|
|
172
|
+
{ pubkey: state.adminFeeRecipient, isWritable: true, isSigner: false },
|
|
173
|
+
{ pubkey: state.creatorFeeRecipient, isWritable: true, isSigner: false },
|
|
174
|
+
{ pubkey: TOKEN_PROGRAM_ID, isWritable: false, isSigner: false },
|
|
175
|
+
{ pubkey: SystemProgram.programId, isWritable: false, isSigner: false },
|
|
176
|
+
],
|
|
177
|
+
data: Buffer.concat([DISCRIMINATORS.sell_on_curve, writeU64LE(tokenAmount)]),
|
|
178
|
+
});
|
|
179
|
+
return [sellIx];
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Build sell_max_on_curve instruction (sell entire balance)
|
|
183
|
+
*/
|
|
184
|
+
export async function buildSellMaxOnCurveInstruction(connection, params, programId) {
|
|
185
|
+
const { tokenMint, seller } = params;
|
|
186
|
+
// Fetch curve state to get fee recipients (enforced on-chain)
|
|
187
|
+
const state = await getBondingCurveState(connection, tokenMint, programId);
|
|
188
|
+
if (!state) {
|
|
189
|
+
throw new Error('Bonding curve not found for this token');
|
|
190
|
+
}
|
|
191
|
+
if (state.paused) {
|
|
192
|
+
throw new Error('Bonding curve is paused');
|
|
193
|
+
}
|
|
194
|
+
const bondingCurve = getBondingCurvePda(tokenMint, programId);
|
|
195
|
+
const bondingAuthority = getBondingAuthorityPda(bondingCurve, programId);
|
|
196
|
+
const solEscrow = getSolEscrowPda(bondingCurve, programId);
|
|
197
|
+
const sellerAta = getAssociatedTokenAddressSync(tokenMint, seller);
|
|
198
|
+
const sellMaxIx = new TransactionInstruction({
|
|
199
|
+
programId,
|
|
200
|
+
keys: [
|
|
201
|
+
{ pubkey: bondingCurve, isWritable: true, isSigner: false },
|
|
202
|
+
{ pubkey: state.tokenVault, isWritable: true, isSigner: false },
|
|
203
|
+
{ pubkey: tokenMint, isWritable: false, isSigner: false },
|
|
204
|
+
{ pubkey: solEscrow, isWritable: true, isSigner: false },
|
|
205
|
+
{ pubkey: bondingAuthority, isWritable: false, isSigner: false },
|
|
206
|
+
{ pubkey: sellerAta, isWritable: true, isSigner: false },
|
|
207
|
+
{ pubkey: seller, isWritable: true, isSigner: true },
|
|
208
|
+
// Fee recipients - read from on-chain state, cannot be modified
|
|
209
|
+
{ pubkey: state.adminFeeRecipient, isWritable: true, isSigner: false },
|
|
210
|
+
{ pubkey: state.creatorFeeRecipient, isWritable: true, isSigner: false },
|
|
211
|
+
{ pubkey: TOKEN_PROGRAM_ID, isWritable: false, isSigner: false },
|
|
212
|
+
{ pubkey: SystemProgram.programId, isWritable: false, isSigner: false },
|
|
213
|
+
],
|
|
214
|
+
data: DISCRIMINATORS.sell_max_on_curve,
|
|
215
|
+
});
|
|
216
|
+
return [sellMaxIx];
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=curve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"curve.js","sourceRoot":"","sources":["../src/curve.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
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, PublicKey, TransactionInstruction } from "@solana/web3.js";
|
|
30
|
+
import { type Network } from "./constants.js";
|
|
31
|
+
import type { CoinBarrelConfig, BondingCurveState, PoolState, MarketInfo, BuyOnCurveParams, SellOnCurveParams, SellMaxOnCurveParams, SwapSolToTokenParams, SwapTokenToSolParams, SwapTokenToSolMaxParams, BuyQuote, SellQuote, SwapQuote } from "./types.js";
|
|
32
|
+
export * from "./constants.js";
|
|
33
|
+
export * from "./types.js";
|
|
34
|
+
export * from "./pda.js";
|
|
35
|
+
export { getBondingCurveState, getPoolState, getMarketInfo, getUserTokenBalance } from "./accounts.js";
|
|
36
|
+
export { getBuyQuote, getSellQuote } from "./curve.js";
|
|
37
|
+
export { getSwapSolToTokenQuote, getSwapTokenToSolQuote } from "./pool.js";
|
|
38
|
+
/**
|
|
39
|
+
* CoinBarrel SDK - Main entry point
|
|
40
|
+
*
|
|
41
|
+
* Provides easy access to all CoinBarrel AMM functionality:
|
|
42
|
+
* - Bonding curve trading (pre-graduation)
|
|
43
|
+
* - AMM pool trading (post-graduation)
|
|
44
|
+
* - Market data and quotes
|
|
45
|
+
*
|
|
46
|
+
* @remarks
|
|
47
|
+
* Fee recipients are read from on-chain state and cannot be modified.
|
|
48
|
+
* The program enforces that all fees go to the correct recipients.
|
|
49
|
+
*/
|
|
50
|
+
export declare class CoinBarrel {
|
|
51
|
+
/** Solana RPC connection */
|
|
52
|
+
readonly connection: Connection;
|
|
53
|
+
/** Network (devnet or mainnet) */
|
|
54
|
+
readonly network: Network;
|
|
55
|
+
/** Program ID for the current network */
|
|
56
|
+
readonly programId: PublicKey;
|
|
57
|
+
/** Admin fee recipient for the current network */
|
|
58
|
+
readonly adminFeeRecipient: PublicKey;
|
|
59
|
+
/** Bonding curve operations */
|
|
60
|
+
readonly curve: CurveModule;
|
|
61
|
+
/** AMM pool operations */
|
|
62
|
+
readonly pool: PoolModule;
|
|
63
|
+
constructor(config: CoinBarrelConfig);
|
|
64
|
+
/**
|
|
65
|
+
* Get comprehensive market info for a token
|
|
66
|
+
* Automatically detects if on bonding curve or AMM pool
|
|
67
|
+
*/
|
|
68
|
+
getMarketInfo(tokenMint: PublicKey): Promise<MarketInfo | null>;
|
|
69
|
+
/**
|
|
70
|
+
* Get user's token balance
|
|
71
|
+
*/
|
|
72
|
+
getUserBalance(tokenMint: PublicKey, user: PublicKey): Promise<bigint>;
|
|
73
|
+
/**
|
|
74
|
+
* Check if a token is on bonding curve (not yet graduated)
|
|
75
|
+
*/
|
|
76
|
+
isOnCurve(tokenMint: PublicKey): Promise<boolean>;
|
|
77
|
+
/**
|
|
78
|
+
* Check if a token has graduated to AMM pool
|
|
79
|
+
*/
|
|
80
|
+
isOnPool(tokenMint: PublicKey): Promise<boolean>;
|
|
81
|
+
/** Get bonding curve PDA for a token */
|
|
82
|
+
getBondingCurvePda(tokenMint: PublicKey): PublicKey;
|
|
83
|
+
/** Get pool PDA for a token */
|
|
84
|
+
getPoolPda(tokenMint: PublicKey): PublicKey;
|
|
85
|
+
/** Get holder reward PDA for a user + token */
|
|
86
|
+
getHolderRewardPda(tokenMint: PublicKey, holder: PublicKey): PublicKey;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Bonding Curve Operations
|
|
90
|
+
* For trading tokens that haven't graduated yet
|
|
91
|
+
*/
|
|
92
|
+
declare class CurveModule {
|
|
93
|
+
private sdk;
|
|
94
|
+
constructor(sdk: CoinBarrel);
|
|
95
|
+
/**
|
|
96
|
+
* Get bonding curve state
|
|
97
|
+
*/
|
|
98
|
+
getState(tokenMint: PublicKey): Promise<BondingCurveState | null>;
|
|
99
|
+
/**
|
|
100
|
+
* Get buy quote - how many tokens for X SOL
|
|
101
|
+
* @param tokenMint Token to buy
|
|
102
|
+
* @param solAmount SOL amount in lamports
|
|
103
|
+
*/
|
|
104
|
+
getBuyQuote(tokenMint: PublicKey, solAmount: bigint): Promise<BuyQuote | null>;
|
|
105
|
+
/**
|
|
106
|
+
* Get sell quote - how much SOL for X tokens
|
|
107
|
+
* @param tokenMint Token to sell
|
|
108
|
+
* @param tokenAmount Token amount (raw, with decimals)
|
|
109
|
+
*/
|
|
110
|
+
getSellQuote(tokenMint: PublicKey, tokenAmount: bigint): Promise<SellQuote | null>;
|
|
111
|
+
/**
|
|
112
|
+
* Build buy instruction
|
|
113
|
+
*
|
|
114
|
+
* @remarks Fee recipients are read from on-chain and cannot be modified.
|
|
115
|
+
* The program enforces fees go to the correct recipients.
|
|
116
|
+
*/
|
|
117
|
+
buildBuyInstruction(params: BuyOnCurveParams): Promise<TransactionInstruction[]>;
|
|
118
|
+
/**
|
|
119
|
+
* Build sell instruction
|
|
120
|
+
*/
|
|
121
|
+
buildSellInstruction(params: SellOnCurveParams): Promise<TransactionInstruction[]>;
|
|
122
|
+
/**
|
|
123
|
+
* Build sell max instruction (sell entire balance)
|
|
124
|
+
*/
|
|
125
|
+
buildSellMaxInstruction(params: SellMaxOnCurveParams): Promise<TransactionInstruction[]>;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* AMM Pool Operations
|
|
129
|
+
* For trading tokens that have graduated to the AMM
|
|
130
|
+
*/
|
|
131
|
+
declare class PoolModule {
|
|
132
|
+
private sdk;
|
|
133
|
+
constructor(sdk: CoinBarrel);
|
|
134
|
+
/**
|
|
135
|
+
* Get pool state
|
|
136
|
+
*/
|
|
137
|
+
getState(tokenMint: PublicKey): Promise<PoolState | null>;
|
|
138
|
+
/**
|
|
139
|
+
* Get pool balances
|
|
140
|
+
*/
|
|
141
|
+
getBalances(tokenMint: PublicKey): Promise<{
|
|
142
|
+
solBalance: bigint;
|
|
143
|
+
tokenBalance: bigint;
|
|
144
|
+
} | null>;
|
|
145
|
+
/**
|
|
146
|
+
* Get swap quote for SOL -> Token
|
|
147
|
+
*/
|
|
148
|
+
getSwapSolToTokenQuote(tokenMint: PublicKey, solAmount: bigint): Promise<SwapQuote | null>;
|
|
149
|
+
/**
|
|
150
|
+
* Get swap quote for Token -> SOL
|
|
151
|
+
*/
|
|
152
|
+
getSwapTokenToSolQuote(tokenMint: PublicKey, tokenAmount: bigint): Promise<SwapQuote | null>;
|
|
153
|
+
/**
|
|
154
|
+
* Build swap SOL to token instruction
|
|
155
|
+
*
|
|
156
|
+
* @remarks Fee recipients are read from on-chain and cannot be modified.
|
|
157
|
+
*/
|
|
158
|
+
buildSwapSolToTokenInstruction(params: SwapSolToTokenParams): Promise<TransactionInstruction[]>;
|
|
159
|
+
/**
|
|
160
|
+
* Build swap token to SOL instruction
|
|
161
|
+
*/
|
|
162
|
+
buildSwapTokenToSolInstruction(params: SwapTokenToSolParams): Promise<TransactionInstruction[]>;
|
|
163
|
+
/**
|
|
164
|
+
* Build swap token to SOL max instruction (sell entire balance)
|
|
165
|
+
*/
|
|
166
|
+
buildSwapTokenToSolMaxInstruction(params: SwapTokenToSolMaxParams): Promise<TransactionInstruction[]>;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Convert SOL to lamports
|
|
170
|
+
*/
|
|
171
|
+
export declare function solToLamports(sol: number): bigint;
|
|
172
|
+
/**
|
|
173
|
+
* Convert lamports to SOL
|
|
174
|
+
*/
|
|
175
|
+
export declare function lamportsToSol(lamports: bigint): number;
|
|
176
|
+
/**
|
|
177
|
+
* Convert token amount to raw (with decimals)
|
|
178
|
+
*/
|
|
179
|
+
export declare function toRawAmount(amount: number, decimals?: number): bigint;
|
|
180
|
+
/**
|
|
181
|
+
* Convert raw amount to UI (without decimals)
|
|
182
|
+
*/
|
|
183
|
+
export declare function toUiAmount(rawAmount: bigint, decimals?: number): number;
|
|
184
|
+
//# 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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"}
|