@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.
@@ -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":"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"}
1
+ {"version":3,"file":"calcs.d.ts","sourceRoot":"","sources":["../../src/leverage/calcs.ts"],"names":[],"mappings":"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"}
@@ -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
- function withdrawLeverageCalcs(market, collReserve, debtReserve, priceCollToDebt, withdrawAmount, deposited, borrowed, currentLedgerInstant, isClosingPosition, selectedTokenIsCollToken, selectedTokenMint, obligation, flashLoanFee, slippagePct) {
313
- // Closing-position branch below divides by `priceCollToDebt` directly (bypassing `calcWithdrawAmounts`), so guard
314
- // here as well as in the leaf calc.
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
- // 1. Calculate coll_amount and debt_amount to repay such that we maintain leverage and we withdraw to
317
- // the wallet `amountInDepositTokenToWithdrawToWallet` amount of collateral token
318
- // We need to withdraw withdrawAmountInDepositToken coll tokens
319
- // and repay repayAmountInBorrowToken debt tokens
320
- const { adjustDepositPosition: withdrawAmountCalculated, adjustBorrowPosition: initialRepayAmount } = isClosingPosition
321
- ? { adjustDepositPosition: deposited, adjustBorrowPosition: borrowed }
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
- // 6. Get swap ixs
343
- // 5. Get swap estimations to understand how much we need to borrow from borrow reserve
344
- // prevent withdrawing more then deposited if we close position
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
- // We are swapping debt token
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 (scaled by funding/principal). Open-term debt → penalty 0 → unchanged behaviour.
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, currentLedgerInstant)
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 fundingScale = absRepay.gt(0) ? repayFundingAmount.div(absRepay) : new decimal_js_1.default(1);
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, selectedTokenMint, obligation, flashLoanFee, slippagePct) {
553
- // 1. Calculate proportional withdraw/repay amounts (same as existing)
554
- const { adjustDepositPosition: withdrawAmountCalculated, adjustBorrowPosition: initialRepayAmount } = isClosingPosition
555
- ? { adjustDepositPosition: deposited, adjustBorrowPosition: borrowed }
556
- : calcWithdrawAmounts({
557
- collTokenMint: collReserve.getLiquidityMint(),
558
- priceCollToDebt,
559
- currentDepositPosition: deposited,
560
- currentBorrowPosition: borrowed,
561
- withdrawAmount,
562
- selectedTokenMint: selectedTokenMint,
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
- const swapAmountIfWithdrawingDebt = withdrawAmountCalculated;
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
- // 5. Collateral to withdraw from the obligation (token-domain base, WITHOUT the flash fee). The build/selector layers
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 (funding/principal). Open-term debt → penalty 0 → unchanged behaviour.
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, currentLedgerInstant)
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
- * - Sizes come from `withdrawLeverageCalcs` and `withdrawLeverageCalcsCollFlash`.
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;AAiB/G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;;;;;;;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,CA6FlB;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,CAgGlB;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"}
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"}