@kamino-finance/klend-sdk 6.0.5-beta.2 → 6.0.5-beta.21

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/dist/classes/action.d.ts +1 -1
  2. package/dist/classes/action.d.ts.map +1 -1
  3. package/dist/classes/action.js +32 -16
  4. package/dist/classes/action.js.map +1 -1
  5. package/dist/classes/manager.d.ts +29 -18
  6. package/dist/classes/manager.d.ts.map +1 -1
  7. package/dist/classes/manager.js +66 -49
  8. package/dist/classes/manager.js.map +1 -1
  9. package/dist/classes/market.d.ts +12 -11
  10. package/dist/classes/market.d.ts.map +1 -1
  11. package/dist/classes/market.js +77 -37
  12. package/dist/classes/market.js.map +1 -1
  13. package/dist/classes/obligation.d.ts +32 -2
  14. package/dist/classes/obligation.d.ts.map +1 -1
  15. package/dist/classes/obligation.js +150 -24
  16. package/dist/classes/obligation.js.map +1 -1
  17. package/dist/classes/vault.d.ts +5 -3
  18. package/dist/classes/vault.d.ts.map +1 -1
  19. package/dist/classes/vault.js +8 -6
  20. package/dist/classes/vault.js.map +1 -1
  21. package/dist/client_kamino_manager.d.ts.map +1 -1
  22. package/dist/client_kamino_manager.js +30 -22
  23. package/dist/client_kamino_manager.js.map +1 -1
  24. package/dist/lending_operations/repay_with_collateral_operations.d.ts.map +1 -1
  25. package/dist/lending_operations/repay_with_collateral_operations.js +36 -32
  26. package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
  27. package/dist/lending_operations/swap_collateral_operations.d.ts.map +1 -1
  28. package/dist/lending_operations/swap_collateral_operations.js +4 -4
  29. package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
  30. package/dist/leverage/operations.d.ts +4 -3
  31. package/dist/leverage/operations.d.ts.map +1 -1
  32. package/dist/leverage/operations.js +186 -154
  33. package/dist/leverage/operations.js.map +1 -1
  34. package/dist/leverage/types.d.ts +1 -0
  35. package/dist/leverage/types.d.ts.map +1 -1
  36. package/dist/utils/managerTypes.d.ts +1 -2
  37. package/dist/utils/managerTypes.d.ts.map +1 -1
  38. package/dist/utils/managerTypes.js +9 -9
  39. package/dist/utils/managerTypes.js.map +1 -1
  40. package/dist/utils/obligations.d.ts +5 -0
  41. package/dist/utils/obligations.d.ts.map +1 -0
  42. package/dist/utils/obligations.js +53 -0
  43. package/dist/utils/obligations.js.map +1 -0
  44. package/dist/utils/oracle.d.ts +3 -3
  45. package/dist/utils/oracle.d.ts.map +1 -1
  46. package/dist/utils/oracle.js +2 -2
  47. package/dist/utils/oracle.js.map +1 -1
  48. package/dist/utils/pubkey.d.ts +1 -0
  49. package/dist/utils/pubkey.d.ts.map +1 -1
  50. package/dist/utils/pubkey.js +10 -0
  51. package/dist/utils/pubkey.js.map +1 -1
  52. package/package.json +3 -3
  53. package/src/classes/action.ts +32 -20
  54. package/src/classes/manager.ts +87 -54
  55. package/src/classes/market.ts +132 -52
  56. package/src/classes/obligation.ts +201 -36
  57. package/src/classes/vault.ts +17 -6
  58. package/src/client.ts +4 -4
  59. package/src/client_kamino_manager.ts +40 -35
  60. package/src/lending_operations/repay_with_collateral_operations.ts +76 -72
  61. package/src/lending_operations/swap_collateral_operations.ts +13 -11
  62. package/src/leverage/operations.ts +362 -328
  63. package/src/leverage/types.ts +1 -0
  64. package/src/utils/managerTypes.ts +1 -2
  65. package/src/utils/obligations.ts +69 -0
  66. package/src/utils/oracle.ts +5 -4
  67. package/src/utils/pubkey.ts +9 -0
@@ -20,6 +20,10 @@ export type Position = {
20
20
  */
21
21
  marketValueRefreshed: Decimal;
22
22
  };
23
+ export type PositionChange = {
24
+ reserveAddress: PublicKey;
25
+ amountChangeLamports: Decimal;
26
+ };
23
27
  export type ObligationStats = {
24
28
  userTotalDeposit: Decimal;
25
29
  userTotalCollateralDeposit: Decimal;
@@ -197,8 +201,8 @@ export declare class KaminoObligation {
197
201
  */
198
202
  getElevationGroups(kaminoMarket: KaminoMarket): Array<number>;
199
203
  static getElevationGroupsForReserves(reserves: Array<KaminoReserve>): Array<number>;
200
- simulateDepositChange(obligationDeposits: ObligationCollateral[], changeInLamports: number, changeReserve: PublicKey, collateralExchangeRates: Map<PublicKey, Decimal>): ObligationCollateral[];
201
- simulateBorrowChange(obligationBorrows: ObligationLiquidity[], changeInLamports: number, changeReserve: PublicKey, cumulativeBorrowRate: Decimal): ObligationLiquidity[];
204
+ simulateDepositChange(obligationDeposits: ObligationCollateral[], depositChange: PositionChange, collateralExchangeRates: Map<PublicKey, Decimal>): ObligationCollateral[];
205
+ simulateBorrowChange(obligationBorrows: ObligationLiquidity[], borrowChange: PositionChange, cumulativeBorrowRate: Decimal): ObligationLiquidity[];
202
206
  /**
203
207
  * Calculate the newly modified stats of the obligation
204
208
  */
@@ -239,12 +243,38 @@ export declare class KaminoObligation {
239
243
  static calculateObligationDeposits(market: KaminoMarket, obligationDeposits: ObligationCollateral[], collateralExchangeRates: Map<PublicKey, Decimal> | null, elevationGroup: number, getPx: (reserve: KaminoReserve) => Decimal): DepositStats;
240
244
  static calculateObligationBorrows(market: KaminoMarket, obligationBorrows: ObligationLiquidity[], cumulativeBorrowRates: Map<PublicKey, Decimal> | null, elevationGroup: number, getPx: (reserve: KaminoReserve) => Decimal): BorrowStats;
241
245
  getMaxLoanLtvGivenElevationGroup(market: KaminoMarket, elevationGroup: number, slot: number): Decimal;
246
+ /**
247
+ * Creates a new KaminoObligation with simulated position changes applied.
248
+ * This allows you to model what the obligation would look like with deposits/borrows
249
+ * without actually executing those transactions.
250
+ *
251
+ * @param market - The KaminoMarket instance
252
+ * @param slot - The slot number for rate calculations
253
+ * @param depositChanges - Optional array of deposit changes to apply
254
+ * @param borrowChanges - Optional array of borrow changes to apply
255
+ * @returns A new KaminoObligation instance with the changes applied
256
+ */
257
+ withPositionChanges(market: KaminoMarket, slot: number, depositChanges?: PositionChange[], borrowChanges?: PositionChange[]): KaminoObligation;
242
258
  getBorrowPower(market: KaminoMarket, liquidityMint: PublicKey, slot: number, elevationGroup?: number): Decimal;
243
259
  getMaxBorrowAmountV2(market: KaminoMarket, liquidityMint: PublicKey, slot: number, elevationGroup?: number): Decimal;
260
+ getMaxBorrowAmountV2WithDeposit(market: KaminoMarket, liquidityMint: PublicKey, slot: number, elevationGroup: number | undefined, depositAmountLamports: Decimal, depositReserveAddress: PublicKey): Decimal;
244
261
  isLoanEligibleForElevationGroup(market: KaminoMarket, slot: number, elevationGroup: number): boolean;
245
262
  getElevationGroupsForObligation(market: KaminoMarket): ElevationGroupDescription[];
246
263
  getMaxBorrowAmount(market: KaminoMarket, liquidityMint: PublicKey, slot: number, requestElevationGroup: boolean): Decimal;
247
264
  getMaxWithdrawAmount(market: KaminoMarket, tokenMint: PublicKey, slot: number): Decimal;
265
+ /**
266
+ * Same as getMaxWithdrawAmount but assumes a repay is made first, calculating
267
+ * the new withdraw power after the repay, without overriding the obligation itself.
268
+ *
269
+ * @param market - The KaminoMarket instance.
270
+ * @param tokenMint - The liquidity mint Address.
271
+ * @param slot - The slot number.
272
+ * @param repayAmountLamports - The amount to repay in lamports (use U64_MAX for full repay).
273
+ * @param repayReserveAddress - The reserve address of the borrow being repaid.
274
+ * @returns The maximum withdraw amount as a Decimal.
275
+ * @throws Error if the reserve is not found.
276
+ */
277
+ getMaxWithdrawAmountWithRepay(market: KaminoMarket, tokenMint: PublicKey, slot: number, repayAmountLamports: Decimal, repayReserveAddress: PublicKey): Decimal;
248
278
  getObligationLiquidityByReserve(reserveAddress: PublicKey): ObligationLiquidity;
249
279
  /**
250
280
  *
@@ -1 +1 @@
1
- {"version":3,"file":"obligation.d.ts","sourceRoot":"","sources":["../../src/classes/obligation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"obligation.d.ts","sourceRoot":"","sources":["../../src/classes/obligation.ts"],"names":[],"mappings":"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"}
@@ -310,15 +310,15 @@ class KaminoObligation {
310
310
  }
311
311
  return activeElevationGroups;
312
312
  }
313
- simulateDepositChange(obligationDeposits, changeInLamports, changeReserve, collateralExchangeRates) {
313
+ simulateDepositChange(obligationDeposits, depositChange, collateralExchangeRates) {
314
314
  const newDeposits = [];
315
- const depositIndex = obligationDeposits.findIndex((deposit) => deposit.depositReserve.equals(changeReserve));
315
+ const depositIndex = obligationDeposits.findIndex((deposit) => deposit.depositReserve.equals(depositChange.reserveAddress));
316
316
  // Always copy the previous deposits and modify the changeReserve one if it exists
317
317
  for (let i = 0; i < obligationDeposits.length; i++) {
318
- if (obligationDeposits[i].depositReserve.equals(changeReserve)) {
318
+ if (obligationDeposits[i].depositReserve.equals(depositChange.reserveAddress)) {
319
319
  const coll = { ...obligationDeposits[i] };
320
- const exchangeRate = collateralExchangeRates.get(changeReserve);
321
- const changeInCollateral = new decimal_js_1.default(changeInLamports).mul(exchangeRate).toFixed(0);
320
+ const exchangeRate = collateralExchangeRates.get(depositChange.reserveAddress);
321
+ const changeInCollateral = new decimal_js_1.default(depositChange.amountChangeLamports).mul(exchangeRate).toFixed(0);
322
322
  const updatedDeposit = new decimal_js_1.default(obligationDeposits[i].depositedAmount.toNumber()).add(changeInCollateral);
323
323
  coll.depositedAmount = new bn_js_1.default((0, utils_1.positiveOrZero)(updatedDeposit).toString());
324
324
  newDeposits.push(new types_1.ObligationCollateral(coll));
@@ -334,22 +334,24 @@ class KaminoObligation {
334
334
  throw new Error('No available borrows to modify');
335
335
  }
336
336
  const coll = { ...obligationDeposits[firstBorrowIndexAvailable] };
337
- const exchangeRate = collateralExchangeRates.get(changeReserve);
338
- const changeInCollateral = new decimal_js_1.default(changeInLamports).mul(exchangeRate).toFixed(0);
337
+ const exchangeRate = collateralExchangeRates.get(depositChange.reserveAddress);
338
+ const changeInCollateral = new decimal_js_1.default(depositChange.amountChangeLamports).mul(exchangeRate).toFixed(0);
339
339
  coll.depositedAmount = new bn_js_1.default((0, utils_1.positiveOrZero)(new decimal_js_1.default(changeInCollateral)).toString());
340
- coll.depositReserve = changeReserve;
340
+ coll.depositReserve = depositChange.reserveAddress;
341
341
  newDeposits[firstBorrowIndexAvailable] = new types_1.ObligationCollateral(coll);
342
342
  }
343
343
  return newDeposits;
344
344
  }
345
- simulateBorrowChange(obligationBorrows, changeInLamports, changeReserve, cumulativeBorrowRate) {
345
+ simulateBorrowChange(obligationBorrows, borrowChange, cumulativeBorrowRate) {
346
346
  const newBorrows = [];
347
- const borrowIndex = obligationBorrows.findIndex((borrow) => borrow.borrowReserve.equals(changeReserve));
347
+ const borrowIndex = obligationBorrows.findIndex((borrow) => borrow.borrowReserve.equals(borrowChange.reserveAddress));
348
348
  // Always copy the previous borrows and modify the changeReserve one if it exists
349
349
  for (let i = 0; i < obligationBorrows.length; i++) {
350
- if (obligationBorrows[i].borrowReserve.equals(changeReserve)) {
350
+ if (obligationBorrows[i].borrowReserve.equals(borrowChange.reserveAddress)) {
351
351
  const borrow = { ...obligationBorrows[borrowIndex] };
352
- const newBorrowedAmount = new fraction_1.Fraction(borrow.borrowedAmountSf).toDecimal().add(changeInLamports);
352
+ const newBorrowedAmount = new fraction_1.Fraction(borrow.borrowedAmountSf)
353
+ .toDecimal()
354
+ .add(borrowChange.amountChangeLamports);
353
355
  const newBorrowedAmountSf = fraction_1.Fraction.fromDecimal((0, utils_1.positiveOrZero)(newBorrowedAmount)).getValue();
354
356
  borrow.borrowedAmountSf = newBorrowedAmountSf;
355
357
  newBorrows.push(new types_1.ObligationLiquidity(borrow));
@@ -365,8 +367,8 @@ class KaminoObligation {
365
367
  throw new Error('No available borrows to modify');
366
368
  }
367
369
  const borrow = { ...obligationBorrows[firstBorrowIndexAvailable] };
368
- borrow.borrowedAmountSf = fraction_1.Fraction.fromDecimal(new decimal_js_1.default(changeInLamports)).getValue();
369
- borrow.borrowReserve = changeReserve;
370
+ borrow.borrowedAmountSf = fraction_1.Fraction.fromDecimal(new decimal_js_1.default(borrowChange.amountChangeLamports)).getValue();
371
+ borrow.borrowReserve = borrowChange.reserveAddress;
370
372
  borrow.cumulativeBorrowRateBsf = {
371
373
  padding: [],
372
374
  value: [fraction_1.Fraction.fromDecimal(cumulativeBorrowRate).getValue(), new bn_js_1.default(0), new bn_js_1.default(0), new bn_js_1.default(0)],
@@ -408,28 +410,40 @@ class KaminoObligation {
408
410
  if (amountCollateral === undefined || mintCollateral === undefined) {
409
411
  throw Error('amountCollateral & mintCollateral are required for deposit action');
410
412
  }
411
- newObligationDeposits = this.simulateDepositChange(this.state.deposits, amountCollateral.toNumber(), collateralReservePk, collateralExchangeRates);
413
+ newObligationDeposits = this.simulateDepositChange(this.state.deposits, {
414
+ reserveAddress: collateralReservePk,
415
+ amountChangeLamports: amountCollateral,
416
+ }, collateralExchangeRates);
412
417
  break;
413
418
  }
414
419
  case 'borrow': {
415
420
  if (amountDebt === undefined || mintDebt === undefined) {
416
421
  throw Error('amountDebt & mintDebt are required for borrow action');
417
422
  }
418
- newObligationBorrows = this.simulateBorrowChange(this.state.borrows, amountDebt.toNumber(), debtReservePk, debtReserveCumulativeBorrowRate);
423
+ newObligationBorrows = this.simulateBorrowChange(this.state.borrows, {
424
+ reserveAddress: debtReservePk,
425
+ amountChangeLamports: amountDebt,
426
+ }, debtReserveCumulativeBorrowRate);
419
427
  break;
420
428
  }
421
429
  case 'repay': {
422
430
  if (amountDebt === undefined || mintDebt === undefined) {
423
431
  throw Error('amountDebt & mintDebt are required for repay action');
424
432
  }
425
- newObligationBorrows = this.simulateBorrowChange(this.state.borrows, amountDebt.neg().toNumber(), debtReservePk, debtReserveCumulativeBorrowRate);
433
+ newObligationBorrows = this.simulateBorrowChange(this.state.borrows, {
434
+ reserveAddress: debtReservePk,
435
+ amountChangeLamports: amountDebt.neg(),
436
+ }, debtReserveCumulativeBorrowRate);
426
437
  break;
427
438
  }
428
439
  case 'withdraw': {
429
440
  if (amountCollateral === undefined || mintCollateral === undefined) {
430
441
  throw Error('amountCollateral & mintCollateral are required for withdraw action');
431
442
  }
432
- newObligationDeposits = this.simulateDepositChange(this.state.deposits, amountCollateral.neg().toNumber(), collateralReservePk, collateralExchangeRates);
443
+ newObligationDeposits = this.simulateDepositChange(this.state.deposits, {
444
+ reserveAddress: collateralReservePk,
445
+ amountChangeLamports: amountCollateral.neg(),
446
+ }, collateralExchangeRates);
433
447
  break;
434
448
  }
435
449
  case 'depositAndBorrow': {
@@ -439,8 +453,14 @@ class KaminoObligation {
439
453
  mintDebt === undefined) {
440
454
  throw Error('amountColl & amountDebt & mintCollateral & mintDebt are required for depositAndBorrow action');
441
455
  }
442
- newObligationDeposits = this.simulateDepositChange(this.state.deposits, amountCollateral.toNumber(), collateralReservePk, collateralExchangeRates);
443
- newObligationBorrows = this.simulateBorrowChange(this.state.borrows, amountDebt.toNumber(), debtReservePk, debtReserveCumulativeBorrowRate);
456
+ newObligationDeposits = this.simulateDepositChange(this.state.deposits, {
457
+ reserveAddress: collateralReservePk,
458
+ amountChangeLamports: amountCollateral,
459
+ }, collateralExchangeRates);
460
+ newObligationBorrows = this.simulateBorrowChange(this.state.borrows, {
461
+ reserveAddress: debtReservePk,
462
+ amountChangeLamports: amountDebt,
463
+ }, debtReserveCumulativeBorrowRate);
444
464
  break;
445
465
  }
446
466
  case 'repayAndWithdraw': {
@@ -450,8 +470,14 @@ class KaminoObligation {
450
470
  mintDebt === undefined) {
451
471
  throw Error('amountColl & amountDebt & mintCollateral & mintDebt are required for repayAndWithdraw action');
452
472
  }
453
- newObligationDeposits = this.simulateDepositChange(this.state.deposits, amountCollateral.neg().toNumber(), collateralReservePk, collateralExchangeRates);
454
- newObligationBorrows = this.simulateBorrowChange(this.state.borrows, amountDebt.neg().toNumber(), debtReservePk, debtReserveCumulativeBorrowRate);
473
+ newObligationDeposits = this.simulateDepositChange(this.state.deposits, {
474
+ reserveAddress: collateralReservePk,
475
+ amountChangeLamports: amountCollateral.neg(),
476
+ }, collateralExchangeRates);
477
+ newObligationBorrows = this.simulateBorrowChange(this.state.borrows, {
478
+ reserveAddress: debtReservePk,
479
+ amountChangeLamports: amountDebt.neg(),
480
+ }, debtReserveCumulativeBorrowRate);
455
481
  break;
456
482
  }
457
483
  default: {
@@ -479,8 +505,14 @@ class KaminoObligation {
479
505
  const additionalReserves = [withdrawReserveAddress, depositReserveAddress].filter((reserveAddress) => !market.isReserveInObligation(this, reserveAddress));
480
506
  const { collateralExchangeRates } = KaminoObligation.getRatesForObligation(market, this.state, slot, additionalReserves);
481
507
  let newObligationDeposits = this.state.deposits;
482
- newObligationDeposits = this.simulateDepositChange(newObligationDeposits, withdrawAmountLamports.neg().toNumber(), withdrawReserveAddress, collateralExchangeRates);
483
- newObligationDeposits = this.simulateDepositChange(newObligationDeposits, depositAmountLamports.toNumber(), depositReserveAddress, collateralExchangeRates);
508
+ newObligationDeposits = this.simulateDepositChange(newObligationDeposits, {
509
+ reserveAddress: withdrawReserveAddress,
510
+ amountChangeLamports: withdrawAmountLamports.neg(),
511
+ }, collateralExchangeRates);
512
+ newObligationDeposits = this.simulateDepositChange(newObligationDeposits, {
513
+ reserveAddress: depositReserveAddress,
514
+ amountChangeLamports: depositAmountLamports,
515
+ }, collateralExchangeRates);
484
516
  const { refreshedStats } = this.calculatePositions(market, newObligationDeposits, this.state.borrows, newElevationGroup, collateralExchangeRates, null);
485
517
  const newStats = refreshedStats;
486
518
  newStats.netAccountValue = newStats.userTotalDeposit.minus(newStats.userTotalBorrow);
@@ -637,6 +669,50 @@ class KaminoObligation {
637
669
  }
638
670
  return borrowLimit.div(userTotalCollateralDeposit);
639
671
  }
672
+ /**
673
+ * Creates a new KaminoObligation with simulated position changes applied.
674
+ * This allows you to model what the obligation would look like with deposits/borrows
675
+ * without actually executing those transactions.
676
+ *
677
+ * @param market - The KaminoMarket instance
678
+ * @param slot - The slot number for rate calculations
679
+ * @param depositChanges - Optional array of deposit changes to apply
680
+ * @param borrowChanges - Optional array of borrow changes to apply
681
+ * @returns A new KaminoObligation instance with the changes applied
682
+ */
683
+ withPositionChanges(market, slot, depositChanges, borrowChanges) {
684
+ const reservesToRefresh = [];
685
+ if (depositChanges) {
686
+ reservesToRefresh.push(...depositChanges.map((change) => change.reserveAddress));
687
+ }
688
+ if (borrowChanges) {
689
+ reservesToRefresh.push(...borrowChanges.map((change) => change.reserveAddress));
690
+ }
691
+ const { collateralExchangeRates, cumulativeBorrowRates } = KaminoObligation.getRatesForObligation(market, this.state, slot, reservesToRefresh);
692
+ let newDeposits = this.state.deposits;
693
+ if (depositChanges) {
694
+ for (const depositChange of depositChanges) {
695
+ newDeposits = this.simulateDepositChange(newDeposits, depositChange, collateralExchangeRates);
696
+ }
697
+ }
698
+ let newBorrows = this.state.borrows;
699
+ if (borrowChanges) {
700
+ for (const borrowChange of borrowChanges) {
701
+ const reserve = market.getReserveByAddress(borrowChange.reserveAddress);
702
+ if (!reserve) {
703
+ throw new Error(`Reserve not found: ${borrowChange.reserveAddress}`);
704
+ }
705
+ newBorrows = this.simulateBorrowChange(newBorrows, borrowChange, reserve.getCumulativeBorrowRate());
706
+ }
707
+ }
708
+ // Create a deep copy of the obligation state and override deposits/borrows
709
+ const newObligationState = new accounts_1.Obligation({
710
+ ...this.state,
711
+ deposits: newDeposits,
712
+ borrows: newBorrows,
713
+ });
714
+ return new KaminoObligation(market, this.obligationAddress, newObligationState, collateralExchangeRates, cumulativeBorrowRates);
715
+ }
640
716
  /*
641
717
  How much of a given token can a user borrow extra given an elevation group,
642
718
  regardless of caps and liquidity or assuming infinite liquidity and infinite caps,
@@ -714,6 +790,27 @@ class KaminoObligation {
714
790
  return decimal_js_1.default.min(maxBorrowAmount, liquidityAvailablePostMigration);
715
791
  }
716
792
  }
793
+ /*
794
+ Same as getMaxBorrowAmountV2 but assumes a deposit is made first, calculating
795
+ the new borrow power after the deposit, without overriding the obligation itself.
796
+
797
+ * @param market - The KaminoMarket instance.
798
+ * @param liquidityMint - The liquidity mint Address.
799
+ * @param slot - The slot number.
800
+ * @param elevationGroup - The elevation group number (default: this.state.elevationGroup).
801
+ * @returns The maximum borrow amount as a Decimal.
802
+ * @throws Error if the reserve is not found.
803
+ */
804
+ getMaxBorrowAmountV2WithDeposit(market, liquidityMint, slot, elevationGroup = this.state.elevationGroup, depositAmountLamports, depositReserveAddress) {
805
+ const depositChanges = [
806
+ {
807
+ reserveAddress: depositReserveAddress,
808
+ amountChangeLamports: depositAmountLamports,
809
+ },
810
+ ];
811
+ const obligationWithDeposit = this.withPositionChanges(market, slot, depositChanges);
812
+ return obligationWithDeposit.getMaxBorrowAmountV2(market, liquidityMint, slot, elevationGroup);
813
+ }
717
814
  /*
718
815
  Returns true if the loan is eligible for the elevation group, including for the default one.
719
816
  * @param market - The KaminoMarket object representing the market.
@@ -892,6 +989,35 @@ class KaminoObligation {
892
989
  .sub(depositReserve.getDepositWithdrawalCapCurrent(slot));
893
990
  return decimal_js_1.default.max(0, decimal_js_1.default.min(userDepositPositionAmount, maxWithdrawAmount, reserveAvailableLiquidity, withdrawalCapRemained));
894
991
  }
992
+ /**
993
+ * Same as getMaxWithdrawAmount but assumes a repay is made first, calculating
994
+ * the new withdraw power after the repay, without overriding the obligation itself.
995
+ *
996
+ * @param market - The KaminoMarket instance.
997
+ * @param tokenMint - The liquidity mint Address.
998
+ * @param slot - The slot number.
999
+ * @param repayAmountLamports - The amount to repay in lamports (use U64_MAX for full repay).
1000
+ * @param repayReserveAddress - The reserve address of the borrow being repaid.
1001
+ * @returns The maximum withdraw amount as a Decimal.
1002
+ * @throws Error if the reserve is not found.
1003
+ */
1004
+ getMaxWithdrawAmountWithRepay(market, tokenMint, slot, repayAmountLamports, repayReserveAddress) {
1005
+ const repayReserve = market.getReserveByAddress(repayReserveAddress);
1006
+ if (!repayReserve) {
1007
+ throw new Error('Reserve not found');
1008
+ }
1009
+ const repayAmount = repayAmountLamports.equals(utils_2.U64_MAX)
1010
+ ? this.getBorrowAmountByReserve(repayReserve)
1011
+ : repayAmountLamports;
1012
+ const borrowChanges = [
1013
+ {
1014
+ reserveAddress: repayReserveAddress,
1015
+ amountChangeLamports: repayAmount.neg(), // as it's a repay
1016
+ },
1017
+ ];
1018
+ const obligationWithRepay = this.withPositionChanges(market, slot, undefined, borrowChanges);
1019
+ return obligationWithRepay.getMaxWithdrawAmount(market, tokenMint, slot);
1020
+ }
895
1021
  getObligationLiquidityByReserve(reserveAddress) {
896
1022
  const obligationLiquidity = this.state.borrows.find((borrow) => borrow.borrowReserve.equals(reserveAddress));
897
1023
  if (!obligationLiquidity) {
@@ -1 +1 @@
1
- {"version":3,"file":"obligation.js","sourceRoot":"","sources":["../../src/classes/obligation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"obligation.js","sourceRoot":"","sources":["../../src/classes/obligation.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Connection, Keypair, PublicKey, TransactionInstruction } from '@solana/web3.js';
2
- import { KaminoMarket, KaminoReserve, PubkeyHashMap, Reserve } from '../lib';
2
+ import { KaminoMarket, KaminoReserve, PubkeyHashMap, Reserve, AllOracleAccounts } from '../lib';
3
3
  import { VaultConfigFieldKind } from '../idl_codegen_kamino_vault/types';
4
4
  import { VaultState } from '../idl_codegen_kamino_vault/accounts';
5
5
  import Decimal from 'decimal.js';
@@ -302,18 +302,20 @@ export declare class KaminoVaultClient {
302
302
  /**
303
303
  * This will load the onchain state for all the reserves that the vaults have allocations for, deduplicating the reserves
304
304
  * @param vaults - the vault states to load reserves for
305
+ * @param oracleAccounts
305
306
  * @returns a hashmap from each reserve pubkey to the reserve state
306
307
  */
307
- loadVaultsReserves(vaults: VaultState[]): Promise<PubkeyHashMap<PublicKey, KaminoReserve>>;
308
+ loadVaultsReserves(vaults: VaultState[], oracleAccounts?: AllOracleAccounts): Promise<PubkeyHashMap<PublicKey, KaminoReserve>>;
308
309
  /**
309
310
  * This will retrieve all the tokens that can be used as collateral by the users who borrow the token in the vault alongside details about the min and max loan to value ratio
310
311
  * @param vaultState - the vault state to load reserves for
311
312
  * @param [slot] - the slot for which to retrieve the vault collaterals for. Optional. If not provided the function will fetch the current slot
312
313
  * @param [vaultReservesMap] - hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
313
314
  * @param [kaminoMarkets] - a list of all the kamino markets. Optional. If provided the function will be significantly faster as it will not have to fetch the markets
315
+ * @param oracleAccounts
314
316
  * @returns a hashmap from each reserve pubkey to the market overview of the collaterals that can be used and the min and max loan to value ratio in that market
315
317
  */
316
- getVaultCollaterals(vaultState: VaultState, slot: number, vaultReservesMap?: PubkeyHashMap<PublicKey, KaminoReserve>, kaminoMarkets?: KaminoMarket[]): Promise<PubkeyHashMap<PublicKey, MarketOverview>>;
318
+ getVaultCollaterals(vaultState: VaultState, slot: number, vaultReservesMap?: PubkeyHashMap<PublicKey, KaminoReserve>, kaminoMarkets?: KaminoMarket[], oracleAccounts?: AllOracleAccounts): Promise<PubkeyHashMap<PublicKey, MarketOverview>>;
317
319
  /**
318
320
  * This will return an VaultHoldings object which contains the amount available (uninvested) in vault, total amount invested in reseves and a breakdown of the amount invested in each reserve
319
321
  * @param vault - the kamino vault to get available liquidity to withdraw for