@kamino-finance/klend-sdk 4.0.2 → 5.0.0

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 (67) hide show
  1. package/README.md +2 -2
  2. package/dist/classes/action.d.ts +3 -1
  3. package/dist/classes/action.d.ts.map +1 -1
  4. package/dist/classes/action.js +62 -61
  5. package/dist/classes/action.js.map +1 -1
  6. package/dist/classes/obligation.d.ts +9 -0
  7. package/dist/classes/obligation.d.ts.map +1 -1
  8. package/dist/classes/obligation.js +8 -0
  9. package/dist/classes/obligation.js.map +1 -1
  10. package/dist/classes/reserve.d.ts +3 -1
  11. package/dist/classes/reserve.d.ts.map +1 -1
  12. package/dist/classes/reserve.js +32 -0
  13. package/dist/classes/reserve.js.map +1 -1
  14. package/dist/classes/shared.d.ts +8 -0
  15. package/dist/classes/shared.d.ts.map +1 -1
  16. package/dist/classes/shared.js +6 -1
  17. package/dist/classes/shared.js.map +1 -1
  18. package/dist/classes/vault.d.ts.map +1 -1
  19. package/dist/classes/vault.js +19 -5
  20. package/dist/classes/vault.js.map +1 -1
  21. package/dist/lending_operations/repay_with_collateral_calcs.d.ts +18 -1
  22. package/dist/lending_operations/repay_with_collateral_calcs.d.ts.map +1 -1
  23. package/dist/lending_operations/repay_with_collateral_calcs.js +62 -0
  24. package/dist/lending_operations/repay_with_collateral_calcs.js.map +1 -1
  25. package/dist/lending_operations/repay_with_collateral_operations.d.ts +27 -43
  26. package/dist/lending_operations/repay_with_collateral_operations.d.ts.map +1 -1
  27. package/dist/lending_operations/repay_with_collateral_operations.js +99 -152
  28. package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
  29. package/dist/leverage/operations.d.ts +14 -3
  30. package/dist/leverage/operations.d.ts.map +1 -1
  31. package/dist/leverage/operations.js +184 -128
  32. package/dist/leverage/operations.js.map +1 -1
  33. package/dist/utils/ata.d.ts +12 -3
  34. package/dist/utils/ata.d.ts.map +1 -1
  35. package/dist/utils/ata.js +26 -39
  36. package/dist/utils/ata.js.map +1 -1
  37. package/dist/utils/index.d.ts +0 -2
  38. package/dist/utils/index.d.ts.map +1 -1
  39. package/dist/utils/index.js +0 -2
  40. package/dist/utils/index.js.map +1 -1
  41. package/dist/utils/instruction.d.ts +1 -0
  42. package/dist/utils/instruction.d.ts.map +1 -1
  43. package/dist/utils/instruction.js +18 -0
  44. package/dist/utils/instruction.js.map +1 -1
  45. package/package.json +3 -3
  46. package/src/classes/action.ts +92 -98
  47. package/src/classes/obligation.ts +15 -6
  48. package/src/classes/reserve.ts +48 -1
  49. package/src/classes/shared.ts +10 -0
  50. package/src/classes/vault.ts +23 -19
  51. package/src/lending_operations/repay_with_collateral_calcs.ts +98 -1
  52. package/src/lending_operations/repay_with_collateral_operations.ts +233 -253
  53. package/src/leverage/operations.ts +227 -140
  54. package/src/utils/ata.ts +33 -56
  55. package/src/utils/index.ts +0 -2
  56. package/src/utils/instruction.ts +22 -0
  57. package/dist/utils/layout.d.ts +0 -14
  58. package/dist/utils/layout.d.ts.map +0 -1
  59. package/dist/utils/layout.js +0 -123
  60. package/dist/utils/layout.js.map +0 -1
  61. package/dist/utils/syncNative.d.ts +0 -11
  62. package/dist/utils/syncNative.d.ts.map +0 -1
  63. package/dist/utils/syncNative.js +0 -45
  64. package/dist/utils/syncNative.js.map +0 -1
  65. package/src/global.d.ts +0 -1
  66. package/src/utils/layout.ts +0 -118
  67. package/src/utils/syncNative.ts +0 -22
@@ -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,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,wCAAwC,EAAE,OAAO,CAAC;IAClD,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,SAAS,CAAC;IACzB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAoCV;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IACxD,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,wCAAwC,EAAE,OAAO,CAAC;CACnD,GAAG,OAAO,CAcV"}
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,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,aAAa,EAC1B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,gBAAgB,EAC5B,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,SAAS,GAClB;IACD,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,wBAAwB,EAAE,OAAO,CAAC;CACnC,CAsBA;AAED,eAAO,MAAM,oBAAoB,UAAW;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,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,SAAS,EAC1B,eAAe,EAAE,SAAS,EAC1B,UAAU,EAAE,gBAAgB,EAC5B,mBAAmB,EAAE,OAAO;;;EAkC7B;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,wCAAwC,EAAE,OAAO,CAAC;IAClD,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,SAAS,CAAC;IACzB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAoCV;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IACxD,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,wCAAwC,EAAE,OAAO,CAAC;CACnD,GAAG,OAAO,CAcV"}
@@ -3,9 +3,71 @@ 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.calcFlashRepayAmount = void 0;
7
+ exports.calcRepayAmountWithSlippage = calcRepayAmountWithSlippage;
8
+ exports.calcMaxWithdrawCollateral = calcMaxWithdrawCollateral;
6
9
  exports.estimateDebtRepaymentWithColl = estimateDebtRepaymentWithColl;
7
10
  exports.estimateCollNeededForDebtRepayment = estimateCollNeededForDebtRepayment;
8
11
  const decimal_js_1 = __importDefault(require("decimal.js"));
12
+ const classes_1 = require("../classes");
13
+ const web3_js_1 = require("@solana/web3.js");
14
+ function calcRepayAmountWithSlippage(kaminoMarket, debtReserve, currentSlot, obligation, amount, referrer) {
15
+ const irSlippageBpsForDebt = obligation
16
+ .estimateObligationInterestRate(kaminoMarket, debtReserve, obligation.state.borrows.find((borrow) => borrow.borrowReserve.equals(debtReserve.address)), currentSlot)
17
+ .toDecimalPlaces(debtReserve.state.liquidity.mintDecimals.toNumber(), decimal_js_1.default.ROUND_CEIL);
18
+ // add 0.1% to irSlippageBpsForDebt because we don't want to estimate slightly less than SC and end up not reapying enough
19
+ const repayAmount = amount
20
+ .mul(irSlippageBpsForDebt.mul(new decimal_js_1.default('1.001')))
21
+ .toDecimalPlaces(debtReserve.state.liquidity.mintDecimals.toNumber(), decimal_js_1.default.ROUND_CEIL);
22
+ const repayAmountLamports = (0, classes_1.numberToLamportsDecimal)(repayAmount, debtReserve.stats.decimals);
23
+ const { flashRepayAmountLamports } = (0, exports.calcFlashRepayAmount)({
24
+ reserve: debtReserve,
25
+ referralFeeBps: kaminoMarket.state.referralFeeBps,
26
+ hasReferral: !referrer.equals(web3_js_1.PublicKey.default),
27
+ flashBorrowAmountLamports: repayAmountLamports,
28
+ });
29
+ return { repayAmount, repayAmountLamports, flashRepayAmountLamports };
30
+ }
31
+ const calcFlashRepayAmount = (props) => {
32
+ const { reserve, referralFeeBps, hasReferral, flashBorrowAmountLamports } = props;
33
+ const { referrerFees, protocolFees } = reserve.calculateFlashLoanFees(flashBorrowAmountLamports, referralFeeBps, hasReferral);
34
+ const flashRepayAmountLamports = flashBorrowAmountLamports.add(referrerFees).add(protocolFees);
35
+ return {
36
+ flashRepayAmountLamports,
37
+ };
38
+ };
39
+ exports.calcFlashRepayAmount = calcFlashRepayAmount;
40
+ function calcMaxWithdrawCollateral(kaminoMarket, collReserveAddr, debtReserveAddr, obligation, repayAmountLamports) {
41
+ const collReserve = kaminoMarket.getReserveByAddress(collReserveAddr);
42
+ const debtReserve = kaminoMarket.getReserveByAddress(debtReserveAddr);
43
+ const debtOraclePx = debtReserve.getOracleMarketPrice();
44
+ const collOraclePx = collReserve.getOracleMarketPrice();
45
+ const { maxLtv: collMaxLtv } = obligation.getLtvForReserve(kaminoMarket, collReserve);
46
+ const debtBorrowFactor = debtReserve.getBorrowFactor();
47
+ const debtPosition = obligation.getBorrowByReserve(debtReserve.address);
48
+ const collPosition = obligation.getDepositByReserve(collReserve.address);
49
+ const initialCollValue = collPosition.amount.floor().div(collReserve.getMintFactor()).mul(collOraclePx);
50
+ const remainingDebtAmountLamports = debtPosition.amount.sub(repayAmountLamports);
51
+ const remainingDebtBfWeightedValue = remainingDebtAmountLamports.ceil().div(debtReserve.getMintFactor()).mul(debtBorrowFactor).mul(debtOraclePx);
52
+ let isClosingPosition = false;
53
+ if (remainingDebtAmountLamports.lte(new decimal_js_1.default(0)) && obligation.getBorrows().length === 1) {
54
+ isClosingPosition = true;
55
+ }
56
+ const numerator = initialCollValue.mul(collMaxLtv).sub(remainingDebtBfWeightedValue);
57
+ const denominator = collOraclePx.mul(collMaxLtv);
58
+ const maxCollWithdrawAmount = numerator.div(denominator);
59
+ const maxCollateralWithdrawalAmountLamports = maxCollWithdrawAmount.mul(collReserve.getMintFactor()).floor();
60
+ let withdrawableCollLamports;
61
+ if (isClosingPosition) {
62
+ // sanity check: we have extra collateral to swap, but we want to ensure we don't quote for way more than needed and get a bad px
63
+ const maxSwapCollLamportsWithBuffer = maxCollateralWithdrawalAmountLamports.mul('1.1');
64
+ withdrawableCollLamports = decimal_js_1.default.min(maxSwapCollLamportsWithBuffer, collPosition.amount).floor();
65
+ }
66
+ else {
67
+ withdrawableCollLamports = decimal_js_1.default.max(new decimal_js_1.default(0), maxCollateralWithdrawalAmountLamports);
68
+ }
69
+ return { isClosingPosition, withdrawableCollLamports };
70
+ }
9
71
  function estimateDebtRepaymentWithColl(props) {
10
72
  const { collAmount, priceDebtToColl, slippagePct, flashBorrowReserveFlashLoanFeePercentage, kaminoMarket, debtTokenMint, obligation, currentSlot, } = props;
11
73
  const slippage = slippagePct.div('100');
@@ -1 +1 @@
1
- {"version":3,"file":"repay_with_collateral_calcs.js","sourceRoot":"","sources":["../../src/lending_operations/repay_with_collateral_calcs.ts"],"names":[],"mappings":";;;;;AAIA,sEA6CC;AAED,gFAmBC;AAtED,4DAAiC;AAIjC,SAAgB,6BAA6B,CAAC,KAS7C;IACC,MAAM,EACJ,UAAU,EACV,eAAe,EACf,WAAW,EACX,wCAAwC,EACxC,YAAY,EACZ,aAAa,EACb,UAAU,EACV,WAAW,GACZ,GAAG,KAAK,CAAC;IACV,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,YAAY,GAAG,wCAAwC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,YAAY,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACjE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,oBAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC1F,MAAM,uBAAuB,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,oBAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;IAEtF,MAAM,oBAAoB,GAAG,UAAU;SACpC,8BAA8B,CAC7B,YAAY,EACZ,WAAW,EACX,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAE,EAC9F,WAAW,CACZ;SACA,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,oBAAO,CAAC,UAAU,CAAC,CAAC;IAE5F,uHAAuH;IACvH,MAAM,cAAc,GAAG,uBAAuB;SAC3C,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,oBAAO,CAAC,MAAM,CAAC,CAAC,CAAC;SAClD,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,oBAAO,CAAC,UAAU,CAAC,CAAC;IAE5F,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAgB,kCAAkC,CAAC,KAKlD;IACC,MAAM,EACJ,UAAU,EAAE,cAAc;IAC1B,eAAe,EACf,WAAW,EACX,wCAAwC,GACzC,GAAG,KAAK,CAAC;IACV,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,YAAY,GAAG,wCAAwC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEzE,MAAM,kBAAkB,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,oBAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9E,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,oBAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAE/F,OAAO,UAAU,CAAC;AACpB,CAAC"}
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,58 +1,42 @@
1
1
  import { KaminoMarket, KaminoObligation } from '../classes';
2
- import { SwapInputs, SwapIxnsProvider } from '../leverage';
2
+ import { SwapInputs, SwapQuote, SwapQuoteIxsProvider, SwapQuoteProvider } from '../leverage';
3
3
  import { ScopeRefresh } from '../utils';
4
- import { PublicKey, TransactionInstruction } from '@solana/web3.js';
4
+ import { AddressLookupTableAccount, PublicKey, TransactionInstruction } from '@solana/web3.js';
5
5
  import Decimal from 'decimal.js';
6
- export declare const repayWithCollCalcs: (props: {
7
- repayAmount: Decimal;
8
- priceDebtToColl: Decimal;
9
- slippagePct: Decimal;
10
- flashLoanFeePct: Decimal;
11
- }) => {
12
- repayAmount: Decimal;
13
- collToSwapIn: Decimal;
14
- swapDebtExpectedOut: Decimal;
6
+ export type RepayWithCollIxsResponse<QuoteResponse> = {
7
+ ixs: TransactionInstruction[];
8
+ lookupTables: AddressLookupTableAccount[];
9
+ swapInputs: SwapInputs;
10
+ initialInputs: InitialInputs<QuoteResponse>;
15
11
  };
16
- export type InitialInputs = {
17
- repayAmount: Decimal;
18
- priceDebtToColl: Decimal;
19
- slippagePct: Decimal;
12
+ export type InitialInputs<QuoteResponse> = {
13
+ debtRepayAmountLamports: Decimal;
14
+ flashRepayAmountLamports: Decimal;
15
+ swapQuote: SwapQuote<QuoteResponse>;
20
16
  currentSlot: number;
17
+ klendAccounts: Array<PublicKey>;
21
18
  };
22
- export declare const getRepayWithCollSwapInputs: (props: {
23
- repayAmount: Decimal;
24
- priceDebtToColl: Decimal;
25
- slippagePct: Decimal;
19
+ interface RepayWithCollSwapInputsProps<QuoteResponse> {
26
20
  kaminoMarket: KaminoMarket;
27
21
  debtTokenMint: PublicKey;
28
22
  collTokenMint: PublicKey;
29
23
  obligation: KaminoObligation;
30
- currentSlot: number;
31
- }) => {
32
- swapInputs: SwapInputs;
33
- initialInputs: InitialInputs;
34
- };
35
- export declare const getRepayWithCollIxns: (props: {
36
- kaminoMarket: KaminoMarket;
37
- budgetAndPriorityFeeIxns: TransactionInstruction[];
38
- amount: Decimal;
39
- debtTokenMint: PublicKey;
40
- collTokenMint: PublicKey;
41
- owner: PublicKey;
42
- priceDebtToColl: Decimal;
43
- slippagePct: Decimal;
44
- isClosingPosition: boolean;
45
- obligation: KaminoObligation;
46
24
  referrer: PublicKey;
47
- swapper: SwapIxnsProvider;
48
25
  currentSlot: number;
49
- getTotalKlendAccountsOnly: boolean;
50
- scopeRefresh: ScopeRefresh;
51
- }) => Promise<{
52
- ixns: TransactionInstruction[];
53
- lookupTablesAddresses: PublicKey[];
26
+ repayAmount: Decimal;
27
+ isClosingPosition: boolean;
28
+ budgetAndPriorityFeeIxs?: TransactionInstruction[];
29
+ scopeRefresh?: ScopeRefresh;
30
+ quoter: SwapQuoteProvider<QuoteResponse>;
31
+ }
32
+ export declare function getRepayWithCollSwapInputs<QuoteResponse>({ collTokenMint, currentSlot, debtTokenMint, kaminoMarket, obligation, quoter, referrer, repayAmount, isClosingPosition, budgetAndPriorityFeeIxs, scopeRefresh, }: RepayWithCollSwapInputsProps<QuoteResponse>): Promise<{
54
33
  swapInputs: SwapInputs;
55
- totalKlendAccounts: number;
56
- initialInputs: InitialInputs;
34
+ initialInputs: InitialInputs<QuoteResponse>;
57
35
  }>;
36
+ interface RepayWithCollIxsProps<QuoteResponse> extends RepayWithCollSwapInputsProps<QuoteResponse> {
37
+ swapper: SwapQuoteIxsProvider<QuoteResponse>;
38
+ logger?: (msg: string, ...extra: any[]) => void;
39
+ }
40
+ export declare function getRepayWithCollIxs<QuoteResponse>({ repayAmount, isClosingPosition, budgetAndPriorityFeeIxs, collTokenMint, currentSlot, debtTokenMint, kaminoMarket, obligation, quoter, swapper, referrer, scopeRefresh, logger, }: RepayWithCollIxsProps<QuoteResponse>): Promise<RepayWithCollIxsResponse<QuoteResponse>>;
41
+ export {};
58
42
  //# 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":"AACA,OAAO,EAAgB,YAAY,EAAE,gBAAgB,EAA2B,MAAM,YAAY,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAoC,MAAM,aAAa,CAAC;AAC7F,OAAO,EAEL,YAAY,EAKb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,eAAO,MAAM,kBAAkB,UAAW;IACxC,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;CAC1B,KAAG;IACF,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,EAAE,OAAO,CAAC;CAgB9B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,0BAA0B,UAAW;IAChD,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,SAAS,CAAC;IACzB,aAAa,EAAE,SAAS,CAAC;IACzB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB,KAAG;IACF,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;CAmD9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,UAAiB;IAChD,YAAY,EAAE,YAAY,CAAC;IAC3B,wBAAwB,EAAE,sBAAsB,EAAE,CAAC;IACnD,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,SAAS,CAAC;IACzB,aAAa,EAAE,SAAS,CAAC;IACzB,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB,EAAE,OAAO,CAAC;IACnC,YAAY,EAAE,YAAY,CAAC;CAC5B,KAAG,OAAO,CAAC;IACV,IAAI,EAAE,sBAAsB,EAAE,CAAC;IAC/B,qBAAqB,EAAE,SAAS,EAAE,CAAC;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;CAC9B,CAwLA,CAAC"}
1
+ {"version":3,"file":"repay_with_collateral_operations.d.ts","sourceRoot":"","sources":["../../src/lending_operations/repay_with_collateral_operations.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,YAAY,EAAE,gBAAgB,EAAiB,MAAM,YAAY,CAAC;AACzF,OAAO,EAEL,UAAU,EACV,SAAS,EAET,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAIL,YAAY,EAGb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,yBAAyB,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC/F,OAAO,OAAO,MAAM,YAAY,CAAC;AAGjC,MAAM,MAAM,wBAAwB,CAAC,aAAa,IAAI;IACpD,GAAG,EAAE,sBAAsB,EAAE,CAAC;IAC9B,YAAY,EAAE,yBAAyB,EAAE,CAAC;IAC1C,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,aAAa,IAAI;IACzC,uBAAuB,EAAE,OAAO,CAAC;IACjC,wBAAwB,EAAE,OAAO,CAAC;IAClC,SAAS,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;CACjC,CAAC;AAEF,UAAU,4BAA4B,CAAC,aAAa;IAClD,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,SAAS,CAAC;IACzB,aAAa,EAAE,SAAS,CAAC;IACzB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uBAAuB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACnD,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;CAC1C;AAED,wBAAsB,0BAA0B,CAAC,aAAa,EAAE,EAC9D,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,UAAU,EACV,MAAM,EACN,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,GACb,EAAE,4BAA4B,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC;IACvD,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;CAC7C,CAAC,CAoFD;AAED,UAAU,qBAAqB,CAAC,aAAa,CAAE,SAAQ,4BAA4B,CAAC,aAAa,CAAC;IAChG,OAAO,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;CACjD;AAED,wBAAsB,mBAAmB,CAAC,aAAa,EAAE,EACvD,WAAW,EACX,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,UAAU,EACV,MAAM,EACN,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,MAAoB,GACrB,EAAE,qBAAqB,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC,CAkDzF"}
@@ -1,179 +1,126 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getRepayWithCollIxns = exports.getRepayWithCollSwapInputs = exports.repayWithCollCalcs = void 0;
3
+ exports.getRepayWithCollSwapInputs = getRepayWithCollSwapInputs;
4
+ exports.getRepayWithCollIxs = getRepayWithCollIxs;
7
5
  const spl_token_1 = require("@solana/spl-token");
8
6
  const classes_1 = require("../classes");
9
7
  const leverage_1 = require("../leverage");
10
8
  const utils_1 = require("../utils");
11
- const web3_js_1 = require("@solana/web3.js");
12
- const decimal_js_1 = __importDefault(require("decimal.js"));
13
- const repayWithCollCalcs = (props) => {
14
- // Initialize local variables from the props object
15
- const { repayAmount, priceDebtToColl, slippagePct, flashLoanFeePct } = props;
16
- const slippage = slippagePct.div('100');
17
- const flashLoanFee = flashLoanFeePct.div('100');
18
- const swapDebtExpectedOut = repayAmount.mul(new decimal_js_1.default(1.0).add(flashLoanFee));
19
- const collToSwapIn = swapDebtExpectedOut.mul(new decimal_js_1.default(1.0).add(slippage)).mul(priceDebtToColl);
20
- return {
21
- repayAmount,
22
- collToSwapIn,
23
- swapDebtExpectedOut,
24
- };
25
- };
26
- exports.repayWithCollCalcs = repayWithCollCalcs;
27
- const getRepayWithCollSwapInputs = (props) => {
28
- const { repayAmount, priceDebtToColl, slippagePct, kaminoMarket, debtTokenMint, collTokenMint, obligation, currentSlot, } = props;
9
+ const repay_with_collateral_calcs_1 = require("./repay_with_collateral_calcs");
10
+ async function getRepayWithCollSwapInputs({ collTokenMint, currentSlot, debtTokenMint, kaminoMarket, obligation, quoter, referrer, repayAmount, isClosingPosition, budgetAndPriorityFeeIxs, scopeRefresh, }) {
29
11
  const collReserve = kaminoMarket.getReserveByMint(collTokenMint);
30
12
  const debtReserve = kaminoMarket.getReserveByMint(debtTokenMint);
31
- const flashLoanFeePct = debtReserve?.getFlashLoanFee().ceil() || new decimal_js_1.default(0);
32
- const irSlippageBpsForDebt = obligation
33
- .estimateObligationInterestRate(kaminoMarket, debtReserve, obligation?.state.borrows.find((borrow) => borrow.borrowReserve?.equals(debtReserve.address)), currentSlot)
34
- .toDecimalPlaces(debtReserve?.state.liquidity.mintDecimals.toNumber(), decimal_js_1.default.ROUND_CEIL);
35
- // add 0.1% to irSlippageBpsForDebt because we don't want to estimate slightly less than SC and end up not repaying enough
36
- const repayAmountIrAdjusted = repayAmount
37
- .mul(irSlippageBpsForDebt.mul(new decimal_js_1.default('1.001')))
38
- .toDecimalPlaces(debtReserve?.state.liquidity.mintDecimals.toNumber(), decimal_js_1.default.ROUND_CEIL);
39
- const repayCalcs = (0, exports.repayWithCollCalcs)({
40
- repayAmount: repayAmountIrAdjusted,
41
- priceDebtToColl,
42
- slippagePct,
43
- flashLoanFeePct: flashLoanFeePct,
44
- });
13
+ if (!collReserve) {
14
+ throw new Error(`Collateral reserve with mint ${collReserve} not found in market ${kaminoMarket.getAddress()}`);
15
+ }
16
+ if (!debtReserve) {
17
+ throw new Error(`Debt reserve with mint ${debtReserve} not found in market ${kaminoMarket.getAddress()}`);
18
+ }
19
+ const { repayAmountLamports, flashRepayAmountLamports } = (0, repay_with_collateral_calcs_1.calcRepayAmountWithSlippage)(kaminoMarket, debtReserve, currentSlot, obligation, repayAmount, referrer);
20
+ const debtPosition = obligation.getBorrowByReserve(debtReserve.address);
21
+ const collPosition = obligation.getDepositByReserve(collReserve.address);
22
+ if (!debtPosition) {
23
+ throw new Error(`Debt position not found for ${debtReserve.stats.symbol} reserve ${debtReserve.address} in obligation ${obligation.obligationAddress}`);
24
+ }
25
+ if (!collPosition) {
26
+ throw new Error(`Collateral position not found for ${collReserve.stats.symbol} reserve ${collReserve.address} in obligation ${obligation.obligationAddress}`);
27
+ }
28
+ const { withdrawableCollLamports } = (0, repay_with_collateral_calcs_1.calcMaxWithdrawCollateral)(kaminoMarket, collReserve.address, debtReserve.address, obligation, repayAmountLamports);
29
+ const swapQuoteInputs = {
30
+ inputAmountLamports: withdrawableCollLamports,
31
+ inputMint: collTokenMint,
32
+ outputMint: debtTokenMint,
33
+ };
34
+ // Build the repay & withdraw collateral tx to get the number of accounts
35
+ const klendIxs = await buildRepayWithCollateralIxs(kaminoMarket, debtReserve, collReserve, obligation, referrer, currentSlot, budgetAndPriorityFeeIxs, scopeRefresh, {
36
+ preActionIxs: [],
37
+ swapIxs: [],
38
+ lookupTables: [],
39
+ }, isClosingPosition, repayAmountLamports, withdrawableCollLamports);
40
+ const uniqueKlendAccounts = (0, utils_1.uniqueAccounts)(klendIxs);
41
+ const swapQuote = await quoter(swapQuoteInputs, uniqueKlendAccounts);
42
+ const swapQuotePxDebtToColl = swapQuote.priceAInB;
43
+ const collSwapInLamports = flashRepayAmountLamports.div(debtReserve.getMintFactor()).div(swapQuotePxDebtToColl).mul(collReserve.getMintFactor()).ceil();
45
44
  return {
46
45
  swapInputs: {
47
- inputAmountLamports: (0, classes_1.numberToLamportsDecimal)(repayCalcs.collToSwapIn, collReserve.stats.decimals)
48
- .ceil()
49
- .toNumber(),
46
+ inputAmountLamports: collSwapInLamports,
50
47
  inputMint: collTokenMint,
51
48
  outputMint: debtTokenMint,
52
49
  },
53
50
  initialInputs: {
54
- repayAmount,
55
- priceDebtToColl,
56
- slippagePct,
51
+ debtRepayAmountLamports: repayAmountLamports,
52
+ flashRepayAmountLamports,
53
+ swapQuote,
57
54
  currentSlot,
55
+ klendAccounts: uniqueKlendAccounts,
58
56
  },
59
57
  };
60
- };
61
- exports.getRepayWithCollSwapInputs = getRepayWithCollSwapInputs;
62
- const getRepayWithCollIxns = async (props) => {
63
- const { kaminoMarket, budgetAndPriorityFeeIxns, amount, debtTokenMint, collTokenMint, owner, priceDebtToColl, slippagePct, isClosingPosition, obligation, referrer, swapper, currentSlot, getTotalKlendAccountsOnly, scopeRefresh, } = props;
64
- const connection = kaminoMarket.getConnection();
65
- const collReserve = kaminoMarket.getReserveByMint(collTokenMint);
66
- const debtReserve = kaminoMarket.getReserveByMint(debtTokenMint);
67
- // const solTokenReserve = kaminoMarket.getReserveByMint(WRAPPED_SOL_MINT);
68
- const flashLoanFeePct = debtReserve?.getFlashLoanFee() || new decimal_js_1.default(0);
69
- const irSlippageBpsForDebt = obligation
70
- .estimateObligationInterestRate(kaminoMarket, debtReserve, obligation?.state.borrows.find((borrow) => borrow.borrowReserve?.equals(debtReserve.address)), currentSlot)
71
- .toDecimalPlaces(debtReserve?.state.liquidity.mintDecimals.toNumber(), decimal_js_1.default.ROUND_CEIL);
72
- // add 0.1% to irSlippageBpsForDebt because we don't want to estimate slightly less than SC and end up not reapying enough
73
- const repayAmount = amount
74
- .mul(irSlippageBpsForDebt.mul(new decimal_js_1.default('1.001')))
75
- .toDecimalPlaces(debtReserve?.state.liquidity.mintDecimals.toNumber(), decimal_js_1.default.ROUND_CEIL);
76
- const calcs = (0, exports.repayWithCollCalcs)({
58
+ }
59
+ async function getRepayWithCollIxs({ repayAmount, isClosingPosition, budgetAndPriorityFeeIxs, collTokenMint, currentSlot, debtTokenMint, kaminoMarket, obligation, quoter, swapper, referrer, scopeRefresh, logger = console.log, }) {
60
+ const { swapInputs, initialInputs } = await getRepayWithCollSwapInputs({
61
+ collTokenMint,
62
+ currentSlot,
63
+ debtTokenMint,
64
+ kaminoMarket,
65
+ obligation,
66
+ quoter,
67
+ referrer,
77
68
  repayAmount,
78
- priceDebtToColl,
79
- slippagePct,
80
- flashLoanFeePct,
69
+ isClosingPosition,
70
+ budgetAndPriorityFeeIxs,
71
+ scopeRefresh,
81
72
  });
82
- console.log('Ops Calcs', (0, leverage_1.toJson)(calcs));
83
- // // 1. Create atas & budget txns
84
- const mintsToCreateAtas = [collTokenMint, debtTokenMint, collReserve.getCTokenMint()];
85
- const mintsToCreateAtasTokenPrograms = [
86
- collReserve?.getLiquidityTokenProgram(),
87
- debtReserve?.getLiquidityTokenProgram(),
88
- spl_token_1.TOKEN_PROGRAM_ID,
73
+ const { debtRepayAmountLamports, flashRepayAmountLamports, swapQuote } = initialInputs;
74
+ const { inputAmountLamports: collSwapInLamports } = swapInputs;
75
+ const collReserve = kaminoMarket.getReserveByMint(collTokenMint);
76
+ const debtReserve = kaminoMarket.getReserveByMint(debtTokenMint);
77
+ logger(`Expected to swap in: ${collSwapInLamports.div(collReserve.getMintFactor())} ${collReserve.symbol}, for: ${flashRepayAmountLamports.div(debtReserve.getMintFactor())} ${debtReserve.symbol}, quoter px: ${swapQuote.priceAInB} ${debtReserve.symbol}/${collReserve.symbol}`);
78
+ const swapResponse = await swapper(swapInputs, initialInputs.klendAccounts, swapQuote);
79
+ const ixs = await buildRepayWithCollateralIxs(kaminoMarket, debtReserve, collReserve, obligation, referrer, currentSlot, budgetAndPriorityFeeIxs, scopeRefresh, swapResponse, isClosingPosition, debtRepayAmountLamports, swapInputs.inputAmountLamports);
80
+ return {
81
+ ixs,
82
+ lookupTables: swapResponse.lookupTables,
83
+ swapInputs,
84
+ initialInputs,
85
+ };
86
+ }
87
+ async function buildRepayWithCollateralIxs(market, debtReserve, collReserve, obligation, referrer, currentSlot, budgetAndPriorityFeeIxs, scopeRefresh, swapQuoteIxs, isClosingPosition, debtRepayAmountLamports, collWithdrawLamports) {
88
+ // 1. Create atas & budget txns
89
+ const budgetIxns = budgetAndPriorityFeeIxs || (0, utils_1.getComputeBudgetAndPriorityFeeIxns)(1_400_000);
90
+ const atas = [
91
+ { mint: collReserve.getLiquidityMint(), tokenProgram: collReserve.getLiquidityTokenProgram() },
92
+ { mint: debtReserve.getLiquidityMint(), tokenProgram: debtReserve.getLiquidityTokenProgram() },
93
+ { mint: collReserve.getCTokenMint(), tokenProgram: spl_token_1.TOKEN_PROGRAM_ID },
89
94
  ];
90
- const budgetIxns = budgetAndPriorityFeeIxns || (0, utils_1.getComputeBudgetAndPriorityFeeIxns)(3000000);
91
- const { atas: [, debtTokenAta], createAtasIxns, closeAtasIxns, } = await (0, utils_1.getAtasWithCreateIxnsIfMissing)(connection, owner, mintsToCreateAtas, mintsToCreateAtasTokenPrograms);
92
- // 1. Flash borrow & repay the debt to repay amount needed
95
+ const atasAndIxs = (0, utils_1.createAtasIdempotent)(obligation.state.owner, atas);
96
+ const [, { ata: debtTokenAta }] = atasAndIxs;
97
+ // 2. Flash borrow & repay the debt to repay amount needed
93
98
  const { flashBorrowIxn, flashRepayIxn } = (0, leverage_1.getFlashLoanInstructions)({
94
- borrowIxnIndex: budgetIxns.length + createAtasIxns.length,
95
- walletPublicKey: owner,
96
- lendingMarketAuthority: kaminoMarket.getLendingMarketAuthority(),
97
- lendingMarketAddress: kaminoMarket.getAddress(),
99
+ borrowIxnIndex: budgetIxns.length + atasAndIxs.length,
100
+ walletPublicKey: obligation.state.owner,
101
+ lendingMarketAuthority: market.getLendingMarketAuthority(),
102
+ lendingMarketAddress: market.getAddress(),
98
103
  reserve: debtReserve,
99
- amountLamports: (0, classes_1.numberToLamportsDecimal)(repayAmount, debtReserve.stats.decimals).floor(),
104
+ amountLamports: debtRepayAmountLamports,
100
105
  destinationAta: debtTokenAta,
101
- referrerAccount: kaminoMarket.programId,
102
- referrerTokenState: kaminoMarket.programId,
103
- programId: kaminoMarket.programId,
106
+ referrerAccount: market.programId,
107
+ referrerTokenState: market.programId,
108
+ programId: market.programId,
104
109
  });
105
- const requestElevationGroup = obligation.state.elevationGroup !== 0 ? true : false;
106
- // 2. Repay using the flash borrowed funds & withdraw collateral to swap and pay the flash loan
107
- const repayAndWithdrawAction = await classes_1.KaminoAction.buildRepayAndWithdrawTxns(kaminoMarket, isClosingPosition ? utils_1.U64_MAX : (0, classes_1.numberToLamportsDecimal)(repayAmount, debtReserve.stats.decimals).floor().toString(), new web3_js_1.PublicKey(debtTokenMint), isClosingPosition
108
- ? utils_1.U64_MAX
109
- : (0, classes_1.numberToLamportsDecimal)(calcs.collToSwapIn, collReserve.stats.decimals).ceil().toString(), new web3_js_1.PublicKey(collTokenMint), owner, currentSlot, obligation, 0, false, requestElevationGroup, undefined, isClosingPosition, referrer, scopeRefresh);
110
- const ixns = [
110
+ const requestElevationGroup = !isClosingPosition && obligation.state.elevationGroup !== 0;
111
+ // 3. Repay using the flash borrowed funds & withdraw collateral to swap and pay the flash loan
112
+ const repayAndWithdrawAction = await classes_1.KaminoAction.buildRepayAndWithdrawTxns(market, isClosingPosition ? utils_1.U64_MAX : debtRepayAmountLamports.toString(), debtReserve.getLiquidityMint(), isClosingPosition ? utils_1.U64_MAX : collWithdrawLamports.toString(), collReserve.getLiquidityMint(), obligation.state.owner, currentSlot, obligation, 0, false, requestElevationGroup, undefined, isClosingPosition, referrer, scopeRefresh);
113
+ // 4. Swap collateral to debt to repay flash loan
114
+ const { preActionIxs, swapIxs } = swapQuoteIxs;
115
+ const swapInstructions = (0, utils_1.removeBudgetAndAtaIxns)(swapIxs, []);
116
+ return [
111
117
  ...budgetIxns,
112
- ...createAtasIxns,
113
- ...[flashBorrowIxn],
114
- ...repayAndWithdrawAction.setupIxs,
115
- ...[repayAndWithdrawAction.lendingIxs[0]],
116
- ...repayAndWithdrawAction.inBetweenIxs,
117
- ...[repayAndWithdrawAction.lendingIxs[1]],
118
- ...repayAndWithdrawAction.cleanupIxs,
119
- ...[flashRepayIxn],
120
- ...closeAtasIxns,
118
+ ...atasAndIxs.map((x) => x.createAtaIx),
119
+ flashBorrowIxn,
120
+ ...preActionIxs,
121
+ ...classes_1.KaminoAction.actionToIxs(repayAndWithdrawAction),
122
+ ...swapInstructions,
123
+ flashRepayIxn,
121
124
  ];
122
- const uniqueAccounts = new utils_1.PublicKeySet([]);
123
- ixns.forEach((ixn) => {
124
- ixn.keys.forEach((key) => {
125
- uniqueAccounts.add(key.pubkey);
126
- });
127
- });
128
- const totalKlendAccounts = uniqueAccounts.toArray().length;
129
- // return early to avoid extra swapper calls
130
- if (getTotalKlendAccountsOnly) {
131
- return {
132
- ixns: [],
133
- lookupTablesAddresses: [],
134
- swapInputs: { inputAmountLamports: 0, inputMint: web3_js_1.PublicKey.default, outputMint: web3_js_1.PublicKey.default },
135
- totalKlendAccounts: totalKlendAccounts,
136
- initialInputs: {
137
- repayAmount,
138
- priceDebtToColl,
139
- slippagePct,
140
- currentSlot,
141
- },
142
- };
143
- }
144
- console.log('Expected to swap in', calcs.collToSwapIn.toString(), 'coll for', calcs.swapDebtExpectedOut.toString(), 'debt');
145
- const swapInputs = {
146
- inputAmountLamports: (0, classes_1.numberToLamportsDecimal)(calcs.collToSwapIn, collReserve.stats.decimals).ceil().toNumber(),
147
- inputMint: collTokenMint,
148
- outputMint: debtTokenMint,
149
- };
150
- // 3. Swap collateral to debt to repay flash loan
151
- const [swapIxns, lookupTablesAddresses] = await swapper(swapInputs.inputAmountLamports, swapInputs.inputMint, swapInputs.outputMint, slippagePct.toNumber());
152
- const swapInstructions = (0, utils_1.removeBudgetAndAtaIxns)(swapIxns, []);
153
- return {
154
- ixns: [
155
- ...budgetIxns,
156
- ...createAtasIxns,
157
- ...[flashBorrowIxn],
158
- ...repayAndWithdrawAction.setupIxs,
159
- ...[repayAndWithdrawAction.lendingIxs[0]],
160
- ...repayAndWithdrawAction.inBetweenIxs,
161
- ...[repayAndWithdrawAction.lendingIxs[1]],
162
- ...repayAndWithdrawAction.cleanupIxs,
163
- ...swapInstructions,
164
- ...[flashRepayIxn],
165
- ...closeAtasIxns,
166
- ],
167
- lookupTablesAddresses,
168
- swapInputs,
169
- totalKlendAccounts,
170
- initialInputs: {
171
- repayAmount,
172
- priceDebtToColl,
173
- slippagePct,
174
- currentSlot,
175
- },
176
- };
177
- };
178
- exports.getRepayWithCollIxns = getRepayWithCollIxns;
125
+ }
179
126
  //# sourceMappingURL=repay_with_collateral_operations.js.map
@@ -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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"}
@@ -1,13 +1,24 @@
1
- import { Connection, PublicKey, TransactionInstruction } from '@solana/web3.js';
1
+ import { AddressLookupTableAccount, Connection, PublicKey, TransactionInstruction } from '@solana/web3.js';
2
2
  import Decimal from 'decimal.js';
3
3
  import { KaminoMarket, KaminoObligation } from '../classes';
4
4
  import { ObligationTypeTag } from '../utils';
5
5
  import { Kamino, InstructionsWithLookupTables, StrategyWithAddress, TokenAmounts } from '@kamino-finance/kliquidity-sdk';
6
- export type SwapIxnsProvider = (amountInLamports: number, amountInMint: PublicKey, amountOutMint: PublicKey, slippagePct: number, amountDebtAtaBalance?: Decimal) => Promise<[TransactionInstruction[], PublicKey[]]>;
6
+ export type SwapIxnsProvider = (amountInLamports: number, inputMint: PublicKey, outputMint: PublicKey, slippagePct: number, amountDebtAtaBalance?: Decimal) => Promise<[TransactionInstruction[], PublicKey[]]>;
7
+ export type SwapQuoteProvider<QuoteResponse> = (inputs: SwapInputs, klendAccounts: Array<PublicKey>) => Promise<SwapQuote<QuoteResponse>>;
8
+ export type SwapQuoteIxsProvider<QuoteResponse> = (inputs: SwapInputs, klendAccounts: Array<PublicKey>, quote: SwapQuote<QuoteResponse>) => Promise<SwapQuoteIxs>;
9
+ export type SwapQuote<QuoteResponse> = {
10
+ priceAInB: Decimal;
11
+ quoteResponse?: QuoteResponse;
12
+ };
13
+ export type SwapQuoteIxs = {
14
+ preActionIxs: TransactionInstruction[];
15
+ swapIxs: TransactionInstruction[];
16
+ lookupTables: AddressLookupTableAccount[];
17
+ };
7
18
  export type PriceAinBProvider = (mintA: PublicKey, mintB: PublicKey) => Promise<Decimal>;
8
19
  export type IsKtokenProvider = (token: PublicKey | string) => Promise<boolean>;
9
20
  export type SwapInputs = {
10
- inputAmountLamports: number;
21
+ inputAmountLamports: Decimal;
11
22
  inputMint: PublicKey;
12
23
  outputMint: PublicKey;
13
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/leverage/operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/leverage/operations.ts"],"names":[],"mappings":"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"}