@kamino-finance/klend-sdk 9.0.0 → 9.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/lending_operations/swap_collateral_operations.d.ts +2 -1
- package/dist/lending_operations/swap_collateral_operations.d.ts.map +1 -1
- package/dist/lending_operations/swap_collateral_operations.js +14 -4
- package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
- package/dist/lending_operations/swap_debt_operations.d.ts.map +1 -1
- package/dist/lending_operations/swap_debt_operations.js +15 -9
- package/dist/lending_operations/swap_debt_operations.js.map +1 -1
- package/dist/leverage/flashBorrowType.d.ts +17 -11
- package/dist/leverage/flashBorrowType.d.ts.map +1 -1
- package/dist/leverage/flashBorrowType.js +35 -14
- package/dist/leverage/flashBorrowType.js.map +1 -1
- package/dist/leverage/utils.d.ts +19 -7
- package/dist/leverage/utils.d.ts.map +1 -1
- package/dist/leverage/utils.js +25 -10
- package/dist/leverage/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/lending_operations/swap_collateral_operations.ts +24 -4
- package/src/lending_operations/swap_debt_operations.ts +6 -1
- package/src/leverage/flashBorrowType.ts +68 -27
- package/src/leverage/utils.ts +31 -14
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { KaminoMarket, KaminoObligation } from '../classes';
|
|
1
|
+
import { KaminoMarket, KaminoObligation, KaminoReserve } from '../classes';
|
|
2
2
|
import { SwapIxsProvider, SwapQuoteProvider } from '../leverage';
|
|
3
3
|
import { Account, Address, Instruction, Option, Slot, TransactionSigner } from '@solana/kit';
|
|
4
4
|
import Decimal from 'decimal.js';
|
|
@@ -140,4 +140,5 @@ export interface SwapCollIxsOutputs<QuoteResponse> {
|
|
|
140
140
|
* - `debt` uses a debt-token flash loan (requires `inputs.debtReserveAddress`)
|
|
141
141
|
*/
|
|
142
142
|
export declare function getSwapCollIxs<QuoteResponse>(inputs: SwapCollIxsInputs<QuoteResponse>): Promise<Array<SwapCollIxsOutputs<QuoteResponse>>>;
|
|
143
|
+
export declare function calculateViaDebtFlashBorrowLamports(outstandingDebtLamports: Decimal, minRemainingDebtValue: Decimal, debtReserve: KaminoReserve): Decimal;
|
|
143
144
|
//# sourceMappingURL=swap_collateral_operations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swap_collateral_operations.d.ts","sourceRoot":"","sources":["../../src/lending_operations/swap_collateral_operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,YAAY,EACZ,gBAAgB,
|
|
1
|
+
{"version":3,"file":"swap_collateral_operations.d.ts","sourceRoot":"","sources":["../../src/lending_operations/swap_collateral_operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAA2C,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAU1G,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAgB,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC3G,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAI1E;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG,YAAY,GAAG,MAAM,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,aAAa;IAC9C;;;;OAIG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAElC;;OAEG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAElC;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAE5C;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAI7B,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,iBAAiB,CAAC;IACzB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1B,WAAW,EAAE,IAAI,CAAC;IAClB,uBAAuB,CAAC,EAAE,WAAW,EAAE,CAAC;IACxC,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACzC,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,aAAa;IAC/C;;OAEG;IACH,GAAG,EAAE,WAAW,EAAE,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAE5C;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,iBAAiB,EAAE;QACjB;;WAEG;QACH,SAAS,EAAE;YACT;;eAEG;YACH,sBAAsB,EAAE,OAAO,CAAC;YAChC;;eAEG;YACH,mBAAmB,EAAE,OAAO,CAAC;YAC7B;;eAEG;YACH,iBAAiB,EAAE,OAAO,CAAC;SAC5B,CAAC;QAEF;;WAEG;QACH,YAAY,EAAE;YACZ;;eAEG;YACH,UAAU,EAAE,OAAO,CAAC;YACpB;;eAEG;YACH,WAAW,EAAE,OAAO,CAAC;YACrB;;;eAGG;YACH,YAAY,EAAE,OAAO,CAAC;YACtB;;eAEG;YACH,aAAa,EAAE,OAAO,CAAC;YACvB;;eAEG;YACH,aAAa,CAAC,EAAE,aAAa,CAAC;SAC/B,CAAC;KACH,CAAC;CACH;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,aAAa,EAChD,MAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,GACvC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC,CASnD;AAkTD,wBAAgB,mCAAmC,CACjD,uBAAuB,EAAE,OAAO,EAChC,qBAAqB,EAAE,OAAO,EAC9B,WAAW,EAAE,aAAa,GACzB,OAAO,CAWT"}
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getSwapCollIxs = getSwapCollIxs;
|
|
7
|
+
exports.calculateViaDebtFlashBorrowLamports = calculateViaDebtFlashBorrowLamports;
|
|
7
8
|
const classes_1 = require("../classes");
|
|
8
9
|
const leverage_1 = require("../leverage");
|
|
9
10
|
const utils_1 = require("../utils");
|
|
@@ -138,12 +139,11 @@ async function getSwapCollViaDebt(inputs) {
|
|
|
138
139
|
throw new Error(`Obligation ${context.obligation.obligationAddress} has no borrow in debt reserve ${debtReserve.address} - cannot flash-borrow via debt`);
|
|
139
140
|
}
|
|
140
141
|
// Flash-borrow amount: we want to repay most (not all) of the debt, so that the borrow reserve stays in the
|
|
141
|
-
// obligation's borrow list and subsequent refresh ixs don't have a mismatched account count.
|
|
142
|
-
//
|
|
143
|
-
// `min(passed_amount, outstanding_with_interest)`, so passing slightly under the outstanding keeps dust alive.
|
|
142
|
+
// obligation's borrow list and subsequent refresh ixs don't have a mismatched account count. Leaving only 1 lamport
|
|
143
|
+
// trips klend's min-value guard, so leave at least the market's configured minimum debt value.
|
|
144
144
|
const outstandingDebtTokens = context.obligation.getBorrowAmountByReserve(debtReserve);
|
|
145
145
|
const outstandingDebtLamports = outstandingDebtTokens.mul(debtReserve.getMintFactor()).ceil();
|
|
146
|
-
const flashBorrowDebtLamports =
|
|
146
|
+
const flashBorrowDebtLamports = calculateViaDebtFlashBorrowLamports(outstandingDebtLamports, context.market.getMinNetValueObligation(), debtReserve);
|
|
147
147
|
const { flashRepayDebtLamports } = calculateViaDebtFlashLoanAmounts(flashBorrowDebtLamports, debtReserve, context);
|
|
148
148
|
const debtIncreaseLamports = calculateDebtIncreaseWithBorrowFeesLamports(flashBorrowDebtLamports, flashRepayDebtLamports, debtReserve, context);
|
|
149
149
|
// Build fake klend ixs to learn accounts for quoting.
|
|
@@ -203,6 +203,16 @@ function calculateViaDebtFlashLoanAmounts(flashBorrowDebtLamports, debtReserve,
|
|
|
203
203
|
flashRepayDebtLamports: flashBorrowDebtLamports.add(flashLoanFeeLamports),
|
|
204
204
|
};
|
|
205
205
|
}
|
|
206
|
+
function calculateViaDebtFlashBorrowLamports(outstandingDebtLamports, minRemainingDebtValue, debtReserve) {
|
|
207
|
+
const minRemainingDebtLamports = minRemainingDebtValue.lte(0)
|
|
208
|
+
? new decimal_js_1.default(1)
|
|
209
|
+
: minRemainingDebtValue.div(debtReserve.getOracleMarketPrice()).mul(debtReserve.getMintFactor()).ceil().add(1);
|
|
210
|
+
const flashBorrowDebtLamports = outstandingDebtLamports.sub(minRemainingDebtLamports);
|
|
211
|
+
if (flashBorrowDebtLamports.lt(1)) {
|
|
212
|
+
throw new Error(`Outstanding ${debtReserve.symbol} debt (${outstandingDebtLamports} lamports) is too small for the via-debt swap-collateral flow while leaving the market minimum debt value`);
|
|
213
|
+
}
|
|
214
|
+
return flashBorrowDebtLamports;
|
|
215
|
+
}
|
|
206
216
|
function calculateDebtIncreaseWithBorrowFeesLamports(flashBorrowDebtLamports, flashRepayDebtLamports, debtReserve, context) {
|
|
207
217
|
return classes_1.KaminoObligation.getDebtWithFeesForBorrowAmount(flashRepayDebtLamports, context.market, debtReserve, (0, kit_1.isSome)(context.referrer))
|
|
208
218
|
.sub(flashBorrowDebtLamports)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swap_collateral_operations.js","sourceRoot":"","sources":["../../src/lending_operations/swap_collateral_operations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"swap_collateral_operations.js","sourceRoot":"","sources":["../../src/lending_operations/swap_collateral_operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swap_debt_operations.d.ts","sourceRoot":"","sources":["../../src/lending_operations/swap_debt_operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,QAAQ,EACT,MAAM,YAAY,CAAC;AACpB,OAAO,EAA2C,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"swap_debt_operations.d.ts","sourceRoot":"","sources":["../../src/lending_operations/swap_debt_operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,12 @@ const classes_1 = require("../classes");
|
|
|
12
12
|
const leverage_1 = require("../leverage");
|
|
13
13
|
const accounts_1 = require("../@codegen/klend/accounts");
|
|
14
14
|
const utils_1 = require("../utils");
|
|
15
|
+
// ObligationTypeTag is imported from the leaf module, not the '../utils' barrel: the
|
|
16
|
+
// DEBT_SEEDED_OBLIGATION_TAGS / FIXED_RATE_OBLIGATION_TAGS Sets below read it at module-eval
|
|
17
|
+
// time, and the barrel's live re-export is `undefined` during circular init
|
|
18
|
+
// (utils ⇄ lending_operations). ObligationType.ts only imports kit + pubkey, so it is always
|
|
19
|
+
// fully evaluated by the time this module's top level runs.
|
|
20
|
+
const ObligationType_1 = require("../utils/ObligationType");
|
|
15
21
|
const kit_1 = require("@solana/kit");
|
|
16
22
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
17
23
|
const token_1 = require("@solana-program/token");
|
|
@@ -43,7 +49,7 @@ async function getSwapDebtIxs(inputs) {
|
|
|
43
49
|
// routing them through the variable-rate flow. (This gate is independent of `isClosingSourceDebt`.)
|
|
44
50
|
if (FIXED_RATE_OBLIGATION_TAGS.has(tag)) {
|
|
45
51
|
throw new Error(`fixed-rate obligations (tag ${tag}) are not supported by swap-debt yet; only variable-rate Multiply ` +
|
|
46
|
-
`(${
|
|
52
|
+
`(${ObligationType_1.ObligationTypeTag.Multiply}) and Leverage (${ObligationType_1.ObligationTypeTag.Leverage}) can be migrated`);
|
|
47
53
|
}
|
|
48
54
|
// Variable-rate Multiply/Leverage. The position is migrated into an obligation of the SAME type re-seeded with
|
|
49
55
|
// the new debt. A full swap (isClosingSourceDebt=true) repays the whole old debt, withdraws all collateral and
|
|
@@ -62,18 +68,18 @@ async function getSwapDebtIxs(inputs) {
|
|
|
62
68
|
* excluded: their seeds do not encode the debt, so the in-place swap-debt flow applies to them.
|
|
63
69
|
*/
|
|
64
70
|
const DEBT_SEEDED_OBLIGATION_TAGS = new Set([
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
71
|
+
ObligationType_1.ObligationTypeTag.Multiply, // 1: seeds [collMint, debtMint]
|
|
72
|
+
ObligationType_1.ObligationTypeTag.Leverage, // 3: seeds [collMint, debtMint]
|
|
73
|
+
ObligationType_1.ObligationTypeTag.MultiplyFixedRate, // 4: seeds [collReserve, debtReserve]
|
|
74
|
+
ObligationType_1.ObligationTypeTag.LeverageFixedRate, // 6: seeds [collReserve, debtReserve]
|
|
69
75
|
]);
|
|
70
76
|
/**
|
|
71
77
|
* Debt-seeded tags whose debt is fixed-term. Migration is gated until the fixed-term repay/borrow + rollover
|
|
72
78
|
* behavior is validator-tested.
|
|
73
79
|
*/
|
|
74
80
|
const FIXED_RATE_OBLIGATION_TAGS = new Set([
|
|
75
|
-
|
|
76
|
-
|
|
81
|
+
ObligationType_1.ObligationTypeTag.MultiplyFixedRate, // 4
|
|
82
|
+
ObligationType_1.ObligationTypeTag.LeverageFixedRate, // 6
|
|
77
83
|
]);
|
|
78
84
|
function extractArgsAndContext(inputs) {
|
|
79
85
|
if (inputs.sourceDebtReserveAddress === inputs.targetDebtReserveAddress) {
|
|
@@ -1225,8 +1231,8 @@ async function getSwapDebtObligationsPreview(inputs) {
|
|
|
1225
1231
|
// builder's dispatch in `getSwapDebtIxs` so callers can't get a nonsensical projection for those tags.
|
|
1226
1232
|
const tag = obligation.obligationTag;
|
|
1227
1233
|
if (!DEBT_SEEDED_OBLIGATION_TAGS.has(tag) || FIXED_RATE_OBLIGATION_TAGS.has(tag)) {
|
|
1228
|
-
throw new Error(`getSwapDebtObligationsPreview only models variable-rate Multiply (${
|
|
1229
|
-
`(${
|
|
1234
|
+
throw new Error(`getSwapDebtObligationsPreview only models variable-rate Multiply (${ObligationType_1.ObligationTypeTag.Multiply}) and Leverage ` +
|
|
1235
|
+
`(${ObligationType_1.ObligationTypeTag.Leverage}) migrations; obligation tag ${tag} is not supported (vanilla/lending swap-debt ` +
|
|
1230
1236
|
`is in-place, and fixed-rate variants are gated)`);
|
|
1231
1237
|
}
|
|
1232
1238
|
if (inputs.sourceDebtReserveAddress === inputs.targetDebtReserveAddress) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swap_debt_operations.js","sourceRoot":"","sources":["../../src/lending_operations/swap_debt_operations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"swap_debt_operations.js","sourceRoot":"","sources":["../../src/lending_operations/swap_debt_operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { Address, Option, Slot } from '@solana/kit';
|
|
1
|
+
import type { Address, Option, Slot } from '@solana/kit';
|
|
2
2
|
import Decimal from 'decimal.js';
|
|
3
|
-
import { KaminoMarket, KaminoObligation } from '../classes';
|
|
4
|
-
import { FlashBorrowType } from './types';
|
|
3
|
+
import { type KaminoMarket, type KaminoObligation } from '../classes';
|
|
4
|
+
import type { FlashBorrowType } from './types';
|
|
5
5
|
/**
|
|
6
6
|
* Intent-level helpers that pick a viable `FlashBorrowType` for each leverage operation.
|
|
7
7
|
*
|
|
8
8
|
* Callers provide only the intent (amounts, target leverage, price); the SDK computes the
|
|
9
|
-
* required-lamport size for each candidate flash side
|
|
10
|
-
* `determineFlashBorrowType` viability check (flash
|
|
11
|
-
*
|
|
9
|
+
* required-lamport size for each candidate flash side — AND the collateral redeemed in the same tx
|
|
10
|
+
* for ops that have a redeem leg — then runs the `determineFlashBorrowType` viability check (flash
|
|
11
|
+
* loans enabled + the reserve covers flash-borrow + redeem). Coll-flash is preferred when it is
|
|
12
|
+
* genuinely viable; otherwise it falls back to debt-flash.
|
|
12
13
|
*
|
|
13
14
|
* Each helper throws with a diagnostic message if neither side is viable.
|
|
14
15
|
*/
|
|
@@ -40,7 +41,8 @@ export declare function determineDepositLeverageFlashBorrowType(props: {
|
|
|
40
41
|
* Picks a viable `FlashBorrowType` for a leveraged WITHDRAW (partial unwind or close-position).
|
|
41
42
|
*
|
|
42
43
|
* - debt-flash flash-borrows the repay amount in debt lamports.
|
|
43
|
-
* - coll-flash flash-borrows the swap-in amount in coll lamports
|
|
44
|
+
* - coll-flash flash-borrows the swap-in amount in coll lamports AND redeems collateral from the
|
|
45
|
+
* same reserve in the same tx, so coll-flash viability accounts for both legs (flash + redeem).
|
|
44
46
|
* - Sizes come from `withdrawLeverageCalcs` and `withdrawLeverageCalcsCollFlash`.
|
|
45
47
|
*
|
|
46
48
|
* @throws if neither side is viable.
|
|
@@ -70,9 +72,11 @@ export declare function determineWithdrawLeverageFlashBorrowType(props: {
|
|
|
70
72
|
* Auto-detects increase vs decrease from the sign of the position deltas returned by
|
|
71
73
|
* `calcAdjustAmounts`:
|
|
72
74
|
* - increase (current < target): coll-flash borrows `adjustDepositPosition` coll lamports,
|
|
73
|
-
* debt-flash borrows `flashBorrowInDebtToken` debt lamports;
|
|
75
|
+
* debt-flash borrows `flashBorrowInDebtToken` debt lamports; deposits collateral, so no redeem;
|
|
74
76
|
* - decrease (current > target): debt-flash borrows |`adjustBorrowPosition`| debt lamports,
|
|
75
|
-
* coll-flash borrows `flashBorrowInCollToken` coll lamports
|
|
77
|
+
* coll-flash borrows `flashBorrowInCollToken` coll lamports AND withdraws
|
|
78
|
+
* `depositTokenWithdrawAmount` coll from the same reserve to repay the flash loan — a redeem leg
|
|
79
|
+
* the coll-flash viability check accounts for (thin reserve: flash + redeem can self-collide).
|
|
76
80
|
*
|
|
77
81
|
* @throws if neither side is viable, or if `targetLeverage` equals the current leverage exactly
|
|
78
82
|
* (nothing to adjust — caller should skip the op).
|
|
@@ -96,10 +100,12 @@ export declare function determineAdjustLeverageFlashBorrowType(props: {
|
|
|
96
100
|
*
|
|
97
101
|
* Semantics (matches the build flows):
|
|
98
102
|
* - debt-flash needs to flash borrow the IR-adjusted debt repay amount in debt lamports;
|
|
99
|
-
* - coll-flash needs to flash borrow enough coll to swap into that same IR-adjusted repay amount
|
|
103
|
+
* - coll-flash needs to flash borrow enough coll to swap into that same IR-adjusted repay amount,
|
|
104
|
+
* then withdraws `collWithdrawForFlashRepayLamports` coll from the reserve to repay the flash loan.
|
|
100
105
|
*
|
|
101
106
|
* Both sides are then validated against `isFlashLoanEnabled(reserve)` and against the reserve's
|
|
102
|
-
* available liquidity by `determineFlashBorrowType
|
|
107
|
+
* available liquidity by `determineFlashBorrowType` — coll-flash must cover flash-borrow + that
|
|
108
|
+
* redeem leg. Coll-flash is preferred when genuinely viable; otherwise it falls back to debt-flash.
|
|
103
109
|
*
|
|
104
110
|
* @throws if neither reserve supports flash borrowing the required amount.
|
|
105
111
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flashBorrowType.d.ts","sourceRoot":"","sources":["../../src/leverage/flashBorrowType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"flashBorrowType.d.ts","sourceRoot":"","sources":["../../src/leverage/flashBorrowType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,EAA2C,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAe/G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C;;;;;;;;;;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,CA4ClB;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,IAAI,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,eAAe,CAuFlB;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;CACtB,GAAG,eAAe,CAiFlB;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,WAAW,EAAE,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;CAC3B,GAAG,eAAe,CAmDlB"}
|
|
@@ -9,17 +9,18 @@ exports.determineAdjustLeverageFlashBorrowType = determineAdjustLeverageFlashBor
|
|
|
9
9
|
exports.determineRepayWithCollFlashBorrowType = determineRepayWithCollFlashBorrowType;
|
|
10
10
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
11
11
|
const classes_1 = require("../classes");
|
|
12
|
+
const repay_with_collateral_calcs_1 = require("../lending_operations/repay_with_collateral_calcs");
|
|
12
13
|
const utils_1 = require("../utils");
|
|
13
14
|
const calcs_1 = require("./calcs");
|
|
14
15
|
const utils_2 = require("./utils");
|
|
15
|
-
const repay_with_collateral_calcs_1 = require("../lending_operations/repay_with_collateral_calcs");
|
|
16
16
|
/**
|
|
17
17
|
* Intent-level helpers that pick a viable `FlashBorrowType` for each leverage operation.
|
|
18
18
|
*
|
|
19
19
|
* Callers provide only the intent (amounts, target leverage, price); the SDK computes the
|
|
20
|
-
* required-lamport size for each candidate flash side
|
|
21
|
-
* `determineFlashBorrowType` viability check (flash
|
|
22
|
-
*
|
|
20
|
+
* required-lamport size for each candidate flash side — AND the collateral redeemed in the same tx
|
|
21
|
+
* for ops that have a redeem leg — then runs the `determineFlashBorrowType` viability check (flash
|
|
22
|
+
* loans enabled + the reserve covers flash-borrow + redeem). Coll-flash is preferred when it is
|
|
23
|
+
* genuinely viable; otherwise it falls back to debt-flash.
|
|
23
24
|
*
|
|
24
25
|
* Each helper throws with a diagnostic message if neither side is viable.
|
|
25
26
|
*/
|
|
@@ -63,13 +64,15 @@ function determineDepositLeverageFlashBorrowType(props) {
|
|
|
63
64
|
flashLoanFee: debtReserve.getFlashLoanFee(),
|
|
64
65
|
});
|
|
65
66
|
const requiredDebtLamports = debtFlashCalcs.flashBorrowInDebtToken.mul(debtReserve.getMintFactor()).ceil();
|
|
66
|
-
|
|
67
|
+
// A leveraged deposit/open deposits collateral; it never redeems from the collateral reserve.
|
|
68
|
+
return (0, utils_2.determineFlashBorrowType)(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports, new decimal_js_1.default(0));
|
|
67
69
|
}
|
|
68
70
|
/**
|
|
69
71
|
* Picks a viable `FlashBorrowType` for a leveraged WITHDRAW (partial unwind or close-position).
|
|
70
72
|
*
|
|
71
73
|
* - debt-flash flash-borrows the repay amount in debt lamports.
|
|
72
|
-
* - coll-flash flash-borrows the swap-in amount in coll lamports
|
|
74
|
+
* - coll-flash flash-borrows the swap-in amount in coll lamports AND redeems collateral from the
|
|
75
|
+
* same reserve in the same tx, so coll-flash viability accounts for both legs (flash + redeem).
|
|
73
76
|
* - Sizes come from `withdrawLeverageCalcs` and `withdrawLeverageCalcsCollFlash`.
|
|
74
77
|
*
|
|
75
78
|
* @throws if neither side is viable.
|
|
@@ -91,7 +94,15 @@ function determineWithdrawLeverageFlashBorrowType(props) {
|
|
|
91
94
|
// Coll-flash: flash borrow = flashBorrowInCollToken.
|
|
92
95
|
const collFlashCalcs = (0, calcs_1.withdrawLeverageCalcsCollFlash)(kaminoMarket, collReserve, debtReserve, priceCollToDebt, withdrawAmount, deposited, borrowed, currentSlot, isClosingPosition, selectedTokenIsCollToken, selectedTokenMint, obligation, collReserve.getFlashLoanFee(), slippagePct);
|
|
93
96
|
const requiredCollLamports = collFlashCalcs.flashBorrowInCollToken.mul(collReserve.getMintFactor()).ceil();
|
|
94
|
-
|
|
97
|
+
// Coll-flash also redeems collateral from the SAME reserve in the same tx
|
|
98
|
+
// (WithdrawObligationCollateralAndRedeemReserveCollateral), before the flash loan is repaid. On a
|
|
99
|
+
// close that's the entire deposit; on a partial it's `depositTokenWithdrawAmount` (matches the
|
|
100
|
+
// amount the build flow passes to the redeem ix). Pass it so a thin collateral reserve that can't
|
|
101
|
+
// cover flash-borrow + redeem falls back to debt-flash instead of self-colliding (klend 6008).
|
|
102
|
+
const redeemCollLamports = (isClosingPosition ? deposited : collFlashCalcs.depositTokenWithdrawAmount)
|
|
103
|
+
.mul(collReserve.getMintFactor())
|
|
104
|
+
.ceil();
|
|
105
|
+
return (0, utils_2.determineFlashBorrowType)(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports, redeemCollLamports);
|
|
95
106
|
}
|
|
96
107
|
/**
|
|
97
108
|
* Picks a viable `FlashBorrowType` for a leveraged ADJUST (increase or decrease).
|
|
@@ -99,9 +110,11 @@ function determineWithdrawLeverageFlashBorrowType(props) {
|
|
|
99
110
|
* Auto-detects increase vs decrease from the sign of the position deltas returned by
|
|
100
111
|
* `calcAdjustAmounts`:
|
|
101
112
|
* - increase (current < target): coll-flash borrows `adjustDepositPosition` coll lamports,
|
|
102
|
-
* debt-flash borrows `flashBorrowInDebtToken` debt lamports;
|
|
113
|
+
* debt-flash borrows `flashBorrowInDebtToken` debt lamports; deposits collateral, so no redeem;
|
|
103
114
|
* - decrease (current > target): debt-flash borrows |`adjustBorrowPosition`| debt lamports,
|
|
104
|
-
* coll-flash borrows `flashBorrowInCollToken` coll lamports
|
|
115
|
+
* coll-flash borrows `flashBorrowInCollToken` coll lamports AND withdraws
|
|
116
|
+
* `depositTokenWithdrawAmount` coll from the same reserve to repay the flash loan — a redeem leg
|
|
117
|
+
* the coll-flash viability check accounts for (thin reserve: flash + redeem can self-collide).
|
|
105
118
|
*
|
|
106
119
|
* @throws if neither side is viable, or if `targetLeverage` equals the current leverage exactly
|
|
107
120
|
* (nothing to adjust — caller should skip the op).
|
|
@@ -131,6 +144,9 @@ function determineAdjustLeverageFlashBorrowType(props) {
|
|
|
131
144
|
}
|
|
132
145
|
let requiredCollLamports;
|
|
133
146
|
let requiredDebtLamports;
|
|
147
|
+
// Increase (leverage-up) deposits collateral — no redeem. Decrease (deleverage) coll-flash
|
|
148
|
+
// withdraws collateral from the same reserve to repay the flash loan, so it has a redeem leg.
|
|
149
|
+
let redeemCollLamports = new decimal_js_1.default(0);
|
|
134
150
|
if (isIncrease) {
|
|
135
151
|
// Coll-flash borrows enough coll to deposit; debt-flash borrows the debt-side calc.
|
|
136
152
|
requiredCollLamports = adjustDepositPosition.mul(collReserve.getMintFactor()).ceil();
|
|
@@ -142,8 +158,9 @@ function determineAdjustLeverageFlashBorrowType(props) {
|
|
|
142
158
|
requiredDebtLamports = decimal_js_1.default.abs(adjustBorrowPosition).mul(debtReserve.getMintFactor()).ceil();
|
|
143
159
|
const collFlashCalcs = (0, calcs_1.adjustWithdrawLeverageCalcsCollFlash)(adjustDepositPosition, adjustBorrowPosition, priceCollToDebt, collReserve.getFlashLoanFee(), slippagePct);
|
|
144
160
|
requiredCollLamports = collFlashCalcs.flashBorrowInCollToken.mul(collReserve.getMintFactor()).ceil();
|
|
161
|
+
redeemCollLamports = collFlashCalcs.depositTokenWithdrawAmount.mul(collReserve.getMintFactor()).ceil();
|
|
145
162
|
}
|
|
146
|
-
return (0, utils_2.determineFlashBorrowType)(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports);
|
|
163
|
+
return (0, utils_2.determineFlashBorrowType)(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports, redeemCollLamports);
|
|
147
164
|
}
|
|
148
165
|
/**
|
|
149
166
|
* Picks a viable `FlashBorrowType` for a repay-with-collateral op given only the client-level intent
|
|
@@ -152,10 +169,12 @@ function determineAdjustLeverageFlashBorrowType(props) {
|
|
|
152
169
|
*
|
|
153
170
|
* Semantics (matches the build flows):
|
|
154
171
|
* - debt-flash needs to flash borrow the IR-adjusted debt repay amount in debt lamports;
|
|
155
|
-
* - coll-flash needs to flash borrow enough coll to swap into that same IR-adjusted repay amount
|
|
172
|
+
* - coll-flash needs to flash borrow enough coll to swap into that same IR-adjusted repay amount,
|
|
173
|
+
* then withdraws `collWithdrawForFlashRepayLamports` coll from the reserve to repay the flash loan.
|
|
156
174
|
*
|
|
157
175
|
* Both sides are then validated against `isFlashLoanEnabled(reserve)` and against the reserve's
|
|
158
|
-
* available liquidity by `determineFlashBorrowType
|
|
176
|
+
* available liquidity by `determineFlashBorrowType` — coll-flash must cover flash-borrow + that
|
|
177
|
+
* redeem leg. Coll-flash is preferred when genuinely viable; otherwise it falls back to debt-flash.
|
|
159
178
|
*
|
|
160
179
|
* @throws if neither reserve supports flash borrowing the required amount.
|
|
161
180
|
*/
|
|
@@ -169,7 +188,9 @@ function determineRepayWithCollFlashBorrowType(props) {
|
|
|
169
188
|
const { repayAmountLamports } = (0, repay_with_collateral_calcs_1.calcRepayAmountWithSlippage)(kaminoMarket, debtReserve, currentSlot, obligation, repayAmount, referrer);
|
|
170
189
|
// Debt-flash borrows the same IR-adjusted repay amount used by the transaction builder.
|
|
171
190
|
const requiredDebtLamports = repayAmountLamports;
|
|
172
|
-
|
|
191
|
+
// Coll-flash repays the debt by swapping flash-borrowed coll, then withdraws collateral from the
|
|
192
|
+
// same reserve to repay the flash loan — `collWithdrawForFlashRepayLamports` is that redeem leg.
|
|
193
|
+
const { flashBorrowInCollLamports: requiredCollLamports, collWithdrawForFlashRepayLamports } = (0, repay_with_collateral_calcs_1.calcRepayWithCollCollFlashSwap)({
|
|
173
194
|
repayAmountLamports,
|
|
174
195
|
swapPriceCollToDebt: priceCollToDebt,
|
|
175
196
|
slippagePct,
|
|
@@ -177,6 +198,6 @@ function determineRepayWithCollFlashBorrowType(props) {
|
|
|
177
198
|
collMintFactor: collReserve.getMintFactor(),
|
|
178
199
|
debtMintFactor: debtReserve.getMintFactor(),
|
|
179
200
|
});
|
|
180
|
-
return (0, utils_2.determineFlashBorrowType)(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports);
|
|
201
|
+
return (0, utils_2.determineFlashBorrowType)(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports, collWithdrawForFlashRepayLamports);
|
|
181
202
|
}
|
|
182
203
|
//# sourceMappingURL=flashBorrowType.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flashBorrowType.js","sourceRoot":"","sources":["../../src/leverage/flashBorrowType.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"flashBorrowType.js","sourceRoot":"","sources":["../../src/leverage/flashBorrowType.ts"],"names":[],"mappings":"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"}
|
package/dist/leverage/utils.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import { FlashBorrowType } from './types';
|
|
1
|
+
import type { Address, GetAccountInfoApi, GetTokenAccountBalanceApi, Rpc } from '@solana/kit';
|
|
2
|
+
import type Decimal from 'decimal.js';
|
|
3
|
+
import { type KaminoReserve } from '../classes';
|
|
4
|
+
import type { FlashBorrowType } from './types';
|
|
5
5
|
export declare const getExpectedTokenBalanceAfterBorrow: (rpc: Rpc<GetAccountInfoApi & GetTokenAccountBalanceApi>, mint: Address, owner: Address, amountToBorrowLamports: Decimal, amountToBorrowMintDecimals: number) => Promise<Decimal>;
|
|
6
6
|
export declare const isBorrowingEnabled: (reserve: KaminoReserve) => boolean;
|
|
7
7
|
/**
|
|
@@ -15,16 +15,28 @@ export declare function isFlashLoanEnabled(reserve: KaminoReserve): boolean;
|
|
|
15
15
|
*
|
|
16
16
|
* Checks:
|
|
17
17
|
* 1. Whether flash loans are enabled on the reserve (flashLoanFeeSf !== U64_MAX)
|
|
18
|
-
* 2. Whether the reserve has sufficient available liquidity
|
|
18
|
+
* 2. Whether the reserve has sufficient available liquidity to service the flash borrow AND,
|
|
19
|
+
* on a withdraw/close, the collateral redeem that happens in the same transaction.
|
|
19
20
|
*
|
|
20
|
-
*
|
|
21
|
+
* Coll-flash and the collateral redeem (WithdrawObligationCollateralAndRedeemReserveCollateral)
|
|
22
|
+
* both draw from the collateral reserve within a single transaction, and the flash loan is not
|
|
23
|
+
* repaid until after the redeem. So a thin collateral reserve can satisfy the flash borrow alone
|
|
24
|
+
* yet still revert with InsufficientLiquidity (klend 6008) once the redeem is added on top.
|
|
25
|
+
*
|
|
26
|
+
* `redeemCollateralLamports` is required (not optional): every caller must pass the collateral that
|
|
27
|
+
* its transaction redeems from the collateral reserve in the same tx, so coll-flash viability always
|
|
28
|
+
* accounts for both legs. Pass 0 only when the op genuinely has no redeem (opens / leverage-up
|
|
29
|
+
* deposits). Withdraw/close, deleverage (adjust-decrease) and repay-with-collateral all redeem.
|
|
21
30
|
*
|
|
22
31
|
* @param collReserve - The collateral reserve
|
|
23
32
|
* @param debtReserve - The debt reserve
|
|
24
33
|
* @param requiredCollLamports - Amount needed if flash borrowing collateral
|
|
25
34
|
* @param requiredDebtLamports - Amount needed if flash borrowing debt
|
|
35
|
+
* @param redeemCollateralLamports - Collateral liquidity redeemed from the collateral reserve in the
|
|
36
|
+
* same tx (the coll withdraw/redeem amount). 0 only when the op has no redeem leg. Coll-flash
|
|
37
|
+
* requires the reserve to cover `requiredCollLamports + redeemCollateralLamports`.
|
|
26
38
|
* @returns 'coll' or 'debt'
|
|
27
39
|
* @throws if neither reserve supports flash borrowing the required amount
|
|
28
40
|
*/
|
|
29
|
-
export declare function determineFlashBorrowType(collReserve: KaminoReserve, debtReserve: KaminoReserve, requiredCollLamports: Decimal, requiredDebtLamports: Decimal): FlashBorrowType;
|
|
41
|
+
export declare function determineFlashBorrowType(collReserve: KaminoReserve, debtReserve: KaminoReserve, requiredCollLamports: Decimal, requiredDebtLamports: Decimal, redeemCollateralLamports: Decimal): FlashBorrowType;
|
|
30
42
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/leverage/utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/leverage/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAE9F,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,KAAK,aAAa,EAA2B,MAAM,YAAY,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,kCAAkC,GAC7C,KAAK,GAAG,CAAC,iBAAiB,GAAG,yBAAyB,CAAC,EACvD,MAAM,OAAO,EACb,OAAO,OAAO,EACd,wBAAwB,OAAO,EAC/B,4BAA4B,MAAM,KACjC,OAAO,CAAC,OAAO,CAMjB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,SAAS,aAAa,YAExD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAElE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,aAAa,EAC1B,WAAW,EAAE,aAAa,EAC1B,oBAAoB,EAAE,OAAO,EAC7B,oBAAoB,EAAE,OAAO,EAC7B,wBAAwB,EAAE,OAAO,GAChC,eAAe,CAyBjB"}
|
package/dist/leverage/utils.js
CHANGED
|
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.isBorrowingEnabled = exports.getExpectedTokenBalanceAfterBorrow = void 0;
|
|
7
7
|
exports.isFlashLoanEnabled = isFlashLoanEnabled;
|
|
8
8
|
exports.determineFlashBorrowType = determineFlashBorrowType;
|
|
9
|
+
const bn_js_1 = __importDefault(require("bn.js"));
|
|
9
10
|
const classes_1 = require("../classes");
|
|
10
11
|
const utils_1 = require("../utils");
|
|
11
|
-
const bn_js_1 = __importDefault(require("bn.js"));
|
|
12
12
|
const getExpectedTokenBalanceAfterBorrow = async (rpc, mint, owner, amountToBorrowLamports, amountToBorrowMintDecimals) => {
|
|
13
13
|
const initialUserTokenABalance = await (0, utils_1.getTokenAccountBalanceDecimal)(rpc, mint, owner);
|
|
14
14
|
return initialUserTokenABalance
|
|
@@ -33,34 +33,49 @@ function isFlashLoanEnabled(reserve) {
|
|
|
33
33
|
*
|
|
34
34
|
* Checks:
|
|
35
35
|
* 1. Whether flash loans are enabled on the reserve (flashLoanFeeSf !== U64_MAX)
|
|
36
|
-
* 2. Whether the reserve has sufficient available liquidity
|
|
36
|
+
* 2. Whether the reserve has sufficient available liquidity to service the flash borrow AND,
|
|
37
|
+
* on a withdraw/close, the collateral redeem that happens in the same transaction.
|
|
37
38
|
*
|
|
38
|
-
*
|
|
39
|
+
* Coll-flash and the collateral redeem (WithdrawObligationCollateralAndRedeemReserveCollateral)
|
|
40
|
+
* both draw from the collateral reserve within a single transaction, and the flash loan is not
|
|
41
|
+
* repaid until after the redeem. So a thin collateral reserve can satisfy the flash borrow alone
|
|
42
|
+
* yet still revert with InsufficientLiquidity (klend 6008) once the redeem is added on top.
|
|
43
|
+
*
|
|
44
|
+
* `redeemCollateralLamports` is required (not optional): every caller must pass the collateral that
|
|
45
|
+
* its transaction redeems from the collateral reserve in the same tx, so coll-flash viability always
|
|
46
|
+
* accounts for both legs. Pass 0 only when the op genuinely has no redeem (opens / leverage-up
|
|
47
|
+
* deposits). Withdraw/close, deleverage (adjust-decrease) and repay-with-collateral all redeem.
|
|
39
48
|
*
|
|
40
49
|
* @param collReserve - The collateral reserve
|
|
41
50
|
* @param debtReserve - The debt reserve
|
|
42
51
|
* @param requiredCollLamports - Amount needed if flash borrowing collateral
|
|
43
52
|
* @param requiredDebtLamports - Amount needed if flash borrowing debt
|
|
53
|
+
* @param redeemCollateralLamports - Collateral liquidity redeemed from the collateral reserve in the
|
|
54
|
+
* same tx (the coll withdraw/redeem amount). 0 only when the op has no redeem leg. Coll-flash
|
|
55
|
+
* requires the reserve to cover `requiredCollLamports + redeemCollateralLamports`.
|
|
44
56
|
* @returns 'coll' or 'debt'
|
|
45
57
|
* @throws if neither reserve supports flash borrowing the required amount
|
|
46
58
|
*/
|
|
47
|
-
function determineFlashBorrowType(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports) {
|
|
59
|
+
function determineFlashBorrowType(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports, redeemCollateralLamports) {
|
|
48
60
|
const collEnabled = isFlashLoanEnabled(collReserve);
|
|
49
61
|
const debtEnabled = isFlashLoanEnabled(debtReserve);
|
|
50
62
|
const collLiquidity = collReserve.getLiquidityAvailableAmount();
|
|
51
63
|
const debtLiquidity = debtReserve.getLiquidityAvailableAmount();
|
|
52
|
-
|
|
64
|
+
// Coll-flash must leave enough liquidity for the in-tx collateral redeem too, not just the
|
|
65
|
+
// flash borrow — otherwise the two collide and the redeem reverts (klend 6008).
|
|
66
|
+
const requiredCollTotal = requiredCollLamports.add(redeemCollateralLamports);
|
|
67
|
+
const collViable = collEnabled && collLiquidity.gte(requiredCollTotal);
|
|
53
68
|
const debtViable = debtEnabled && debtLiquidity.gte(requiredDebtLamports);
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
69
|
+
// Prefer the flash type the relevant reserve(s) can actually service. The old "always prefer
|
|
70
|
+
// collateral" heuristic is wrong for thin/nascent LST reserves on withdraw/close: there the
|
|
71
|
+
// collateral reserve is the constraint, so debt-flash (deep debt reserve) is the safe choice.
|
|
58
72
|
if (collViable)
|
|
59
73
|
return 'coll';
|
|
60
74
|
if (debtViable)
|
|
61
75
|
return 'debt';
|
|
62
76
|
throw new Error(`Neither collateral nor debt reserve supports flash borrowing the required amount. ` +
|
|
63
|
-
`Coll: enabled=${collEnabled}, available=${collLiquidity}, required=${requiredCollLamports}
|
|
77
|
+
`Coll: enabled=${collEnabled}, available=${collLiquidity}, required=${requiredCollLamports}` +
|
|
78
|
+
`${redeemCollateralLamports.gt(0) ? ` (+${redeemCollateralLamports} redeem = ${requiredCollTotal})` : ''}. ` +
|
|
64
79
|
`Debt: enabled=${debtEnabled}, available=${debtLiquidity}, required=${requiredDebtLamports}.`);
|
|
65
80
|
}
|
|
66
81
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/leverage/utils.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/leverage/utils.ts"],"names":[],"mappings":";;;;;;AA+BA,gDAEC;AA8BD,4DA+BC;AA7FD,kDAAuB;AAGvB,wCAAyE;AACzE,oCAAkE;AAG3D,MAAM,kCAAkC,GAAG,KAAK,EACrD,GAAuD,EACvD,IAAa,EACb,KAAc,EACd,sBAA+B,EAC/B,0BAAkC,EAChB,EAAE;IACpB,MAAM,wBAAwB,GAAG,MAAM,IAAA,qCAA6B,EAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAEvF,OAAO,wBAAwB;SAC5B,GAAG,CAAC,IAAA,iCAAuB,EAAC,sBAAsB,EAAE,0BAA0B,CAAC,CAAC;SAChF,eAAe,CAAC,0BAA0B,CAAC,CAAC;AACjD,CAAC,CAAC;AAZW,QAAA,kCAAkC,sCAY7C;AAEK,MAAM,kBAAkB,GAAG,CAAC,OAAsB,EAAE,EAAE;IAC3D,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,eAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B;AAEF;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,OAAsB;IACvD,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,eAAO,CAAC;AACzE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,SAAgB,wBAAwB,CACtC,WAA0B,EAC1B,WAA0B,EAC1B,oBAA6B,EAC7B,oBAA6B,EAC7B,wBAAiC;IAEjC,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAEpD,MAAM,aAAa,GAAG,WAAW,CAAC,2BAA2B,EAAE,CAAC;IAChE,MAAM,aAAa,GAAG,WAAW,CAAC,2BAA2B,EAAE,CAAC;IAEhE,2FAA2F;IAC3F,gFAAgF;IAChF,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,WAAW,IAAI,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,WAAW,IAAI,aAAa,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAE1E,6FAA6F;IAC7F,4FAA4F;IAC5F,8FAA8F;IAC9F,IAAI,UAAU;QAAE,OAAO,MAAM,CAAC;IAC9B,IAAI,UAAU;QAAE,OAAO,MAAM,CAAC;IAE9B,MAAM,IAAI,KAAK,CACb,oFAAoF;QAClF,iBAAiB,WAAW,eAAe,aAAa,cAAc,oBAAoB,EAAE;QAC5F,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,wBAAwB,aAAa,iBAAiB,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI;QAC5G,iBAAiB,WAAW,eAAe,aAAa,cAAc,oBAAoB,GAAG,CAChG,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -368,12 +368,15 @@ async function getSwapCollViaDebt<QuoteResponse>(
|
|
|
368
368
|
}
|
|
369
369
|
|
|
370
370
|
// Flash-borrow amount: we want to repay most (not all) of the debt, so that the borrow reserve stays in the
|
|
371
|
-
// obligation's borrow list and subsequent refresh ixs don't have a mismatched account count.
|
|
372
|
-
//
|
|
373
|
-
// `min(passed_amount, outstanding_with_interest)`, so passing slightly under the outstanding keeps dust alive.
|
|
371
|
+
// obligation's borrow list and subsequent refresh ixs don't have a mismatched account count. Leaving only 1 lamport
|
|
372
|
+
// trips klend's min-value guard, so leave at least the market's configured minimum debt value.
|
|
374
373
|
const outstandingDebtTokens = context.obligation.getBorrowAmountByReserve(debtReserve);
|
|
375
374
|
const outstandingDebtLamports = outstandingDebtTokens.mul(debtReserve.getMintFactor()).ceil();
|
|
376
|
-
const flashBorrowDebtLamports =
|
|
375
|
+
const flashBorrowDebtLamports = calculateViaDebtFlashBorrowLamports(
|
|
376
|
+
outstandingDebtLamports,
|
|
377
|
+
context.market.getMinNetValueObligation(),
|
|
378
|
+
debtReserve
|
|
379
|
+
);
|
|
377
380
|
const { flashRepayDebtLamports } = calculateViaDebtFlashLoanAmounts(flashBorrowDebtLamports, debtReserve, context);
|
|
378
381
|
const debtIncreaseLamports = calculateDebtIncreaseWithBorrowFeesLamports(
|
|
379
382
|
flashBorrowDebtLamports,
|
|
@@ -489,6 +492,23 @@ function calculateViaDebtFlashLoanAmounts(
|
|
|
489
492
|
};
|
|
490
493
|
}
|
|
491
494
|
|
|
495
|
+
export function calculateViaDebtFlashBorrowLamports(
|
|
496
|
+
outstandingDebtLamports: Decimal,
|
|
497
|
+
minRemainingDebtValue: Decimal,
|
|
498
|
+
debtReserve: KaminoReserve
|
|
499
|
+
): Decimal {
|
|
500
|
+
const minRemainingDebtLamports = minRemainingDebtValue.lte(0)
|
|
501
|
+
? new Decimal(1)
|
|
502
|
+
: minRemainingDebtValue.div(debtReserve.getOracleMarketPrice()).mul(debtReserve.getMintFactor()).ceil().add(1);
|
|
503
|
+
const flashBorrowDebtLamports = outstandingDebtLamports.sub(minRemainingDebtLamports);
|
|
504
|
+
if (flashBorrowDebtLamports.lt(1)) {
|
|
505
|
+
throw new Error(
|
|
506
|
+
`Outstanding ${debtReserve.symbol} debt (${outstandingDebtLamports} lamports) is too small for the via-debt swap-collateral flow while leaving the market minimum debt value`
|
|
507
|
+
);
|
|
508
|
+
}
|
|
509
|
+
return flashBorrowDebtLamports;
|
|
510
|
+
}
|
|
511
|
+
|
|
492
512
|
function calculateDebtIncreaseWithBorrowFeesLamports(
|
|
493
513
|
flashBorrowDebtLamports: Decimal,
|
|
494
514
|
flashRepayDebtLamports: Decimal,
|
|
@@ -17,12 +17,17 @@ import {
|
|
|
17
17
|
getComputeBudgetAndPriorityFeeIxs,
|
|
18
18
|
getObligationType,
|
|
19
19
|
ObligationType,
|
|
20
|
-
ObligationTypeTag,
|
|
21
20
|
removeBudgetIxs,
|
|
22
21
|
U64_MAX,
|
|
23
22
|
uniqueAccountsWithProgramIds,
|
|
24
23
|
WRAPPED_SOL_MINT,
|
|
25
24
|
} from '../utils';
|
|
25
|
+
// ObligationTypeTag is imported from the leaf module, not the '../utils' barrel: the
|
|
26
|
+
// DEBT_SEEDED_OBLIGATION_TAGS / FIXED_RATE_OBLIGATION_TAGS Sets below read it at module-eval
|
|
27
|
+
// time, and the barrel's live re-export is `undefined` during circular init
|
|
28
|
+
// (utils ⇄ lending_operations). ObligationType.ts only imports kit + pubkey, so it is always
|
|
29
|
+
// fully evaluated by the time this module's top level runs.
|
|
30
|
+
import { ObligationTypeTag } from '../utils/ObligationType';
|
|
26
31
|
import { Account, Address, Instruction, isSome, none, Option, Slot, some, TransactionSigner } from '@solana/kit';
|
|
27
32
|
import Decimal from 'decimal.js';
|
|
28
33
|
import { TOKEN_PROGRAM_ADDRESS } from '@solana-program/token';
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import { Address, Option, Slot } from '@solana/kit';
|
|
1
|
+
import type { Address, Option, Slot } from '@solana/kit';
|
|
2
2
|
import Decimal from 'decimal.js';
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { lamportsToNumberDecimal as fromLamports, type KaminoMarket, type KaminoObligation } from '../classes';
|
|
5
|
+
import {
|
|
6
|
+
calcRepayAmountWithSlippage,
|
|
7
|
+
calcRepayWithCollCollFlashSwap,
|
|
8
|
+
} from '../lending_operations/repay_with_collateral_calcs';
|
|
5
9
|
import { WRAPPED_SOL_MINT } from '../utils';
|
|
6
10
|
import {
|
|
7
11
|
adjustDepositLeverageCalcsDebtFlash,
|
|
@@ -12,20 +16,17 @@ import {
|
|
|
12
16
|
withdrawLeverageCalcs,
|
|
13
17
|
withdrawLeverageCalcsCollFlash,
|
|
14
18
|
} from './calcs';
|
|
15
|
-
import { FlashBorrowType } from './types';
|
|
19
|
+
import type { FlashBorrowType } from './types';
|
|
16
20
|
import { determineFlashBorrowType } from './utils';
|
|
17
|
-
import {
|
|
18
|
-
calcRepayAmountWithSlippage,
|
|
19
|
-
calcRepayWithCollCollFlashSwap,
|
|
20
|
-
} from '../lending_operations/repay_with_collateral_calcs';
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Intent-level helpers that pick a viable `FlashBorrowType` for each leverage operation.
|
|
24
24
|
*
|
|
25
25
|
* Callers provide only the intent (amounts, target leverage, price); the SDK computes the
|
|
26
|
-
* required-lamport size for each candidate flash side
|
|
27
|
-
* `determineFlashBorrowType` viability check (flash
|
|
28
|
-
*
|
|
26
|
+
* required-lamport size for each candidate flash side — AND the collateral redeemed in the same tx
|
|
27
|
+
* for ops that have a redeem leg — then runs the `determineFlashBorrowType` viability check (flash
|
|
28
|
+
* loans enabled + the reserve covers flash-borrow + redeem). Coll-flash is preferred when it is
|
|
29
|
+
* genuinely viable; otherwise it falls back to debt-flash.
|
|
29
30
|
*
|
|
30
31
|
* Each helper throws with a diagnostic message if neither side is viable.
|
|
31
32
|
*/
|
|
@@ -95,14 +96,16 @@ export function determineDepositLeverageFlashBorrowType(props: {
|
|
|
95
96
|
});
|
|
96
97
|
const requiredDebtLamports = debtFlashCalcs.flashBorrowInDebtToken.mul(debtReserve.getMintFactor()).ceil();
|
|
97
98
|
|
|
98
|
-
|
|
99
|
+
// A leveraged deposit/open deposits collateral; it never redeems from the collateral reserve.
|
|
100
|
+
return determineFlashBorrowType(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports, new Decimal(0));
|
|
99
101
|
}
|
|
100
102
|
|
|
101
103
|
/**
|
|
102
104
|
* Picks a viable `FlashBorrowType` for a leveraged WITHDRAW (partial unwind or close-position).
|
|
103
105
|
*
|
|
104
106
|
* - debt-flash flash-borrows the repay amount in debt lamports.
|
|
105
|
-
* - coll-flash flash-borrows the swap-in amount in coll lamports
|
|
107
|
+
* - coll-flash flash-borrows the swap-in amount in coll lamports AND redeems collateral from the
|
|
108
|
+
* same reserve in the same tx, so coll-flash viability accounts for both legs (flash + redeem).
|
|
106
109
|
* - Sizes come from `withdrawLeverageCalcs` and `withdrawLeverageCalcsCollFlash`.
|
|
107
110
|
*
|
|
108
111
|
* @throws if neither side is viable.
|
|
@@ -196,7 +199,22 @@ export function determineWithdrawLeverageFlashBorrowType(props: {
|
|
|
196
199
|
);
|
|
197
200
|
const requiredCollLamports = collFlashCalcs.flashBorrowInCollToken.mul(collReserve.getMintFactor()).ceil();
|
|
198
201
|
|
|
199
|
-
|
|
202
|
+
// Coll-flash also redeems collateral from the SAME reserve in the same tx
|
|
203
|
+
// (WithdrawObligationCollateralAndRedeemReserveCollateral), before the flash loan is repaid. On a
|
|
204
|
+
// close that's the entire deposit; on a partial it's `depositTokenWithdrawAmount` (matches the
|
|
205
|
+
// amount the build flow passes to the redeem ix). Pass it so a thin collateral reserve that can't
|
|
206
|
+
// cover flash-borrow + redeem falls back to debt-flash instead of self-colliding (klend 6008).
|
|
207
|
+
const redeemCollLamports = (isClosingPosition ? deposited : collFlashCalcs.depositTokenWithdrawAmount)
|
|
208
|
+
.mul(collReserve.getMintFactor())
|
|
209
|
+
.ceil();
|
|
210
|
+
|
|
211
|
+
return determineFlashBorrowType(
|
|
212
|
+
collReserve,
|
|
213
|
+
debtReserve,
|
|
214
|
+
requiredCollLamports,
|
|
215
|
+
requiredDebtLamports,
|
|
216
|
+
redeemCollLamports
|
|
217
|
+
);
|
|
200
218
|
}
|
|
201
219
|
|
|
202
220
|
/**
|
|
@@ -205,9 +223,11 @@ export function determineWithdrawLeverageFlashBorrowType(props: {
|
|
|
205
223
|
* Auto-detects increase vs decrease from the sign of the position deltas returned by
|
|
206
224
|
* `calcAdjustAmounts`:
|
|
207
225
|
* - increase (current < target): coll-flash borrows `adjustDepositPosition` coll lamports,
|
|
208
|
-
* debt-flash borrows `flashBorrowInDebtToken` debt lamports;
|
|
226
|
+
* debt-flash borrows `flashBorrowInDebtToken` debt lamports; deposits collateral, so no redeem;
|
|
209
227
|
* - decrease (current > target): debt-flash borrows |`adjustBorrowPosition`| debt lamports,
|
|
210
|
-
* coll-flash borrows `flashBorrowInCollToken` coll lamports
|
|
228
|
+
* coll-flash borrows `flashBorrowInCollToken` coll lamports AND withdraws
|
|
229
|
+
* `depositTokenWithdrawAmount` coll from the same reserve to repay the flash loan — a redeem leg
|
|
230
|
+
* the coll-flash viability check accounts for (thin reserve: flash + redeem can self-collide).
|
|
211
231
|
*
|
|
212
232
|
* @throws if neither side is viable, or if `targetLeverage` equals the current leverage exactly
|
|
213
233
|
* (nothing to adjust — caller should skip the op).
|
|
@@ -267,6 +287,9 @@ export function determineAdjustLeverageFlashBorrowType(props: {
|
|
|
267
287
|
|
|
268
288
|
let requiredCollLamports: Decimal;
|
|
269
289
|
let requiredDebtLamports: Decimal;
|
|
290
|
+
// Increase (leverage-up) deposits collateral — no redeem. Decrease (deleverage) coll-flash
|
|
291
|
+
// withdraws collateral from the same reserve to repay the flash loan, so it has a redeem leg.
|
|
292
|
+
let redeemCollLamports = new Decimal(0);
|
|
270
293
|
|
|
271
294
|
if (isIncrease) {
|
|
272
295
|
// Coll-flash borrows enough coll to deposit; debt-flash borrows the debt-side calc.
|
|
@@ -291,9 +314,16 @@ export function determineAdjustLeverageFlashBorrowType(props: {
|
|
|
291
314
|
slippagePct
|
|
292
315
|
);
|
|
293
316
|
requiredCollLamports = collFlashCalcs.flashBorrowInCollToken.mul(collReserve.getMintFactor()).ceil();
|
|
317
|
+
redeemCollLamports = collFlashCalcs.depositTokenWithdrawAmount.mul(collReserve.getMintFactor()).ceil();
|
|
294
318
|
}
|
|
295
319
|
|
|
296
|
-
return determineFlashBorrowType(
|
|
320
|
+
return determineFlashBorrowType(
|
|
321
|
+
collReserve,
|
|
322
|
+
debtReserve,
|
|
323
|
+
requiredCollLamports,
|
|
324
|
+
requiredDebtLamports,
|
|
325
|
+
redeemCollLamports
|
|
326
|
+
);
|
|
297
327
|
}
|
|
298
328
|
|
|
299
329
|
/**
|
|
@@ -303,10 +333,12 @@ export function determineAdjustLeverageFlashBorrowType(props: {
|
|
|
303
333
|
*
|
|
304
334
|
* Semantics (matches the build flows):
|
|
305
335
|
* - debt-flash needs to flash borrow the IR-adjusted debt repay amount in debt lamports;
|
|
306
|
-
* - coll-flash needs to flash borrow enough coll to swap into that same IR-adjusted repay amount
|
|
336
|
+
* - coll-flash needs to flash borrow enough coll to swap into that same IR-adjusted repay amount,
|
|
337
|
+
* then withdraws `collWithdrawForFlashRepayLamports` coll from the reserve to repay the flash loan.
|
|
307
338
|
*
|
|
308
339
|
* Both sides are then validated against `isFlashLoanEnabled(reserve)` and against the reserve's
|
|
309
|
-
* available liquidity by `determineFlashBorrowType
|
|
340
|
+
* available liquidity by `determineFlashBorrowType` — coll-flash must cover flash-borrow + that
|
|
341
|
+
* redeem leg. Coll-flash is preferred when genuinely viable; otherwise it falls back to debt-flash.
|
|
310
342
|
*
|
|
311
343
|
* @throws if neither reserve supports flash borrowing the required amount.
|
|
312
344
|
*/
|
|
@@ -355,14 +387,23 @@ export function determineRepayWithCollFlashBorrowType(props: {
|
|
|
355
387
|
// Debt-flash borrows the same IR-adjusted repay amount used by the transaction builder.
|
|
356
388
|
const requiredDebtLamports = repayAmountLamports;
|
|
357
389
|
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
390
|
+
// Coll-flash repays the debt by swapping flash-borrowed coll, then withdraws collateral from the
|
|
391
|
+
// same reserve to repay the flash loan — `collWithdrawForFlashRepayLamports` is that redeem leg.
|
|
392
|
+
const { flashBorrowInCollLamports: requiredCollLamports, collWithdrawForFlashRepayLamports } =
|
|
393
|
+
calcRepayWithCollCollFlashSwap({
|
|
394
|
+
repayAmountLamports,
|
|
395
|
+
swapPriceCollToDebt: priceCollToDebt,
|
|
396
|
+
slippagePct,
|
|
397
|
+
collFlashLoanFee: collReserve.getFlashLoanFee(),
|
|
398
|
+
collMintFactor: collReserve.getMintFactor(),
|
|
399
|
+
debtMintFactor: debtReserve.getMintFactor(),
|
|
400
|
+
});
|
|
366
401
|
|
|
367
|
-
return determineFlashBorrowType(
|
|
402
|
+
return determineFlashBorrowType(
|
|
403
|
+
collReserve,
|
|
404
|
+
debtReserve,
|
|
405
|
+
requiredCollLamports,
|
|
406
|
+
requiredDebtLamports,
|
|
407
|
+
collWithdrawForFlashRepayLamports
|
|
408
|
+
);
|
|
368
409
|
}
|
package/src/leverage/utils.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Address, GetAccountInfoApi, Rpc, GetTokenAccountBalanceApi } from '@solana/kit';
|
|
3
|
-
import Decimal from 'decimal.js';
|
|
4
|
-
import { getTokenAccountBalanceDecimal, U64_MAX } from '../utils';
|
|
1
|
+
import type { Address, GetAccountInfoApi, GetTokenAccountBalanceApi, Rpc } from '@solana/kit';
|
|
5
2
|
import BN from 'bn.js';
|
|
6
|
-
import
|
|
3
|
+
import type Decimal from 'decimal.js';
|
|
4
|
+
|
|
5
|
+
import { type KaminoReserve, lamportsToNumberDecimal } from '../classes';
|
|
6
|
+
import { getTokenAccountBalanceDecimal, U64_MAX } from '../utils';
|
|
7
|
+
import type { FlashBorrowType } from './types';
|
|
7
8
|
|
|
8
9
|
export const getExpectedTokenBalanceAfterBorrow = async (
|
|
9
10
|
rpc: Rpc<GetAccountInfoApi & GetTokenAccountBalanceApi>,
|
|
@@ -37,14 +38,26 @@ export function isFlashLoanEnabled(reserve: KaminoReserve): boolean {
|
|
|
37
38
|
*
|
|
38
39
|
* Checks:
|
|
39
40
|
* 1. Whether flash loans are enabled on the reserve (flashLoanFeeSf !== U64_MAX)
|
|
40
|
-
* 2. Whether the reserve has sufficient available liquidity
|
|
41
|
+
* 2. Whether the reserve has sufficient available liquidity to service the flash borrow AND,
|
|
42
|
+
* on a withdraw/close, the collateral redeem that happens in the same transaction.
|
|
43
|
+
*
|
|
44
|
+
* Coll-flash and the collateral redeem (WithdrawObligationCollateralAndRedeemReserveCollateral)
|
|
45
|
+
* both draw from the collateral reserve within a single transaction, and the flash loan is not
|
|
46
|
+
* repaid until after the redeem. So a thin collateral reserve can satisfy the flash borrow alone
|
|
47
|
+
* yet still revert with InsufficientLiquidity (klend 6008) once the redeem is added on top.
|
|
41
48
|
*
|
|
42
|
-
*
|
|
49
|
+
* `redeemCollateralLamports` is required (not optional): every caller must pass the collateral that
|
|
50
|
+
* its transaction redeems from the collateral reserve in the same tx, so coll-flash viability always
|
|
51
|
+
* accounts for both legs. Pass 0 only when the op genuinely has no redeem (opens / leverage-up
|
|
52
|
+
* deposits). Withdraw/close, deleverage (adjust-decrease) and repay-with-collateral all redeem.
|
|
43
53
|
*
|
|
44
54
|
* @param collReserve - The collateral reserve
|
|
45
55
|
* @param debtReserve - The debt reserve
|
|
46
56
|
* @param requiredCollLamports - Amount needed if flash borrowing collateral
|
|
47
57
|
* @param requiredDebtLamports - Amount needed if flash borrowing debt
|
|
58
|
+
* @param redeemCollateralLamports - Collateral liquidity redeemed from the collateral reserve in the
|
|
59
|
+
* same tx (the coll withdraw/redeem amount). 0 only when the op has no redeem leg. Coll-flash
|
|
60
|
+
* requires the reserve to cover `requiredCollLamports + redeemCollateralLamports`.
|
|
48
61
|
* @returns 'coll' or 'debt'
|
|
49
62
|
* @throws if neither reserve supports flash borrowing the required amount
|
|
50
63
|
*/
|
|
@@ -52,7 +65,8 @@ export function determineFlashBorrowType(
|
|
|
52
65
|
collReserve: KaminoReserve,
|
|
53
66
|
debtReserve: KaminoReserve,
|
|
54
67
|
requiredCollLamports: Decimal,
|
|
55
|
-
requiredDebtLamports: Decimal
|
|
68
|
+
requiredDebtLamports: Decimal,
|
|
69
|
+
redeemCollateralLamports: Decimal
|
|
56
70
|
): FlashBorrowType {
|
|
57
71
|
const collEnabled = isFlashLoanEnabled(collReserve);
|
|
58
72
|
const debtEnabled = isFlashLoanEnabled(debtReserve);
|
|
@@ -60,19 +74,22 @@ export function determineFlashBorrowType(
|
|
|
60
74
|
const collLiquidity = collReserve.getLiquidityAvailableAmount();
|
|
61
75
|
const debtLiquidity = debtReserve.getLiquidityAvailableAmount();
|
|
62
76
|
|
|
63
|
-
|
|
77
|
+
// Coll-flash must leave enough liquidity for the in-tx collateral redeem too, not just the
|
|
78
|
+
// flash borrow — otherwise the two collide and the redeem reverts (klend 6008).
|
|
79
|
+
const requiredCollTotal = requiredCollLamports.add(redeemCollateralLamports);
|
|
80
|
+
const collViable = collEnabled && collLiquidity.gte(requiredCollTotal);
|
|
64
81
|
const debtViable = debtEnabled && debtLiquidity.gte(requiredDebtLamports);
|
|
65
82
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
83
|
+
// Prefer the flash type the relevant reserve(s) can actually service. The old "always prefer
|
|
84
|
+
// collateral" heuristic is wrong for thin/nascent LST reserves on withdraw/close: there the
|
|
85
|
+
// collateral reserve is the constraint, so debt-flash (deep debt reserve) is the safe choice.
|
|
70
86
|
if (collViable) return 'coll';
|
|
71
87
|
if (debtViable) return 'debt';
|
|
72
88
|
|
|
73
89
|
throw new Error(
|
|
74
90
|
`Neither collateral nor debt reserve supports flash borrowing the required amount. ` +
|
|
75
|
-
`Coll: enabled=${collEnabled}, available=${collLiquidity}, required=${requiredCollLamports}
|
|
91
|
+
`Coll: enabled=${collEnabled}, available=${collLiquidity}, required=${requiredCollLamports}` +
|
|
92
|
+
`${redeemCollateralLamports.gt(0) ? ` (+${redeemCollateralLamports} redeem = ${requiredCollTotal})` : ''}. ` +
|
|
76
93
|
`Debt: enabled=${debtEnabled}, available=${debtLiquidity}, required=${requiredDebtLamports}.`
|
|
77
94
|
);
|
|
78
95
|
}
|