@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.
Files changed (48) hide show
  1. package/dist/classes/index.d.ts +2 -2
  2. package/dist/classes/index.d.ts.map +1 -1
  3. package/dist/classes/index.js +6 -2
  4. package/dist/classes/index.js.map +1 -1
  5. package/dist/lending_operations/repay_with_collateral_calcs.d.ts.map +1 -1
  6. package/dist/lending_operations/repay_with_collateral_calcs.js +7 -2
  7. package/dist/lending_operations/repay_with_collateral_calcs.js.map +1 -1
  8. package/dist/lending_operations/repay_with_collateral_operations.d.ts +30 -3
  9. package/dist/lending_operations/repay_with_collateral_operations.d.ts.map +1 -1
  10. package/dist/lending_operations/repay_with_collateral_operations.js +74 -9
  11. package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
  12. package/dist/lending_operations/swap_calcs.d.ts +59 -0
  13. package/dist/lending_operations/swap_calcs.d.ts.map +1 -1
  14. package/dist/lending_operations/swap_calcs.js +76 -2
  15. package/dist/lending_operations/swap_calcs.js.map +1 -1
  16. package/dist/lending_operations/swap_collateral_operations.d.ts +24 -2
  17. package/dist/lending_operations/swap_collateral_operations.d.ts.map +1 -1
  18. package/dist/lending_operations/swap_collateral_operations.js +96 -26
  19. package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
  20. package/dist/lending_operations/swap_debt_operations.d.ts +13 -0
  21. package/dist/lending_operations/swap_debt_operations.d.ts.map +1 -1
  22. package/dist/lending_operations/swap_debt_operations.js +148 -52
  23. package/dist/lending_operations/swap_debt_operations.js.map +1 -1
  24. package/dist/lending_operations/swap_flash_borrow_selection.d.ts +4 -4
  25. package/dist/lending_operations/swap_flash_borrow_selection.d.ts.map +1 -1
  26. package/dist/lending_operations/swap_flash_borrow_selection.js +5 -11
  27. package/dist/lending_operations/swap_flash_borrow_selection.js.map +1 -1
  28. package/dist/leverage/operations.d.ts +27 -1
  29. package/dist/leverage/operations.d.ts.map +1 -1
  30. package/dist/leverage/operations.js +47 -0
  31. package/dist/leverage/operations.js.map +1 -1
  32. package/dist/leverage/types.d.ts +6 -0
  33. package/dist/leverage/types.d.ts.map +1 -1
  34. package/dist/utils/instruction.d.ts +25 -0
  35. package/dist/utils/instruction.d.ts.map +1 -1
  36. package/dist/utils/instruction.js +17 -1
  37. package/dist/utils/instruction.js.map +1 -1
  38. package/package.json +1 -1
  39. package/src/classes/index.ts +7 -2
  40. package/src/lending_operations/repay_with_collateral_calcs.ts +7 -2
  41. package/src/lending_operations/repay_with_collateral_operations.ts +184 -38
  42. package/src/lending_operations/swap_calcs.ts +91 -2
  43. package/src/lending_operations/swap_collateral_operations.ts +146 -41
  44. package/src/lending_operations/swap_debt_operations.ts +237 -87
  45. package/src/lending_operations/swap_flash_borrow_selection.ts +7 -9
  46. package/src/leverage/operations.ts +78 -0
  47. package/src/leverage/types.ts +6 -0
  48. package/src/utils/instruction.ts +39 -0
@@ -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":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,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"}
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"}
@@ -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,6CAA2B;AAC3B,2CAAyB;AACzB,+CAA6B;AAC7B,oDAAkC;AAClC,4CAA0B;AAC1B,kDAAgC;AAChC,2CAAyB;AACzB,0CAAwB;AAExB,iDAA+B;AAE/B,4CAA0B;AAC1B,0CAAwB;AACxB,6CAA2B;AAC3B,gDAA8B;AAE9B,uEAAuE;AACvE,mDAAmD;AACnD,8CAA4B"}
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;AAG5D,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,CAkBA;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"}
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
- const slippageMultiplier = new decimal_js_1.default(1).add(slippagePct.div('100'));
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.mul(slippageMultiplier).ceil();
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":"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"}
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
- export declare function getRepayWithCollSwapInputs<QuoteResponse>({ collReserveAddress, currentSlot, debtReserveAddress, kaminoMarket, owner, obligation, quoter, referrer, repayAmount, isClosingPosition, budgetAndPriorityFeeIxs, scopeRefreshIx, useV2Ixs, flashBorrowType, }: RepayWithCollSwapInputsProps<QuoteResponse>): Promise<{
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":"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"}
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
- async function getRepayWithCollSwapInputs({ collReserveAddress, currentSlot, debtReserveAddress, kaminoMarket, owner, obligation, quoter, referrer, repayAmount, isClosingPosition, budgetAndPriorityFeeIxs, scopeRefreshIx, useV2Ixs, flashBorrowType, }) {
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
- // Use the debt-flash builder for quote-time account discovery. The repay/withdraw account
36
- // footprint is shared between routes; the flash-loan-side accounts differ by `flashBorrowType`
37
- // and are layered in by the final route-specific builder in `getRepayWithCollIxs`.
38
- const klendIxs = (await buildRepayWithCollateralIxsDebtFlash(kaminoMarket, debtReserve, collReserve, owner, obligation, referrer, currentSlot, budgetAndPriorityFeeIxs, scopeRefreshIx, [
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
- ], isClosingPosition, repayAmountLamports, inputAmountLamports, useV2Ixs))[0];
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: new decimal_js_1.default(0), // swap-side slippage handled by the swapper; quote already reflects realised price
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 = new decimal_js_1.default(1).sub(slippagePct.div(100));
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 = new decimal_js_1.default(1).sub(slippagePct.div(100));
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`).