@kamino-finance/klend-sdk 13.0.0 → 13.0.1
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/dist/leverage/calcs.d.ts +12 -0
- package/dist/leverage/calcs.d.ts.map +1 -1
- package/dist/leverage/calcs.js +154 -76
- package/dist/leverage/calcs.js.map +1 -1
- package/dist/leverage/flashBorrowType.d.ts +1 -1
- package/dist/leverage/flashBorrowType.d.ts.map +1 -1
- package/dist/leverage/flashBorrowType.js +48 -26
- package/dist/leverage/flashBorrowType.js.map +1 -1
- package/dist/leverage/operations.d.ts.map +1 -1
- package/dist/leverage/operations.js +27 -13
- package/dist/leverage/operations.js.map +1 -1
- package/dist/leverage/types.d.ts +1 -0
- package/dist/leverage/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/leverage/calcs.ts +211 -82
- package/src/leverage/flashBorrowType.ts +67 -65
- package/src/leverage/operations.ts +38 -13
- package/src/leverage/types.ts +1 -0
package/dist/leverage/calcs.d.ts
CHANGED
|
@@ -146,6 +146,7 @@ export declare const depositLeverageCalcs: (props: {
|
|
|
146
146
|
flashLoanFee: Decimal;
|
|
147
147
|
borrowFee: Decimal;
|
|
148
148
|
}) => DepositLeverageCalcsResult;
|
|
149
|
+
/** @throws {PartialWithdrawalSizingError} When a partial payout cannot be sized while preserving remaining LTV. */
|
|
149
150
|
export declare function withdrawLeverageCalcs(market: KaminoMarket, collReserve: KaminoReserve, debtReserve: KaminoReserve, priceCollToDebt: Decimal, withdrawAmount: Decimal, deposited: Decimal, borrowed: Decimal, currentLedgerInstant: LedgerInstant, isClosingPosition: boolean, selectedTokenIsCollToken: boolean, selectedTokenMint: Address, obligation: KaminoObligation, flashLoanFee: Decimal, slippagePct: Decimal): WithdrawLeverageCalcsResult;
|
|
150
151
|
/**
|
|
151
152
|
* Canonical lamport-domain sizing of the coll-flash loan leg, shared by the flash-borrow-type selectors
|
|
@@ -197,6 +198,8 @@ export declare const depositLeverageCalcsDebtFlash: (props: {
|
|
|
197
198
|
*
|
|
198
199
|
* We flash borrow enough coll to swap for the debt repayment amount,
|
|
199
200
|
* then repay debt, withdraw coll, and use the withdrawn coll to repay the flash loan.
|
|
201
|
+
*
|
|
202
|
+
* @throws {PartialWithdrawalSizingError} When a partial payout cannot be sized while preserving remaining LTV.
|
|
200
203
|
*/
|
|
201
204
|
export declare function withdrawLeverageCalcsCollFlash(market: KaminoMarket, collReserve: KaminoReserve, debtReserve: KaminoReserve, priceCollToDebt: Decimal, withdrawAmount: Decimal, deposited: Decimal, borrowed: Decimal, currentLedgerInstant: LedgerInstant, isClosingPosition: boolean, selectedTokenIsCollToken: boolean, selectedTokenMint: Address, obligation: KaminoObligation, flashLoanFee: Decimal, slippagePct: Decimal): WithdrawLeverageCollFlashCalcsResult;
|
|
202
205
|
/**
|
|
@@ -209,5 +212,14 @@ export declare function adjustDepositLeverageCalcsDebtFlash(debtReserve: KaminoR
|
|
|
209
212
|
* Flow: flash borrow coll -> swap coll->debt -> repay debt -> withdraw coll -> flash repay coll
|
|
210
213
|
*/
|
|
211
214
|
export declare function adjustWithdrawLeverageCalcsCollFlash(adjustDepositPosition: Decimal, adjustBorrowPosition: Decimal, priceCollToDebt: Decimal, flashLoanFee: Decimal, slippagePct: Decimal, obligation?: KaminoObligation, debtReserve?: KaminoReserve, currentLedgerInstant?: LedgerInstant): AdjustWithdrawCollFlashCalcsResult;
|
|
215
|
+
/**
|
|
216
|
+
* A partial payout has no verified sizing that preserves the remaining position’s LTV.
|
|
217
|
+
* Callers can reduce the payout or explicitly close the position. Atomic rounding can also
|
|
218
|
+
* refuse a boundary-sized payout whose remaining position would be dust.
|
|
219
|
+
*/
|
|
220
|
+
export declare class PartialWithdrawalSizingError extends Error {
|
|
221
|
+
constructor();
|
|
222
|
+
}
|
|
223
|
+
export declare function flashRepayTokenAmount(amount: Decimal, reserve: KaminoReserve): Decimal;
|
|
212
224
|
export {};
|
|
213
225
|
//# sourceMappingURL=calcs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calcs.d.ts","sourceRoot":"","sources":["../../src/leverage/calcs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"calcs.d.ts","sourceRoot":"","sources":["../../src/leverage/calcs.ts"],"names":[],"mappings":"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"}
|
package/dist/leverage/calcs.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.depositLeverageCalcsDebtFlash = exports.depositLeverageCalcs = exports.estimateDepositMode = exports.estimateAdjustMode = exports.estimateWithdrawMode = exports.calcBorrowAmount = exports.LeverageOption = void 0;
|
|
6
|
+
exports.PartialWithdrawalSizingError = exports.depositLeverageCalcsDebtFlash = exports.depositLeverageCalcs = exports.estimateDepositMode = exports.estimateAdjustMode = exports.estimateWithdrawMode = exports.calcBorrowAmount = exports.LeverageOption = void 0;
|
|
7
7
|
exports.calculateMultiplyEffects = calculateMultiplyEffects;
|
|
8
8
|
exports.calcWithdrawAmounts = calcWithdrawAmounts;
|
|
9
9
|
exports.calcAdjustAmounts = calcAdjustAmounts;
|
|
@@ -14,11 +14,13 @@ exports.adjustWithdrawLeverageCalcs = adjustWithdrawLeverageCalcs;
|
|
|
14
14
|
exports.withdrawLeverageCalcsCollFlash = withdrawLeverageCalcsCollFlash;
|
|
15
15
|
exports.adjustDepositLeverageCalcsDebtFlash = adjustDepositLeverageCalcsDebtFlash;
|
|
16
16
|
exports.adjustWithdrawLeverageCalcsCollFlash = adjustWithdrawLeverageCalcsCollFlash;
|
|
17
|
+
exports.flashRepayTokenAmount = flashRepayTokenAmount;
|
|
17
18
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
18
19
|
const classes_1 = require("../classes");
|
|
19
20
|
const utils_1 = require("../utils");
|
|
20
21
|
const swap_calcs_1 = require("../lending_operations/swap_calcs");
|
|
21
22
|
const repay_with_collateral_calcs_1 = require("../lending_operations/repay_with_collateral_calcs");
|
|
23
|
+
const redeem_drift_1 = require("../lending_operations/redeem_drift");
|
|
22
24
|
const closingPositionDiffTolerance = 0.0001;
|
|
23
25
|
var LeverageOption;
|
|
24
26
|
(function (LeverageOption) {
|
|
@@ -213,11 +215,12 @@ function calcAdjustAmounts({ targetLeverage, currentBorrowPosition, currentDepos
|
|
|
213
215
|
const targetDeposit = initialDeposit.mul(targetLeverage);
|
|
214
216
|
// Target debt BEFORE the origination fee: the fee applies to the borrow delta only, so it is added below once the
|
|
215
217
|
// direction (increase vs decrease) is known.
|
|
218
|
+
// Decreases fund the flash fee in the withdrawal leg; adding it to remaining debt can reverse a tiny repay delta.
|
|
216
219
|
const targetBorrow = (0, exports.calcBorrowAmount)({
|
|
217
220
|
depositTokenAmount: initialDeposit,
|
|
218
221
|
priceCollToDebt,
|
|
219
222
|
targetLeverage,
|
|
220
|
-
flashLoanFeeRatio: flashLoanFee,
|
|
223
|
+
flashLoanFeeRatio: targetDeposit.lt(currentDepositPosition) ? new decimal_js_1.default(0) : flashLoanFee,
|
|
221
224
|
});
|
|
222
225
|
const adjustDepositPosition = targetDeposit.minus(currentDepositPosition);
|
|
223
226
|
const borrowDelta = targetBorrow.minus(currentBorrowPosition);
|
|
@@ -309,53 +312,28 @@ const depositLeverageCalcs = (props) => {
|
|
|
309
312
|
}
|
|
310
313
|
};
|
|
311
314
|
exports.depositLeverageCalcs = depositLeverageCalcs;
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
+
/** @throws {PartialWithdrawalSizingError} When a partial payout cannot be sized while preserving remaining LTV. */
|
|
316
|
+
function withdrawLeverageCalcs(market, collReserve, debtReserve, priceCollToDebt, withdrawAmount, deposited, borrowed, currentLedgerInstant, isClosingPosition, selectedTokenIsCollToken,
|
|
317
|
+
// Retained for positional API compatibility; selectedTokenIsCollToken determines the payout token.
|
|
318
|
+
selectedTokenMint, obligation,
|
|
319
|
+
// Retained for positional API compatibility; canonical fees come from debtReserve.
|
|
320
|
+
flashLoanFee, slippagePct) {
|
|
315
321
|
(0, swap_calcs_1.assertPositiveFiniteDecimal)('withdrawLeverageCalcs: priceCollToDebt', priceCollToDebt);
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
const
|
|
321
|
-
|
|
322
|
-
: calcWithdrawAmounts({
|
|
323
|
-
collTokenMint: collReserve.getLiquidityMint(),
|
|
324
|
-
priceCollToDebt,
|
|
325
|
-
currentDepositPosition: deposited,
|
|
326
|
-
currentBorrowPosition: borrowed,
|
|
327
|
-
withdrawAmount,
|
|
328
|
-
selectedTokenMint: selectedTokenMint,
|
|
329
|
-
});
|
|
330
|
-
// Add slippage for the accrued interest rate amount
|
|
331
|
-
const irSlippageBpsForDebt = obligation
|
|
332
|
-
.estimateObligationInterestRate(market, debtReserve, obligation?.state.borrows[0], currentLedgerInstant)
|
|
333
|
-
.toDecimalPlaces(debtReserve?.getMintDecimals(), decimal_js_1.default.ROUND_CEIL);
|
|
334
|
-
// add 0.1 to irSlippageBpsForDebt because we don't want to estimate slightly less than SC and end up not repaying enough
|
|
335
|
-
const repayAmount = initialRepayAmount
|
|
336
|
-
.mul(irSlippageBpsForDebt.add('0.1').div('10_000').add('1'))
|
|
337
|
-
.toDecimalPlaces(debtReserve?.getMintDecimals(), decimal_js_1.default.ROUND_CEIL);
|
|
322
|
+
if (!isClosingPosition) {
|
|
323
|
+
const result = partialWithdrawalCalcs(collReserve, debtReserve, priceCollToDebt, withdrawAmount, deposited, borrowed, currentLedgerInstant, selectedTokenIsCollToken ? 'coll' : 'debt', obligation, slippagePct, 'debt');
|
|
324
|
+
return result;
|
|
325
|
+
}
|
|
326
|
+
const withdrawAmountCalculated = deposited;
|
|
327
|
+
const repayAmount = fullRepayAmount(market, obligation, debtReserve, currentLedgerInstant);
|
|
338
328
|
// Fixed-term debt charges an early-repay penalty on top of the repay. The flash-borrow / coll→debt swap must
|
|
339
329
|
// produce repayAmount + penalty so the on-chain repay debit (`repay + penalty`) succeeds; the repay instruction
|
|
340
330
|
// amount stays the principal (`repayAmount`). Open-term debt → penalty 0 → unchanged behaviour.
|
|
341
331
|
const { earlyRepayPenaltyAmount, repayFundingAmount } = leverageEarlyRepayPenalty(obligation, debtReserve, repayAmount, currentLedgerInstant);
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
const depositTokenWithdrawAmount = !isClosingPosition
|
|
346
|
-
? withdrawAmountCalculated.mul(new decimal_js_1.default(1).plus(flashLoanFee))
|
|
332
|
+
const flashRepayDebtTokens = flashRepayTokenAmount(repayFundingAmount, debtReserve);
|
|
333
|
+
const collTokenSwapIn = selectedTokenIsCollToken
|
|
334
|
+
? flashRepayDebtTokens.mul(new decimal_js_1.default(1).add(slippagePct.div(100))).div(priceCollToDebt)
|
|
347
335
|
: withdrawAmountCalculated;
|
|
348
|
-
|
|
349
|
-
// When withdrawing coll, it means we just need to swap enough to pay for the flash borrow (sized on the funding
|
|
350
|
-
// amount = principal + penalty)
|
|
351
|
-
const swapAmountIfWithdrawingColl = repayFundingAmount
|
|
352
|
-
.mul(new decimal_js_1.default(1).plus(flashLoanFee))
|
|
353
|
-
.mul(new decimal_js_1.default(1).plus(slippagePct.div(100)))
|
|
354
|
-
.div(priceCollToDebt);
|
|
355
|
-
// When withdrawing debt, it means we need to swap just the collateral we are withdrwaing
|
|
356
|
-
// enough to cover the debt we are repaying, leaving the remaining in the wallet
|
|
357
|
-
const swapAmountIfWithdrawingDebt = withdrawAmountCalculated;
|
|
358
|
-
const collTokenSwapIn = selectedTokenIsCollToken ? swapAmountIfWithdrawingColl : swapAmountIfWithdrawingDebt;
|
|
336
|
+
const depositTokenWithdrawAmount = deposited;
|
|
359
337
|
const debtTokenExpectedSwapOut = collTokenSwapIn.mul(priceCollToDebt).div(new decimal_js_1.default(1).add(slippagePct.div(100)));
|
|
360
338
|
return {
|
|
361
339
|
withdrawAmount: withdrawAmountCalculated,
|
|
@@ -443,14 +421,18 @@ function adjustWithdrawLeverageCalcs(adjustDepositPosition, adjustBorrowPosition
|
|
|
443
421
|
obligation, debtReserve, currentLedgerInstant) {
|
|
444
422
|
// Fixed-term debt charges an early-repay penalty on top of the repay. We flash-borrow the funding amount
|
|
445
423
|
// (principal + penalty) and repay only the principal; the extra penalty cost is paid by withdrawing proportionally
|
|
446
|
-
// more collateral
|
|
424
|
+
// more collateral, including rounded flash fees and the full-repayment cushion.
|
|
447
425
|
const absRepay = decimal_js_1.default.abs(adjustBorrowPosition);
|
|
448
426
|
const { earlyRepayPenaltyAmount, repayFundingAmount } = obligation && debtReserve && currentLedgerInstant !== undefined
|
|
449
|
-
? leverageEarlyRepayPenalty(obligation, debtReserve, absRepay
|
|
427
|
+
? leverageEarlyRepayPenalty(obligation, debtReserve, absRepay.gte(obligation.getBorrowAmountByReserve(debtReserve))
|
|
428
|
+
? fullRepayAmount(obligation.market, obligation, debtReserve, currentLedgerInstant)
|
|
429
|
+
: absRepay, currentLedgerInstant)
|
|
450
430
|
: { earlyRepayPenaltyAmount: new decimal_js_1.default(0), repayFundingAmount: absRepay };
|
|
451
|
-
const
|
|
431
|
+
const flashRepayAmount = debtReserve
|
|
432
|
+
? flashRepayTokenAmount(repayFundingAmount, debtReserve)
|
|
433
|
+
: repayFundingAmount.mul(new decimal_js_1.default(1).add(flashLoanFee));
|
|
434
|
+
const fundingScale = absRepay.gt(0) ? flashRepayAmount.div(absRepay) : new decimal_js_1.default(1);
|
|
452
435
|
const withdrawAmountWithSlippageAndFlashLoanFee = decimal_js_1.default.abs(adjustDepositPosition)
|
|
453
|
-
.mul(new decimal_js_1.default(1).plus(flashLoanFee))
|
|
454
436
|
.mul(new decimal_js_1.default(1).add(slippagePct.div(100)))
|
|
455
437
|
.mul(fundingScale);
|
|
456
438
|
return {
|
|
@@ -548,37 +530,40 @@ exports.depositLeverageCalcsDebtFlash = depositLeverageCalcsDebtFlash;
|
|
|
548
530
|
*
|
|
549
531
|
* We flash borrow enough coll to swap for the debt repayment amount,
|
|
550
532
|
* then repay debt, withdraw coll, and use the withdrawn coll to repay the flash loan.
|
|
533
|
+
*
|
|
534
|
+
* @throws {PartialWithdrawalSizingError} When a partial payout cannot be sized while preserving remaining LTV.
|
|
551
535
|
*/
|
|
552
|
-
function withdrawLeverageCalcsCollFlash(market, collReserve, debtReserve, priceCollToDebt, withdrawAmount, deposited, borrowed, currentLedgerInstant, isClosingPosition, selectedTokenIsCollToken,
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
// 2. Add IR slippage to repay amount
|
|
565
|
-
const irSlippageBpsForDebt = obligation
|
|
566
|
-
.estimateObligationInterestRate(market, debtReserve, obligation?.state.borrows[0], currentLedgerInstant)
|
|
567
|
-
.toDecimalPlaces(debtReserve?.getMintDecimals(), decimal_js_1.default.ROUND_CEIL);
|
|
568
|
-
const repayAmount = initialRepayAmount
|
|
569
|
-
.mul(irSlippageBpsForDebt.add('0.1').div('10_000').add('1'))
|
|
570
|
-
.toDecimalPlaces(debtReserve?.getMintDecimals(), decimal_js_1.default.ROUND_CEIL);
|
|
536
|
+
function withdrawLeverageCalcsCollFlash(market, collReserve, debtReserve, priceCollToDebt, withdrawAmount, deposited, borrowed, currentLedgerInstant, isClosingPosition, selectedTokenIsCollToken,
|
|
537
|
+
// Retained for positional API compatibility; selectedTokenIsCollToken determines the payout token.
|
|
538
|
+
selectedTokenMint, obligation,
|
|
539
|
+
// Used by close-to-debt sizing; partial withdrawals read canonical fees from collReserve.
|
|
540
|
+
flashLoanFee, slippagePct) {
|
|
541
|
+
(0, swap_calcs_1.assertPositiveFiniteDecimal)('withdrawLeverageCalcsCollFlash: priceCollToDebt', priceCollToDebt);
|
|
542
|
+
if (!isClosingPosition) {
|
|
543
|
+
const result = partialWithdrawalCalcs(collReserve, debtReserve, priceCollToDebt, withdrawAmount, deposited, borrowed, currentLedgerInstant, selectedTokenIsCollToken ? 'coll' : 'debt', obligation, slippagePct, 'coll');
|
|
544
|
+
return { ...result, flashBorrowInCollToken: result.collTokenSwapIn };
|
|
545
|
+
}
|
|
546
|
+
const withdrawAmountCalculated = deposited;
|
|
547
|
+
const repayAmount = fullRepayAmount(market, obligation, debtReserve, currentLedgerInstant);
|
|
571
548
|
// Fixed-term debt charges an early-repay penalty on top of the repay; the coll→debt swap must produce
|
|
572
549
|
// repayAmount + penalty so the on-chain repay debit succeeds. The repay instruction amount stays the principal.
|
|
573
550
|
const { earlyRepayPenaltyAmount, repayFundingAmount } = leverageEarlyRepayPenalty(obligation, debtReserve, repayAmount, currentLedgerInstant);
|
|
574
551
|
// 3. Calculate how much coll to flash borrow for the swap
|
|
575
552
|
// When withdrawing coll: swap just enough coll->debt to cover the repayment (incl. penalty)
|
|
576
553
|
// When withdrawing debt: swap all withdrawn coll to debt; user keeps surplus debt after repay
|
|
577
|
-
(0, swap_calcs_1.assertPositiveFiniteDecimal)('withdrawLeverageCalcsCollFlash: priceCollToDebt', priceCollToDebt);
|
|
578
554
|
const swapAmountIfWithdrawingColl = repayFundingAmount
|
|
579
555
|
.mul(new decimal_js_1.default(1).add(slippagePct.div(100)))
|
|
580
556
|
.div(priceCollToDebt);
|
|
581
|
-
|
|
557
|
+
let swapAmountIfWithdrawingDebt = withdrawAmountCalculated;
|
|
558
|
+
if (!selectedTokenIsCollToken) {
|
|
559
|
+
const collateralLamports = deposited.mul(collReserve.getMintFactor()).floor();
|
|
560
|
+
const fees = collReserve.calculateFees(collateralLamports, flashLoanFee, classes_1.FeeCalculation.Inclusive, 0, false);
|
|
561
|
+
swapAmountIfWithdrawingDebt = collateralLamports
|
|
562
|
+
.sub(fees.protocolFees)
|
|
563
|
+
.sub(fees.referrerFees)
|
|
564
|
+
.floor()
|
|
565
|
+
.div(collReserve.getMintFactor());
|
|
566
|
+
}
|
|
582
567
|
const collTokenSwapIn = selectedTokenIsCollToken ? swapAmountIfWithdrawingColl : swapAmountIfWithdrawingDebt;
|
|
583
568
|
const debtTokenExpectedSwapOut = collTokenSwapIn.mul(priceCollToDebt).div(new decimal_js_1.default(1).add(slippagePct.div(100)));
|
|
584
569
|
// 4. Flash borrow amount = the EXACT collateral the swap spends (`collTokenSwapIn`), matching the lending-side
|
|
@@ -587,12 +572,7 @@ function withdrawLeverageCalcsCollFlash(market, collReserve, debtReserve, priceC
|
|
|
587
572
|
// the OLD `collSwapIn*(1+fee)` borrow made the SC compute fee on the inflated amount (an O(fee²) overage). Borrowing
|
|
588
573
|
// exactly the spend keeps the flash fee `= fee(collSwapIn)`, funded by the withdraw leg below.
|
|
589
574
|
const flashBorrowInCollToken = collTokenSwapIn;
|
|
590
|
-
//
|
|
591
|
-
// add `flashRepayDebit − flashBorrow = fee(collSwapIn)` lamports on top via the shared `calcFlashLoanFees` helper
|
|
592
|
-
// (so the 1-lamport minimum fee and the referrer split are honoured exactly as the SC computes them). Balance at
|
|
593
|
-
// flash-repay: ATA = flashBorrow − collSwapIn + (withdraw + fee) = withdraw + fee ≥ flashBorrow + fee = SC debit,
|
|
594
|
-
// and the user nets `withdraw − collSwapIn = withdrawAmountCalculated − collSwapIn`, identical to the fee==0 case.
|
|
595
|
-
// (For close position the build function passes U64_MAX, so this value is unused.)
|
|
575
|
+
// Collateral-flash fees are added in atomic units by calcCollFlashLegLamports.
|
|
596
576
|
const depositTokenWithdrawAmount = withdrawAmountCalculated;
|
|
597
577
|
return {
|
|
598
578
|
flashBorrowInCollToken,
|
|
@@ -640,9 +620,11 @@ obligation, debtReserve, currentLedgerInstant) {
|
|
|
640
620
|
const absDebtRepay = decimal_js_1.default.abs(adjustBorrowPosition);
|
|
641
621
|
// Fixed-term debt charges an early-repay penalty on top of the repay; the coll→debt swap must produce
|
|
642
622
|
// principal + penalty so the repay debit succeeds. The repay instruction amount stays the principal, and the extra
|
|
643
|
-
// collateral needed is scaled proportionally
|
|
623
|
+
// collateral needed is scaled proportionally, including the full-repayment cushion.
|
|
644
624
|
const { earlyRepayPenaltyAmount, repayFundingAmount } = obligation && debtReserve && currentLedgerInstant !== undefined
|
|
645
|
-
? leverageEarlyRepayPenalty(obligation, debtReserve, absDebtRepay
|
|
625
|
+
? leverageEarlyRepayPenalty(obligation, debtReserve, absDebtRepay.gte(obligation.getBorrowAmountByReserve(debtReserve))
|
|
626
|
+
? fullRepayAmount(obligation.market, obligation, debtReserve, currentLedgerInstant)
|
|
627
|
+
: absDebtRepay, currentLedgerInstant)
|
|
646
628
|
: { earlyRepayPenaltyAmount: new decimal_js_1.default(0), repayFundingAmount: absDebtRepay };
|
|
647
629
|
// Flash borrow coll to swap for debt repayment (incl. penalty)
|
|
648
630
|
// collSwapIn * priceCollToDebt / (1 + slippage) >= repayFundingAmount
|
|
@@ -670,4 +652,100 @@ obligation, debtReserve, currentLedgerInstant) {
|
|
|
670
652
|
repayFundingAmount,
|
|
671
653
|
};
|
|
672
654
|
}
|
|
655
|
+
/**
|
|
656
|
+
* A partial payout has no verified sizing that preserves the remaining position’s LTV.
|
|
657
|
+
* Callers can reduce the payout or explicitly close the position. Atomic rounding can also
|
|
658
|
+
* refuse a boundary-sized payout whose remaining position would be dust.
|
|
659
|
+
*/
|
|
660
|
+
class PartialWithdrawalSizingError extends Error {
|
|
661
|
+
constructor() {
|
|
662
|
+
super('Cannot size this partial withdrawal while preserving leverage; reduce the amount or close the position');
|
|
663
|
+
this.name = 'PartialWithdrawalSizingError';
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
exports.PartialWithdrawalSizingError = PartialWithdrawalSizingError;
|
|
667
|
+
function partialWithdrawalCalcs(collReserve, debtReserve, priceCollToDebt, withdrawAmount, deposited, borrowed, currentLedgerInstant, selectedToken, obligation, slippagePct, flash) {
|
|
668
|
+
const collFactor = collReserve.getMintFactor();
|
|
669
|
+
const debtFactor = debtReserve.getMintFactor();
|
|
670
|
+
const slippageFactor = new decimal_js_1.default(1).add(slippagePct.div(100));
|
|
671
|
+
const payoutFactor = selectedToken === 'coll' ? collFactor : debtFactor;
|
|
672
|
+
const payout = withdrawAmount.mul(payoutFactor).ceil().div(payoutFactor);
|
|
673
|
+
// A nonzero flash fee has a one-lamport minimum; the canonical fee calculator requires principal > fee.
|
|
674
|
+
const minimumSwapLamports = flash === 'coll' && collReserve.getFlashLoanFee().gt(0) ? 2 : 1;
|
|
675
|
+
const evaluate = (repayLamports) => {
|
|
676
|
+
const repayAmount = repayLamports.div(debtFactor);
|
|
677
|
+
const { earlyRepayPenaltyAmount, repayFundingAmount } = leverageEarlyRepayPenalty(obligation, debtReserve, repayAmount, currentLedgerInstant);
|
|
678
|
+
const debtDebit = flash === 'debt' ? flashRepayTokenAmount(repayFundingAmount, debtReserve) : repayFundingAmount;
|
|
679
|
+
const requiredOutput = selectedToken === 'coll' ? debtDebit : debtDebit.add(payout);
|
|
680
|
+
const swapLamports = decimal_js_1.default.max(requiredOutput.mul(slippageFactor).div(priceCollToDebt).mul(collFactor).ceil(), minimumSwapLamports);
|
|
681
|
+
const collTokenSwapIn = swapLamports.div(collFactor);
|
|
682
|
+
const depositTokenWithdrawAmount = selectedToken === 'coll' ? collTokenSwapIn.add(payout) : collTokenSwapIn;
|
|
683
|
+
const redeemLamports = flash === 'coll'
|
|
684
|
+
? calcCollFlashLegLamports({
|
|
685
|
+
collReserve,
|
|
686
|
+
flashBorrowCollTokens: collTokenSwapIn,
|
|
687
|
+
redeemBaseCollTokens: depositTokenWithdrawAmount,
|
|
688
|
+
}).redeemCollLamports
|
|
689
|
+
: depositTokenWithdrawAmount.mul(collFactor).ceil();
|
|
690
|
+
const totalWithdraw = (0, redeem_drift_1.bufferWithdrawForRedeemDrift)(redeemLamports).div(collFactor);
|
|
691
|
+
return {
|
|
692
|
+
withdrawAmount: totalWithdraw,
|
|
693
|
+
repayAmount,
|
|
694
|
+
earlyRepayPenaltyAmount,
|
|
695
|
+
repayFundingAmount,
|
|
696
|
+
collTokenSwapIn,
|
|
697
|
+
debtTokenExpectedSwapOut: collTokenSwapIn.mul(priceCollToDebt).div(slippageFactor),
|
|
698
|
+
depositTokenWithdrawAmount,
|
|
699
|
+
};
|
|
700
|
+
};
|
|
701
|
+
const preservesLeverage = (result) => result.withdrawAmount.lt(deposited) && result.repayAmount.mul(deposited).gte(borrowed.mul(result.withdrawAmount));
|
|
702
|
+
// The debt-flash route has the same two-lamport minimum when its fee is nonzero.
|
|
703
|
+
let low = new decimal_js_1.default(flash === 'debt' && debtReserve.getFlashLoanFee().gt(0) ? 2 : 1);
|
|
704
|
+
let high = borrowed.mul(debtFactor).ceil().sub(1);
|
|
705
|
+
if (high.lt(low))
|
|
706
|
+
throw new PartialWithdrawalSizingError();
|
|
707
|
+
let result = evaluate(high);
|
|
708
|
+
// Atomic fee/redemption jumps can make a boundary-sized request infeasible at this endpoint.
|
|
709
|
+
// Keep a verified feasible upper bound; callers can reduce a refused partial amount or close explicitly.
|
|
710
|
+
if (!preservesLeverage(result))
|
|
711
|
+
throw new PartialWithdrawalSizingError();
|
|
712
|
+
while (low.lt(high)) {
|
|
713
|
+
const mid = low.add(high).div(2).floor();
|
|
714
|
+
const candidate = evaluate(mid);
|
|
715
|
+
if (preservesLeverage(candidate)) {
|
|
716
|
+
high = mid;
|
|
717
|
+
result = candidate;
|
|
718
|
+
}
|
|
719
|
+
else {
|
|
720
|
+
low = mid.add(1);
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
return result;
|
|
724
|
+
}
|
|
725
|
+
function fullRepayAmount(market, obligation, debtReserve, currentLedgerInstant) {
|
|
726
|
+
const borrow = obligation.state.borrows.find((position) => position.borrowReserve === debtReserve.address);
|
|
727
|
+
if (!borrow) {
|
|
728
|
+
throw new Error(`Unable to find obligation borrow to repay for reserve ${debtReserve.address}`);
|
|
729
|
+
}
|
|
730
|
+
const currentRate = debtReserve.getEstimatedCumulativeBorrowRate(currentLedgerInstant, market.state.referralFeeBps);
|
|
731
|
+
const debt = classes_1.KaminoObligation.getBorrowAmount(borrow)
|
|
732
|
+
.mul(currentRate)
|
|
733
|
+
.div(classes_1.KaminoObligation.getCumulativeBorrowRate(borrow))
|
|
734
|
+
.div(debtReserve.getMintFactor());
|
|
735
|
+
return bufferRepayAmount(debt, debtReserve);
|
|
736
|
+
}
|
|
737
|
+
// Inputs already include accrued interest; retain only the execution-time 0.1 bps cushion.
|
|
738
|
+
function bufferRepayAmount(amount, debtReserve) {
|
|
739
|
+
return amount.mul('1.00001').toDecimalPlaces(debtReserve.getMintDecimals(), decimal_js_1.default.ROUND_CEIL);
|
|
740
|
+
}
|
|
741
|
+
function flashRepayTokenAmount(amount, reserve) {
|
|
742
|
+
return (0, repay_with_collateral_calcs_1.calcFlashLoanFees)({
|
|
743
|
+
reserve,
|
|
744
|
+
referralFeeBps: 0,
|
|
745
|
+
hasReferral: false,
|
|
746
|
+
flashBorrowAmountLamports: amount.mul(reserve.getMintFactor()).ceil(),
|
|
747
|
+
})
|
|
748
|
+
.flashRepayDebitLamports.ceil()
|
|
749
|
+
.div(reserve.getMintFactor());
|
|
750
|
+
}
|
|
673
751
|
//# sourceMappingURL=calcs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calcs.js","sourceRoot":"","sources":["../../src/leverage/calcs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calcs.js","sourceRoot":"","sources":["../../src/leverage/calcs.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,7 +44,7 @@ export declare function determineDepositLeverageFlashBorrowType(props: {
|
|
|
44
44
|
* - debt-flash flash-borrows the repay amount in debt lamports.
|
|
45
45
|
* - coll-flash flash-borrows the swap-in amount in coll lamports AND redeems collateral from the
|
|
46
46
|
* same reserve in the same tx, so coll-flash viability accounts for both legs (flash + redeem).
|
|
47
|
-
* -
|
|
47
|
+
* - Each flash side uses its own withdrawal calculation, including its route-specific funding costs.
|
|
48
48
|
*
|
|
49
49
|
* @throws if neither side is viable.
|
|
50
50
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flashBorrowType.d.ts","sourceRoot":"","sources":["../../src/leverage/flashBorrowType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,EAA2C,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"flashBorrowType.d.ts","sourceRoot":"","sources":["../../src/leverage/flashBorrowType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,EAA2C,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAkB/G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD;;;;;;;;;;GAUG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,uCAAuC,CAAC,KAAK,EAAE;IAC7D,YAAY,EAAE,YAAY,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qFAAqF;IACrF,aAAa,EAAE,OAAO,CAAC;IACvB,wFAAwF;IACxF,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,+FAA+F;IAC/F,eAAe,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,eAAe,CA8ClB;AAED;;;;;;;;;GASG;AACH,wBAAgB,wCAAwC,CAAC,KAAK,EAAE;IAC9D,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,yFAAyF;IACzF,cAAc,EAAE,OAAO,CAAC;IACxB,2EAA2E;IAC3E,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,wCAAwC;IACxC,eAAe,EAAE,OAAO,CAAC;IACzB,kGAAkG;IAClG,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iGAAiG;IACjG,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,oBAAoB,EAAE,aAAa,CAAC;CACrC,GAAG,eAAe,CA8FlB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sCAAsC,CAAC,KAAK,EAAE;IAC5D,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,eAAe,EAAE,OAAO,CAAC;IACzB,wCAAwC;IACxC,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,oBAAoB,EAAE,aAAa,CAAC;CACrC,GAAG,eAAe,CA+FlB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qCAAqC,CAAC,KAAK,EAAE;IAC3D,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oEAAoE;IACpE,WAAW,EAAE,OAAO,CAAC;IACrB,+FAA+F;IAC/F,eAAe,EAAE,OAAO,CAAC;IACzB,mFAAmF;IACnF,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1B,+EAA+E;IAC/E,oBAAoB,EAAE,aAAa,CAAC;CACrC,GAAG,eAAe,CAmDlB"}
|