@exponent-labs/market-math 0.1.8 → 0.9.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/build/index.d.ts +43 -8
- package/build/index.js +83 -20
- package/build/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +110 -19
package/build/index.d.ts
CHANGED
|
@@ -36,7 +36,7 @@ export declare function findRateAnchor({ currentRateScalar, lastLnImpliedRate, s
|
|
|
36
36
|
/** Calculate fee on asset */
|
|
37
37
|
export declare function tradeFee(netTraderAsset: number, currentFeeRate: number): number;
|
|
38
38
|
/** Calculate result of trading pt */
|
|
39
|
-
export declare function tradePt({ liquidityPt, liquidityAsset, currentRateScalar, currentRateAnchor, currentFeeRate, netTraderPt, syExchangeRate, feeTreasurySyBps, isCurrentFlashSwap, }: {
|
|
39
|
+
export declare function tradePt({ liquidityPt, liquidityAsset, currentRateScalar, currentRateAnchor, currentFeeRate, netTraderPt, syExchangeRate, feeTreasurySyBps, isCurrentFlashSwap, skipFees, }: {
|
|
40
40
|
liquidityPt: number;
|
|
41
41
|
liquidityAsset: number;
|
|
42
42
|
currentRateScalar: number;
|
|
@@ -46,6 +46,7 @@ export declare function tradePt({ liquidityPt, liquidityAsset, currentRateScalar
|
|
|
46
46
|
syExchangeRate: number;
|
|
47
47
|
feeTreasurySyBps: number;
|
|
48
48
|
isCurrentFlashSwap?: boolean;
|
|
49
|
+
skipFees?: boolean;
|
|
49
50
|
}): TradeResult;
|
|
50
51
|
export interface LiquidityAdd {
|
|
51
52
|
syIn: number;
|
|
@@ -135,7 +136,16 @@ export declare class MarketCalculator {
|
|
|
135
136
|
* If the trade is impossible, return null
|
|
136
137
|
* This can happen if there is not enough liquidity to sell YT for the amount of asset desired
|
|
137
138
|
*/
|
|
138
|
-
simSellYt(ytIn: number): {
|
|
139
|
+
simSellYt(ytIn: number, skipFees?: boolean): {
|
|
140
|
+
assetOut: number;
|
|
141
|
+
feeInAsset: number;
|
|
142
|
+
newMarketCalculator: MarketCalculator;
|
|
143
|
+
} | null;
|
|
144
|
+
/**
|
|
145
|
+
* @param ytIn - YT amount in lamports
|
|
146
|
+
* @param impliedApy - Implied APY as a decimal (e.g., 0.08 for 8%)
|
|
147
|
+
*/
|
|
148
|
+
simSellYtWithImpliedApy(ytIn: number, impliedApy: number, skipFees?: boolean): {
|
|
139
149
|
assetOut: number;
|
|
140
150
|
feeInAsset: number;
|
|
141
151
|
newMarketCalculator: MarketCalculator;
|
|
@@ -143,10 +153,27 @@ export declare class MarketCalculator {
|
|
|
143
153
|
/** Calculate the amount of asset out for selling YT */
|
|
144
154
|
estimateYtInForExactBaseOut(assetOut: number): number | null;
|
|
145
155
|
/** Calculate the amount of asset to pay for buying YT */
|
|
146
|
-
calcBuyYt(ytOut: number): number | null;
|
|
156
|
+
calcBuyYt(ytOut: number, skipFees?: boolean): number | null;
|
|
147
157
|
/** Calculate the trade result for trading PT */
|
|
148
|
-
calcTradePt(netTraderPt: number, isCurrentFlashSwap?: boolean): CalculatorTradeResult;
|
|
158
|
+
calcTradePt(netTraderPt: number, isCurrentFlashSwap?: boolean, skipFees?: boolean): CalculatorTradeResult;
|
|
149
159
|
estimateNetPtForExactNetAsset(netTraderAsset: number): number | null;
|
|
160
|
+
/**
|
|
161
|
+
* @param netAssetIn - Net asset in lamports. Trade direction:
|
|
162
|
+
* - Positive: selling PT for underlying asset
|
|
163
|
+
* - Negative: buying PT with underlying asset
|
|
164
|
+
* @param impliedApy - Implied APY as a decimal (e.g., 0.08 for 8%)
|
|
165
|
+
*/
|
|
166
|
+
estimateNetPtForExactNetAssetWithImpliedApy(netAssetIn: number, impliedApy: number, skipFees?: boolean): number | null;
|
|
167
|
+
/**
|
|
168
|
+
* @param ptAmount - Amount of PT to sell in lamports
|
|
169
|
+
* @param impliedApy - Implied APY as a decimal (e.g., 0.08 for 8%)
|
|
170
|
+
*/
|
|
171
|
+
estimateAssetOutForPtInWithImpliedApy(ptAmount: number, impliedApy: number, skipFees?: boolean): number | null;
|
|
172
|
+
/**
|
|
173
|
+
* @param impliedApy - Implied APY as a decimal (e.g., 0.08 for 8%)
|
|
174
|
+
* @returns A new MarketCalculator instance with the implied APY
|
|
175
|
+
*/
|
|
176
|
+
withImpliedApy(impliedApy: number): MarketCalculator;
|
|
150
177
|
simulateClassicLpWithdraw({ lpAmount }: {
|
|
151
178
|
lpAmount: number;
|
|
152
179
|
}): {
|
|
@@ -159,8 +186,16 @@ export declare class MarketCalculator {
|
|
|
159
186
|
assetOut: number;
|
|
160
187
|
};
|
|
161
188
|
/** Deprecated - bad name - use estimateNetPtForExactNetAsset */
|
|
162
|
-
calcExactPtForNetAsset(netTraderAsset: number): number | null;
|
|
163
|
-
estimateYtOutForExactAssetIn(assetIn: number): {
|
|
189
|
+
calcExactPtForNetAsset(netTraderAsset: number, skipFees?: boolean): number | null;
|
|
190
|
+
estimateYtOutForExactAssetIn(assetIn: number, skipFees?: boolean): {
|
|
191
|
+
ytOut: number;
|
|
192
|
+
feeInAsset: number;
|
|
193
|
+
} | null;
|
|
194
|
+
/**
|
|
195
|
+
* @param assetIn - Asset amount in lamports
|
|
196
|
+
* @param impliedApy - Implied APY as a decimal (e.g., 0.08 for 8%)
|
|
197
|
+
*/
|
|
198
|
+
estimateYtOutForExactAssetInWithImpliedApy(assetIn: number, impliedApy: number, skipFees?: boolean): {
|
|
164
199
|
ytOut: number;
|
|
165
200
|
feeInAsset: number;
|
|
166
201
|
} | null;
|
|
@@ -207,8 +242,8 @@ export interface CalculatorTradeResult {
|
|
|
207
242
|
treasuryFeeAmount: number;
|
|
208
243
|
newMarketCalculator: MarketCalculator;
|
|
209
244
|
}
|
|
210
|
-
export declare function calcExactPtForNetAsset(c: MarketCalculator, netTraderAsset: number): number | null;
|
|
211
|
-
export declare function estimateYtOutForExactAssetIn(c: MarketCalculator, assetIn: number): number | null;
|
|
245
|
+
export declare function calcExactPtForNetAsset(c: MarketCalculator, netTraderAsset: number, skipFees?: boolean): number | null;
|
|
246
|
+
export declare function estimateYtOutForExactAssetIn(c: MarketCalculator, assetIn: number, skipFees?: boolean): number | null;
|
|
212
247
|
export declare function calcYieldExposureWithAssetIn(c: MarketCalculator, assetIn: number): number;
|
|
213
248
|
export declare function calcWithdrawLiquidity(c: MarketCalculator, lpAmount: number): {
|
|
214
249
|
syOut: number;
|
package/build/index.js
CHANGED
|
@@ -93,7 +93,7 @@ function tradeFee(netTraderAsset, currentFeeRate) {
|
|
|
93
93
|
}
|
|
94
94
|
exports.tradeFee = tradeFee;
|
|
95
95
|
/** Calculate result of trading pt */
|
|
96
|
-
function tradePt({ liquidityPt, liquidityAsset, currentRateScalar, currentRateAnchor, currentFeeRate, netTraderPt, syExchangeRate, feeTreasurySyBps, isCurrentFlashSwap = false, }) {
|
|
96
|
+
function tradePt({ liquidityPt, liquidityAsset, currentRateScalar, currentRateAnchor, currentFeeRate, netTraderPt, syExchangeRate, feeTreasurySyBps, isCurrentFlashSwap = false, skipFees = false, }) {
|
|
97
97
|
// if netTradePt is positive, the trader is *buying* pt
|
|
98
98
|
const newPt = liquidityPt - netTraderPt;
|
|
99
99
|
const proportionPt = newPt / (liquidityPt + liquidityAsset);
|
|
@@ -111,7 +111,7 @@ function tradePt({ liquidityPt, liquidityAsset, currentRateScalar, currentRateAn
|
|
|
111
111
|
const ytValue = (1 - 1 / rate) * Math.abs(netTraderPt);
|
|
112
112
|
// Use ytValue for fee calculation during flash swaps, otherwise use preFeeNetTraderAsset
|
|
113
113
|
const feeBase = isCurrentFlashSwap ? ytValue : preFeeNetTraderAsset;
|
|
114
|
-
const feeAsset = tradeFee(feeBase, currentFeeRate);
|
|
114
|
+
const feeAsset = skipFees ? 0 : tradeFee(feeBase, currentFeeRate);
|
|
115
115
|
// if netTraderAsset is negative, the user is buying PT
|
|
116
116
|
// and the fee is positive, meaning they pay more asset
|
|
117
117
|
// subtracting the fee from the negative netPreFeeTraderAsset increases its magnitude
|
|
@@ -271,7 +271,7 @@ class MarketCalculator {
|
|
|
271
271
|
* If the trade is impossible, return null
|
|
272
272
|
* This can happen if there is not enough liquidity to sell YT for the amount of asset desired
|
|
273
273
|
*/
|
|
274
|
-
simSellYt(ytIn) {
|
|
274
|
+
simSellYt(ytIn, skipFees = false) {
|
|
275
275
|
try {
|
|
276
276
|
// first, clone the market calculator, so as not to modify the original
|
|
277
277
|
const mc = this.clone();
|
|
@@ -282,7 +282,7 @@ class MarketCalculator {
|
|
|
282
282
|
throw new Error("not enough PT liquidity to borrow for the flash swap");
|
|
283
283
|
}
|
|
284
284
|
// buy back PT with SY
|
|
285
|
-
const tradeRes = mc.calcTradePt(ytIn, true);
|
|
285
|
+
const tradeRes = mc.calcTradePt(ytIn, true, skipFees);
|
|
286
286
|
// negate the result to get the amount of asset spent
|
|
287
287
|
const assetSpend = -tradeRes.netTraderAsset;
|
|
288
288
|
// capture the mutated market calculator
|
|
@@ -310,6 +310,14 @@ class MarketCalculator {
|
|
|
310
310
|
return null;
|
|
311
311
|
}
|
|
312
312
|
}
|
|
313
|
+
/**
|
|
314
|
+
* @param ytIn - YT amount in lamports
|
|
315
|
+
* @param impliedApy - Implied APY as a decimal (e.g., 0.08 for 8%)
|
|
316
|
+
*/
|
|
317
|
+
simSellYtWithImpliedApy(ytIn, impliedApy, skipFees = false) {
|
|
318
|
+
const impliedCalculator = this.withImpliedApy(impliedApy);
|
|
319
|
+
return impliedCalculator.simSellYt(ytIn, skipFees);
|
|
320
|
+
}
|
|
313
321
|
/** Calculate the amount of asset out for selling YT */
|
|
314
322
|
estimateYtInForExactBaseOut(assetOut) {
|
|
315
323
|
// find an amount of asset out that would balance the equation
|
|
@@ -332,7 +340,7 @@ class MarketCalculator {
|
|
|
332
340
|
return (0, bisect_1.bisectSearch2)(fn, lo, hi, 0.0000001);
|
|
333
341
|
}
|
|
334
342
|
/** Calculate the amount of asset to pay for buying YT */
|
|
335
|
-
calcBuyYt(ytOut) {
|
|
343
|
+
calcBuyYt(ytOut, skipFees = false) {
|
|
336
344
|
// flash swap for buying YT with assetIn
|
|
337
345
|
const fn = (assetIn) => {
|
|
338
346
|
const syIn = assetIn / this.currentSyExchangeRate;
|
|
@@ -357,7 +365,7 @@ class MarketCalculator {
|
|
|
357
365
|
}
|
|
358
366
|
// sell PT to the market for SY
|
|
359
367
|
// the trader sells exactly as much PT as they want to buy YT
|
|
360
|
-
const tradeRes = newMarketCalculator.calcTradePt(-ytOut, true);
|
|
368
|
+
const tradeRes = newMarketCalculator.calcTradePt(-ytOut, true, skipFees);
|
|
361
369
|
// The amount of asset returned plus the initial asset in must equal
|
|
362
370
|
// the amount of asset borrowed
|
|
363
371
|
const returnedAsset = tradeRes.netTraderAsset;
|
|
@@ -370,7 +378,7 @@ class MarketCalculator {
|
|
|
370
378
|
return assetIn;
|
|
371
379
|
}
|
|
372
380
|
/** Calculate the trade result for trading PT */
|
|
373
|
-
calcTradePt(netTraderPt, isCurrentFlashSwap = false) {
|
|
381
|
+
calcTradePt(netTraderPt, isCurrentFlashSwap = false, skipFees = false) {
|
|
374
382
|
const currentRateAnchor = this.findRateAnchor();
|
|
375
383
|
const currentFeeRate = this.feeRate;
|
|
376
384
|
const currentRateScalar = this.rateScalar;
|
|
@@ -384,6 +392,7 @@ class MarketCalculator {
|
|
|
384
392
|
syExchangeRate: this.currentSyExchangeRate,
|
|
385
393
|
feeTreasurySyBps: this.state.feeTreasurySyBps,
|
|
386
394
|
isCurrentFlashSwap,
|
|
395
|
+
skipFees,
|
|
387
396
|
});
|
|
388
397
|
const newLiquidityPt = this.liquidityPt - netTraderPt;
|
|
389
398
|
const newLiquidityAsset = this.liquidityAsset - res.netTraderAsset;
|
|
@@ -423,6 +432,52 @@ class MarketCalculator {
|
|
|
423
432
|
estimateNetPtForExactNetAsset(netTraderAsset) {
|
|
424
433
|
return this.calcExactPtForNetAsset(netTraderAsset);
|
|
425
434
|
}
|
|
435
|
+
/**
|
|
436
|
+
* @param netAssetIn - Net asset in lamports. Trade direction:
|
|
437
|
+
* - Positive: selling PT for underlying asset
|
|
438
|
+
* - Negative: buying PT with underlying asset
|
|
439
|
+
* @param impliedApy - Implied APY as a decimal (e.g., 0.08 for 8%)
|
|
440
|
+
*/
|
|
441
|
+
estimateNetPtForExactNetAssetWithImpliedApy(netAssetIn, impliedApy, skipFees = false) {
|
|
442
|
+
const impliedCalculator = this.withImpliedApy(impliedApy);
|
|
443
|
+
return impliedCalculator.calcExactPtForNetAsset(netAssetIn, skipFees);
|
|
444
|
+
}
|
|
445
|
+
/**
|
|
446
|
+
* @param ptAmount - Amount of PT to sell in lamports
|
|
447
|
+
* @param impliedApy - Implied APY as a decimal (e.g., 0.08 for 8%)
|
|
448
|
+
*/
|
|
449
|
+
estimateAssetOutForPtInWithImpliedApy(ptAmount, impliedApy, skipFees = false) {
|
|
450
|
+
const impliedCalculator = this.withImpliedApy(impliedApy);
|
|
451
|
+
try {
|
|
452
|
+
const tradeResult = impliedCalculator.calcTradePt(-ptAmount, false, skipFees);
|
|
453
|
+
return tradeResult.netTraderAsset;
|
|
454
|
+
}
|
|
455
|
+
catch (error) {
|
|
456
|
+
return null;
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* @param impliedApy - Implied APY as a decimal (e.g., 0.08 for 8%)
|
|
461
|
+
* @returns A new MarketCalculator instance with the implied APY
|
|
462
|
+
*/
|
|
463
|
+
withImpliedApy(impliedApy) {
|
|
464
|
+
// Calculate what ptPriceInAsset would give us the target APY
|
|
465
|
+
const yearSeconds = 365 * 24 * 3600;
|
|
466
|
+
const rateMultiplier = yearSeconds / this.secondsRemaining;
|
|
467
|
+
const targetPtPriceInAsset = rateMultiplier / (impliedApy + rateMultiplier);
|
|
468
|
+
// Convert ptPriceInAsset to exchangeRate (asset to PT)
|
|
469
|
+
// ptPriceInAsset = 1 / exchangeRate, so exchangeRate = 1 / ptPriceInAsset
|
|
470
|
+
const targetExchangeRate = 1 / targetPtPriceInAsset;
|
|
471
|
+
const targetLnImpliedRate = currentLnImpliedRate({
|
|
472
|
+
exchangeRate: targetExchangeRate,
|
|
473
|
+
secondsRemaining: this.secondsRemaining,
|
|
474
|
+
});
|
|
475
|
+
const newState = {
|
|
476
|
+
...this.state,
|
|
477
|
+
lastLnImpliedRate: targetLnImpliedRate,
|
|
478
|
+
};
|
|
479
|
+
return new MarketCalculator(newState);
|
|
480
|
+
}
|
|
426
481
|
simulateClassicLpWithdraw({ lpAmount }) {
|
|
427
482
|
const ptInPool = this.state.liquidityPt;
|
|
428
483
|
const syInPool = this.state.liquiditySy;
|
|
@@ -448,17 +503,17 @@ class MarketCalculator {
|
|
|
448
503
|
};
|
|
449
504
|
}
|
|
450
505
|
/** Deprecated - bad name - use estimateNetPtForExactNetAsset */
|
|
451
|
-
calcExactPtForNetAsset(netTraderAsset) {
|
|
506
|
+
calcExactPtForNetAsset(netTraderAsset, skipFees = false) {
|
|
452
507
|
if (netTraderAsset === 0) {
|
|
453
508
|
return 0;
|
|
454
509
|
}
|
|
455
|
-
return calcExactPtForNetAsset(this, netTraderAsset);
|
|
510
|
+
return calcExactPtForNetAsset(this, netTraderAsset, skipFees);
|
|
456
511
|
}
|
|
457
|
-
estimateYtOutForExactAssetIn(assetIn) {
|
|
512
|
+
estimateYtOutForExactAssetIn(assetIn, skipFees = false) {
|
|
458
513
|
if (assetIn === 0) {
|
|
459
514
|
return { ytOut: 0, feeInAsset: 0 };
|
|
460
515
|
}
|
|
461
|
-
const ytOut = estimateYtOutForExactAssetIn(this, assetIn);
|
|
516
|
+
const ytOut = estimateYtOutForExactAssetIn(this, assetIn, skipFees);
|
|
462
517
|
const syIn = assetIn / this.currentSyExchangeRate;
|
|
463
518
|
const targetSy = ytOut / this.currentSyExchangeRate;
|
|
464
519
|
const syToBorrow = targetSy - syIn;
|
|
@@ -466,6 +521,14 @@ class MarketCalculator {
|
|
|
466
521
|
const feeInAsset = tradeFee((1 - 1 / this.exchangeRate) * syToBorrowInAsset, this.feeRate);
|
|
467
522
|
return { ytOut, feeInAsset };
|
|
468
523
|
}
|
|
524
|
+
/**
|
|
525
|
+
* @param assetIn - Asset amount in lamports
|
|
526
|
+
* @param impliedApy - Implied APY as a decimal (e.g., 0.08 for 8%)
|
|
527
|
+
*/
|
|
528
|
+
estimateYtOutForExactAssetInWithImpliedApy(assetIn, impliedApy, skipFees = false) {
|
|
529
|
+
const impliedCalculator = this.withImpliedApy(impliedApy);
|
|
530
|
+
return impliedCalculator.estimateYtOutForExactAssetIn(assetIn, skipFees);
|
|
531
|
+
}
|
|
469
532
|
exchangeRateFromLnImpliedRate(lnImpliedRate) {
|
|
470
533
|
return exchangeRateFromLnImpliedRate({
|
|
471
534
|
lnImpliedRate,
|
|
@@ -587,22 +650,22 @@ class MarketCalculator {
|
|
|
587
650
|
}
|
|
588
651
|
}
|
|
589
652
|
exports.MarketCalculator = MarketCalculator;
|
|
590
|
-
function calcExactPtForNetAsset(c, netTraderAsset) {
|
|
653
|
+
function calcExactPtForNetAsset(c, netTraderAsset, skipFees = false) {
|
|
591
654
|
const isBuyPt = netTraderAsset < 0;
|
|
592
655
|
if (isBuyPt) {
|
|
593
656
|
// negate netTraderAsset, because it is negative
|
|
594
657
|
// the search function expects a positive assetIn
|
|
595
|
-
return estimatePtOutForExactAssetIn(c, -netTraderAsset);
|
|
658
|
+
return estimatePtOutForExactAssetIn(c, -netTraderAsset, skipFees);
|
|
596
659
|
}
|
|
597
660
|
else {
|
|
598
|
-
return estimatePtInForExactAssetOut(c, netTraderAsset);
|
|
661
|
+
return estimatePtInForExactAssetOut(c, netTraderAsset, skipFees);
|
|
599
662
|
}
|
|
600
663
|
}
|
|
601
664
|
exports.calcExactPtForNetAsset = calcExactPtForNetAsset;
|
|
602
|
-
function estimatePtOutForExactAssetIn(c, assetIn) {
|
|
665
|
+
function estimatePtOutForExactAssetIn(c, assetIn, skipFees = false) {
|
|
603
666
|
const fn = (pt) => {
|
|
604
667
|
try {
|
|
605
|
-
const res = c.calcTradePt(pt, false);
|
|
668
|
+
const res = c.calcTradePt(pt, false, skipFees);
|
|
606
669
|
const assetSpend = -res.netTraderAsset;
|
|
607
670
|
return assetSpend - assetIn;
|
|
608
671
|
}
|
|
@@ -616,10 +679,10 @@ function estimatePtOutForExactAssetIn(c, assetIn) {
|
|
|
616
679
|
const hi = c.liquidityPt * 0.9999999;
|
|
617
680
|
return (0, bisect_1.bisectSearch2)(fn, lo, hi, 0.0000001);
|
|
618
681
|
}
|
|
619
|
-
function estimatePtInForExactAssetOut(c, assetOut) {
|
|
682
|
+
function estimatePtInForExactAssetOut(c, assetOut, skipFees = false) {
|
|
620
683
|
const fn = (pt) => {
|
|
621
684
|
// negate PT to signal that the trader is selling PT
|
|
622
|
-
const res = c.calcTradePt(-pt, false);
|
|
685
|
+
const res = c.calcTradePt(-pt, false, skipFees);
|
|
623
686
|
// for very large sales of PT in, the trade will fail by returning 0 asset
|
|
624
687
|
// signal this by returning a high value
|
|
625
688
|
if (res.netTraderPt < 0 && res.netTraderAsset === 0) {
|
|
@@ -634,7 +697,7 @@ function estimatePtInForExactAssetOut(c, assetOut) {
|
|
|
634
697
|
const hi = pricePtInAsset * assetOut * 2;
|
|
635
698
|
return (0, bisect_1.bisectSearch2)(fn, lo, hi, 0.0000001);
|
|
636
699
|
}
|
|
637
|
-
function estimateYtOutForExactAssetIn(c, assetIn) {
|
|
700
|
+
function estimateYtOutForExactAssetIn(c, assetIn, skipFees = false) {
|
|
638
701
|
const ytToAssetExchangeRate = Math.min(1 - 1 / c.exchangeRate, 1);
|
|
639
702
|
let lo = 0;
|
|
640
703
|
let hi = assetIn / ytToAssetExchangeRate;
|
|
@@ -649,7 +712,7 @@ function estimateYtOutForExactAssetIn(c, assetIn) {
|
|
|
649
712
|
let bestDiff = Infinity;
|
|
650
713
|
while (iterations < MAX_ITERATIONS) {
|
|
651
714
|
const mid = (lo + hi) / 2;
|
|
652
|
-
const assetInForYtOut = c.calcBuyYt(mid);
|
|
715
|
+
const assetInForYtOut = c.calcBuyYt(mid, skipFees);
|
|
653
716
|
const syIn = assetIn / c.currentSyExchangeRate;
|
|
654
717
|
const targetSy = mid / c.currentSyExchangeRate;
|
|
655
718
|
const syToBorrow = targetSy - syIn;
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -158,6 +158,7 @@ export function tradePt({
|
|
|
158
158
|
syExchangeRate,
|
|
159
159
|
feeTreasurySyBps,
|
|
160
160
|
isCurrentFlashSwap = false,
|
|
161
|
+
skipFees = false,
|
|
161
162
|
}: {
|
|
162
163
|
liquidityPt: number
|
|
163
164
|
liquidityAsset: number
|
|
@@ -168,6 +169,7 @@ export function tradePt({
|
|
|
168
169
|
syExchangeRate: number
|
|
169
170
|
feeTreasurySyBps: number
|
|
170
171
|
isCurrentFlashSwap?: boolean
|
|
172
|
+
skipFees?: boolean
|
|
171
173
|
}): TradeResult {
|
|
172
174
|
// if netTradePt is positive, the trader is *buying* pt
|
|
173
175
|
const newPt = liquidityPt - netTraderPt
|
|
@@ -190,7 +192,8 @@ export function tradePt({
|
|
|
190
192
|
|
|
191
193
|
// Use ytValue for fee calculation during flash swaps, otherwise use preFeeNetTraderAsset
|
|
192
194
|
const feeBase = isCurrentFlashSwap ? ytValue : preFeeNetTraderAsset
|
|
193
|
-
|
|
195
|
+
|
|
196
|
+
const feeAsset = skipFees ? 0 : tradeFee(feeBase, currentFeeRate)
|
|
194
197
|
|
|
195
198
|
// if netTraderAsset is negative, the user is buying PT
|
|
196
199
|
// and the fee is positive, meaning they pay more asset
|
|
@@ -429,7 +432,7 @@ export class MarketCalculator {
|
|
|
429
432
|
* If the trade is impossible, return null
|
|
430
433
|
* This can happen if there is not enough liquidity to sell YT for the amount of asset desired
|
|
431
434
|
*/
|
|
432
|
-
simSellYt(ytIn: number): { assetOut: number; feeInAsset: number; newMarketCalculator: MarketCalculator } | null {
|
|
435
|
+
simSellYt(ytIn: number, skipFees: boolean = false): { assetOut: number; feeInAsset: number; newMarketCalculator: MarketCalculator } | null {
|
|
433
436
|
try {
|
|
434
437
|
// first, clone the market calculator, so as not to modify the original
|
|
435
438
|
const mc = this.clone()
|
|
@@ -444,7 +447,7 @@ export class MarketCalculator {
|
|
|
444
447
|
}
|
|
445
448
|
|
|
446
449
|
// buy back PT with SY
|
|
447
|
-
const tradeRes = mc.calcTradePt(ytIn, true)
|
|
450
|
+
const tradeRes = mc.calcTradePt(ytIn, true, skipFees)
|
|
448
451
|
|
|
449
452
|
// negate the result to get the amount of asset spent
|
|
450
453
|
const assetSpend = -tradeRes.netTraderAsset
|
|
@@ -481,6 +484,19 @@ export class MarketCalculator {
|
|
|
481
484
|
}
|
|
482
485
|
}
|
|
483
486
|
|
|
487
|
+
/**
|
|
488
|
+
* @param ytIn - YT amount in lamports
|
|
489
|
+
* @param impliedApy - Implied APY as a decimal (e.g., 0.08 for 8%)
|
|
490
|
+
*/
|
|
491
|
+
simSellYtWithImpliedApy(
|
|
492
|
+
ytIn: number,
|
|
493
|
+
impliedApy: number,
|
|
494
|
+
skipFees: boolean = false,
|
|
495
|
+
): { assetOut: number; feeInAsset: number; newMarketCalculator: MarketCalculator } | null {
|
|
496
|
+
const impliedCalculator = this.withImpliedApy(impliedApy)
|
|
497
|
+
return impliedCalculator.simSellYt(ytIn, skipFees)
|
|
498
|
+
}
|
|
499
|
+
|
|
484
500
|
/** Calculate the amount of asset out for selling YT */
|
|
485
501
|
estimateYtInForExactBaseOut(assetOut: number): number | null {
|
|
486
502
|
// find an amount of asset out that would balance the equation
|
|
@@ -509,7 +525,7 @@ export class MarketCalculator {
|
|
|
509
525
|
}
|
|
510
526
|
|
|
511
527
|
/** Calculate the amount of asset to pay for buying YT */
|
|
512
|
-
calcBuyYt(ytOut: number): number | null {
|
|
528
|
+
calcBuyYt(ytOut: number, skipFees: boolean = false): number | null {
|
|
513
529
|
// flash swap for buying YT with assetIn
|
|
514
530
|
const fn = (assetIn: number) => {
|
|
515
531
|
const syIn = assetIn / this.currentSyExchangeRate
|
|
@@ -540,7 +556,7 @@ export class MarketCalculator {
|
|
|
540
556
|
|
|
541
557
|
// sell PT to the market for SY
|
|
542
558
|
// the trader sells exactly as much PT as they want to buy YT
|
|
543
|
-
const tradeRes = newMarketCalculator.calcTradePt(-ytOut, true)
|
|
559
|
+
const tradeRes = newMarketCalculator.calcTradePt(-ytOut, true, skipFees)
|
|
544
560
|
|
|
545
561
|
// The amount of asset returned plus the initial asset in must equal
|
|
546
562
|
// the amount of asset borrowed
|
|
@@ -559,7 +575,11 @@ export class MarketCalculator {
|
|
|
559
575
|
}
|
|
560
576
|
|
|
561
577
|
/** Calculate the trade result for trading PT */
|
|
562
|
-
calcTradePt(
|
|
578
|
+
calcTradePt(
|
|
579
|
+
netTraderPt: number,
|
|
580
|
+
isCurrentFlashSwap: boolean = false,
|
|
581
|
+
skipFees: boolean = false,
|
|
582
|
+
): CalculatorTradeResult {
|
|
563
583
|
const currentRateAnchor = this.findRateAnchor()
|
|
564
584
|
const currentFeeRate = this.feeRate
|
|
565
585
|
const currentRateScalar = this.rateScalar
|
|
@@ -573,6 +593,7 @@ export class MarketCalculator {
|
|
|
573
593
|
syExchangeRate: this.currentSyExchangeRate,
|
|
574
594
|
feeTreasurySyBps: this.state.feeTreasurySyBps,
|
|
575
595
|
isCurrentFlashSwap,
|
|
596
|
+
skipFees,
|
|
576
597
|
})
|
|
577
598
|
|
|
578
599
|
const newLiquidityPt = this.liquidityPt - netTraderPt
|
|
@@ -620,6 +641,63 @@ export class MarketCalculator {
|
|
|
620
641
|
return this.calcExactPtForNetAsset(netTraderAsset)
|
|
621
642
|
}
|
|
622
643
|
|
|
644
|
+
/**
|
|
645
|
+
* @param netAssetIn - Net asset in lamports. Trade direction:
|
|
646
|
+
* - Positive: selling PT for underlying asset
|
|
647
|
+
* - Negative: buying PT with underlying asset
|
|
648
|
+
* @param impliedApy - Implied APY as a decimal (e.g., 0.08 for 8%)
|
|
649
|
+
*/
|
|
650
|
+
estimateNetPtForExactNetAssetWithImpliedApy(
|
|
651
|
+
netAssetIn: number,
|
|
652
|
+
impliedApy: number,
|
|
653
|
+
skipFees: boolean = false,
|
|
654
|
+
): number | null {
|
|
655
|
+
const impliedCalculator = this.withImpliedApy(impliedApy)
|
|
656
|
+
return impliedCalculator.calcExactPtForNetAsset(netAssetIn, skipFees)
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
/**
|
|
660
|
+
* @param ptAmount - Amount of PT to sell in lamports
|
|
661
|
+
* @param impliedApy - Implied APY as a decimal (e.g., 0.08 for 8%)
|
|
662
|
+
*/
|
|
663
|
+
estimateAssetOutForPtInWithImpliedApy(ptAmount: number, impliedApy: number, skipFees: boolean = false): number | null {
|
|
664
|
+
const impliedCalculator = this.withImpliedApy(impliedApy)
|
|
665
|
+
|
|
666
|
+
try {
|
|
667
|
+
const tradeResult = impliedCalculator.calcTradePt(-ptAmount, false, skipFees)
|
|
668
|
+
return tradeResult.netTraderAsset
|
|
669
|
+
} catch (error) {
|
|
670
|
+
return null
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
/**
|
|
675
|
+
* @param impliedApy - Implied APY as a decimal (e.g., 0.08 for 8%)
|
|
676
|
+
* @returns A new MarketCalculator instance with the implied APY
|
|
677
|
+
*/
|
|
678
|
+
withImpliedApy(impliedApy: number): MarketCalculator {
|
|
679
|
+
// Calculate what ptPriceInAsset would give us the target APY
|
|
680
|
+
const yearSeconds = 365 * 24 * 3600
|
|
681
|
+
const rateMultiplier = yearSeconds / this.secondsRemaining
|
|
682
|
+
const targetPtPriceInAsset = rateMultiplier / (impliedApy + rateMultiplier)
|
|
683
|
+
|
|
684
|
+
// Convert ptPriceInAsset to exchangeRate (asset to PT)
|
|
685
|
+
// ptPriceInAsset = 1 / exchangeRate, so exchangeRate = 1 / ptPriceInAsset
|
|
686
|
+
const targetExchangeRate = 1 / targetPtPriceInAsset
|
|
687
|
+
|
|
688
|
+
const targetLnImpliedRate = currentLnImpliedRate({
|
|
689
|
+
exchangeRate: targetExchangeRate,
|
|
690
|
+
secondsRemaining: this.secondsRemaining,
|
|
691
|
+
})
|
|
692
|
+
|
|
693
|
+
const newState = {
|
|
694
|
+
...this.state,
|
|
695
|
+
lastLnImpliedRate: targetLnImpliedRate,
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
return new MarketCalculator(newState)
|
|
699
|
+
}
|
|
700
|
+
|
|
623
701
|
simulateClassicLpWithdraw({ lpAmount }: { lpAmount: number }): {
|
|
624
702
|
assetOut: number
|
|
625
703
|
ptOut: number
|
|
@@ -659,18 +737,18 @@ export class MarketCalculator {
|
|
|
659
737
|
}
|
|
660
738
|
|
|
661
739
|
/** Deprecated - bad name - use estimateNetPtForExactNetAsset */
|
|
662
|
-
calcExactPtForNetAsset(netTraderAsset: number): number | null {
|
|
740
|
+
calcExactPtForNetAsset(netTraderAsset: number, skipFees: boolean = false): number | null {
|
|
663
741
|
if (netTraderAsset === 0) {
|
|
664
742
|
return 0
|
|
665
743
|
}
|
|
666
|
-
return calcExactPtForNetAsset(this, netTraderAsset)
|
|
744
|
+
return calcExactPtForNetAsset(this, netTraderAsset, skipFees)
|
|
667
745
|
}
|
|
668
746
|
|
|
669
|
-
estimateYtOutForExactAssetIn(assetIn: number): { ytOut: number; feeInAsset: number } | null {
|
|
747
|
+
estimateYtOutForExactAssetIn(assetIn: number, skipFees: boolean = false): { ytOut: number; feeInAsset: number } | null {
|
|
670
748
|
if (assetIn === 0) {
|
|
671
749
|
return { ytOut: 0, feeInAsset: 0 }
|
|
672
750
|
}
|
|
673
|
-
const ytOut = estimateYtOutForExactAssetIn(this, assetIn)
|
|
751
|
+
const ytOut = estimateYtOutForExactAssetIn(this, assetIn, skipFees)
|
|
674
752
|
|
|
675
753
|
const syIn = assetIn / this.currentSyExchangeRate
|
|
676
754
|
const targetSy = ytOut / this.currentSyExchangeRate
|
|
@@ -681,6 +759,19 @@ export class MarketCalculator {
|
|
|
681
759
|
return { ytOut, feeInAsset }
|
|
682
760
|
}
|
|
683
761
|
|
|
762
|
+
/**
|
|
763
|
+
* @param assetIn - Asset amount in lamports
|
|
764
|
+
* @param impliedApy - Implied APY as a decimal (e.g., 0.08 for 8%)
|
|
765
|
+
*/
|
|
766
|
+
estimateYtOutForExactAssetInWithImpliedApy(
|
|
767
|
+
assetIn: number,
|
|
768
|
+
impliedApy: number,
|
|
769
|
+
skipFees: boolean = false,
|
|
770
|
+
): { ytOut: number; feeInAsset: number } | null {
|
|
771
|
+
const impliedCalculator = this.withImpliedApy(impliedApy)
|
|
772
|
+
return impliedCalculator.estimateYtOutForExactAssetIn(assetIn, skipFees)
|
|
773
|
+
}
|
|
774
|
+
|
|
684
775
|
exchangeRateFromLnImpliedRate(lnImpliedRate: number): number {
|
|
685
776
|
return exchangeRateFromLnImpliedRate({
|
|
686
777
|
lnImpliedRate,
|
|
@@ -838,21 +929,21 @@ export interface CalculatorTradeResult {
|
|
|
838
929
|
newMarketCalculator: MarketCalculator
|
|
839
930
|
}
|
|
840
931
|
|
|
841
|
-
export function calcExactPtForNetAsset(c: MarketCalculator, netTraderAsset: number): number | null {
|
|
932
|
+
export function calcExactPtForNetAsset(c: MarketCalculator, netTraderAsset: number, skipFees: boolean = false): number | null {
|
|
842
933
|
const isBuyPt = netTraderAsset < 0
|
|
843
934
|
if (isBuyPt) {
|
|
844
935
|
// negate netTraderAsset, because it is negative
|
|
845
936
|
// the search function expects a positive assetIn
|
|
846
|
-
return estimatePtOutForExactAssetIn(c, -netTraderAsset)
|
|
937
|
+
return estimatePtOutForExactAssetIn(c, -netTraderAsset, skipFees)
|
|
847
938
|
} else {
|
|
848
|
-
return estimatePtInForExactAssetOut(c, netTraderAsset)
|
|
939
|
+
return estimatePtInForExactAssetOut(c, netTraderAsset, skipFees)
|
|
849
940
|
}
|
|
850
941
|
}
|
|
851
942
|
|
|
852
|
-
function estimatePtOutForExactAssetIn(c: MarketCalculator, assetIn: number): number | null {
|
|
943
|
+
function estimatePtOutForExactAssetIn(c: MarketCalculator, assetIn: number, skipFees: boolean = false): number | null {
|
|
853
944
|
const fn = (pt: number) => {
|
|
854
945
|
try {
|
|
855
|
-
const res = c.calcTradePt(pt, false)
|
|
946
|
+
const res = c.calcTradePt(pt, false, skipFees)
|
|
856
947
|
const assetSpend = -res.netTraderAsset
|
|
857
948
|
return assetSpend - assetIn
|
|
858
949
|
} catch {
|
|
@@ -866,10 +957,10 @@ function estimatePtOutForExactAssetIn(c: MarketCalculator, assetIn: number): num
|
|
|
866
957
|
return bisectSearch2(fn, lo, hi, 0.0000001)
|
|
867
958
|
}
|
|
868
959
|
|
|
869
|
-
function estimatePtInForExactAssetOut(c: MarketCalculator, assetOut: number): number | null {
|
|
960
|
+
function estimatePtInForExactAssetOut(c: MarketCalculator, assetOut: number, skipFees: boolean = false): number | null {
|
|
870
961
|
const fn = (pt: number) => {
|
|
871
962
|
// negate PT to signal that the trader is selling PT
|
|
872
|
-
const res = c.calcTradePt(-pt, false)
|
|
963
|
+
const res = c.calcTradePt(-pt, false, skipFees)
|
|
873
964
|
|
|
874
965
|
// for very large sales of PT in, the trade will fail by returning 0 asset
|
|
875
966
|
// signal this by returning a high value
|
|
@@ -887,7 +978,7 @@ function estimatePtInForExactAssetOut(c: MarketCalculator, assetOut: number): nu
|
|
|
887
978
|
return bisectSearch2(fn, lo, hi, 0.0000001)
|
|
888
979
|
}
|
|
889
980
|
|
|
890
|
-
export function estimateYtOutForExactAssetIn(c: MarketCalculator, assetIn: number): number | null {
|
|
981
|
+
export function estimateYtOutForExactAssetIn(c: MarketCalculator, assetIn: number, skipFees: boolean = false): number | null {
|
|
891
982
|
const ytToAssetExchangeRate = Math.min(1 - 1 / c.exchangeRate, 1)
|
|
892
983
|
let lo = 0
|
|
893
984
|
let hi = assetIn / ytToAssetExchangeRate
|
|
@@ -905,7 +996,7 @@ export function estimateYtOutForExactAssetIn(c: MarketCalculator, assetIn: numbe
|
|
|
905
996
|
|
|
906
997
|
while (iterations < MAX_ITERATIONS) {
|
|
907
998
|
const mid = (lo + hi) / 2
|
|
908
|
-
const assetInForYtOut = c.calcBuyYt(mid)
|
|
999
|
+
const assetInForYtOut = c.calcBuyYt(mid, skipFees)
|
|
909
1000
|
|
|
910
1001
|
const syIn = assetIn / c.currentSyExchangeRate
|
|
911
1002
|
const targetSy = mid / c.currentSyExchangeRate
|