@kamino-finance/klend-sdk 5.13.8 → 5.13.10

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 (58) hide show
  1. package/dist/classes/action.d.ts.map +1 -1
  2. package/dist/classes/action.js +0 -1
  3. package/dist/classes/action.js.map +1 -1
  4. package/dist/classes/manager.d.ts +17 -1
  5. package/dist/classes/manager.d.ts.map +1 -1
  6. package/dist/classes/manager.js +20 -0
  7. package/dist/classes/manager.js.map +1 -1
  8. package/dist/classes/reserve.d.ts +4 -0
  9. package/dist/classes/reserve.d.ts.map +1 -1
  10. package/dist/classes/reserve.js +8 -2
  11. package/dist/classes/reserve.js.map +1 -1
  12. package/dist/classes/vault.d.ts +9 -1
  13. package/dist/classes/vault.d.ts.map +1 -1
  14. package/dist/classes/vault.js +34 -5
  15. package/dist/classes/vault.js.map +1 -1
  16. package/dist/lending_operations/repay_with_collateral_operations.js +5 -5
  17. package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
  18. package/dist/lending_operations/swap_collateral_operations.js +9 -9
  19. package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
  20. package/dist/leverage/calcs.d.ts +8 -8
  21. package/dist/leverage/calcs.d.ts.map +1 -1
  22. package/dist/leverage/calcs.js +25 -25
  23. package/dist/leverage/calcs.js.map +1 -1
  24. package/dist/leverage/instructions.d.ts +5 -5
  25. package/dist/leverage/instructions.d.ts.map +1 -1
  26. package/dist/leverage/instructions.js +6 -6
  27. package/dist/leverage/instructions.js.map +1 -1
  28. package/dist/leverage/operations.d.ts +5 -0
  29. package/dist/leverage/operations.d.ts.map +1 -1
  30. package/dist/leverage/operations.js +131 -304
  31. package/dist/leverage/operations.js.map +1 -1
  32. package/dist/leverage/types.d.ts +35 -57
  33. package/dist/leverage/types.d.ts.map +1 -1
  34. package/dist/leverage/utils.d.ts +1 -1
  35. package/dist/leverage/utils.js +5 -5
  36. package/dist/leverage/utils.js.map +1 -1
  37. package/dist/utils/ata.d.ts +0 -1
  38. package/dist/utils/ata.d.ts.map +1 -1
  39. package/dist/utils/ata.js +0 -14
  40. package/dist/utils/ata.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 +10 -0
  44. package/dist/utils/instruction.js.map +1 -1
  45. package/package.json +1 -1
  46. package/src/classes/action.ts +0 -1
  47. package/src/classes/manager.ts +31 -0
  48. package/src/classes/reserve.ts +9 -2
  49. package/src/classes/vault.ts +45 -5
  50. package/src/lending_operations/repay_with_collateral_operations.ts +6 -6
  51. package/src/lending_operations/swap_collateral_operations.ts +22 -24
  52. package/src/leverage/calcs.ts +26 -26
  53. package/src/leverage/instructions.ts +8 -8
  54. package/src/leverage/operations.ts +232 -325
  55. package/src/leverage/types.ts +38 -67
  56. package/src/leverage/utils.ts +5 -5
  57. package/src/utils/ata.ts +1 -26
  58. package/src/utils/instruction.ts +12 -0
@@ -1 +1 @@
1
- {"version":3,"file":"instruction.js","sourceRoot":"","sources":["../../src/utils/instruction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instruction.js","sourceRoot":"","sources":["../../src/utils/instruction.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kamino-finance/klend-sdk",
3
- "version": "5.13.8",
3
+ "version": "5.13.10",
4
4
  "description": "Typescript SDK for interacting with the Kamino Lending (klend) protocol",
5
5
  "repository": {
6
6
  "type": "git",
@@ -2602,7 +2602,6 @@ export class KaminoAction {
2602
2602
  });
2603
2603
 
2604
2604
  const eModeGroup = groups.find((group) => group.id === eModeGroupWithMaxLtvAndDebtReserve)!.id;
2605
- console.log('Setting eModeGroup to', eModeGroup);
2606
2605
 
2607
2606
  if (
2608
2607
  eModeGroup !== 0 &&
@@ -89,6 +89,7 @@ import {
89
89
  UpdateReserveAllocationIxs,
90
90
  UpdateVaultConfigIxs,
91
91
  UserSharesForVault,
92
+ WithdrawAndBlockReserveIxs,
92
93
  WithdrawIxs,
93
94
  } from './vault_types';
94
95
  import { FarmState } from '@kamino-finance/farms-sdk/dist';
@@ -271,6 +272,36 @@ export class KaminoManager {
271
272
  return this._vaultClient.removeReserveFromAllocationIx(vault, reserve);
272
273
  }
273
274
 
275
+ /**
276
+ * This method withdraws all the funds from a reserve and blocks it from being invested by setting its weight and ctoken allocation to 0
277
+ * @param vault - the vault to withdraw the funds from
278
+ * @param reserve - the reserve to withdraw the funds from
279
+ * @param payer - the payer of the transaction. If not provided, the admin of the vault will be used
280
+ * @returns - a struct with an instruction to update the reserve allocation and an optional list of instructions to update the lookup table for the allocation changes
281
+ */
282
+ async withdrawEverythingAndBlockInvestReserve(
283
+ vault: KaminoVault,
284
+ reserve: PublicKey,
285
+ payer?: PublicKey
286
+ ): Promise<WithdrawAndBlockReserveIxs> {
287
+ return this._vaultClient.withdrawEverythingAndBlockInvestReserve(vault, reserve, payer);
288
+ }
289
+
290
+ /**
291
+ * This method withdraws all the funds from all the reserves and blocks them from being invested by setting their weight and ctoken allocation to 0
292
+ * @param vault - the vault to withdraw the invested funds from
293
+ * @param [vaultReservesMap] - optional parameter to pass a map of the vault reserves. If not provided, the reserves will be loaded from the vault
294
+ * @param [payer] - optional parameter to pass a different payer for the transaction. If not provided, the admin of the vault will be used; this is the payer for the invest ixs and it should have an ATA and some lamports (2x no_of_reserves) of the token vault
295
+ * @returns - a struct with an instruction to update the reserve allocation and an optional list of instructions to update the lookup table for the allocation changes
296
+ */
297
+ async withdrawEverythingFromAllReservesAndBlockInvest(
298
+ vault: KaminoVault,
299
+ vaultReservesMap?: PubkeyHashMap<PublicKey, KaminoReserve>,
300
+ payer?: PublicKey
301
+ ): Promise<WithdrawAndBlockReserveIxs> {
302
+ return this._vaultClient.withdrawEverythingFromAllReservesAndBlockInvest(vault, vaultReservesMap, payer);
303
+ }
304
+
274
305
  // async closeVault(vault: KaminoVault): Promise<TransactionInstruction> {
275
306
  // return this._vaultClient.closeVaultIx(vault);
276
307
  // }
@@ -276,7 +276,14 @@ export class KaminoReserve {
276
276
  * @returns 10^mint_decimals
277
277
  */
278
278
  getMintFactor(): Decimal {
279
- return new Decimal(10).pow(this.state.liquidity.mintDecimals.toNumber());
279
+ return new Decimal(10).pow(this.getMintDecimals());
280
+ }
281
+
282
+ /**
283
+ * @returns mint_decimals of the liquidity token
284
+ */
285
+ getMintDecimals(): number {
286
+ return this.state.liquidity.mintDecimals.toNumber();
280
287
  }
281
288
 
282
289
  /**
@@ -875,7 +882,7 @@ export class KaminoReserve {
875
882
 
876
883
  // Reserve info
877
884
  symbol: parseTokenSymbol(parsedData.config.tokenInfo.name),
878
- decimals: this.state.liquidity.mintDecimals.toNumber(),
885
+ decimals: this.getMintDecimals(),
879
886
  accumulatedProtocolFees: this.getAccumulatedProtocolFees().div(this.getMintFactor()),
880
887
  mintTotalSupply,
881
888
  depositLimitCrossedTimestamp: parsedData.liquidity.depositLimitCrossedTimestamp.toNumber(),
@@ -451,7 +451,7 @@ export class KaminoVaultClient {
451
451
  * @param payer - the payer of the transaction. If not provided, the admin of the vault will be used
452
452
  * @returns - a struct with an instruction to update the reserve allocation and an optional list of instructions to update the lookup table for the allocation changes
453
453
  */
454
- async withdrawEverythingAndBLockReserve(
454
+ async withdrawEverythingAndBlockInvestReserve(
455
455
  vault: KaminoVault,
456
456
  reserve: PublicKey,
457
457
  payer?: PublicKey
@@ -485,15 +485,55 @@ export class KaminoVaultClient {
485
485
 
486
486
  const investPayer = payer ? payer : vaultState.vaultAdminAuthority;
487
487
  const investIx = await this.investSingleReserveIxs(investPayer, vault, reserveWithAddress);
488
- withdrawAndBlockReserveIxs.updateReserveAllocationIxs = [
489
- updateAllocIxs.updateReserveAllocationIx,
490
- ...updateAllocIxs.updateLUTIxs,
491
- ];
488
+ withdrawAndBlockReserveIxs.updateReserveAllocationIxs = [updateAllocIxs.updateReserveAllocationIx];
492
489
  withdrawAndBlockReserveIxs.investIxs = investIx;
493
490
 
494
491
  return withdrawAndBlockReserveIxs;
495
492
  }
496
493
 
494
+ /**
495
+ * This method withdraws all the funds from all the reserves and blocks them from being invested by setting their weight and ctoken allocation to 0
496
+ * @param vault - the vault to withdraw the invested funds from
497
+ * @param [vaultReservesMap] - optional parameter to pass a map of the vault reserves. If not provided, the reserves will be loaded from the vault
498
+ * @param [payer] - optional parameter to pass a different payer for the transaction. If not provided, the admin of the vault will be used; this is the payer for the invest ixs and it should have an ATA and some lamports (2x no_of_reserves) of the token vault
499
+ * @returns - a struct with an instruction to update the reserve allocation and an optional list of instructions to update the lookup table for the allocation changes
500
+ */
501
+ async withdrawEverythingFromAllReservesAndBlockInvest(
502
+ vault: KaminoVault,
503
+ vaultReservesMap?: PubkeyHashMap<PublicKey, KaminoReserve>,
504
+ payer?: PublicKey
505
+ ): Promise<WithdrawAndBlockReserveIxs> {
506
+ const vaultState = await vault.getState(this.getConnection());
507
+
508
+ const reserves = this.getVaultReserves(vaultState);
509
+ const withdrawAndBlockReserveIxs: WithdrawAndBlockReserveIxs = {
510
+ updateReserveAllocationIxs: [],
511
+ investIxs: [],
512
+ };
513
+
514
+ if (!vaultReservesMap) {
515
+ vaultReservesMap = await this.loadVaultReserves(vaultState);
516
+ }
517
+
518
+ for (const reserve of reserves) {
519
+ const reserveWithAddress: ReserveWithAddress = {
520
+ address: reserve,
521
+ state: vaultReservesMap.get(reserve)!.state,
522
+ };
523
+ const reserveAllocationConfig = new ReserveAllocationConfig(reserveWithAddress, 0, new Decimal(0));
524
+
525
+ // update allocation to have 0 weight and 0 cap
526
+ const updateAllocIxs = await this.updateReserveAllocationIxs(vault, reserveAllocationConfig);
527
+ withdrawAndBlockReserveIxs.updateReserveAllocationIxs.push(updateAllocIxs.updateReserveAllocationIx);
528
+ }
529
+
530
+ const investPayer = payer ? payer : vaultState.vaultAdminAuthority;
531
+ const investIxs = await this.investAllReservesIxs(investPayer, vault);
532
+ withdrawAndBlockReserveIxs.investIxs = investIxs;
533
+
534
+ return withdrawAndBlockReserveIxs;
535
+ }
536
+
497
537
  /**
498
538
  * This method removes a reserve from the vault allocation strategy if already part of the allocation strategy
499
539
  * @param vault - vault to remove the reserve from
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  createAtasIdempotent,
15
15
  getComputeBudgetAndPriorityFeeIxs,
16
- removeBudgetAndAtaIxs,
16
+ removeBudgetIxs,
17
17
  ScopePriceRefreshConfig,
18
18
  U64_MAX,
19
19
  uniqueAccountsWithProgramIds,
@@ -289,8 +289,8 @@ async function buildRepayWithCollateralIxs(
289
289
  const scopeRefreshIxn = await getScopeRefreshIx(market, collReserve, debtReserve, obligation, scopeRefreshConfig);
290
290
 
291
291
  // 2. Flash borrow & repay the debt to repay amount needed
292
- const { flashBorrowIxn, flashRepayIxn } = getFlashLoanInstructions({
293
- borrowIxnIndex: budgetIxs.length + atasAndIxs.length + (scopeRefreshIxn.length > 0 ? 1 : 0),
292
+ const { flashBorrowIx, flashRepayIx } = getFlashLoanInstructions({
293
+ borrowIxIndex: budgetIxs.length + atasAndIxs.length + (scopeRefreshIxn.length > 0 ? 1 : 0),
294
294
  walletPublicKey: obligation.state.owner,
295
295
  lendingMarketAuthority: market.getLendingMarketAuthority(),
296
296
  lendingMarketAddress: market.getAddress(),
@@ -354,17 +354,17 @@ async function buildRepayWithCollateralIxs(
354
354
 
355
355
  // 4. Swap collateral to debt to repay flash loan
356
356
  const { preActionIxs, swapIxs } = swapQuoteIxs;
357
- const swapInstructions = removeBudgetAndAtaIxs(swapIxs, []);
357
+ const swapInstructions = removeBudgetIxs(swapIxs);
358
358
 
359
359
  const ixs = [
360
360
  ...scopeRefreshIxn,
361
361
  ...budgetIxs,
362
362
  ...atasAndIxs.map((x) => x.createAtaIx),
363
- flashBorrowIxn,
363
+ flashBorrowIx,
364
364
  ...preActionIxs,
365
365
  ...KaminoAction.actionToIxs(repayAndWithdrawAction),
366
366
  ...swapInstructions,
367
- flashRepayIxn,
367
+ flashRepayIx,
368
368
  ];
369
369
 
370
370
  const res: LeverageIxsOutput = {
@@ -252,10 +252,10 @@ const FAKE_TARGET_COLL_SWAP_OUT_AMOUNT = new Decimal(1); // see the lengthy `get
252
252
 
253
253
  type SwapCollKlendIxs = {
254
254
  setupIxs: TransactionInstruction[];
255
- targetCollFlashBorrowIxn: TransactionInstruction;
255
+ targetCollFlashBorrowIx: TransactionInstruction;
256
256
  depositTargetCollIxs: TransactionInstruction[];
257
257
  withdrawSourceCollIxs: TransactionInstruction[];
258
- targetCollFlashRepayIxn: TransactionInstruction;
258
+ targetCollFlashRepayIx: TransactionInstruction;
259
259
  cleanupIxs: TransactionInstruction[];
260
260
  flashLoanInfo: FlashLoanInfo;
261
261
  simulationDetails: {
@@ -284,7 +284,7 @@ async function getKlendIxs(
284
284
  }
285
285
 
286
286
  const targetCollFlashBorrowedAmount = calculateTargetCollFlashBorrowedAmount(targetCollSwapOutAmount, context);
287
- const { targetCollFlashBorrowIxn, targetCollFlashRepayIxn } = getTargetCollFlashLoanIxs(
287
+ const { targetCollFlashBorrowIx, targetCollFlashRepayIx } = getTargetCollFlashLoanIxs(
288
288
  targetCollFlashBorrowedAmount,
289
289
  setupIxs.length,
290
290
  targetCollAta,
@@ -306,10 +306,10 @@ async function getKlendIxs(
306
306
  flashBorrowReserve: context.targetCollReserve.address,
307
307
  flashLoanFee: context.targetCollReserve.getFlashLoanFee(),
308
308
  },
309
- targetCollFlashBorrowIxn,
309
+ targetCollFlashBorrowIx,
310
310
  depositTargetCollIxs: depositTargetCollIxs.ixs,
311
311
  withdrawSourceCollIxs,
312
- targetCollFlashRepayIxn,
312
+ targetCollFlashRepayIx,
313
313
  cleanupIxs,
314
314
  simulationDetails: {
315
315
  targetCollFlashBorrowedAmount,
@@ -364,26 +364,24 @@ function getAtaCloseIxs(context: SwapCollContext<any>) {
364
364
 
365
365
  function getTargetCollFlashLoanIxs(
366
366
  targetCollAmount: Decimal,
367
- flashBorrowIxnIndex: number,
367
+ flashBorrowIxIndex: number,
368
368
  destinationAta: PublicKey,
369
369
  context: SwapCollContext<any>
370
370
  ) {
371
- const { flashBorrowIxn: targetCollFlashBorrowIxn, flashRepayIxn: targetCollFlashRepayIxn } = getFlashLoanInstructions(
372
- {
373
- borrowIxnIndex: flashBorrowIxnIndex,
374
- walletPublicKey: context.obligation.state.owner,
375
- lendingMarketAuthority: context.market.getLendingMarketAuthority(),
376
- lendingMarketAddress: context.market.getAddress(),
377
- reserve: context.targetCollReserve,
378
- amountLamports: targetCollAmount.mul(context.targetCollReserve.getMintFactor()),
379
- destinationAta,
380
- // TODO(referrals): once we support referrals, we will have to replace the placeholder args below:
381
- referrerAccount: context.market.programId,
382
- referrerTokenState: context.market.programId,
383
- programId: context.market.programId,
384
- }
385
- );
386
- return { targetCollFlashBorrowIxn, targetCollFlashRepayIxn };
371
+ const { flashBorrowIx: targetCollFlashBorrowIx, flashRepayIx: targetCollFlashRepayIx } = getFlashLoanInstructions({
372
+ borrowIxIndex: flashBorrowIxIndex,
373
+ walletPublicKey: context.obligation.state.owner,
374
+ lendingMarketAuthority: context.market.getLendingMarketAuthority(),
375
+ lendingMarketAddress: context.market.getAddress(),
376
+ reserve: context.targetCollReserve,
377
+ amountLamports: targetCollAmount.mul(context.targetCollReserve.getMintFactor()),
378
+ destinationAta,
379
+ // TODO(referrals): once we support referrals, we will have to replace the placeholder args below:
380
+ referrerAccount: context.market.programId,
381
+ referrerTokenState: context.market.programId,
382
+ programId: context.market.programId,
383
+ });
384
+ return { targetCollFlashBorrowIx, targetCollFlashRepayIx };
387
385
  }
388
386
 
389
387
  type DepositTargetCollIxs = {
@@ -609,11 +607,11 @@ function checkResultingObligationValid(
609
607
  function listIxs(klendIxs: SwapCollKlendIxs, externalSwapIxs?: TransactionInstruction[]): TransactionInstruction[] {
610
608
  return [
611
609
  ...klendIxs.setupIxs,
612
- klendIxs.targetCollFlashBorrowIxn,
610
+ klendIxs.targetCollFlashBorrowIx,
613
611
  ...klendIxs.depositTargetCollIxs,
614
612
  ...klendIxs.withdrawSourceCollIxs,
615
613
  ...(externalSwapIxs || []),
616
- klendIxs.targetCollFlashRepayIxn,
614
+ klendIxs.targetCollFlashRepayIx,
617
615
  ...klendIxs.cleanupIxs,
618
616
  ];
619
617
  }
@@ -13,14 +13,14 @@ import { fuzzyEqual } from '../utils';
13
13
 
14
14
  const closingPositionDiffTolerance = 0.0001;
15
15
 
16
- export enum FormTabs {
16
+ export enum LeverageOption {
17
17
  deposit = 'Deposit',
18
18
  withdraw = 'Withdraw',
19
19
  adjust = 'Adjust',
20
20
  close = 'Close',
21
21
  }
22
22
 
23
- export interface LeverageFormsCalcsArgs {
23
+ export interface LeverageCalcsArgs {
24
24
  depositAmount: Decimal;
25
25
  withdrawAmount: Decimal;
26
26
  deposited: Decimal;
@@ -29,14 +29,14 @@ export interface LeverageFormsCalcsArgs {
29
29
  selectedTokenMint: PublicKey;
30
30
  collTokenMint: PublicKey;
31
31
  targetLeverage: Decimal;
32
- activeTab: FormTabs;
33
- flashBorrowReserveFlashLoanFeePercentage: Decimal;
32
+ activeLeverageOption: LeverageOption;
33
+ flashLoanFeeRatio: Decimal;
34
34
  debtBorrowFactorPct: Decimal;
35
35
  priceCollToDebt: Decimal;
36
36
  priceDebtToColl: Decimal;
37
37
  }
38
38
 
39
- export interface FormsCalcsResult {
39
+ export interface LeverageCalcsResult {
40
40
  earned: Decimal;
41
41
  totalDeposited: Decimal;
42
42
  totalBorrowed: Decimal;
@@ -56,14 +56,14 @@ export async function calculateMultiplyEffects(
56
56
  selectedTokenMint,
57
57
  collTokenMint,
58
58
  targetLeverage,
59
- activeTab,
60
- flashBorrowReserveFlashLoanFeePercentage,
59
+ activeLeverageOption,
60
+ flashLoanFeeRatio,
61
61
  debtBorrowFactorPct,
62
62
  priceCollToDebt,
63
63
  priceDebtToColl,
64
- }: LeverageFormsCalcsArgs,
64
+ }: LeverageCalcsArgs,
65
65
  logEstimations = false
66
- ): Promise<FormsCalcsResult> {
66
+ ): Promise<LeverageCalcsResult> {
67
67
  // calculate estimations for deposit operation
68
68
  const {
69
69
  adjustDepositPosition: depositModeEstimatedDepositAmount,
@@ -75,7 +75,7 @@ export async function calculateMultiplyEffects(
75
75
  targetLeverage,
76
76
  selectedTokenMint,
77
77
  collTokenMint: collTokenMint,
78
- flashLoanFee: flashBorrowReserveFlashLoanFeePercentage,
78
+ flashLoanFee: flashLoanFeeRatio,
79
79
  });
80
80
 
81
81
  // calculate estimations for withdraw operation
@@ -101,14 +101,14 @@ export async function calculateMultiplyEffects(
101
101
  collTokenMint,
102
102
  totalDeposited: new Decimal(deposited),
103
103
  totalBorrowed: new Decimal(borrowed),
104
- flashLoanFee: flashBorrowReserveFlashLoanFeePercentage, // TODO: is this the right flash borrow?
104
+ flashLoanFee: flashLoanFeeRatio, // TODO: is this the right flash borrow?
105
105
  });
106
106
 
107
107
  if (logEstimations) {
108
108
  console.log(
109
109
  'Estimations',
110
110
  toJson({
111
- activeTab,
111
+ activeLeverageOption,
112
112
  depositModeEstimatedDepositAmount,
113
113
  depositModeEstimatedBorrowAmount,
114
114
  withdrawModeEstimatedDepositTokenWithdrawn,
@@ -121,16 +121,16 @@ export async function calculateMultiplyEffects(
121
121
 
122
122
  let [isClosingPosition, totalDeposited, totalBorrowed] = [false, new Decimal(0), new Decimal(0)];
123
123
 
124
- switch (activeTab) {
125
- case FormTabs.deposit: {
124
+ switch (activeLeverageOption) {
125
+ case LeverageOption.deposit: {
126
126
  // Deposit and Adjust never clos the position
127
127
  isClosingPosition = false;
128
128
  totalDeposited = deposited.add(depositModeEstimatedDepositAmount);
129
129
  totalBorrowed = borrowed.add(depositModeEstimatedBorrowAmount);
130
130
  break;
131
131
  }
132
- case FormTabs.close:
133
- case FormTabs.withdraw: {
132
+ case LeverageOption.close:
133
+ case LeverageOption.withdraw: {
134
134
  isClosingPosition =
135
135
  (withdrawModeEstimatedDepositTokenWithdrawn.gte(new Decimal(deposited)) ||
136
136
  withdrawModeEstimatedBorrowTokenWithdrawn.gte(new Decimal(borrowed)) ||
@@ -146,7 +146,7 @@ export async function calculateMultiplyEffects(
146
146
  totalBorrowed = isClosingPosition ? new Decimal(0) : borrowed.sub(withdrawModeEstimatedBorrowTokenWithdrawn);
147
147
  break;
148
148
  }
149
- case FormTabs.adjust: {
149
+ case LeverageOption.adjust: {
150
150
  // Deposit and Adjust never clos the position
151
151
  isClosingPosition = false;
152
152
  totalDeposited = deposited.add(adjustModeEstimatedDepositAmount);
@@ -186,12 +186,12 @@ export const calcBorrowAmount = ({
186
186
  depositTokenAmount,
187
187
  targetLeverage,
188
188
  priceCollToDebt,
189
- flashBorrowFee,
189
+ flashLoanFeeRatio,
190
190
  }: {
191
191
  depositTokenAmount: Decimal;
192
192
  targetLeverage: Decimal;
193
193
  priceCollToDebt: Decimal;
194
- flashBorrowFee: Decimal;
194
+ flashLoanFeeRatio: Decimal;
195
195
  }) => {
196
196
  const initialCollAmountInCollToken = depositTokenAmount;
197
197
 
@@ -199,7 +199,7 @@ export const calcBorrowAmount = ({
199
199
  const finalDebtAmountInCollToken = finalCollAmountInCollToken.sub(initialCollAmountInCollToken);
200
200
  const finalDebtAmountInDebtToken = finalDebtAmountInCollToken.mul(priceCollToDebt);
201
201
 
202
- const flashFeeFactor = new Decimal(1).add(flashBorrowFee);
202
+ const flashFeeFactor = new Decimal(1).add(flashLoanFeeRatio);
203
203
  const debtTokenToBorrow = finalDebtAmountInDebtToken.mul(flashFeeFactor);
204
204
 
205
205
  return debtTokenToBorrow;
@@ -269,7 +269,7 @@ export function calcWithdrawAmounts(params: WithdrawParams): WithdrawResult {
269
269
  depositTokenAmount: initialDepositInCollateralToken.minus(amountToWithdrawDepositToken),
270
270
  priceCollToDebt: new Decimal(priceCollToDebt),
271
271
  targetLeverage: new Decimal(targetLeverage),
272
- flashBorrowFee: new Decimal(0),
272
+ flashLoanFeeRatio: new Decimal(0),
273
273
  });
274
274
 
275
275
  const adjustDepositPosition = currentDepositPosition.minus(targetDeposit);
@@ -347,7 +347,7 @@ export function calcAdjustAmounts({
347
347
  depositTokenAmount: initialDeposit,
348
348
  priceCollToDebt: new Decimal(priceCollToDebt),
349
349
  targetLeverage: new Decimal(targetLeverage),
350
- flashBorrowFee: flashLoanFee,
350
+ flashLoanFeeRatio: flashLoanFee,
351
351
  });
352
352
 
353
353
  const adjustDepositPosition = targetDeposit.minus(currentDepositPosition);
@@ -393,7 +393,7 @@ export const estimateDepositMode = ({
393
393
  depositTokenAmount: depositCollTokenAmount,
394
394
  targetLeverage: new Decimal(targetLeverage),
395
395
  priceCollToDebt: new Decimal(priceCollToDebt),
396
- flashBorrowFee: new Decimal(flashLoanFee),
396
+ flashLoanFeeRatio: new Decimal(flashLoanFee),
397
397
  });
398
398
 
399
399
  const slippageFactor = new Decimal(1).add(slippagePct.div(new Decimal(100)));
@@ -673,11 +673,11 @@ export function withdrawLeverageCalcs(
673
673
  // Add slippage for the accrued interest rate amount
674
674
  const irSlippageBpsForDebt = obligation!
675
675
  .estimateObligationInterestRate(market, debtReserve!, obligation?.state.borrows[0]!, currentSlot)
676
- .toDecimalPlaces(debtReserve?.state.liquidity.mintDecimals.toNumber()!, Decimal.ROUND_CEIL);
677
- // add 0.1 to irSlippageBpsForDebt because we don't want to estimate slightly less than SC and end up not reapying enough
676
+ .toDecimalPlaces(debtReserve?.getMintDecimals()!, Decimal.ROUND_CEIL);
677
+ // add 0.1 to irSlippageBpsForDebt because we don't want to estimate slightly less than SC and end up not repaying enough
678
678
  const repayAmount = initialRepayAmount
679
679
  .mul(irSlippageBpsForDebt.add('0.1').div('10_000').add('1'))
680
- .toDecimalPlaces(debtReserve?.state.liquidity.mintDecimals.toNumber()!, Decimal.ROUND_CEIL);
680
+ .toDecimalPlaces(debtReserve?.getMintDecimals()!, Decimal.ROUND_CEIL);
681
681
 
682
682
  // 6. Get swap ixs
683
683
  // 5. Get swap estimations to understand how much we need to borrow from borrow reserve
@@ -12,7 +12,7 @@ import {
12
12
  import Decimal from 'decimal.js';
13
13
 
14
14
  export const getFlashLoanInstructions = (args: {
15
- borrowIxnIndex: number;
15
+ borrowIxIndex: number;
16
16
  walletPublicKey: PublicKey;
17
17
  lendingMarketAuthority: PublicKey;
18
18
  lendingMarketAddress: PublicKey;
@@ -23,7 +23,7 @@ export const getFlashLoanInstructions = (args: {
23
23
  referrerTokenState: PublicKey;
24
24
  programId: PublicKey;
25
25
  }) => {
26
- const flashBorrowIxn = getBorrowFlashLoanInstruction({
26
+ const flashBorrowIx = getBorrowFlashLoanInstruction({
27
27
  walletPublicKey: args.walletPublicKey,
28
28
  lendingMarketAuthority: args.lendingMarketAuthority,
29
29
  lendingMarketAddress: args.lendingMarketAddress,
@@ -34,8 +34,8 @@ export const getFlashLoanInstructions = (args: {
34
34
  referrerTokenState: args.referrerTokenState,
35
35
  programId: args.programId,
36
36
  });
37
- const flashRepayIxn = getRepayFlashLoanInstruction({
38
- borrowIxnIndex: args.borrowIxnIndex,
37
+ const flashRepayIx = getRepayFlashLoanInstruction({
38
+ borrowIxIndex: args.borrowIxIndex,
39
39
  walletPublicKey: args.walletPublicKey,
40
40
  lendingMarketAuthority: args.lendingMarketAuthority,
41
41
  lendingMarketAddress: args.lendingMarketAddress,
@@ -47,7 +47,7 @@ export const getFlashLoanInstructions = (args: {
47
47
  programId: args.programId,
48
48
  });
49
49
 
50
- return { flashBorrowIxn, flashRepayIxn };
50
+ return { flashBorrowIx, flashRepayIx };
51
51
  };
52
52
 
53
53
  export const getBorrowFlashLoanInstruction = ({
@@ -93,7 +93,7 @@ export const getBorrowFlashLoanInstruction = ({
93
93
  };
94
94
 
95
95
  export const getRepayFlashLoanInstruction = ({
96
- borrowIxnIndex,
96
+ borrowIxIndex,
97
97
  walletPublicKey,
98
98
  lendingMarketAuthority,
99
99
  lendingMarketAddress,
@@ -104,7 +104,7 @@ export const getRepayFlashLoanInstruction = ({
104
104
  referrerTokenState,
105
105
  programId,
106
106
  }: {
107
- borrowIxnIndex: number;
107
+ borrowIxIndex: number;
108
108
  walletPublicKey: PublicKey;
109
109
  lendingMarketAuthority: PublicKey;
110
110
  lendingMarketAddress: PublicKey;
@@ -116,7 +116,7 @@ export const getRepayFlashLoanInstruction = ({
116
116
  programId: PublicKey;
117
117
  }) => {
118
118
  const args: FlashRepayReserveLiquidityArgs = {
119
- borrowInstructionIndex: borrowIxnIndex,
119
+ borrowInstructionIndex: borrowIxIndex,
120
120
  liquidityAmount: new anchor.BN(amountLamports.floor().toString()),
121
121
  };
122
122