@liquid-af/sdk 0.10.1 → 0.10.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../src/helpers/preview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,MAAM,OAAO,CAAC;AACvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EACX,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../src/helpers/preview.ts"],"names":[],"mappings":"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"}
|
package/dist/helpers/preview.js
CHANGED
|
@@ -7,6 +7,23 @@ import { BPS_DENOMINATOR } from "../math/constants.js";
|
|
|
7
7
|
import { calculateVirtualSolReserves } from "../oracle.js";
|
|
8
8
|
import { getAccount, getMint } from "@solana/spl-token";
|
|
9
9
|
import { calculateFeesForPool } from "../math/tiered-fees.js";
|
|
10
|
+
/**
|
|
11
|
+
* Computes price impact in basis points using cross-multiplication to avoid
|
|
12
|
+
* intermediate truncation to zero that occurs with small quote / large token
|
|
13
|
+
* reserves (e.g. stable curves with USDC).
|
|
14
|
+
*
|
|
15
|
+
* Formula: |Q_after * T_before - Q_before * T_after| * BPS / (Q_before * T_after)
|
|
16
|
+
*/
|
|
17
|
+
function calculatePriceImpactBps(quoteBefore, tokenBefore, quoteAfter, tokenAfter) {
|
|
18
|
+
const denominator = quoteBefore.mul(tokenAfter);
|
|
19
|
+
if (denominator.isZero())
|
|
20
|
+
return 0;
|
|
21
|
+
const numerator = quoteAfter
|
|
22
|
+
.mul(tokenBefore)
|
|
23
|
+
.sub(quoteBefore.mul(tokenAfter))
|
|
24
|
+
.abs();
|
|
25
|
+
return numerator.mul(new BN(BPS_DENOMINATOR)).div(denominator).toNumber();
|
|
26
|
+
}
|
|
10
27
|
/**
|
|
11
28
|
* Previews a buy on the bonding curve from pre-fetched state. The function executes offline using the state being passed in.
|
|
12
29
|
*
|
|
@@ -24,17 +41,7 @@ export function calculateBuyCurvePreview(amountInQuote, state, options) {
|
|
|
24
41
|
traderReferralBps: globalConfig.traderReferralRewardBasisPoints,
|
|
25
42
|
};
|
|
26
43
|
const result = calculateBuyExpectation(amountInQuote, bondingCurve, feeConfig, options?.hasCreatorRef ?? false, options?.hasTraderRef ?? false);
|
|
27
|
-
const
|
|
28
|
-
.mul(new BN(BPS_DENOMINATOR))
|
|
29
|
-
.div(bondingCurve.virtualTokenReserves);
|
|
30
|
-
const priceAfter = result.newVirtualQuote
|
|
31
|
-
.mul(new BN(BPS_DENOMINATOR))
|
|
32
|
-
.div(result.newVirtualToken);
|
|
33
|
-
const priceImpactBps = priceAfter
|
|
34
|
-
.sub(priceBefore)
|
|
35
|
-
.mul(new BN(BPS_DENOMINATOR))
|
|
36
|
-
.div(priceBefore)
|
|
37
|
-
.toNumber();
|
|
44
|
+
const priceImpactBps = calculatePriceImpactBps(bondingCurve.virtualQuoteReserves, bondingCurve.virtualTokenReserves, result.newVirtualQuote, result.newVirtualToken);
|
|
38
45
|
const willComplete = result.tokensOut.gte(bondingCurve.realTokenReserves);
|
|
39
46
|
return {
|
|
40
47
|
tokensOut: result.tokensOut,
|
|
@@ -70,17 +77,7 @@ export function calculateSellCurvePreview(amountInTokens, state, options) {
|
|
|
70
77
|
traderReferralBps: globalConfig.traderReferralRewardBasisPoints,
|
|
71
78
|
};
|
|
72
79
|
const result = calculateSellExpectation(amountInTokens, bondingCurve, feeConfig, options?.hasCreatorRef ?? false, options?.hasTraderRef ?? false);
|
|
73
|
-
const
|
|
74
|
-
.mul(new BN(BPS_DENOMINATOR))
|
|
75
|
-
.div(bondingCurve.virtualTokenReserves);
|
|
76
|
-
const priceAfter = result.newVirtualQuote
|
|
77
|
-
.mul(new BN(BPS_DENOMINATOR))
|
|
78
|
-
.div(result.newVirtualToken);
|
|
79
|
-
const priceImpactBps = priceBefore
|
|
80
|
-
.sub(priceAfter)
|
|
81
|
-
.mul(new BN(BPS_DENOMINATOR))
|
|
82
|
-
.div(priceBefore)
|
|
83
|
-
.toNumber();
|
|
80
|
+
const priceImpactBps = calculatePriceImpactBps(bondingCurve.virtualQuoteReserves, bondingCurve.virtualTokenReserves, result.newVirtualQuote, result.newVirtualToken);
|
|
84
81
|
return {
|
|
85
82
|
quoteOut: result.quoteOutGross,
|
|
86
83
|
quoteOutNet: result.quoteOutNet,
|
|
@@ -112,19 +109,7 @@ export function calculateSwapBuyPreview(amountOut, state) {
|
|
|
112
109
|
creatorFeeRate: ammConfig.creatorFeeRate,
|
|
113
110
|
protocolFeeRate: ammConfig.protocolFeeRate,
|
|
114
111
|
});
|
|
115
|
-
const
|
|
116
|
-
.mul(new BN(BPS_DENOMINATOR))
|
|
117
|
-
.div(baseVaultBalance);
|
|
118
|
-
const newBaseVault = baseVaultBalance.sub(amountOut);
|
|
119
|
-
const newQuoteVault = quoteVaultBalance.add(result.quoteInGross);
|
|
120
|
-
const priceAfter = newQuoteVault
|
|
121
|
-
.mul(new BN(BPS_DENOMINATOR))
|
|
122
|
-
.div(newBaseVault);
|
|
123
|
-
const priceImpactBps = priceAfter
|
|
124
|
-
.sub(priceBefore)
|
|
125
|
-
.mul(new BN(BPS_DENOMINATOR))
|
|
126
|
-
.div(priceBefore)
|
|
127
|
-
.toNumber();
|
|
112
|
+
const priceImpactBps = calculatePriceImpactBps(quoteVaultBalance, baseVaultBalance, quoteVaultBalance.add(result.quoteInGross), baseVaultBalance.sub(amountOut));
|
|
128
113
|
return {
|
|
129
114
|
amountOut: result.quoteInGross,
|
|
130
115
|
amountOutNet: result.quoteIn,
|
|
@@ -151,19 +136,7 @@ export function calculateSwapSellPreview(amountIn, state) {
|
|
|
151
136
|
creatorFeeRate: ammConfig.creatorFeeRate,
|
|
152
137
|
protocolFeeRate: ammConfig.protocolFeeRate,
|
|
153
138
|
});
|
|
154
|
-
const
|
|
155
|
-
.mul(new BN(BPS_DENOMINATOR))
|
|
156
|
-
.div(baseVaultBalance);
|
|
157
|
-
const newBaseVault = baseVaultBalance.add(amountIn);
|
|
158
|
-
const newQuoteVault = quoteVaultBalance.sub(result.quoteOut);
|
|
159
|
-
const priceAfter = newQuoteVault
|
|
160
|
-
.mul(new BN(BPS_DENOMINATOR))
|
|
161
|
-
.div(newBaseVault);
|
|
162
|
-
const priceImpactBps = priceBefore
|
|
163
|
-
.sub(priceAfter)
|
|
164
|
-
.mul(new BN(BPS_DENOMINATOR))
|
|
165
|
-
.div(priceBefore)
|
|
166
|
-
.toNumber();
|
|
139
|
+
const priceImpactBps = calculatePriceImpactBps(quoteVaultBalance, baseVaultBalance, quoteVaultBalance.sub(result.quoteOut), baseVaultBalance.add(amountIn));
|
|
167
140
|
return {
|
|
168
141
|
amountOut: result.quoteOut,
|
|
169
142
|
amountOutNet: result.quoteOutNet,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../src/helpers/preview.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../src/helpers/preview.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/helpers/preview.ts
CHANGED
|
@@ -22,6 +22,28 @@ import { calculateVirtualSolReserves } from "../oracle.js";
|
|
|
22
22
|
import { getAccount, getMint } from "@solana/spl-token";
|
|
23
23
|
import { calculateFeesForPool } from "../math/tiered-fees.js";
|
|
24
24
|
|
|
25
|
+
/**
|
|
26
|
+
* Computes price impact in basis points using cross-multiplication to avoid
|
|
27
|
+
* intermediate truncation to zero that occurs with small quote / large token
|
|
28
|
+
* reserves (e.g. stable curves with USDC).
|
|
29
|
+
*
|
|
30
|
+
* Formula: |Q_after * T_before - Q_before * T_after| * BPS / (Q_before * T_after)
|
|
31
|
+
*/
|
|
32
|
+
function calculatePriceImpactBps(
|
|
33
|
+
quoteBefore: BN,
|
|
34
|
+
tokenBefore: BN,
|
|
35
|
+
quoteAfter: BN,
|
|
36
|
+
tokenAfter: BN,
|
|
37
|
+
): number {
|
|
38
|
+
const denominator = quoteBefore.mul(tokenAfter);
|
|
39
|
+
if (denominator.isZero()) return 0;
|
|
40
|
+
const numerator = quoteAfter
|
|
41
|
+
.mul(tokenBefore)
|
|
42
|
+
.sub(quoteBefore.mul(tokenAfter))
|
|
43
|
+
.abs();
|
|
44
|
+
return numerator.mul(new BN(BPS_DENOMINATOR)).div(denominator).toNumber();
|
|
45
|
+
}
|
|
46
|
+
|
|
25
47
|
/** State needed for bonding curve preview calculations (pure math, no I/O). */
|
|
26
48
|
export interface CurvePreviewState {
|
|
27
49
|
globalConfig: {
|
|
@@ -179,17 +201,12 @@ export function calculateBuyCurvePreview(
|
|
|
179
201
|
options?.hasTraderRef ?? false,
|
|
180
202
|
);
|
|
181
203
|
|
|
182
|
-
const
|
|
183
|
-
.
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
.
|
|
187
|
-
|
|
188
|
-
const priceImpactBps = priceAfter
|
|
189
|
-
.sub(priceBefore)
|
|
190
|
-
.mul(new BN(BPS_DENOMINATOR))
|
|
191
|
-
.div(priceBefore)
|
|
192
|
-
.toNumber();
|
|
204
|
+
const priceImpactBps = calculatePriceImpactBps(
|
|
205
|
+
bondingCurve.virtualQuoteReserves,
|
|
206
|
+
bondingCurve.virtualTokenReserves,
|
|
207
|
+
result.newVirtualQuote,
|
|
208
|
+
result.newVirtualToken,
|
|
209
|
+
);
|
|
193
210
|
|
|
194
211
|
const willComplete = result.tokensOut.gte(bondingCurve.realTokenReserves);
|
|
195
212
|
|
|
@@ -241,17 +258,12 @@ export function calculateSellCurvePreview(
|
|
|
241
258
|
options?.hasTraderRef ?? false,
|
|
242
259
|
);
|
|
243
260
|
|
|
244
|
-
const
|
|
245
|
-
.
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
.
|
|
249
|
-
|
|
250
|
-
const priceImpactBps = priceBefore
|
|
251
|
-
.sub(priceAfter)
|
|
252
|
-
.mul(new BN(BPS_DENOMINATOR))
|
|
253
|
-
.div(priceBefore)
|
|
254
|
-
.toNumber();
|
|
261
|
+
const priceImpactBps = calculatePriceImpactBps(
|
|
262
|
+
bondingCurve.virtualQuoteReserves,
|
|
263
|
+
bondingCurve.virtualTokenReserves,
|
|
264
|
+
result.newVirtualQuote,
|
|
265
|
+
result.newVirtualToken,
|
|
266
|
+
);
|
|
255
267
|
|
|
256
268
|
return {
|
|
257
269
|
quoteOut: result.quoteOutGross,
|
|
@@ -295,19 +307,12 @@ export function calculateSwapBuyPreview(
|
|
|
295
307
|
},
|
|
296
308
|
);
|
|
297
309
|
|
|
298
|
-
const
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
.mul(new BN(BPS_DENOMINATOR))
|
|
305
|
-
.div(newBaseVault);
|
|
306
|
-
const priceImpactBps = priceAfter
|
|
307
|
-
.sub(priceBefore)
|
|
308
|
-
.mul(new BN(BPS_DENOMINATOR))
|
|
309
|
-
.div(priceBefore)
|
|
310
|
-
.toNumber();
|
|
310
|
+
const priceImpactBps = calculatePriceImpactBps(
|
|
311
|
+
quoteVaultBalance,
|
|
312
|
+
baseVaultBalance,
|
|
313
|
+
quoteVaultBalance.add(result.quoteInGross),
|
|
314
|
+
baseVaultBalance.sub(amountOut),
|
|
315
|
+
);
|
|
311
316
|
|
|
312
317
|
return {
|
|
313
318
|
amountOut: result.quoteInGross,
|
|
@@ -346,19 +351,12 @@ export function calculateSwapSellPreview(
|
|
|
346
351
|
},
|
|
347
352
|
);
|
|
348
353
|
|
|
349
|
-
const
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
.mul(new BN(BPS_DENOMINATOR))
|
|
356
|
-
.div(newBaseVault);
|
|
357
|
-
const priceImpactBps = priceBefore
|
|
358
|
-
.sub(priceAfter)
|
|
359
|
-
.mul(new BN(BPS_DENOMINATOR))
|
|
360
|
-
.div(priceBefore)
|
|
361
|
-
.toNumber();
|
|
354
|
+
const priceImpactBps = calculatePriceImpactBps(
|
|
355
|
+
quoteVaultBalance,
|
|
356
|
+
baseVaultBalance,
|
|
357
|
+
quoteVaultBalance.sub(result.quoteOut),
|
|
358
|
+
baseVaultBalance.add(amountIn),
|
|
359
|
+
);
|
|
362
360
|
|
|
363
361
|
return {
|
|
364
362
|
amountOut: result.quoteOut,
|