@shogun-sdk/intents-sdk 1.2.5 → 1.2.6-test
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 +3 -19
- package/dist/esm/chains.js +3 -0
- package/dist/esm/chains.js.map +1 -1
- package/dist/esm/constants.js +9 -0
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/core/evm/chain-provider.js +2 -1
- package/dist/esm/core/evm/chain-provider.js.map +1 -1
- package/dist/esm/core/evm/cross-chain-limit-order.js +1 -1
- package/dist/esm/core/evm/cross-chain-limit-order.js.map +1 -1
- package/dist/esm/core/evm/permit2-signature-transfer.js +15 -0
- package/dist/esm/core/evm/permit2-signature-transfer.js.map +1 -0
- package/dist/esm/core/evm/single-chain-dca-order.js +1 -1
- package/dist/esm/core/evm/single-chain-dca-order.js.map +1 -1
- package/dist/esm/core/evm/single-chain-limit-order.js +1 -1
- package/dist/esm/core/evm/single-chain-limit-order.js.map +1 -1
- package/dist/esm/core/solana/dca/single-chain-dca-order.js +3 -2
- package/dist/esm/core/solana/dca/single-chain-dca-order.js.map +1 -1
- package/dist/esm/core/solana/dca/single-chain-limit-order.js +3 -2
- package/dist/esm/core/solana/dca/single-chain-limit-order.js.map +1 -1
- package/dist/esm/core/solana/utils.js +14 -4
- package/dist/esm/core/solana/utils.js.map +1 -1
- package/dist/esm/core/sui/single-chain-dca-order.js +2 -1
- package/dist/esm/core/sui/single-chain-dca-order.js.map +1 -1
- package/dist/esm/core/sui/single-chain-limit-order.js +2 -1
- package/dist/esm/core/sui/single-chain-limit-order.js.map +1 -1
- package/dist/esm/index.js +6 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/token-list.js +2 -0
- package/dist/esm/types/token-list.js.map +1 -0
- package/dist/esm/utils/defillama.js +1 -0
- package/dist/esm/utils/defillama.js.map +1 -1
- package/dist/esm/utils/quote/aggregator.js +158 -42
- package/dist/esm/utils/quote/aggregator.js.map +1 -1
- package/dist/esm/utils/quote/paraswap.js +1 -0
- package/dist/esm/utils/quote/paraswap.js.map +1 -1
- package/dist/esm/utils/quote/pumpfun/estimations.js +169 -0
- package/dist/esm/utils/quote/pumpfun/estimations.js.map +1 -0
- package/dist/esm/utils/quote/pumpfun/estimations_amm.js +130 -0
- package/dist/esm/utils/quote/pumpfun/estimations_amm.js.map +1 -0
- package/dist/esm/utils/quote/pumpfun/index.js +198 -0
- package/dist/esm/utils/quote/pumpfun/index.js.map +1 -0
- package/dist/esm/utils/quote/pumpfun/models.js +70 -0
- package/dist/esm/utils/quote/pumpfun/models.js.map +1 -0
- package/dist/esm/utils/quote/pumpfun/utils.js +269 -0
- package/dist/esm/utils/quote/pumpfun/utils.js.map +1 -0
- package/dist/esm/utils/quote/raydium.js +336 -0
- package/dist/esm/utils/quote/raydium.js.map +1 -0
- package/dist/esm/utils/quote/stablecoins-tokens.js +1 -0
- package/dist/esm/utils/quote/stablecoins-tokens.js.map +1 -1
- package/dist/esm/utils/quote/utils.js +8 -0
- package/dist/esm/utils/quote/utils.js.map +1 -0
- package/dist/esm/utils/tokens/index.js +37 -0
- package/dist/esm/utils/tokens/index.js.map +1 -0
- package/dist/types/chains.d.ts +4 -2
- package/dist/types/chains.d.ts.map +1 -1
- package/dist/types/constants.d.ts +2 -1
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/core/evm/chain-provider.d.ts.map +1 -1
- package/dist/types/core/evm/permit2-signature-transfer.d.ts +3 -0
- package/dist/types/core/evm/permit2-signature-transfer.d.ts.map +1 -0
- package/dist/types/core/solana/dca/single-chain-dca-order.d.ts +1 -2
- package/dist/types/core/solana/dca/single-chain-dca-order.d.ts.map +1 -1
- package/dist/types/core/solana/dca/single-chain-limit-order.d.ts +1 -2
- package/dist/types/core/solana/dca/single-chain-limit-order.d.ts.map +1 -1
- package/dist/types/core/solana/utils.d.ts +2 -0
- package/dist/types/core/solana/utils.d.ts.map +1 -1
- package/dist/types/core/sui/single-chain-dca-order.d.ts.map +1 -1
- package/dist/types/core/sui/single-chain-limit-order.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/token-list.d.ts +30 -0
- package/dist/types/types/token-list.d.ts.map +1 -0
- package/dist/types/utils/defillama.d.ts +1 -0
- package/dist/types/utils/defillama.d.ts.map +1 -1
- package/dist/types/utils/quote/aggregator.d.ts +42 -5
- package/dist/types/utils/quote/aggregator.d.ts.map +1 -1
- package/dist/types/utils/quote/paraswap.d.ts.map +1 -1
- package/dist/types/utils/quote/pumpfun/estimations.d.ts +30 -0
- package/dist/types/utils/quote/pumpfun/estimations.d.ts.map +1 -0
- package/dist/types/utils/quote/pumpfun/estimations_amm.d.ts +49 -0
- package/dist/types/utils/quote/pumpfun/estimations_amm.d.ts.map +1 -0
- package/dist/types/utils/quote/pumpfun/index.d.ts +10 -0
- package/dist/types/utils/quote/pumpfun/index.d.ts.map +1 -0
- package/dist/types/utils/quote/pumpfun/models.d.ts +94 -0
- package/dist/types/utils/quote/pumpfun/models.d.ts.map +1 -0
- package/dist/types/utils/quote/pumpfun/utils.d.ts +50 -0
- package/dist/types/utils/quote/pumpfun/utils.d.ts.map +1 -0
- package/dist/types/utils/quote/raydium.d.ts +98 -0
- package/dist/types/utils/quote/raydium.d.ts.map +1 -0
- package/dist/types/utils/quote/stablecoins-tokens.d.ts.map +1 -1
- package/dist/types/utils/quote/utils.d.ts +5 -0
- package/dist/types/utils/quote/utils.d.ts.map +1 -0
- package/dist/types/utils/tokens/index.d.ts +20 -0
- package/dist/types/utils/tokens/index.d.ts.map +1 -0
- package/package.json +20 -18
- package/src/chains.ts +3 -0
- package/src/constants.ts +12 -2
- package/src/core/evm/chain-provider.ts +2 -1
- package/src/core/evm/cross-chain-limit-order.ts +1 -1
- package/src/core/evm/permit2-signature-transfer.ts +15 -0
- package/src/core/evm/single-chain-dca-order.ts +1 -1
- package/src/core/evm/single-chain-limit-order.ts +1 -1
- package/src/core/solana/dca/single-chain-dca-order.ts +3 -3
- package/src/core/solana/dca/single-chain-limit-order.ts +3 -2
- package/src/core/solana/utils.ts +24 -12
- package/src/core/sui/single-chain-dca-order.ts +2 -2
- package/src/core/sui/single-chain-limit-order.ts +2 -2
- package/src/index.ts +14 -4
- package/src/types/token-list.ts +35 -0
- package/src/utils/defillama.ts +1 -0
- package/src/utils/quote/aggregator.ts +210 -55
- package/src/utils/quote/paraswap.ts +1 -0
- package/src/utils/quote/pumpfun/estimations.ts +206 -0
- package/src/utils/quote/pumpfun/estimations_amm.ts +165 -0
- package/src/utils/quote/pumpfun/index.ts +266 -0
- package/src/utils/quote/pumpfun/models.ts +163 -0
- package/src/utils/quote/pumpfun/utils.ts +343 -0
- package/src/utils/quote/raydium.ts +506 -0
- package/src/utils/quote/stablecoins-tokens.ts +1 -0
- package/src/utils/quote/utils.ts +8 -0
- package/src/utils/tokens/index.ts +38 -0
|
@@ -4,38 +4,49 @@ import {} from '@jup-ag/api';
|
|
|
4
4
|
import { ParaswapQuoteProvider } from './paraswap.js';
|
|
5
5
|
import { CROSS_CHAIN_TOKENS } from './stablecoins-tokens.js';
|
|
6
6
|
import { AftermathQuoteProvider } from './aftermath.js';
|
|
7
|
-
import { calculateAmounts } from '../defillama.js';
|
|
8
7
|
import { LiquidSwapQuoteProvider } from './liquidswap.js';
|
|
8
|
+
import { RaydiumQuoteProvider } from './raydium.js';
|
|
9
|
+
import { PumpFunQuoteProvider } from './pumpfun/index.js';
|
|
10
|
+
const compareAddresses = (firstAddress, secondAddress) => {
|
|
11
|
+
return !!firstAddress && !!secondAddress && firstAddress.toLowerCase() === secondAddress.toLowerCase();
|
|
12
|
+
};
|
|
9
13
|
export class QuoteProvider {
|
|
10
|
-
static async
|
|
11
|
-
const defillamaQuote = await calculateAmounts({
|
|
12
|
-
amountIn: params.amount,
|
|
13
|
-
tokenIn: params.tokenIn,
|
|
14
|
-
tokenOut: params.tokenOut,
|
|
15
|
-
destChainId: params.destChainId,
|
|
16
|
-
srcChainId: params.sourceChainId,
|
|
17
|
-
});
|
|
18
|
-
return {
|
|
19
|
-
amountInUsd: 0,
|
|
20
|
-
estimatedAmountOutUsd: 0,
|
|
21
|
-
estimatedAmountOutUsdReduced: 0,
|
|
22
|
-
estimatedAmountInAsMinStablecoinAmount: defillamaQuote.minStablecoinsAmount,
|
|
23
|
-
estimatedAmountOut: defillamaQuote.amountOut,
|
|
24
|
-
estimatedAmountOutReduced: defillamaQuote.amountOut,
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
static async getQuoteWithDefillamaFallback(params) {
|
|
14
|
+
static async getQuote(params) {
|
|
28
15
|
try {
|
|
29
16
|
const quote = await this.getQuoteFromRouters(params);
|
|
30
|
-
|
|
17
|
+
// Adapt QuoteResponseInternal to QuoteResponse by adding tokenIn and tokenOut metadata fields
|
|
18
|
+
return {
|
|
19
|
+
...quote,
|
|
20
|
+
tokenIn: {
|
|
21
|
+
address: params.tokenIn,
|
|
22
|
+
chainId: params.sourceChainId
|
|
23
|
+
},
|
|
24
|
+
tokenOut: {
|
|
25
|
+
address: params.tokenOut,
|
|
26
|
+
chainId: params.destChainId
|
|
27
|
+
}
|
|
28
|
+
};
|
|
31
29
|
}
|
|
32
30
|
catch (e) {
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
console.error('Error getting quote from routers:', e);
|
|
32
|
+
throw new Error('Failed to get quote from routers');
|
|
35
33
|
}
|
|
36
34
|
}
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Get a quote for Solana with explicit provider selection
|
|
37
|
+
* @param params - Quote parameters including provider preference
|
|
38
|
+
* @returns Quote response
|
|
39
|
+
*/
|
|
40
|
+
static async getSolanaQuote(params) {
|
|
41
|
+
const singleChainParams = {
|
|
42
|
+
chainId: ChainID.Solana,
|
|
43
|
+
amount: params.amount,
|
|
44
|
+
tokenIn: params.tokenIn,
|
|
45
|
+
tokenOut: params.tokenOut,
|
|
46
|
+
slippageBps: params.slippageBps,
|
|
47
|
+
provider: params.provider,
|
|
48
|
+
};
|
|
49
|
+
return this.getSingleChainQuote(singleChainParams);
|
|
39
50
|
}
|
|
40
51
|
static async getQuoteFromRouters(params) {
|
|
41
52
|
const bridgeTokenSymbol = QuoteProvider.DEFAULT_BRIDGE_TOKEN;
|
|
@@ -55,25 +66,24 @@ export class QuoteProvider {
|
|
|
55
66
|
tokenOut: params.tokenOut,
|
|
56
67
|
};
|
|
57
68
|
const destQuote = await this.getSingleChainQuote(destSingleChainQuoteParams);
|
|
58
|
-
// Use weighted reduction instead of fixed percentage
|
|
59
|
-
const weightedReductionFactor = this.calculateWeightedReductionFactorForUsd(destQuote.amountOutUsd);
|
|
60
|
-
const
|
|
61
|
-
const estimatedAmountOutUsdReduced = destQuote.amountOutUsd
|
|
62
|
-
const
|
|
63
|
-
const estimatedAmountInAsMinStablecoinAmount = BigInt(Math.floor(reducedAmountInUsd * 10 ** this.DEFAULT_BRIDGE_TOKEN_DECIMALS));
|
|
69
|
+
// // Use weighted reduction instead of fixed percentage
|
|
70
|
+
// const weightedReductionFactor = this.calculateWeightedReductionFactorForUsd(destQuote.amountOutUsd);
|
|
71
|
+
// const weightedReductionFactor = 0.999;
|
|
72
|
+
const estimatedAmountOutUsdReduced = destQuote.amountOutUsd;
|
|
73
|
+
const estimatedAmountInAsMinStablecoinAmount = BigInt(Math.floor(sourceQuote.amountInUsd * 10 ** this.DEFAULT_BRIDGE_TOKEN_DECIMALS));
|
|
64
74
|
return {
|
|
65
75
|
estimatedAmountOut: destQuote.amountOut,
|
|
66
76
|
estimatedAmountOutUsd: destQuote.amountOutUsd,
|
|
67
77
|
amountInUsd: sourceQuote.amountInUsd,
|
|
68
78
|
estimatedAmountInAsMinStablecoinAmount,
|
|
69
|
-
estimatedAmountOutReduced,
|
|
79
|
+
estimatedAmountOutReduced: destQuote.amountOutMin || destQuote.amountOut,
|
|
70
80
|
estimatedAmountOutUsdReduced,
|
|
71
81
|
};
|
|
72
82
|
}
|
|
73
83
|
static async getSingleChainQuote(params) {
|
|
74
|
-
if (params.tokenIn
|
|
84
|
+
if (compareAddresses(params.tokenIn, params.tokenOut)) {
|
|
75
85
|
let amountUsd = 0;
|
|
76
|
-
if (params.tokenIn
|
|
86
|
+
if (compareAddresses(params.tokenIn, CROSS_CHAIN_TOKENS.USDC[params.chainId])) {
|
|
77
87
|
amountUsd = Number(params.amount) / 10 ** this.DEFAULT_BRIDGE_TOKEN_DECIMALS;
|
|
78
88
|
}
|
|
79
89
|
return {
|
|
@@ -83,7 +93,7 @@ export class QuoteProvider {
|
|
|
83
93
|
amountInUsd: amountUsd,
|
|
84
94
|
slippage: 0,
|
|
85
95
|
priceImpact: 0,
|
|
86
|
-
provider: getProviderNameByChainId(params.chainId),
|
|
96
|
+
provider: params.provider || getProviderNameByChainId(params.chainId),
|
|
87
97
|
rawQuote: null,
|
|
88
98
|
};
|
|
89
99
|
}
|
|
@@ -92,8 +102,42 @@ export class QuoteProvider {
|
|
|
92
102
|
return QuoteProvider.transformLiquidSwapQuote(liquidSwapQuote);
|
|
93
103
|
}
|
|
94
104
|
if (params.chainId === ChainID.Solana) {
|
|
95
|
-
|
|
96
|
-
|
|
105
|
+
// Check if provider is explicitly specified
|
|
106
|
+
if (params.provider === 'jupiter') {
|
|
107
|
+
const jupiterQuote = await QuoteProvider.getJupiterQuote(params);
|
|
108
|
+
return QuoteProvider.transformJupiterQuote(jupiterQuote);
|
|
109
|
+
}
|
|
110
|
+
else if (params.provider === 'raydium') {
|
|
111
|
+
const raydiumQuote = await QuoteProvider.getRaydiumQuote(params);
|
|
112
|
+
return raydiumQuote;
|
|
113
|
+
}
|
|
114
|
+
else if (params.provider === 'pumpfun') {
|
|
115
|
+
const pumpfunQuote = await QuoteProvider.getPumpFunQuote(params);
|
|
116
|
+
return pumpfunQuote;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
// Default: Try Jupiter first, fallback to Raydium and Pump if it fails
|
|
120
|
+
try {
|
|
121
|
+
const jupiterQuote = await QuoteProvider.getJupiterQuote(params);
|
|
122
|
+
if (!jupiterQuote.quote) {
|
|
123
|
+
throw new Error('Jupiter quote failed');
|
|
124
|
+
}
|
|
125
|
+
const transformedQuote = QuoteProvider.transformJupiterQuote(jupiterQuote);
|
|
126
|
+
return transformedQuote;
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
console.warn('Jupiter quote failed, falling back to Raydium:', error);
|
|
130
|
+
// Try Raydium first, then Pumpfun
|
|
131
|
+
try {
|
|
132
|
+
const raydiumQuote = await QuoteProvider.getRaydiumQuote(params);
|
|
133
|
+
return raydiumQuote;
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
const pumpfunQuote = await QuoteProvider.getPumpFunQuote(params);
|
|
137
|
+
return pumpfunQuote;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
97
141
|
}
|
|
98
142
|
if (params.chainId === ChainID.Sui) {
|
|
99
143
|
const quote = await QuoteProvider.getAftermathQuote(params);
|
|
@@ -153,7 +197,7 @@ export class QuoteProvider {
|
|
|
153
197
|
tokenIn: params.tokenIn,
|
|
154
198
|
tokenOut: params.tokenOut,
|
|
155
199
|
swapMode: 'ExactIn',
|
|
156
|
-
slippageBps: params.slippageBps,
|
|
200
|
+
slippageBps: params.slippageBps ? params.slippageBps : 20, // Default 0.2% slippage
|
|
157
201
|
});
|
|
158
202
|
}
|
|
159
203
|
static async getParaswapQuote(params) {
|
|
@@ -173,12 +217,39 @@ export class QuoteProvider {
|
|
|
173
217
|
tokenOut: params.tokenOut,
|
|
174
218
|
});
|
|
175
219
|
}
|
|
220
|
+
//TODO: For Raydium and Pump we are applying slippage twice if there are 2 swaps (e.g., USDC -> SOL -> Token), should we just apply half and half on each swap?
|
|
221
|
+
static async getRaydiumQuote(params) {
|
|
222
|
+
const raydiumQuoter = new RaydiumQuoteProvider();
|
|
223
|
+
let request = {
|
|
224
|
+
inputMint: params.tokenIn,
|
|
225
|
+
outputMint: params.tokenOut,
|
|
226
|
+
amount: params.amount.toString(),
|
|
227
|
+
slippageBps: params.slippageBps || 20, // Default 0.2% slippage
|
|
228
|
+
};
|
|
229
|
+
try {
|
|
230
|
+
return this.transformRaydiumQuote(await raydiumQuoter.getQuote(request));
|
|
231
|
+
}
|
|
232
|
+
catch (e) {
|
|
233
|
+
console.log('Raydium AMM quote cannot find a route, trying with prebonded raydium');
|
|
234
|
+
return simpleQuoteToQuote(await raydiumQuoter.getQuotePrebonded(request), 'raydium');
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
static async getPumpFunQuote(params) {
|
|
238
|
+
const pumpfunQuoter = new PumpFunQuoteProvider();
|
|
239
|
+
let request = {
|
|
240
|
+
inputMint: params.tokenIn,
|
|
241
|
+
outputMint: params.tokenOut,
|
|
242
|
+
amount: params.amount.toString(),
|
|
243
|
+
slippageBps: params.slippageBps || 20, // Default 0.2% slippage
|
|
244
|
+
};
|
|
245
|
+
return simpleQuoteToQuote(await pumpfunQuoter.getQuote(request), 'pumpfun');
|
|
246
|
+
}
|
|
176
247
|
static transformAftermathQuote({ quote, request, }) {
|
|
177
248
|
let amountUsd = 0;
|
|
178
|
-
if (request.tokenIn
|
|
249
|
+
if (compareAddresses(request.tokenIn, CROSS_CHAIN_TOKENS.USDC[request.chainId])) {
|
|
179
250
|
amountUsd = Number(quote.coinIn.amount) / 10 ** this.DEFAULT_BRIDGE_TOKEN_DECIMALS;
|
|
180
251
|
}
|
|
181
|
-
if (request.tokenOut
|
|
252
|
+
if (compareAddresses(request.tokenOut, CROSS_CHAIN_TOKENS.USDC[request.chainId])) {
|
|
182
253
|
amountUsd = Number(quote.coinOut.amount) / 10 ** this.DEFAULT_BRIDGE_TOKEN_DECIMALS;
|
|
183
254
|
}
|
|
184
255
|
return {
|
|
@@ -207,17 +278,19 @@ export class QuoteProvider {
|
|
|
207
278
|
static transformJupiterQuote({ quote }) {
|
|
208
279
|
const amountIn = Number(quote.inAmount);
|
|
209
280
|
const amountOut = Number(quote.outAmount);
|
|
281
|
+
const amountOutMin = Number(quote.otherAmountThreshold);
|
|
210
282
|
let amountUsd = 0;
|
|
211
283
|
const priceImpact = quote.priceImpactPct ? Number(quote.priceImpactPct) * 100 : 0;
|
|
212
|
-
if (quote.outputMint
|
|
284
|
+
if (compareAddresses(quote.outputMint, CROSS_CHAIN_TOKENS.USDC[ChainID.Solana])) {
|
|
213
285
|
amountUsd = amountOut / 10 ** this.DEFAULT_BRIDGE_TOKEN_DECIMALS;
|
|
214
286
|
}
|
|
215
|
-
if (quote.inputMint
|
|
287
|
+
if (compareAddresses(quote.inputMint, CROSS_CHAIN_TOKENS.USDC[ChainID.Solana])) {
|
|
216
288
|
amountUsd = amountIn / 10 ** this.DEFAULT_BRIDGE_TOKEN_DECIMALS;
|
|
217
289
|
}
|
|
218
290
|
return {
|
|
219
291
|
amountIn: BigInt(amountIn),
|
|
220
292
|
amountOut: BigInt(amountOut),
|
|
293
|
+
amountOutMin: BigInt(amountOutMin),
|
|
221
294
|
amountOutUsd: amountUsd,
|
|
222
295
|
amountInUsd: amountUsd,
|
|
223
296
|
slippage: quote.slippageBps ? quote.slippageBps / 100 : 0,
|
|
@@ -226,6 +299,28 @@ export class QuoteProvider {
|
|
|
226
299
|
rawQuote: quote,
|
|
227
300
|
};
|
|
228
301
|
}
|
|
302
|
+
static transformRaydiumQuote(raydiumQuote) {
|
|
303
|
+
const amountIn = BigInt(raydiumQuote.data.inAmount);
|
|
304
|
+
const amountOut = BigInt(raydiumQuote.data.outAmount);
|
|
305
|
+
let amountUsd = 0;
|
|
306
|
+
const priceImpact = Number(raydiumQuote.data.priceImpactPct) * 100;
|
|
307
|
+
if (compareAddresses(raydiumQuote.data.outputMint, CROSS_CHAIN_TOKENS.USDC[ChainID.Solana])) {
|
|
308
|
+
amountUsd = Number(amountOut) / 10 ** this.DEFAULT_BRIDGE_TOKEN_DECIMALS;
|
|
309
|
+
}
|
|
310
|
+
if (compareAddresses(raydiumQuote.data.inputMint, CROSS_CHAIN_TOKENS.USDC[ChainID.Solana])) {
|
|
311
|
+
amountUsd = Number(amountIn) / 10 ** this.DEFAULT_BRIDGE_TOKEN_DECIMALS;
|
|
312
|
+
}
|
|
313
|
+
return {
|
|
314
|
+
amountIn,
|
|
315
|
+
amountOut,
|
|
316
|
+
amountOutUsd: amountUsd,
|
|
317
|
+
amountInUsd: amountUsd,
|
|
318
|
+
slippage: raydiumQuote.data.slippageBps / 100,
|
|
319
|
+
priceImpact,
|
|
320
|
+
provider: 'raydium',
|
|
321
|
+
rawQuote: raydiumQuote,
|
|
322
|
+
};
|
|
323
|
+
}
|
|
229
324
|
}
|
|
230
325
|
Object.defineProperty(QuoteProvider, "DEFAULT_BRIDGE_TOKEN", {
|
|
231
326
|
enumerable: true,
|
|
@@ -244,11 +339,32 @@ function getProviderNameByChainId(chainId) {
|
|
|
244
339
|
case ChainID.Sui:
|
|
245
340
|
return 'aftermath';
|
|
246
341
|
case ChainID.Solana:
|
|
247
|
-
return 'jupiter';
|
|
342
|
+
return 'jupiter'; // Primary provider, with Raydium and Pumpfun as fallbacks
|
|
248
343
|
case ChainID.Hyperliquid:
|
|
249
344
|
return 'liquidswap';
|
|
250
345
|
default:
|
|
251
346
|
return 'paraswap';
|
|
252
347
|
}
|
|
253
348
|
}
|
|
349
|
+
export function quoteToSimpleQuote(quote) {
|
|
350
|
+
return {
|
|
351
|
+
amountIn: quote.amountIn,
|
|
352
|
+
amountOut: quote.amountOut,
|
|
353
|
+
amountOutMin: quote.amountOutMin,
|
|
354
|
+
slippage: quote.slippage,
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
export function simpleQuoteToQuote(simpleQuote, provider) {
|
|
358
|
+
return {
|
|
359
|
+
amountIn: simpleQuote.amountIn,
|
|
360
|
+
amountOut: simpleQuote.amountOut,
|
|
361
|
+
amountOutMin: simpleQuote.amountOutMin,
|
|
362
|
+
slippage: simpleQuote.slippage,
|
|
363
|
+
amountInUsd: 0,
|
|
364
|
+
amountOutUsd: 0,
|
|
365
|
+
priceImpact: 0,
|
|
366
|
+
provider,
|
|
367
|
+
rawQuote: simpleQuote,
|
|
368
|
+
};
|
|
369
|
+
}
|
|
254
370
|
//# sourceMappingURL=aggregator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregator.js","sourceRoot":"","sources":["../../../../src/utils/quote/aggregator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aggregator.js","sourceRoot":"","sources":["../../../../src/utils/quote/aggregator.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ const rpcProvidersUrl = {
|
|
|
9
9
|
[ChainID.Optimism]: 'https://optimism-rpc.publicnode.com',
|
|
10
10
|
[ChainID.Base]: 'https://base-rpc.publicnode.com',
|
|
11
11
|
[ChainID.Hyperliquid]: 'https://rpc.hyperliquid.xyz/evm',
|
|
12
|
+
[ChainID.BSC]: 'https://bsc-dataseed.ninicoin.io',
|
|
12
13
|
};
|
|
13
14
|
export class ParaswapQuoteProvider {
|
|
14
15
|
constructor(chainId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paraswap.js","sourceRoot":"","sources":["../../../../src/utils/quote/paraswap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAoB,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,OAAO,EAA0B,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAgB,MAAM,MAAM,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,MAAM,eAAe,GAAsC;IACzD,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,yCAAyC;IAC7D,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,qCAAqC;IACzD,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,iCAAiC;IACjD,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,iCAAiC;
|
|
1
|
+
{"version":3,"file":"paraswap.js","sourceRoot":"","sources":["../../../../src/utils/quote/paraswap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
export const BPS_DEN = 10000n;
|
|
2
|
+
export var PreBondedTradeType;
|
|
3
|
+
(function (PreBondedTradeType) {
|
|
4
|
+
PreBondedTradeType["BuyExactIn"] = "BuyExactIn";
|
|
5
|
+
PreBondedTradeType["BuyExactOut"] = "BuyExactOut";
|
|
6
|
+
PreBondedTradeType["SellExactIn"] = "SellExactIn";
|
|
7
|
+
PreBondedTradeType["SellExactOut"] = "SellExactOut";
|
|
8
|
+
})(PreBondedTradeType || (PreBondedTradeType = {}));
|
|
9
|
+
class PreBondingError extends Error {
|
|
10
|
+
constructor(message) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = 'PreBondingError';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Calculate output amount for constant product AMM: (amount_in * y_out) / (x_in + amount_in)
|
|
17
|
+
*/
|
|
18
|
+
function cpAmountOut(amountIn, xIn, yOut) {
|
|
19
|
+
if (xIn === 0n || yOut === 0n) {
|
|
20
|
+
throw new PreBondingError('Zero value for reserve');
|
|
21
|
+
}
|
|
22
|
+
const num = amountIn * yOut;
|
|
23
|
+
const den = xIn + amountIn;
|
|
24
|
+
return num / den;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Buy exact SOL in, get tokens out.
|
|
28
|
+
* Fee is deducted from SOL before the swap calculation.
|
|
29
|
+
*/
|
|
30
|
+
export function buyExactIn(curve, solIn, feeBps) {
|
|
31
|
+
if (curve.complete) {
|
|
32
|
+
throw new PreBondingError(`Pool not in fundraising state: ${JSON.stringify(curve)}`);
|
|
33
|
+
}
|
|
34
|
+
if (solIn === 0n) {
|
|
35
|
+
return 0n;
|
|
36
|
+
}
|
|
37
|
+
const vSol = curve.virtualSolReserves;
|
|
38
|
+
const vTok = curve.virtualTokenReserves;
|
|
39
|
+
// Deduct protocol + creator fee from input SOL
|
|
40
|
+
const fee = (solIn * feeBps) / BPS_DEN;
|
|
41
|
+
const effectiveSolIn = solIn - fee;
|
|
42
|
+
let out = cpAmountOut(effectiveSolIn, vSol, vTok);
|
|
43
|
+
// Observed rounding in buy path (+1)
|
|
44
|
+
out = out + 1n;
|
|
45
|
+
// Cap by real tokens available
|
|
46
|
+
return out < curve.realTokenReserves ? out : curve.realTokenReserves;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Sell exact tokens in, get SOL out.
|
|
50
|
+
* Fee is deducted from SOL output.
|
|
51
|
+
*/
|
|
52
|
+
export function sellExactIn(curve, tokensIn, feeBps) {
|
|
53
|
+
if (curve.complete) {
|
|
54
|
+
throw new PreBondingError(`Pool not in fundraising state: ${JSON.stringify(curve)}`);
|
|
55
|
+
}
|
|
56
|
+
if (tokensIn === 0n) {
|
|
57
|
+
return 0n;
|
|
58
|
+
}
|
|
59
|
+
const vTok = curve.virtualTokenReserves;
|
|
60
|
+
const vSol = curve.virtualSolReserves;
|
|
61
|
+
const gross = cpAmountOut(tokensIn, vTok, vSol);
|
|
62
|
+
// Deduct protocol + creator fee from output SOL
|
|
63
|
+
const fee = (gross * feeBps) / BPS_DEN;
|
|
64
|
+
let net = gross - fee;
|
|
65
|
+
// Cap by real SOL available
|
|
66
|
+
net = net < curve.realSolReserves ? net : curve.realSolReserves;
|
|
67
|
+
return net;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Buy exact tokens out, calculate required SOL in.
|
|
71
|
+
* This calculates the EXACT amount needed, but doesn't account for slippage buffer.
|
|
72
|
+
*/
|
|
73
|
+
export function buyExactOut(curve, tokensOut, feeBps) {
|
|
74
|
+
if (curve.complete) {
|
|
75
|
+
throw new PreBondingError(`Pool not in fundraising state: ${JSON.stringify(curve)}`);
|
|
76
|
+
}
|
|
77
|
+
if (tokensOut === 0n) {
|
|
78
|
+
return 0n;
|
|
79
|
+
}
|
|
80
|
+
if (tokensOut > curve.realTokenReserves) {
|
|
81
|
+
throw new PreBondingError('Insufficient liquidity: real_token cap');
|
|
82
|
+
}
|
|
83
|
+
const vSol = curve.virtualSolReserves;
|
|
84
|
+
const vTok = curve.virtualTokenReserves;
|
|
85
|
+
if (tokensOut >= vTok) {
|
|
86
|
+
throw new PreBondingError('Insufficient liquidity: tokens_out >= v_tok');
|
|
87
|
+
}
|
|
88
|
+
// Calculate effective SOL needed before fees: ceil((vSol * tokensOut) / (vTok - tokensOut))
|
|
89
|
+
const num = vSol * tokensOut;
|
|
90
|
+
const den = vTok - tokensOut;
|
|
91
|
+
const effIn = (num + den - 1n) / den; // ceiling division
|
|
92
|
+
const feeNum = BPS_DEN - feeBps;
|
|
93
|
+
if (feeNum === 0n) {
|
|
94
|
+
throw new PreBondingError('Invalid fee configuration');
|
|
95
|
+
}
|
|
96
|
+
// Calculate gross SOL including fees: ceil((effIn * BPS_DEN) / feeNum)
|
|
97
|
+
const grossIn = (effIn * BPS_DEN + feeNum - 1n) / feeNum;
|
|
98
|
+
return grossIn;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Sell exact SOL out, calculate required tokens in.
|
|
102
|
+
* This calculates the EXACT amount needed, but doesn't account for slippage buffer.
|
|
103
|
+
*/
|
|
104
|
+
export function sellExactOut(curve, solOut, feeBps) {
|
|
105
|
+
if (curve.complete) {
|
|
106
|
+
throw new PreBondingError(`Pool not in fundraising state: ${JSON.stringify(curve)}`);
|
|
107
|
+
}
|
|
108
|
+
if (solOut === 0n) {
|
|
109
|
+
return 0n;
|
|
110
|
+
}
|
|
111
|
+
if (solOut > curve.realSolReserves) {
|
|
112
|
+
throw new PreBondingError('Insufficient liquidity: real_sol cap');
|
|
113
|
+
}
|
|
114
|
+
const vTok = curve.virtualTokenReserves;
|
|
115
|
+
const vSol = curve.virtualSolReserves;
|
|
116
|
+
// fee_num = BPS_DEN - fee_bps
|
|
117
|
+
const feeNum = BPS_DEN - feeBps;
|
|
118
|
+
if (feeNum === 0n) {
|
|
119
|
+
throw new PreBondingError('Invalid fee configuration');
|
|
120
|
+
}
|
|
121
|
+
// Upper bound via continuous formula: gross = ceil((solOut * BPS_DEN) / feeNum)
|
|
122
|
+
const gross = (solOut * BPS_DEN + feeNum - 1n) / feeNum; // ceil
|
|
123
|
+
if (gross >= vSol) {
|
|
124
|
+
throw new PreBondingError('Insufficient liquidity: gross >= v_sol');
|
|
125
|
+
}
|
|
126
|
+
// hi = ceil((vTok * gross) / (vSol - gross))
|
|
127
|
+
const num = vTok * gross;
|
|
128
|
+
const den = vSol - gross;
|
|
129
|
+
let hi = (num + den - 1n) / den; // ceil
|
|
130
|
+
if (hi === 0n) {
|
|
131
|
+
hi = 1n;
|
|
132
|
+
}
|
|
133
|
+
// Monotonic binary search on sellExactIn using forward path (with real floors)
|
|
134
|
+
let lo = 0n;
|
|
135
|
+
let ans = hi;
|
|
136
|
+
while (lo <= hi) {
|
|
137
|
+
const mid = lo + (hi - lo) / 2n;
|
|
138
|
+
const got = sellExactIn(curve, mid, feeBps);
|
|
139
|
+
if (got >= solOut) {
|
|
140
|
+
ans = mid;
|
|
141
|
+
if (mid === 0n)
|
|
142
|
+
break;
|
|
143
|
+
hi = mid - 1n;
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
lo = mid + 1n;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return ans;
|
|
150
|
+
}
|
|
151
|
+
export function estimatePumpFunPrebonded(bondingCurve, globalAccount, amount, tradeType) {
|
|
152
|
+
if (bondingCurve.complete) {
|
|
153
|
+
throw new PreBondingError(`Pool not in fundraising state: ${JSON.stringify(bondingCurve)}`);
|
|
154
|
+
}
|
|
155
|
+
const totalFeeBps = globalAccount.feeBasisPoints + globalAccount.creatorFeeBasisPoints;
|
|
156
|
+
switch (tradeType) {
|
|
157
|
+
case PreBondedTradeType.BuyExactIn:
|
|
158
|
+
return buyExactIn(bondingCurve, amount, totalFeeBps);
|
|
159
|
+
case PreBondedTradeType.BuyExactOut:
|
|
160
|
+
return buyExactOut(bondingCurve, amount, totalFeeBps);
|
|
161
|
+
case PreBondedTradeType.SellExactIn:
|
|
162
|
+
return sellExactIn(bondingCurve, amount, totalFeeBps);
|
|
163
|
+
case PreBondedTradeType.SellExactOut:
|
|
164
|
+
return sellExactOut(bondingCurve, amount, totalFeeBps);
|
|
165
|
+
default:
|
|
166
|
+
throw new PreBondingError(`Invalid trade type: ${tradeType}`);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=estimations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"estimations.js","sourceRoot":"","sources":["../../../../../src/utils/quote/pumpfun/estimations.ts"],"names":[],"mappings":"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"}
|