@kamino-finance/klend-sdk 9.0.1 → 9.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/classes/index.d.ts +2 -2
- package/dist/classes/index.d.ts.map +1 -1
- package/dist/classes/index.js +6 -2
- package/dist/classes/index.js.map +1 -1
- package/dist/lending_operations/repay_with_collateral_calcs.d.ts.map +1 -1
- package/dist/lending_operations/repay_with_collateral_calcs.js +7 -2
- package/dist/lending_operations/repay_with_collateral_calcs.js.map +1 -1
- package/dist/lending_operations/repay_with_collateral_operations.d.ts +30 -3
- package/dist/lending_operations/repay_with_collateral_operations.d.ts.map +1 -1
- package/dist/lending_operations/repay_with_collateral_operations.js +74 -9
- package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
- package/dist/lending_operations/swap_calcs.d.ts +59 -0
- package/dist/lending_operations/swap_calcs.d.ts.map +1 -1
- package/dist/lending_operations/swap_calcs.js +76 -2
- package/dist/lending_operations/swap_calcs.js.map +1 -1
- package/dist/lending_operations/swap_collateral_operations.d.ts +24 -2
- package/dist/lending_operations/swap_collateral_operations.d.ts.map +1 -1
- package/dist/lending_operations/swap_collateral_operations.js +96 -26
- package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
- package/dist/lending_operations/swap_debt_operations.d.ts +13 -0
- package/dist/lending_operations/swap_debt_operations.d.ts.map +1 -1
- package/dist/lending_operations/swap_debt_operations.js +148 -52
- package/dist/lending_operations/swap_debt_operations.js.map +1 -1
- package/dist/lending_operations/swap_flash_borrow_selection.d.ts +4 -4
- package/dist/lending_operations/swap_flash_borrow_selection.d.ts.map +1 -1
- package/dist/lending_operations/swap_flash_borrow_selection.js +5 -11
- package/dist/lending_operations/swap_flash_borrow_selection.js.map +1 -1
- package/dist/leverage/operations.d.ts +27 -1
- package/dist/leverage/operations.d.ts.map +1 -1
- package/dist/leverage/operations.js +47 -0
- package/dist/leverage/operations.js.map +1 -1
- package/dist/leverage/types.d.ts +6 -0
- package/dist/leverage/types.d.ts.map +1 -1
- package/dist/utils/instruction.d.ts +25 -0
- package/dist/utils/instruction.d.ts.map +1 -1
- package/dist/utils/instruction.js +17 -1
- package/dist/utils/instruction.js.map +1 -1
- package/package.json +1 -1
- package/src/classes/index.ts +7 -2
- package/src/lending_operations/repay_with_collateral_calcs.ts +7 -2
- package/src/lending_operations/repay_with_collateral_operations.ts +184 -38
- package/src/lending_operations/swap_calcs.ts +91 -2
- package/src/lending_operations/swap_collateral_operations.ts +146 -41
- package/src/lending_operations/swap_debt_operations.ts +237 -87
- package/src/lending_operations/swap_flash_borrow_selection.ts +7 -9
- package/src/leverage/operations.ts +78 -0
- package/src/leverage/types.ts +6 -0
- package/src/utils/instruction.ts +39 -0
package/dist/classes/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
+
export * from './shared';
|
|
2
|
+
export * from './fraction';
|
|
1
3
|
export * from './action';
|
|
2
4
|
export * from './borrowOrder';
|
|
3
5
|
export * from './curve';
|
|
4
|
-
export * from './fraction';
|
|
5
6
|
export * from './market';
|
|
6
7
|
export * from './obligation';
|
|
7
8
|
export * from './obligationOrder';
|
|
8
9
|
export * from './reserve';
|
|
9
10
|
export * from './rolloverTypes';
|
|
10
|
-
export * from './shared';
|
|
11
11
|
export * from './utils';
|
|
12
12
|
export * from './jupiterPerps';
|
|
13
13
|
export * from './manager';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/classes/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/classes/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAE3B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AAExB,cAAc,gBAAgB,CAAC;AAE/B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAI9B,cAAc,aAAa,CAAC"}
|
package/dist/classes/index.js
CHANGED
|
@@ -14,16 +14,20 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
// `./shared` and `./fraction` define value-exports (enums, classes) consumed at module top-level
|
|
18
|
+
// by other files that are pulled in transitively while `./action`, `./market` and `./obligation`
|
|
19
|
+
// finish evaluating. Load them first so that re-entry into the `classes` barrel during the cycle
|
|
20
|
+
// resolves those symbols rather than seeing them as undefined.
|
|
21
|
+
__exportStar(require("./shared"), exports);
|
|
22
|
+
__exportStar(require("./fraction"), exports);
|
|
17
23
|
__exportStar(require("./action"), exports);
|
|
18
24
|
__exportStar(require("./borrowOrder"), exports);
|
|
19
25
|
__exportStar(require("./curve"), exports);
|
|
20
|
-
__exportStar(require("./fraction"), exports);
|
|
21
26
|
__exportStar(require("./market"), exports);
|
|
22
27
|
__exportStar(require("./obligation"), exports);
|
|
23
28
|
__exportStar(require("./obligationOrder"), exports);
|
|
24
29
|
__exportStar(require("./reserve"), exports);
|
|
25
30
|
__exportStar(require("./rolloverTypes"), exports);
|
|
26
|
-
__exportStar(require("./shared"), exports);
|
|
27
31
|
__exportStar(require("./utils"), exports);
|
|
28
32
|
__exportStar(require("./jupiterPerps"), exports);
|
|
29
33
|
__exportStar(require("./manager"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/classes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,gDAA8B;AAC9B,0CAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/classes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iGAAiG;AACjG,iGAAiG;AACjG,iGAAiG;AACjG,+DAA+D;AAC/D,2CAAyB;AACzB,6CAA2B;AAE3B,2CAAyB;AACzB,gDAA8B;AAC9B,0CAAwB;AACxB,2CAAyB;AACzB,+CAA6B;AAC7B,oDAAkC;AAClC,4CAA0B;AAC1B,kDAAgC;AAChC,0CAAwB;AAExB,iDAA+B;AAE/B,4CAA0B;AAC1B,0CAAwB;AACxB,6CAA2B;AAC3B,gDAA8B;AAE9B,uEAAuE;AACvE,mDAAmD;AACnD,8CAA4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repay_with_collateral_calcs.d.ts","sourceRoot":"","sources":["../../src/lending_operations/repay_with_collateral_calcs.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAA2B,MAAM,YAAY,CAAC;AACpG,OAAO,EAAE,OAAO,EAAU,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"repay_with_collateral_calcs.d.ts","sourceRoot":"","sources":["../../src/lending_operations/repay_with_collateral_calcs.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAA2B,MAAM,YAAY,CAAC;AACpG,OAAO,EAAE,OAAO,EAAU,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAI5D,oBAAY,mBAAmB;IAC7B,OAAO,IAAA;IACP,qBAAqB,IAAA;CACtB;AAED,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,aAAa,EAC1B,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,gBAAgB,EAC5B,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,GACxB;IACD,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,wBAAwB,EAAE,OAAO,CAAC;CACnC,CAsCA;AAED,eAAO,MAAM,oBAAoB,GAAI,OAAO;IAC1C,OAAO,EAAE,aAAa,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,yBAAyB,EAAE,OAAO,CAAC;CACpC,KAAG;IACF,wBAAwB,EAAE,OAAO,CAAC;CAanC,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,gBAAgB,EAC5B,eAAe,EAAE,OAAO,EACxB,eAAe,EAAE,OAAO,EACxB,mBAAmB,EAAE,OAAO,GAC3B;IACD,2BAA2B,EAAE,OAAO,CAAC;IACrC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;CAC1B,CA4EA;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,WAAW,EAAE,IAAI,CAAC;CACnB,GAAG,OAAO,CAiCV;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE;IACpD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CACzB,GAAG;IACF,yBAAyB,EAAE,OAAO,CAAC;IACnC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iCAAiC,EAAE,OAAO,CAAC;CAC5C,CAsBA;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,oBAAoB,EAAE,OAAO,CAAC;IAC9B,6BAA6B,EAAE,OAAO,CAAC;CACxC,GAAG,IAAI,CAOP;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IACxD,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;CAC1B,GAAG,OAAO,CAgBV;AAED,eAAO,MAAM,sBAAsB,GACjC,YAAY,gBAAgB,EAC5B,qBAAqB,OAAO,EAC5B,aAAa,aAAa,EAC1B,oBAAoB,OAAO,EAC3B,aAAa,aAAa,wBAiB3B,CAAC;AAkCF,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,OAAO,EACpB,WAAW,EAAE,aAAa,EAC1B,WAAW,EAAE,aAAa,WAS3B"}
|
|
@@ -15,6 +15,7 @@ const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
|
15
15
|
const classes_1 = require("../classes");
|
|
16
16
|
const kit_1 = require("@solana/kit");
|
|
17
17
|
const utils_1 = require("../classes/utils");
|
|
18
|
+
const swap_calcs_1 = require("./swap_calcs");
|
|
18
19
|
var MaxWithdrawLtvCheck;
|
|
19
20
|
(function (MaxWithdrawLtvCheck) {
|
|
20
21
|
MaxWithdrawLtvCheck[MaxWithdrawLtvCheck["MAX_LTV"] = 0] = "MAX_LTV";
|
|
@@ -143,10 +144,14 @@ function calcRepayWithCollCollFlashSwap(props) {
|
|
|
143
144
|
if (swapPriceCollToDebt.isZero()) {
|
|
144
145
|
throw new Error('calcRepayWithCollCollFlashSwap: swapPriceCollToDebt is zero');
|
|
145
146
|
}
|
|
146
|
-
|
|
147
|
+
// Size the coll swap-in by DIVIDING by the slippage factor `(1 - slippagePct/100)`, matching every other sizing
|
|
148
|
+
// path in this refactor (debt-flash repay, swap-coll, swap-debt). At the buffer's worst-case fill
|
|
149
|
+
// `price × (1 - s)` the swap output is `collSwapIn × price × (1 - s) = repay`, so the repay is exactly covered.
|
|
150
|
+
// The previous `× (1 + s)` form undershot — its worst-case output was `repay × (1 - s²) < repay`.
|
|
151
|
+
const slippageFactor = (0, swap_calcs_1.getSlippageFactor)(slippagePct);
|
|
147
152
|
// Convert debt repay amount to coll, padded for slippage so the swap output covers the repay.
|
|
148
153
|
const debtToColl = repayAmountLamports.div(debtMintFactor).div(swapPriceCollToDebt).mul(collMintFactor);
|
|
149
|
-
const collSwapInLamports = debtToColl.
|
|
154
|
+
const collSwapInLamports = debtToColl.div(slippageFactor).ceil();
|
|
150
155
|
const flashBorrowInCollLamports = collSwapInLamports;
|
|
151
156
|
const collWithdrawForFlashRepayLamports = flashBorrowInCollLamports.mul(new decimal_js_1.default(1).add(collFlashLoanFee)).ceil();
|
|
152
157
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repay_with_collateral_calcs.js","sourceRoot":"","sources":["../../src/lending_operations/repay_with_collateral_calcs.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"repay_with_collateral_calcs.js","sourceRoot":"","sources":["../../src/lending_operations/repay_with_collateral_calcs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { KaminoMarket, KaminoObligation } from '../classes';
|
|
2
2
|
import { FlashBorrowType, FlashLoanInfo, SwapInputs, SwapIxsProvider, SwapQuote, SwapQuoteProvider } from '../leverage/types';
|
|
3
|
+
import { KlendAccountsResult } from '../utils';
|
|
3
4
|
import { AddressLookupTable } from '@solana-program/address-lookup-table';
|
|
4
5
|
import { Account, Address, Instruction, Option, Slot, TransactionSigner } from '@solana/kit';
|
|
5
6
|
import Decimal from 'decimal.js';
|
|
@@ -39,7 +40,7 @@ export interface CollFlashRepayWithCollInitialInputs<QuoteResponse> extends Repa
|
|
|
39
40
|
flashBorrowType: 'coll';
|
|
40
41
|
}
|
|
41
42
|
export type RepayWithCollInitialInputs<QuoteResponse> = DebtFlashRepayWithCollInitialInputs<QuoteResponse> | CollFlashRepayWithCollInitialInputs<QuoteResponse>;
|
|
42
|
-
interface RepayWithCollSwapInputsProps<QuoteResponse> {
|
|
43
|
+
export interface RepayWithCollSwapInputsProps<QuoteResponse> {
|
|
43
44
|
kaminoMarket: KaminoMarket;
|
|
44
45
|
debtReserveAddress: Address;
|
|
45
46
|
collReserveAddress: Address;
|
|
@@ -53,6 +54,16 @@ interface RepayWithCollSwapInputsProps<QuoteResponse> {
|
|
|
53
54
|
scopeRefreshIx: Instruction[];
|
|
54
55
|
useV2Ixs: boolean;
|
|
55
56
|
quoter: SwapQuoteProvider<QuoteResponse>;
|
|
57
|
+
/**
|
|
58
|
+
* The user's max-acceptable swap slippage, expressed as a percent (e.g. `0.5` for 0.5%).
|
|
59
|
+
*
|
|
60
|
+
* Contract: callers pass a SIMULATED (mid) `priceAInB` from the quoter — the SDK applies this
|
|
61
|
+
* value as the sizing buffer when computing the flash-borrow / swap-input lamports, so the
|
|
62
|
+
* worst-case real fill still satisfies the on-chain repay / flash-repay constraint. Conceptually
|
|
63
|
+
* a separate knob from the on-chain swap `min_out` (which the swapper sets); in the future this
|
|
64
|
+
* could be a smaller, capped value.
|
|
65
|
+
*/
|
|
66
|
+
slippagePct: Decimal;
|
|
56
67
|
/**
|
|
57
68
|
* Which side to flash borrow on:
|
|
58
69
|
* - `'debt'` (default): flash borrow debt → repay+withdraw → swap coll→debt → flash repay debt.
|
|
@@ -61,7 +72,23 @@ interface RepayWithCollSwapInputsProps<QuoteResponse> {
|
|
|
61
72
|
*/
|
|
62
73
|
flashBorrowType?: FlashBorrowType;
|
|
63
74
|
}
|
|
64
|
-
|
|
75
|
+
/**
|
|
76
|
+
* Inputs for {@link getRepayWithCollKlendAccounts}: the subset of {@link getRepayWithCollSwapInputs}'s props that
|
|
77
|
+
* the klend account footprint depends on. Derived from {@link RepayWithCollSwapInputsProps} (so the two never drift)
|
|
78
|
+
* by dropping only the fields account discovery does not use: the quoter and the slippage. Unlike the swap-coll /
|
|
79
|
+
* swap-debt families, `flashBorrowType` is KEPT, because the two repay routes flash-borrow different reserves
|
|
80
|
+
* (debt vs coll) and so reference a different reserve fee-vault — the account set is NOT invariant to the side.
|
|
81
|
+
*/
|
|
82
|
+
export type RepayWithCollKlendAccountsInputs = Omit<RepayWithCollSwapInputsProps<unknown>, 'quoter' | 'slippagePct'>;
|
|
83
|
+
/**
|
|
84
|
+
* Light helper: returns the exact, final set of klend accounts (and program ids) a repay-with-collateral operation
|
|
85
|
+
* with the same inputs would consume, plus their count, WITHOUT calling the quoter/swapper. This is the same set the
|
|
86
|
+
* operation passes to the quoter (invariant to the swap amounts), so the count is accurate and final — the FE can use
|
|
87
|
+
* it to know how many accounts remain for the external swap. Pass the same `flashBorrowType` the operation will use:
|
|
88
|
+
* the debt-flash and coll-flash routes flash different reserves and so reference a different fee vault.
|
|
89
|
+
*/
|
|
90
|
+
export declare function getRepayWithCollKlendAccounts(inputs: RepayWithCollKlendAccountsInputs): Promise<KlendAccountsResult>;
|
|
91
|
+
export declare function getRepayWithCollSwapInputs<QuoteResponse>({ collReserveAddress, currentSlot, debtReserveAddress, kaminoMarket, owner, obligation, quoter, referrer, repayAmount, isClosingPosition, budgetAndPriorityFeeIxs, scopeRefreshIx, useV2Ixs, slippagePct, flashBorrowType, }: RepayWithCollSwapInputsProps<QuoteResponse>): Promise<{
|
|
65
92
|
swapInputs: SwapInputs;
|
|
66
93
|
flashLoanInfo: FlashLoanInfo;
|
|
67
94
|
initialInputs: RepayWithCollInitialInputs<QuoteResponse>;
|
|
@@ -70,6 +97,6 @@ interface RepayWithCollIxsProps<QuoteResponse> extends RepayWithCollSwapInputsPr
|
|
|
70
97
|
swapper: SwapIxsProvider<QuoteResponse>;
|
|
71
98
|
logger?: (msg: string, ...extra: any[]) => void;
|
|
72
99
|
}
|
|
73
|
-
export declare function getRepayWithCollIxs<QuoteResponse>({ repayAmount, isClosingPosition, budgetAndPriorityFeeIxs, collReserveAddress, currentSlot, debtReserveAddress, kaminoMarket, owner, obligation, quoter, swapper, referrer, scopeRefreshIx, useV2Ixs, flashBorrowType, logger, }: RepayWithCollIxsProps<QuoteResponse>): Promise<Array<RepayWithCollIxsResponse<QuoteResponse>>>;
|
|
100
|
+
export declare function getRepayWithCollIxs<QuoteResponse>({ repayAmount, isClosingPosition, budgetAndPriorityFeeIxs, collReserveAddress, currentSlot, debtReserveAddress, kaminoMarket, owner, obligation, quoter, swapper, referrer, scopeRefreshIx, useV2Ixs, slippagePct, flashBorrowType, logger, }: RepayWithCollIxsProps<QuoteResponse>): Promise<Array<RepayWithCollIxsResponse<QuoteResponse>>>;
|
|
74
101
|
export {};
|
|
75
102
|
//# sourceMappingURL=repay_with_collateral_operations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repay_with_collateral_operations.d.ts","sourceRoot":"","sources":["../../src/lending_operations/repay_with_collateral_operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,YAAY,EAAE,gBAAgB,EAAiB,MAAM,YAAY,CAAC;AAKzF,OAAO,EACL,eAAe,EACf,aAAa,EAEb,UAAU,EAEV,eAAe,EACf,SAAS,EACT,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"repay_with_collateral_operations.d.ts","sourceRoot":"","sources":["../../src/lending_operations/repay_with_collateral_operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +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.getRepayWithCollKlendAccounts = getRepayWithCollKlendAccounts;
|
|
6
7
|
exports.getRepayWithCollSwapInputs = getRepayWithCollSwapInputs;
|
|
7
8
|
exports.getRepayWithCollIxs = getRepayWithCollIxs;
|
|
8
9
|
const classes_1 = require("../classes");
|
|
@@ -15,7 +16,15 @@ const kit_1 = require("@solana/kit");
|
|
|
15
16
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
16
17
|
const redeem_drift_1 = require("./redeem_drift");
|
|
17
18
|
const repay_with_collateral_calcs_1 = require("./repay_with_collateral_calcs");
|
|
18
|
-
|
|
19
|
+
const swap_calcs_1 = require("./swap_calcs");
|
|
20
|
+
/**
|
|
21
|
+
* Account-discovery prefix shared by {@link getRepayWithCollSwapInputs} and the light
|
|
22
|
+
* {@link getRepayWithCollKlendAccounts}: resolve reserves, size the repay, and build the klend ixs for the requested
|
|
23
|
+
* `flashBorrowType` to collect their unique accounts. The repay/withdraw footprint is shared between routes, but the
|
|
24
|
+
* flash-loan side references the flash reserve's fee vault, so the builder must match the actual route — this is
|
|
25
|
+
* exactly the set the operation passes to the quoter.
|
|
26
|
+
*/
|
|
27
|
+
async function computeRepayWithCollKlendAccounts({ kaminoMarket, debtReserveAddress, collReserveAddress, owner, obligation, referrer, currentSlot, repayAmount, isClosingPosition, budgetAndPriorityFeeIxs, scopeRefreshIx, useV2Ixs, flashBorrowType, }) {
|
|
19
28
|
const collReserve = kaminoMarket.getExistingReserveByAddress(collReserveAddress);
|
|
20
29
|
const debtReserve = kaminoMarket.getExistingReserveByAddress(debtReserveAddress);
|
|
21
30
|
const collTokenMint = collReserve.getLiquidityMint();
|
|
@@ -32,18 +41,65 @@ async function getRepayWithCollSwapInputs({ collReserveAddress, currentSlot, deb
|
|
|
32
41
|
const { maxWithdrawableCollLamports } = (0, repay_with_collateral_calcs_1.calcMaxWithdrawCollateral)(kaminoMarket, obligation, collReserve.address, debtReserve.address, repayAmountLamports);
|
|
33
42
|
const maxCollNeededFromOracle = (0, repay_with_collateral_calcs_1.getMaxCollateralFromRepayAmount)(finalRepayAmount, debtReserve, collReserve);
|
|
34
43
|
const inputAmountLamports = decimal_js_1.default.min(maxWithdrawableCollLamports, maxCollNeededFromOracle);
|
|
35
|
-
//
|
|
36
|
-
//
|
|
37
|
-
//
|
|
38
|
-
|
|
44
|
+
// Build the klend ixs for the requested route to discover its accounts. The repay/withdraw footprint is shared,
|
|
45
|
+
// but the flash-loan side references the flash reserve's fee vault — debt-flash flashes the debt reserve,
|
|
46
|
+
// coll-flash the coll reserve — so the discovered set differs by exactly that one account. Swap amounts are
|
|
47
|
+
// placeholders here (the set is invariant to them); only the flash *reserve* must match the real route.
|
|
48
|
+
const placeholderSwapIxs = [
|
|
39
49
|
{
|
|
40
50
|
preActionIxs: [],
|
|
41
51
|
swapIxs: [],
|
|
42
52
|
lookupTables: [],
|
|
43
53
|
quote: {},
|
|
44
54
|
},
|
|
45
|
-
]
|
|
55
|
+
];
|
|
56
|
+
const klendIxs = (flashBorrowType === 'coll'
|
|
57
|
+
? await buildRepayWithCollateralIxsCollFlash(kaminoMarket, debtReserve, collReserve, owner, obligation, referrer, currentSlot, budgetAndPriorityFeeIxs, scopeRefreshIx, placeholderSwapIxs, isClosingPosition, repayAmountLamports, inputAmountLamports, inputAmountLamports, useV2Ixs)
|
|
58
|
+
: await buildRepayWithCollateralIxsDebtFlash(kaminoMarket, debtReserve, collReserve, owner, obligation, referrer, currentSlot, budgetAndPriorityFeeIxs, scopeRefreshIx, placeholderSwapIxs, isClosingPosition, repayAmountLamports, inputAmountLamports, useV2Ixs))[0];
|
|
46
59
|
const uniqueKlendAccounts = (0, utils_1.uniqueAccountsWithProgramIds)(klendIxs.instructions);
|
|
60
|
+
return {
|
|
61
|
+
collReserve,
|
|
62
|
+
debtReserve,
|
|
63
|
+
collTokenMint,
|
|
64
|
+
debtTokenMint,
|
|
65
|
+
repayAmountLamports,
|
|
66
|
+
flashRepayAmountLamports,
|
|
67
|
+
maxWithdrawableCollLamports,
|
|
68
|
+
inputAmountLamports,
|
|
69
|
+
klendIxs,
|
|
70
|
+
uniqueKlendAccounts,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Light helper: returns the exact, final set of klend accounts (and program ids) a repay-with-collateral operation
|
|
75
|
+
* with the same inputs would consume, plus their count, WITHOUT calling the quoter/swapper. This is the same set the
|
|
76
|
+
* operation passes to the quoter (invariant to the swap amounts), so the count is accurate and final — the FE can use
|
|
77
|
+
* it to know how many accounts remain for the external swap. Pass the same `flashBorrowType` the operation will use:
|
|
78
|
+
* the debt-flash and coll-flash routes flash different reserves and so reference a different fee vault.
|
|
79
|
+
*/
|
|
80
|
+
async function getRepayWithCollKlendAccounts(inputs) {
|
|
81
|
+
const { uniqueKlendAccounts } = await computeRepayWithCollKlendAccounts(inputs);
|
|
82
|
+
return (0, utils_1.toKlendAccountsResult)(uniqueKlendAccounts);
|
|
83
|
+
}
|
|
84
|
+
async function getRepayWithCollSwapInputs({ collReserveAddress, currentSlot, debtReserveAddress, kaminoMarket, owner, obligation, quoter, referrer, repayAmount, isClosingPosition, budgetAndPriorityFeeIxs, scopeRefreshIx, useV2Ixs, slippagePct, flashBorrowType, }) {
|
|
85
|
+
// Validate slippage up-front (mirrors swap-coll / swap-debt) so an out-of-range `slippagePct` fails fast,
|
|
86
|
+
// before the account-discovery + quoter call below rather than only inside the sizing branches.
|
|
87
|
+
(0, swap_calcs_1.getSlippageFactor)(slippagePct);
|
|
88
|
+
const { collReserve, debtReserve, collTokenMint, debtTokenMint, repayAmountLamports, flashRepayAmountLamports, maxWithdrawableCollLamports, inputAmountLamports, klendIxs, uniqueKlendAccounts, } = await computeRepayWithCollKlendAccounts({
|
|
89
|
+
kaminoMarket,
|
|
90
|
+
debtReserveAddress,
|
|
91
|
+
collReserveAddress,
|
|
92
|
+
owner,
|
|
93
|
+
obligation,
|
|
94
|
+
referrer,
|
|
95
|
+
currentSlot,
|
|
96
|
+
repayAmount,
|
|
97
|
+
isClosingPosition,
|
|
98
|
+
budgetAndPriorityFeeIxs,
|
|
99
|
+
scopeRefreshIx,
|
|
100
|
+
useV2Ixs,
|
|
101
|
+
flashBorrowType,
|
|
102
|
+
});
|
|
47
103
|
const swapQuoteInputs = {
|
|
48
104
|
inputAmountLamports,
|
|
49
105
|
inputMint: collTokenMint,
|
|
@@ -51,13 +107,17 @@ async function getRepayWithCollSwapInputs({ collReserveAddress, currentSlot, deb
|
|
|
51
107
|
};
|
|
52
108
|
const swapQuote = await quoter(swapQuoteInputs, uniqueKlendAccounts);
|
|
53
109
|
const swapQuotePxDebtToColl = swapQuote.priceAInB;
|
|
110
|
+
// SDK sizing buffer: pad the coll-swap input so the swap output covers `repayAmountLamports`
|
|
111
|
+
// even when the real fill comes in at the worst-case `priceAInB × (1 - swapSizingBufferPct/100)`.
|
|
112
|
+
// Currently == slippagePct, future-cappable.
|
|
113
|
+
const swapSizingBufferPct = slippagePct;
|
|
54
114
|
if (flashBorrowType === 'coll') {
|
|
55
115
|
// Coll-flash sizing: swap exactly the flash-borrowed coll → at least `repayAmountLamports` debt
|
|
56
116
|
// after slippage; withdraw flashBorrow * (1 + collFlashFee) coll to repay the flash loan.
|
|
57
117
|
const { collSwapInLamports, debtMinOutLamports, collWithdrawForFlashRepayLamports } = (0, repay_with_collateral_calcs_1.calcRepayWithCollCollFlashSwap)({
|
|
58
118
|
repayAmountLamports,
|
|
59
119
|
swapPriceCollToDebt: swapQuotePxDebtToColl,
|
|
60
|
-
slippagePct:
|
|
120
|
+
slippagePct: swapSizingBufferPct,
|
|
61
121
|
collFlashLoanFee: collReserve.getFlashLoanFee(),
|
|
62
122
|
collMintFactor: collReserve.getMintFactor(),
|
|
63
123
|
debtMintFactor: debtReserve.getMintFactor(),
|
|
@@ -84,10 +144,14 @@ async function getRepayWithCollSwapInputs({ collReserveAddress, currentSlot, deb
|
|
|
84
144
|
},
|
|
85
145
|
};
|
|
86
146
|
}
|
|
87
|
-
// Debt-flash sizing (default): swap enough coll to produce flashRepayAmountLamports of debt
|
|
147
|
+
// Debt-flash sizing (default): swap enough coll to produce flashRepayAmountLamports of debt
|
|
148
|
+
// even at the worst-case fill. priceAInB is mid; divide by `(1 - swapSizingBufferPct/100)` so
|
|
149
|
+
// `collSwapIn × priceAInB × (1 - buffer) ≥ flashRepayLamports`.
|
|
150
|
+
const swapSizingBufferDivisor = (0, swap_calcs_1.getSlippageFactor)(swapSizingBufferPct);
|
|
88
151
|
const collSwapInLamports = flashRepayAmountLamports
|
|
89
152
|
.div(debtReserve.getMintFactor())
|
|
90
153
|
.div(swapQuotePxDebtToColl)
|
|
154
|
+
.div(swapSizingBufferDivisor)
|
|
91
155
|
.mul(collReserve.getMintFactor())
|
|
92
156
|
.ceil();
|
|
93
157
|
return {
|
|
@@ -109,7 +173,7 @@ async function getRepayWithCollSwapInputs({ collReserveAddress, currentSlot, deb
|
|
|
109
173
|
},
|
|
110
174
|
};
|
|
111
175
|
}
|
|
112
|
-
async function getRepayWithCollIxs({ repayAmount, isClosingPosition, budgetAndPriorityFeeIxs, collReserveAddress, currentSlot, debtReserveAddress, kaminoMarket, owner, obligation, quoter, swapper, referrer, scopeRefreshIx, useV2Ixs, flashBorrowType, logger = console.log, }) {
|
|
176
|
+
async function getRepayWithCollIxs({ repayAmount, isClosingPosition, budgetAndPriorityFeeIxs, collReserveAddress, currentSlot, debtReserveAddress, kaminoMarket, owner, obligation, quoter, swapper, referrer, scopeRefreshIx, useV2Ixs, slippagePct, flashBorrowType, logger = console.log, }) {
|
|
113
177
|
const { swapInputs, initialInputs } = await getRepayWithCollSwapInputs({
|
|
114
178
|
collReserveAddress,
|
|
115
179
|
currentSlot,
|
|
@@ -124,6 +188,7 @@ async function getRepayWithCollIxs({ repayAmount, isClosingPosition, budgetAndPr
|
|
|
124
188
|
budgetAndPriorityFeeIxs,
|
|
125
189
|
scopeRefreshIx,
|
|
126
190
|
useV2Ixs,
|
|
191
|
+
slippagePct,
|
|
127
192
|
flashBorrowType,
|
|
128
193
|
});
|
|
129
194
|
const { debtRepayAmountLamports, flashRepayAmountLamports, maxCollateralWithdrawLamports, swapQuote } = initialInputs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repay_with_collateral_operations.js","sourceRoot":"","sources":["../../src/lending_operations/repay_with_collateral_operations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"repay_with_collateral_operations.js","sourceRoot":"","sources":["../../src/lending_operations/repay_with_collateral_operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,6 +54,65 @@ export interface CalculateSwapCollExpectedOutputInputsDebtFlow extends BaseCalcu
|
|
|
54
54
|
outstandingDebtAmount: Decimal;
|
|
55
55
|
}
|
|
56
56
|
export type CalculateSwapCollExpectedOutputInputs = CalculateSwapCollExpectedOutputInputsCollFlow | CalculateSwapCollExpectedOutputInputsDebtFlow;
|
|
57
|
+
/**
|
|
58
|
+
* The slippage retention factor `1 - slippagePct/100` — the fraction of value that survives slippage.
|
|
59
|
+
*
|
|
60
|
+
* Shared by every flash-loan/swap sizing path: as a multiplier when scaling an expected swap output DOWN
|
|
61
|
+
* (e.g. `out = in × price × factor`), and as a divisor when sizing a swap input UP so the worst-case fill
|
|
62
|
+
* still covers the target (`in = target / price / factor`). Guards `0 <= slippagePct < 100` so the factor
|
|
63
|
+
* is always in `(0, 1]` and the divisor can never be zero or negative.
|
|
64
|
+
*
|
|
65
|
+
* NOTE: we deliberately do not cap below 100 here. A pathological-but-in-range buffer (e.g. 99 → a ~100× sizing)
|
|
66
|
+
* fails safe downstream — the inflated borrow is rejected by the reserve liquidity / LTV checks rather than
|
|
67
|
+
* mis-executing — and existing tests intentionally exercise large buffers (the coll-flash "exceeds max
|
|
68
|
+
* withdrawable" path). A hypothetical sub-100 cap (a `MAX_SIZING_BUFFER_PCT` constant) would be a reasonable future
|
|
69
|
+
* ergonomic improvement but would forbid those flows, so it is left to the reserve owner / a follow-up, not here.
|
|
70
|
+
*/
|
|
71
|
+
export declare function getSlippageFactor(slippagePct: Decimal): Decimal;
|
|
72
|
+
/**
|
|
73
|
+
* Default multiplier applied to the market's minimum-net-value when sizing the debt "dust" the via-debt
|
|
74
|
+
* swap-collateral flow deliberately leaves alive. `> 1` so the surviving position stays clear of the on-chain
|
|
75
|
+
* `(0, min_net_value)` reject band even if the debt price drifts down between build and execution. The dust is
|
|
76
|
+
* re-borrowed within the same flow, so a generous margin costs nothing.
|
|
77
|
+
*/
|
|
78
|
+
export declare const VIA_DEBT_DUST_SAFETY_FACTOR: Decimal;
|
|
79
|
+
export interface ViaDebtFlashBorrowSizing {
|
|
80
|
+
/** Amount to flash-borrow and repay; leaves `>= dustLamports` of debt alive after the on-chain repay. */
|
|
81
|
+
flashBorrowDebtLamports: Decimal;
|
|
82
|
+
/** Lower bound on the debt lamports deliberately kept alive (its market value clears `min_net_value`). */
|
|
83
|
+
dustLamports: Decimal;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Sizes the via-debt swap-collateral flash borrow so the deliberately-retained debt "dust" position clears the
|
|
87
|
+
* on-chain post-repay invariant. KLend's `post_repay_obligation_invariants` rejects (NetValueRemainingTooSmall,
|
|
88
|
+
* #6092) a remaining position whose market value lands in the open band `(0, min_net_value_in_obligation)`. The flow
|
|
89
|
+
* repays `flashBorrowDebtLamports` (capped on-chain at the live outstanding) to keep the borrow reserve in the
|
|
90
|
+
* obligation's list, so the leftover must be EITHER zero OR worth `>= min_net_value`.
|
|
91
|
+
*
|
|
92
|
+
* Sizing:
|
|
93
|
+
* - `dustLamports = max(ceil(min_net_value · mintFactor / price · safetyFactor), 1)` — the debt lamports whose market
|
|
94
|
+
* value clears the threshold (with margin for price drift), never below one whole lamport.
|
|
95
|
+
* - `flashBorrow = floor(outstanding) - dustLamports` — THROWS when that is `< 1` (the outstanding debt is too
|
|
96
|
+
* small to flash-borrow at least 1 lamport while still leaving the dust alive).
|
|
97
|
+
*
|
|
98
|
+
* Because the on-chain repay caps at the live outstanding — interest only GROWS it between build and execution, so it
|
|
99
|
+
* is `>= floor(outstanding)` here — the leftover `= live_outstanding - flashBorrow >= dustLamports`. Flooring the
|
|
100
|
+
* outstanding is what makes this hold: a `ceil(outstanding) - 1` sizing can leave a SUB-LAMPORT leftover whose value
|
|
101
|
+
* falls inside the reject band, a flaky failure that only surfaces once a little interest has accrued.
|
|
102
|
+
*
|
|
103
|
+
* @param outstandingDebtLamports current outstanding debt in lamports (need not be integral).
|
|
104
|
+
* @param minNetValueUsd market minimum net value per position (`KaminoMarket.getMinNetValueObligation()`).
|
|
105
|
+
* @param debtMintFactor `10^decimals` of the debt mint (`KaminoReserve.getMintFactor()`).
|
|
106
|
+
* @param debtPriceUsd debt oracle market price (`KaminoReserve.getOracleMarketPrice()`); must be finite and `> 0`.
|
|
107
|
+
* @param safetyFactor margin on the dust; defaults to {@link VIA_DEBT_DUST_SAFETY_FACTOR}.
|
|
108
|
+
*/
|
|
109
|
+
export declare function sizeViaDebtFlashBorrow(params: {
|
|
110
|
+
outstandingDebtLamports: Decimal;
|
|
111
|
+
minNetValueUsd: Decimal;
|
|
112
|
+
debtMintFactor: Decimal;
|
|
113
|
+
debtPriceUsd: Decimal;
|
|
114
|
+
safetyFactor?: Decimal;
|
|
115
|
+
}): ViaDebtFlashBorrowSizing;
|
|
57
116
|
/**
|
|
58
117
|
* Calculates the expected amount of target collateral that will end up in the obligation after a swap, taking into
|
|
59
118
|
* account the flash-loan fee and slippage. For the 'debt' flash-borrow flow, also reports the (small) additional debt
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swap_calcs.d.ts","sourceRoot":"","sources":["../../src/lending_operations/swap_calcs.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAElC;;OAEG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAE5B;;;;;OAKG;IACH,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,UAAU,yCAAyC;IACjD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,aAAa,CAAC;IACjC,iBAAiB,EAAE,aAAa,CAAC;IACjC;;;OAGG;IACH,2BAA2B,EAAE,OAAO,CAAC;IACrC,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,6CAA8C,SAAQ,yCAAyC;IAC9G,gBAAgB,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;CAChD;AAED;;;GAGG;AACH,MAAM,WAAW,6CAA8C,SAAQ,yCAAyC;IAC9G,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,aAAa,CAAC;IAC3B;;;OAGG;IACH,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,MAAM,qCAAqC,GAC7C,6CAA6C,GAC7C,6CAA6C,CAAC;AAElD;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,qCAAqC,GAAG,sBAAsB,CAiErH;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAElC;;OAEG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,0BAA0B,EAAE,OAAO,CAAC;CACrC;AAED,MAAM,WAAW,qCAAqC;IACpD,oBAAoB,EAAE,OAAO,CAAC;IAC9B,iBAAiB,EAAE,aAAa,CAAC;IACjC,iBAAiB,EAAE,aAAa,CAAC;IACjC,gBAAgB,EAAE,YAAY,GAAG,YAAY,CAAC;IAC9C;;OAEG;IACH,2BAA2B,EAAE,OAAO,CAAC;IACrC,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,qCAAqC,GAAG,sBAAsB,CAsDrH"}
|
|
1
|
+
{"version":3,"file":"swap_calcs.d.ts","sourceRoot":"","sources":["../../src/lending_operations/swap_calcs.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAElC;;OAEG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAE5B;;;;;OAKG;IACH,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,UAAU,yCAAyC;IACjD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,aAAa,CAAC;IACjC,iBAAiB,EAAE,aAAa,CAAC;IACjC;;;OAGG;IACH,2BAA2B,EAAE,OAAO,CAAC;IACrC,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,6CAA8C,SAAQ,yCAAyC;IAC9G,gBAAgB,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;CAChD;AAED;;;GAGG;AACH,MAAM,WAAW,6CAA8C,SAAQ,yCAAyC;IAC9G,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,aAAa,CAAC;IAC3B;;;OAGG;IACH,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,MAAM,qCAAqC,GAC7C,6CAA6C,GAC7C,6CAA6C,CAAC;AAElD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAK/D;AAED;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,SAAiB,CAAC;AAE1D,MAAM,WAAW,wBAAwB;IACvC,yGAAyG;IACzG,uBAAuB,EAAE,OAAO,CAAC;IACjC,0GAA0G;IAC1G,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,uBAAuB,EAAE,OAAO,CAAC;IACjC,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,wBAAwB,CAqB3B;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,qCAAqC,GAAG,sBAAsB,CAiErH;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAElC;;OAEG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,0BAA0B,EAAE,OAAO,CAAC;CACrC;AAED,MAAM,WAAW,qCAAqC;IACpD,oBAAoB,EAAE,OAAO,CAAC;IAC9B,iBAAiB,EAAE,aAAa,CAAC;IACjC,iBAAiB,EAAE,aAAa,CAAC;IACjC,gBAAgB,EAAE,YAAY,GAAG,YAAY,CAAC;IAC9C;;OAEG;IACH,2BAA2B,EAAE,OAAO,CAAC;IACrC,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,qCAAqC,GAAG,sBAAsB,CAsDrH"}
|
|
@@ -3,9 +3,83 @@ 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.VIA_DEBT_DUST_SAFETY_FACTOR = void 0;
|
|
7
|
+
exports.getSlippageFactor = getSlippageFactor;
|
|
8
|
+
exports.sizeViaDebtFlashBorrow = sizeViaDebtFlashBorrow;
|
|
6
9
|
exports.calculateSwapCollExpectedOutput = calculateSwapCollExpectedOutput;
|
|
7
10
|
exports.calculateSwapDebtExpectedOutput = calculateSwapDebtExpectedOutput;
|
|
8
11
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
12
|
+
/**
|
|
13
|
+
* The slippage retention factor `1 - slippagePct/100` — the fraction of value that survives slippage.
|
|
14
|
+
*
|
|
15
|
+
* Shared by every flash-loan/swap sizing path: as a multiplier when scaling an expected swap output DOWN
|
|
16
|
+
* (e.g. `out = in × price × factor`), and as a divisor when sizing a swap input UP so the worst-case fill
|
|
17
|
+
* still covers the target (`in = target / price / factor`). Guards `0 <= slippagePct < 100` so the factor
|
|
18
|
+
* is always in `(0, 1]` and the divisor can never be zero or negative.
|
|
19
|
+
*
|
|
20
|
+
* NOTE: we deliberately do not cap below 100 here. A pathological-but-in-range buffer (e.g. 99 → a ~100× sizing)
|
|
21
|
+
* fails safe downstream — the inflated borrow is rejected by the reserve liquidity / LTV checks rather than
|
|
22
|
+
* mis-executing — and existing tests intentionally exercise large buffers (the coll-flash "exceeds max
|
|
23
|
+
* withdrawable" path). A hypothetical sub-100 cap (a `MAX_SIZING_BUFFER_PCT` constant) would be a reasonable future
|
|
24
|
+
* ergonomic improvement but would forbid those flows, so it is left to the reserve owner / a follow-up, not here.
|
|
25
|
+
*/
|
|
26
|
+
function getSlippageFactor(slippagePct) {
|
|
27
|
+
if (!slippagePct.isFinite() || slippagePct.lt(0) || slippagePct.gte(100)) {
|
|
28
|
+
throw new Error(`slippagePct must be >= 0 and < 100; got ${slippagePct.toString()}`);
|
|
29
|
+
}
|
|
30
|
+
return new decimal_js_1.default(1).sub(slippagePct.div(100));
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Default multiplier applied to the market's minimum-net-value when sizing the debt "dust" the via-debt
|
|
34
|
+
* swap-collateral flow deliberately leaves alive. `> 1` so the surviving position stays clear of the on-chain
|
|
35
|
+
* `(0, min_net_value)` reject band even if the debt price drifts down between build and execution. The dust is
|
|
36
|
+
* re-borrowed within the same flow, so a generous margin costs nothing.
|
|
37
|
+
*/
|
|
38
|
+
exports.VIA_DEBT_DUST_SAFETY_FACTOR = new decimal_js_1.default(2);
|
|
39
|
+
/**
|
|
40
|
+
* Sizes the via-debt swap-collateral flash borrow so the deliberately-retained debt "dust" position clears the
|
|
41
|
+
* on-chain post-repay invariant. KLend's `post_repay_obligation_invariants` rejects (NetValueRemainingTooSmall,
|
|
42
|
+
* #6092) a remaining position whose market value lands in the open band `(0, min_net_value_in_obligation)`. The flow
|
|
43
|
+
* repays `flashBorrowDebtLamports` (capped on-chain at the live outstanding) to keep the borrow reserve in the
|
|
44
|
+
* obligation's list, so the leftover must be EITHER zero OR worth `>= min_net_value`.
|
|
45
|
+
*
|
|
46
|
+
* Sizing:
|
|
47
|
+
* - `dustLamports = max(ceil(min_net_value · mintFactor / price · safetyFactor), 1)` — the debt lamports whose market
|
|
48
|
+
* value clears the threshold (with margin for price drift), never below one whole lamport.
|
|
49
|
+
* - `flashBorrow = floor(outstanding) - dustLamports` — THROWS when that is `< 1` (the outstanding debt is too
|
|
50
|
+
* small to flash-borrow at least 1 lamport while still leaving the dust alive).
|
|
51
|
+
*
|
|
52
|
+
* Because the on-chain repay caps at the live outstanding — interest only GROWS it between build and execution, so it
|
|
53
|
+
* is `>= floor(outstanding)` here — the leftover `= live_outstanding - flashBorrow >= dustLamports`. Flooring the
|
|
54
|
+
* outstanding is what makes this hold: a `ceil(outstanding) - 1` sizing can leave a SUB-LAMPORT leftover whose value
|
|
55
|
+
* falls inside the reject band, a flaky failure that only surfaces once a little interest has accrued.
|
|
56
|
+
*
|
|
57
|
+
* @param outstandingDebtLamports current outstanding debt in lamports (need not be integral).
|
|
58
|
+
* @param minNetValueUsd market minimum net value per position (`KaminoMarket.getMinNetValueObligation()`).
|
|
59
|
+
* @param debtMintFactor `10^decimals` of the debt mint (`KaminoReserve.getMintFactor()`).
|
|
60
|
+
* @param debtPriceUsd debt oracle market price (`KaminoReserve.getOracleMarketPrice()`); must be finite and `> 0`.
|
|
61
|
+
* @param safetyFactor margin on the dust; defaults to {@link VIA_DEBT_DUST_SAFETY_FACTOR}.
|
|
62
|
+
*/
|
|
63
|
+
function sizeViaDebtFlashBorrow(params) {
|
|
64
|
+
const { outstandingDebtLamports, minNetValueUsd, debtMintFactor, debtPriceUsd } = params;
|
|
65
|
+
const safetyFactor = params.safetyFactor ?? exports.VIA_DEBT_DUST_SAFETY_FACTOR;
|
|
66
|
+
if (!debtPriceUsd.isFinite() || debtPriceUsd.lte(0)) {
|
|
67
|
+
throw new Error(`debtPriceUsd must be finite and > 0; got ${debtPriceUsd.toString()}`);
|
|
68
|
+
}
|
|
69
|
+
const minNetValueDebtLamports = minNetValueUsd.mul(debtMintFactor).div(debtPriceUsd);
|
|
70
|
+
const dustLamports = decimal_js_1.default.max(minNetValueDebtLamports.mul(safetyFactor).ceil(), new decimal_js_1.default(1));
|
|
71
|
+
const flashBorrowDebtLamports = outstandingDebtLamports.floor().sub(dustLamports);
|
|
72
|
+
if (flashBorrowDebtLamports.lt(1)) {
|
|
73
|
+
// Too small for the via-debt flow: it must flash-borrow >= 1 lamport AND leave >= dustLamports of debt alive so
|
|
74
|
+
// the retained borrow position clears the on-chain post-repay invariant (NetValueRemainingTooSmall, #6092) and
|
|
75
|
+
// keeps the debt reserve in the obligation's borrow list for the re-borrow step. Flooring to 1 (the previous
|
|
76
|
+
// behaviour) would either close the reserve (leftover 0) or leave a sub-dust leftover inside the reject band.
|
|
77
|
+
// Reject upfront so the caller can resize or fall back — matching the removed `calculateViaDebtFlashBorrowLamports`.
|
|
78
|
+
throw new Error(`Outstanding debt (${outstandingDebtLamports} lamports) is too small for the via-debt swap-collateral flow ` +
|
|
79
|
+
`while leaving the market minimum debt value (need floor(outstanding) >= ${dustLamports.add(1)} lamports)`);
|
|
80
|
+
}
|
|
81
|
+
return { flashBorrowDebtLamports, dustLamports };
|
|
82
|
+
}
|
|
9
83
|
/**
|
|
10
84
|
* Calculates the expected amount of target collateral that will end up in the obligation after a swap, taking into
|
|
11
85
|
* account the flash-loan fee and slippage. For the 'debt' flash-borrow flow, also reports the (small) additional debt
|
|
@@ -22,7 +96,7 @@ function calculateSwapCollExpectedOutput(inputs) {
|
|
|
22
96
|
throw new Error('sourceCollAmount must be positive');
|
|
23
97
|
}
|
|
24
98
|
const flashBorrowToken = inputs.flashBorrowToken ?? 'targetColl';
|
|
25
|
-
const slippageFactor =
|
|
99
|
+
const slippageFactor = getSlippageFactor(slippagePct);
|
|
26
100
|
const grossSwapOutput = sourceCollAmount.mul(priceSourceCollToTargetColl).mul(slippageFactor);
|
|
27
101
|
if (flashBorrowToken === 'targetColl') {
|
|
28
102
|
const flashLoanFeeRate = targetCollReserve.getFlashLoanFee();
|
|
@@ -86,7 +160,7 @@ function calculateSwapDebtExpectedOutput(inputs) {
|
|
|
86
160
|
if (sourceDebtSwapAmount.lte(0)) {
|
|
87
161
|
throw new Error('sourceDebtSwapAmount must be positive');
|
|
88
162
|
}
|
|
89
|
-
const slippageFactor =
|
|
163
|
+
const slippageFactor = getSlippageFactor(slippagePct);
|
|
90
164
|
// The target reserve charges an origination fee on the borrow's *receive amount*; the obligation's debt grows by
|
|
91
165
|
// `receive + originationFee`. Mirror that here so the reported `expectedTargetDebtAmount` matches what the on-chain
|
|
92
166
|
// LTV checks see (`KaminoObligation.getDebtWithFeesForBorrowAmount`).
|