@kamino-finance/klend-sdk 5.10.12 → 5.10.14

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 (151) hide show
  1. package/README.md +32 -0
  2. package/dist/classes/action.d.ts.map +1 -1
  3. package/dist/classes/action.js +8 -6
  4. package/dist/classes/action.js.map +1 -1
  5. package/dist/classes/manager.d.ts +20 -17
  6. package/dist/classes/manager.d.ts.map +1 -1
  7. package/dist/classes/manager.js +28 -35
  8. package/dist/classes/manager.js.map +1 -1
  9. package/dist/classes/obligation.d.ts +1 -0
  10. package/dist/classes/obligation.d.ts.map +1 -1
  11. package/dist/classes/obligation.js +23 -1
  12. package/dist/classes/obligation.js.map +1 -1
  13. package/dist/classes/reserve.js +10 -10
  14. package/dist/classes/reserve.js.map +1 -1
  15. package/dist/classes/types_utils.d.ts +5 -2
  16. package/dist/classes/types_utils.d.ts.map +1 -1
  17. package/dist/classes/types_utils.js +31 -2
  18. package/dist/classes/types_utils.js.map +1 -1
  19. package/dist/classes/utils.d.ts +8 -0
  20. package/dist/classes/utils.d.ts.map +1 -1
  21. package/dist/classes/utils.js +48 -0
  22. package/dist/classes/utils.js.map +1 -1
  23. package/dist/classes/vault.d.ts +24 -19
  24. package/dist/classes/vault.d.ts.map +1 -1
  25. package/dist/classes/vault.js +80 -47
  26. package/dist/classes/vault.js.map +1 -1
  27. package/dist/client_kamino_manager.js +4 -4
  28. package/dist/client_kamino_manager.js.map +1 -1
  29. package/dist/idl.json +1137 -132
  30. package/dist/idl_codegen/accounts/LendingMarket.d.ts +6 -6
  31. package/dist/idl_codegen/accounts/LendingMarket.d.ts.map +1 -1
  32. package/dist/idl_codegen/accounts/LendingMarket.js +7 -7
  33. package/dist/idl_codegen/accounts/LendingMarket.js.map +1 -1
  34. package/dist/idl_codegen/errors/custom.d.ts +15 -7
  35. package/dist/idl_codegen/errors/custom.d.ts.map +1 -1
  36. package/dist/idl_codegen/errors/custom.js +28 -14
  37. package/dist/idl_codegen/errors/custom.js.map +1 -1
  38. package/dist/idl_codegen/instructions/borrowObligationLiquidityV2.d.ts +29 -0
  39. package/dist/idl_codegen/instructions/borrowObligationLiquidityV2.d.ts.map +1 -0
  40. package/dist/idl_codegen/instructions/borrowObligationLiquidityV2.js +125 -0
  41. package/dist/idl_codegen/instructions/borrowObligationLiquidityV2.js.map +1 -0
  42. package/dist/idl_codegen/instructions/depositObligationCollateralV2.d.ts +26 -0
  43. package/dist/idl_codegen/instructions/depositObligationCollateralV2.d.ts.map +1 -0
  44. package/dist/idl_codegen/instructions/depositObligationCollateralV2.js +110 -0
  45. package/dist/idl_codegen/instructions/depositObligationCollateralV2.js.map +1 -0
  46. package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateralV2.d.ts +31 -0
  47. package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateralV2.d.ts.map +1 -0
  48. package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateralV2.js +135 -0
  49. package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateralV2.js.map +1 -0
  50. package/dist/idl_codegen/instructions/index.d.ts +18 -0
  51. package/dist/idl_codegen/instructions/index.d.ts.map +1 -1
  52. package/dist/idl_codegen/instructions/index.js +19 -1
  53. package/dist/idl_codegen/instructions/index.js.map +1 -1
  54. package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateralV2.d.ts +43 -0
  55. package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateralV2.d.ts.map +1 -0
  56. package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateralV2.js +181 -0
  57. package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateralV2.js.map +1 -0
  58. package/dist/idl_codegen/instructions/refreshObligationFarmsForReserve.d.ts +8 -6
  59. package/dist/idl_codegen/instructions/refreshObligationFarmsForReserve.d.ts.map +1 -1
  60. package/dist/idl_codegen/instructions/refreshObligationFarmsForReserve.js +23 -7
  61. package/dist/idl_codegen/instructions/refreshObligationFarmsForReserve.js.map +1 -1
  62. package/dist/idl_codegen/instructions/repayAndWithdrawAndRedeemV2.d.ts +49 -0
  63. package/dist/idl_codegen/instructions/repayAndWithdrawAndRedeemV2.d.ts.map +1 -0
  64. package/dist/idl_codegen/instructions/repayAndWithdrawAndRedeemV2.js +205 -0
  65. package/dist/idl_codegen/instructions/repayAndWithdrawAndRedeemV2.js.map +1 -0
  66. package/dist/idl_codegen/instructions/repayObligationLiquidityV2.d.ts +27 -0
  67. package/dist/idl_codegen/instructions/repayObligationLiquidityV2.d.ts.map +1 -0
  68. package/dist/idl_codegen/instructions/repayObligationLiquidityV2.js +111 -0
  69. package/dist/idl_codegen/instructions/repayObligationLiquidityV2.js.map +1 -0
  70. package/dist/idl_codegen/instructions/socializeLossV2.d.ts +23 -0
  71. package/dist/idl_codegen/instructions/socializeLossV2.d.ts.map +1 -0
  72. package/dist/idl_codegen/instructions/socializeLossV2.js +95 -0
  73. package/dist/idl_codegen/instructions/socializeLossV2.js.map +1 -0
  74. package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateralV2.d.ts +31 -0
  75. package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateralV2.d.ts.map +1 -0
  76. package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateralV2.js +135 -0
  77. package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateralV2.js.map +1 -0
  78. package/dist/idl_codegen/instructions/withdrawObligationCollateralV2.d.ts +26 -0
  79. package/dist/idl_codegen/instructions/withdrawObligationCollateralV2.d.ts.map +1 -0
  80. package/dist/idl_codegen/instructions/withdrawObligationCollateralV2.js +110 -0
  81. package/dist/idl_codegen/instructions/withdrawObligationCollateralV2.js.map +1 -0
  82. package/dist/idl_codegen/types/ReserveConfig.d.ts +8 -5
  83. package/dist/idl_codegen/types/ReserveConfig.d.ts.map +1 -1
  84. package/dist/idl_codegen/types/ReserveConfig.js +9 -8
  85. package/dist/idl_codegen/types/ReserveConfig.js.map +1 -1
  86. package/dist/idl_codegen/types/UpdateConfigMode.d.ts +7 -7
  87. package/dist/idl_codegen/types/UpdateConfigMode.d.ts.map +1 -1
  88. package/dist/idl_codegen/types/UpdateConfigMode.js +12 -12
  89. package/dist/idl_codegen/types/UpdateConfigMode.js.map +1 -1
  90. package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts +7 -7
  91. package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts.map +1 -1
  92. package/dist/idl_codegen/types/UpdateLendingMarketMode.js +12 -12
  93. package/dist/idl_codegen/types/UpdateLendingMarketMode.js.map +1 -1
  94. package/dist/idl_codegen/types/index.d.ts +4 -4
  95. package/dist/idl_codegen/types/index.d.ts.map +1 -1
  96. package/dist/idl_codegen_kamino_vault/programId.d.ts +2 -1
  97. package/dist/idl_codegen_kamino_vault/programId.d.ts.map +1 -1
  98. package/dist/idl_codegen_kamino_vault/programId.js +5 -1
  99. package/dist/idl_codegen_kamino_vault/programId.js.map +1 -1
  100. package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
  101. package/dist/pyth/accounts/index.d.ts +1 -1
  102. package/dist/pyth/accounts/index.d.ts.map +1 -1
  103. package/dist/utils/ObligationType.d.ts +10 -4
  104. package/dist/utils/ObligationType.d.ts.map +1 -1
  105. package/dist/utils/ObligationType.js +36 -11
  106. package/dist/utils/ObligationType.js.map +1 -1
  107. package/dist/utils/accountListing.d.ts +3 -1
  108. package/dist/utils/accountListing.d.ts.map +1 -1
  109. package/dist/utils/accountListing.js +40 -0
  110. package/dist/utils/accountListing.js.map +1 -1
  111. package/dist/utils/constants.d.ts +1 -0
  112. package/dist/utils/constants.d.ts.map +1 -1
  113. package/dist/utils/constants.js +2 -1
  114. package/dist/utils/constants.js.map +1 -1
  115. package/dist/utils/managerTypes.js +1 -1
  116. package/dist/utils/managerTypes.js.map +1 -1
  117. package/package.json +1 -1
  118. package/src/classes/action.ts +8 -6
  119. package/src/classes/manager.ts +34 -38
  120. package/src/classes/obligation.ts +43 -3
  121. package/src/classes/reserve.ts +12 -12
  122. package/src/classes/types_utils.ts +33 -3
  123. package/src/classes/utils.ts +50 -1
  124. package/src/classes/vault.ts +104 -57
  125. package/src/client.ts +22 -0
  126. package/src/client_kamino_manager.ts +4 -4
  127. package/src/idl.json +1137 -132
  128. package/src/idl_codegen/accounts/LendingMarket.ts +11 -11
  129. package/src/idl_codegen/errors/custom.ts +26 -12
  130. package/src/idl_codegen/instructions/borrowObligationLiquidityV2.ts +124 -0
  131. package/src/idl_codegen/instructions/depositObligationCollateralV2.ts +106 -0
  132. package/src/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateralV2.ts +136 -0
  133. package/src/idl_codegen/instructions/index.ts +45 -0
  134. package/src/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateralV2.ts +195 -0
  135. package/src/idl_codegen/instructions/refreshObligationFarmsForReserve.ts +31 -13
  136. package/src/idl_codegen/instructions/repayAndWithdrawAndRedeemV2.ts +239 -0
  137. package/src/idl_codegen/instructions/repayObligationLiquidityV2.ts +108 -0
  138. package/src/idl_codegen/instructions/socializeLossV2.ts +88 -0
  139. package/src/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateralV2.ts +136 -0
  140. package/src/idl_codegen/instructions/withdrawObligationCollateralV2.ts +106 -0
  141. package/src/idl_codegen/types/ReserveConfig.ts +17 -14
  142. package/src/idl_codegen/types/UpdateConfigMode.ts +13 -13
  143. package/src/idl_codegen/types/UpdateLendingMarketMode.ts +13 -13
  144. package/src/idl_codegen/types/index.ts +4 -4
  145. package/src/idl_codegen_kamino_vault/programId.ts +5 -1
  146. package/src/lending_operations/swap_collateral_operations.ts +1 -1
  147. package/src/pyth/accounts/index.ts +1 -1
  148. package/src/utils/ObligationType.ts +41 -12
  149. package/src/utils/accountListing.ts +43 -1
  150. package/src/utils/constants.ts +2 -0
  151. package/src/utils/managerTypes.ts +1 -1
@@ -48,7 +48,7 @@ export declare class KaminoVaultClient {
48
48
  * @param vault the vault to update
49
49
  * @param mode the field to update (based on VaultConfigFieldKind enum)
50
50
  * @param value the value to update the field with
51
- * @param [signer] the signer of the transaction. Optional. If not provided the admin of the vault will be used. It should be used when changing the admin of the vault if we want to batch multiple ixs in the same tx
51
+ * @param [signer] the signer of the transaction. Optional. If not provided the admin of the vault will be used. It should be used when changing the admin of the vault if we want to build or batch multiple ixs in the same tx
52
52
  * @returns a struct that contains the instruction to update the field and an optional list of instructions to update the lookup table
53
53
  */
54
54
  updateVaultConfigIxs(vault: KaminoVault, mode: VaultConfigFieldKind, value: string, signer?: PublicKey): Promise<UpdateVaultConfigIxs>;
@@ -57,7 +57,7 @@ export declare class KaminoVaultClient {
57
57
  * @param farm - the farm where the vault shares can be staked
58
58
  * @param [errorOnOverride] - if true, the function will throw an error if the vault already has a farm. If false, it will override the farm
59
59
  */
60
- setVaultFarm(vault: KaminoVault, farm: PublicKey, errorOnOverride?: boolean): Promise<UpdateVaultConfigIxs>;
60
+ setVaultFarmIxs(vault: KaminoVault, farm: PublicKey, errorOnOverride?: boolean): Promise<UpdateVaultConfigIxs>;
61
61
  /**
62
62
  * This method updates the vault config for a vault that
63
63
  * @param vault - address of vault to be updated
@@ -139,9 +139,9 @@ export declare class KaminoVaultClient {
139
139
  encodeVaultName(token: string): Uint8Array;
140
140
  /**Convert an u8 array to a string */
141
141
  decodeVaultName(token: number[]): string;
142
- private withdrawIxn;
143
- private withdrawFromAvailableIxn;
144
- private withdrawPendingFeesIxn;
142
+ private withdrawIx;
143
+ private withdrawFromAvailableIx;
144
+ private withdrawPendingFeesIx;
145
145
  /**
146
146
  * Sync a vault for lookup table; create and set the LUT for the vault if needed and fill it with all the needed accounts
147
147
  * @param vault the vault to sync and set the LUT for if needed
@@ -234,12 +234,6 @@ export declare class KaminoVaultClient {
234
234
  * @returns an HashMap of reserves (key) with the amount available to withdraw for each (value)
235
235
  */
236
236
  private getReserveAllocationAvailableLiquidityToWithdraw;
237
- /**
238
- * This will get the list of all reserve pubkeys that the vault has allocations for
239
- * @param vault - the vault state to load reserves for
240
- * @returns a hashmap from each reserve pubkey to the reserve state
241
- */
242
- getAllVaultReserves(vault: VaultState): PublicKey[];
243
237
  /**
244
238
  * This will get the list of all reserve pubkeys that the vault has allocations for ex
245
239
  * @param vault - the vault state to load reserves for
@@ -266,9 +260,10 @@ export declare class KaminoVaultClient {
266
260
  * @param vault - the kamino vault to get available liquidity to withdraw for
267
261
  * @param [slot] - the slot for which to calculate the holdings. Optional. If not provided the function will fetch the current slot
268
262
  * @param [vaultReserves] - a 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
263
+ * @param [currentSlot] - the latest confirmed slot. Optional. If provided the function will be faster as it will not have to fetch the latest slot
269
264
  * @returns an VaultHoldings object representing the amount available (uninvested) in vault, total amount invested in reseves and a breakdown of the amount invested in each reserve
270
265
  */
271
- getVaultHoldings(vault: VaultState, slot?: number, vaultReserves?: PubkeyHashMap<PublicKey, KaminoReserve>): Promise<VaultHoldings>;
266
+ getVaultHoldings(vault: VaultState, slot?: number, vaultReserves?: PubkeyHashMap<PublicKey, KaminoReserve>, currentSlot?: number): Promise<VaultHoldings>;
272
267
  /**
273
268
  * This will return an VaultOverview object that encapsulates all the information about the vault, including the holdings, reserves details, theoretical APY, utilization ratio and total borrowed amount
274
269
  * @param vault - the kamino vault to get available liquidity to withdraw for
@@ -314,11 +309,11 @@ export declare class KaminoVaultClient {
314
309
  */
315
310
  getVaultTheoreticalAPY(vault: VaultState, slot: number, vaultReservesMap?: PubkeyHashMap<PublicKey, KaminoReserve>): Promise<Decimal>;
316
311
  /**
317
- * Retrive the total amount of interest earned by the vault since its inception, including what was charged as fees
312
+ * Retrive the total amount of interest earned by the vault since its inception, up to the last interaction with the vault on chain, including what was charged as fees
318
313
  * @param vaultState the kamino vault state to get total net yield for
319
- * @returns a Decimal representing the net number of tokens earned by the vault since its inception
314
+ * @returns a struct containing a Decimal representing the net number of tokens earned by the vault since its inception and the timestamp of the last fee charge
320
315
  */
321
- getVaultCumulativeInterest(vaultState: VaultState): Promise<Decimal>;
316
+ getVaultCumulativeInterest(vaultState: VaultState): Promise<VaultCumulativeInterestWithTimestamp>;
322
317
  /**
323
318
  * Simulate the current holdings of the vault and the earned interest
324
319
  * @param vaultState the kamino vault state to get simulated holdings and earnings for
@@ -327,7 +322,7 @@ export declare class KaminoVaultClient {
327
322
  * @param [previousTotalAUM] - the previous AUM of the vault to compute the earned interest relative to this value. Optional. If not provided the function will estimate the total AUM at the slot of the last state update on chain
328
323
  * @returns a struct of simulated vault holdings and earned interest
329
324
  */
330
- calculateSimulatedHoldingsWithInterest(vaultState: VaultState, vaultReservesMap?: PubkeyHashMap<PublicKey, KaminoReserve>, currentSlot?: number, previousTotalAUM?: Decimal): Promise<SimulatedVaultHoldingsWithEarnedInterest>;
325
+ calculateSimulatedHoldingsWithInterest(vaultState: VaultState, vaultReservesMap?: PubkeyHashMap<PublicKey, KaminoReserve>, currentSlot?: number, previousNetAUM?: Decimal): Promise<SimulatedVaultHoldingsWithEarnedInterest>;
331
326
  /**
332
327
  * Simulate the current holdings and compute the fees that would be charged
333
328
  * @param vaultState the kamino vault state to get simulated fees for
@@ -391,8 +386,12 @@ export type VaultHoldings = {
391
386
  available: Decimal;
392
387
  invested: Decimal;
393
388
  investedInReserves: PubkeyHashMap<PublicKey, Decimal>;
394
- total: Decimal;
389
+ pendingFees: Decimal;
390
+ totalAUMIncludingFees: Decimal;
395
391
  };
392
+ /**
393
+ * earnedInterest represents the interest earned from now until the slot provided in the future
394
+ */
396
395
  export type SimulatedVaultHoldingsWithEarnedInterest = {
397
396
  holdings: VaultHoldings;
398
397
  earnedInterest: Decimal;
@@ -402,13 +401,15 @@ export type VaultHoldingsWithUSDValue = {
402
401
  availableUSD: Decimal;
403
402
  investedUSD: Decimal;
404
403
  investedInReservesUSD: PubkeyHashMap<PublicKey, Decimal>;
405
- totalUSD: Decimal;
404
+ totalUSDIncludingFees: Decimal;
405
+ pendingFeesUSD: Decimal;
406
406
  };
407
407
  export type ReserveOverview = {
408
408
  supplyAPY: Decimal;
409
409
  utilizationRatio: Decimal;
410
410
  liquidationThresholdPct: Decimal;
411
- borrowedAmount: Decimal;
411
+ totalBorrowedAmount: Decimal;
412
+ amountBorrowedFromSupplied: Decimal;
412
413
  suppliedAmount: Decimal;
413
414
  market: PublicKey;
414
415
  };
@@ -444,4 +445,8 @@ export type VaultFees = {
444
445
  managementFee: Decimal;
445
446
  performanceFee: Decimal;
446
447
  };
448
+ export type VaultCumulativeInterestWithTimestamp = {
449
+ cumulativeInterest: Decimal;
450
+ timestamp: number;
451
+ };
447
452
  //# sourceMappingURL=vault.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../../src/classes/vault.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../../src/classes/vault.ts"],"names":[],"mappings":"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"}
@@ -189,7 +189,7 @@ class KaminoVaultClient {
189
189
  * @param vault the vault to update
190
190
  * @param mode the field to update (based on VaultConfigFieldKind enum)
191
191
  * @param value the value to update the field with
192
- * @param [signer] the signer of the transaction. Optional. If not provided the admin of the vault will be used. It should be used when changing the admin of the vault if we want to batch multiple ixs in the same tx
192
+ * @param [signer] the signer of the transaction. Optional. If not provided the admin of the vault will be used. It should be used when changing the admin of the vault if we want to build or batch multiple ixs in the same tx
193
193
  * @returns a struct that contains the instruction to update the field and an optional list of instructions to update the lookup table
194
194
  */
195
195
  async updateVaultConfigIxs(vault, mode, value, signer) {
@@ -270,7 +270,7 @@ class KaminoVaultClient {
270
270
  * @param farm - the farm where the vault shares can be staked
271
271
  * @param [errorOnOverride] - if true, the function will throw an error if the vault already has a farm. If false, it will override the farm
272
272
  */
273
- async setVaultFarm(vault, farm, errorOnOverride = true) {
273
+ async setVaultFarmIxs(vault, farm, errorOnOverride = true) {
274
274
  const vaultHasFarm = await vault.hasFarm(this.getConnection());
275
275
  if (vaultHasFarm && errorOnOverride) {
276
276
  throw new Error('Vault already has a farm, if you want to override it set errorOnOverride to false');
@@ -402,7 +402,7 @@ class KaminoVaultClient {
402
402
  }
403
403
  const reserveState = reserveStates[index];
404
404
  const marketAddress = reserveState.lendingMarket;
405
- return this.withdrawPendingFeesIxn(vault, vaultState, marketAddress, { address: reserve, state: reserveState }, adminTokenAta);
405
+ return this.withdrawPendingFeesIx(vault, vaultState, marketAddress, { address: reserve, state: reserveState }, adminTokenAta);
406
406
  }));
407
407
  return [createAtaIx, ...withdrawIxns];
408
408
  }
@@ -563,7 +563,7 @@ class KaminoVaultClient {
563
563
  },
564
564
  ]);
565
565
  const shareLamportsToWithdraw = (0, kliquidity_sdk_1.collToLamportsDecimal)(shareAmount, vaultState.sharesMintDecimals.toNumber());
566
- const withdrawFromAvailableIxn = await this.withdrawFromAvailableIxn(user, kaminoVault, vaultState, userSharesAta, userTokenAta, shareLamportsToWithdraw);
566
+ const withdrawFromAvailableIxn = await this.withdrawFromAvailableIx(user, kaminoVault, vaultState, userSharesAta, userTokenAta, shareLamportsToWithdraw);
567
567
  return [createAtaIx, withdrawFromAvailableIxn];
568
568
  }
569
569
  async wihdrdrawWithReserveIxns(user, vault, shareAmount, slot, vaultReservesMap) {
@@ -628,7 +628,7 @@ class KaminoVaultClient {
628
628
  if (isLastWithdraw) {
629
629
  sharesToWithdraw = reserveWithTokens.shares;
630
630
  }
631
- const withdrawFromReserveIx = this.withdrawIxn(user, vault, vaultState, marketAddress, { address: reserveWithTokens.reserve, state: reserveState.state }, userSharesAta, userTokenAta, sharesToWithdraw, vaultReservesState);
631
+ const withdrawFromReserveIx = this.withdrawIx(user, vault, vaultState, marketAddress, { address: reserveWithTokens.reserve, state: reserveState.state }, userSharesAta, userTokenAta, sharesToWithdraw, vaultReservesState);
632
632
  withdrawIxns.push(withdrawFromReserveIx);
633
633
  }
634
634
  return withdrawIxns;
@@ -641,7 +641,7 @@ class KaminoVaultClient {
641
641
  */
642
642
  async investAllReservesIxs(payer, vault) {
643
643
  const vaultState = await vault.getState(this.getConnection());
644
- const allReserves = this.getAllVaultReserves(vaultState);
644
+ const allReserves = this.getVaultReserves(vaultState);
645
645
  if (allReserves.length === 0) {
646
646
  throw new Error('No reserves found for the vault, please select at least one reserve for the vault');
647
647
  }
@@ -771,7 +771,7 @@ class KaminoVaultClient {
771
771
  decodeVaultName(token) {
772
772
  return (0, utils_1.decodeVaultName)(token);
773
773
  }
774
- withdrawIxn(user, vault, vaultState, marketAddress, reserve, userSharesAta, userTokenAta, shareAmountLamports, vaultReservesState) {
774
+ withdrawIx(user, vault, vaultState, marketAddress, reserve, userSharesAta, userTokenAta, shareAmountLamports, vaultReservesState) {
775
775
  const lendingMarketAuth = (0, utils_2.lendingMarketAuthPda)(marketAddress, this._kaminoLendProgramId)[0];
776
776
  const withdrawAccounts = {
777
777
  withdrawFromAvailable: {
@@ -822,7 +822,7 @@ class KaminoVaultClient {
822
822
  withdrawIxn.keys = withdrawIxn.keys.concat(vaultReservesLendingMarkets);
823
823
  return withdrawIxn;
824
824
  }
825
- async withdrawFromAvailableIxn(user, vault, vaultState, userSharesAta, userTokenAta, shareAmountLamports) {
825
+ async withdrawFromAvailableIx(user, vault, vaultState, userSharesAta, userTokenAta, shareAmountLamports) {
826
826
  const withdrawFromAvailableAccounts = {
827
827
  user,
828
828
  vaultState: vault.address,
@@ -841,7 +841,7 @@ class KaminoVaultClient {
841
841
  };
842
842
  return (0, instructions_1.withdrawFromAvailable)(withdrawFromAvailableArgs, withdrawFromAvailableAccounts, this._kaminoVaultProgramId);
843
843
  }
844
- async withdrawPendingFeesIxn(vault, vaultState, marketAddress, reserve, adminTokenAta) {
844
+ async withdrawPendingFeesIx(vault, vaultState, marketAddress, reserve, adminTokenAta) {
845
845
  const lendingMarketAuth = (0, utils_2.lendingMarketAuthPda)(marketAddress, this._kaminoLendProgramId)[0];
846
846
  const withdrawPendingFeesAccounts = {
847
847
  adminAuthority: vaultState.adminAuthority,
@@ -1006,13 +1006,13 @@ class KaminoVaultClient {
1006
1006
  async getVaultComputedReservesAllocation(vaultState) {
1007
1007
  const holdings = await this.getVaultHoldings(vaultState);
1008
1008
  const initialVaultAllocations = this.getVaultAllocations(vaultState);
1009
- const allReserves = this.getAllVaultReserves(vaultState);
1009
+ const allReserves = this.getVaultReserves(vaultState);
1010
1010
  let totalAllocation = new decimal_js_1.default(0);
1011
1011
  initialVaultAllocations.forEach((allocation) => {
1012
1012
  totalAllocation = totalAllocation.add(allocation.targetWeight);
1013
1013
  });
1014
1014
  const expectedHoldingsDistribution = new lib_1.PubkeyHashMap();
1015
- let totalLeftToInvest = holdings.total;
1015
+ let totalLeftToInvest = holdings.totalAUMIncludingFees.sub(holdings.pendingFees);
1016
1016
  let currentAllocationSum = totalAllocation;
1017
1017
  const ZERO = new decimal_js_1.default(0);
1018
1018
  while (totalLeftToInvest.gt(ZERO)) {
@@ -1150,7 +1150,8 @@ class KaminoVaultClient {
1150
1150
  const vaultReservesState = vaultReservesMap ? vaultReservesMap : await this.loadVaultReserves(vaultState);
1151
1151
  const sharesDecimal = (0, lib_1.lamportsToDecimal)(vaultState.sharesIssued.toString(), vaultState.sharesMintDecimals.toString());
1152
1152
  const holdings = await this.getVaultHoldings(vaultState, slot, vaultReservesState);
1153
- return holdings.total.div(sharesDecimal);
1153
+ const netAUM = holdings.totalAUMIncludingFees.sub(holdings.pendingFees);
1154
+ return netAUM.div(sharesDecimal);
1154
1155
  }
1155
1156
  /**
1156
1157
  * This method calculates the token per share value. This will always change based on interest earned from the vault, but calculating it requires a bunch of rpc requests. Caching this for a short duration would be optimal
@@ -1207,11 +1208,16 @@ class KaminoVaultClient {
1207
1208
  * @returns vault amount supplied in reserve in decimal
1208
1209
  */
1209
1210
  getSuppliedInReserve(vaultState, slot, reserve) {
1210
- const reserveCollExchangeRate = reserve.getEstimatedCollateralExchangeRate(slot, new fraction_1.Fraction(reserve.state.liquidity.absoluteReferralRateSf)
1211
- .toDecimal()
1212
- .div(reserve.state.config.protocolTakeRatePct / 100)
1213
- .floor()
1214
- .toNumber());
1211
+ let referralFeeBps = 0;
1212
+ const denominator = reserve.state.config.protocolTakeRatePct / 100;
1213
+ if (denominator > 0) {
1214
+ referralFeeBps = new fraction_1.Fraction(reserve.state.liquidity.absoluteReferralRateSf)
1215
+ .toDecimal()
1216
+ .div(denominator)
1217
+ .floor()
1218
+ .toNumber();
1219
+ }
1220
+ const reserveCollExchangeRate = reserve.getEstimatedCollateralExchangeRate(slot, referralFeeBps);
1215
1221
  const reserveAllocation = vaultState.vaultAllocationStrategy.find((allocation) => allocation.reserve.equals(reserve.address));
1216
1222
  if (!reserveAllocation) {
1217
1223
  throw new Error(`Reserve ${reserve.address.toBase58()} not found in vault allocation strategy`);
@@ -1291,18 +1297,6 @@ class KaminoVaultClient {
1291
1297
  });
1292
1298
  return reserveAllocationAvailableLiquidityToWithdraw;
1293
1299
  }
1294
- /**
1295
- * This will get the list of all reserve pubkeys that the vault has allocations for
1296
- * @param vault - the vault state to load reserves for
1297
- * @returns a hashmap from each reserve pubkey to the reserve state
1298
- */
1299
- getAllVaultReserves(vault) {
1300
- return vault.vaultAllocationStrategy
1301
- .map((vaultAllocation) => vaultAllocation.reserve)
1302
- .filter((reserve) => {
1303
- return !reserve.equals(web3_js_1.PublicKey.default);
1304
- });
1305
- }
1306
1300
  /**
1307
1301
  * This will get the list of all reserve pubkeys that the vault has allocations for ex
1308
1302
  * @param vault - the vault state to load reserves for
@@ -1403,15 +1397,18 @@ class KaminoVaultClient {
1403
1397
  * @param vault - the kamino vault to get available liquidity to withdraw for
1404
1398
  * @param [slot] - the slot for which to calculate the holdings. Optional. If not provided the function will fetch the current slot
1405
1399
  * @param [vaultReserves] - a 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
1400
+ * @param [currentSlot] - the latest confirmed slot. Optional. If provided the function will be faster as it will not have to fetch the latest slot
1406
1401
  * @returns an VaultHoldings object representing the amount available (uninvested) in vault, total amount invested in reseves and a breakdown of the amount invested in each reserve
1407
1402
  */
1408
- async getVaultHoldings(vault, slot, vaultReserves) {
1403
+ async getVaultHoldings(vault, slot, vaultReserves, currentSlot) {
1409
1404
  const vaultHoldings = {
1410
1405
  available: new decimal_js_1.default(vault.tokenAvailable.toString()),
1411
1406
  invested: new decimal_js_1.default(0),
1412
1407
  investedInReserves: new lib_1.PubkeyHashMap(),
1413
- total: new decimal_js_1.default(0),
1408
+ totalAUMIncludingFees: new decimal_js_1.default(0),
1409
+ pendingFees: new decimal_js_1.default(0),
1414
1410
  };
1411
+ const currentSlotToUse = currentSlot ? currentSlot : await this.getConnection().getSlot('confirmed');
1415
1412
  const vaultReservesState = vaultReserves ? vaultReserves : await this.loadVaultReserves(vault);
1416
1413
  const decimals = new decimal_js_1.default(vault.tokenMintDecimals.toString());
1417
1414
  vault.vaultAllocationStrategy.forEach((allocationStrategy) => {
@@ -1433,13 +1430,38 @@ class KaminoVaultClient {
1433
1430
  vaultHoldings.invested = vaultHoldings.invested.add(reserveAllocationLiquidityAmount);
1434
1431
  vaultHoldings.investedInReserves.set(allocationStrategy.reserve, (0, lib_1.lamportsToDecimal)(reserveAllocationLiquidityAmount, decimals));
1435
1432
  });
1433
+ const currentPendingFees = new fraction_1.Fraction(vault.pendingFeesSf).toDecimal();
1434
+ let totalPendingFees = currentPendingFees;
1435
+ // if there is a slot passed and it is in the future we need to estimate the fees from current time until that moment
1436
+ if (slot && slot > currentSlotToUse) {
1437
+ const currentTimestampSec = new Date().getTime() / 1000;
1438
+ const timeAtPassedSlot = currentTimestampSec + (slot - currentSlotToUse) * this.recentSlotDurationMs;
1439
+ const timeUntilPassedSlot = timeAtPassedSlot - currentTimestampSec;
1440
+ const managementFeeFactor = new decimal_js_1.default(timeUntilPassedSlot)
1441
+ .mul(new decimal_js_1.default(vault.managementFeeBps.toString()))
1442
+ .div(new decimal_js_1.default(utils_2.SECONDS_PER_YEAR))
1443
+ .div(CreationParameters_1.FullBPSDecimal);
1444
+ const prevAUM = (0, lib_1.lamportsToDecimal)(new fraction_1.Fraction(vault.prevAumSf).toDecimal(), vault.tokenMintDecimals.toNumber());
1445
+ const simulatedMgmtFee = prevAUM.mul(managementFeeFactor);
1446
+ totalPendingFees = totalPendingFees.add(simulatedMgmtFee);
1447
+ const simulatedEarnedInterest = vaultHoldings.invested
1448
+ .add(vaultHoldings.available)
1449
+ .sub(prevAUM)
1450
+ .sub(simulatedMgmtFee);
1451
+ const simulatedPerformanceFee = simulatedEarnedInterest
1452
+ .mul(new decimal_js_1.default(vault.performanceFeeBps.toString()))
1453
+ .div(CreationParameters_1.FullBPSDecimal);
1454
+ totalPendingFees = totalPendingFees.add(simulatedPerformanceFee);
1455
+ }
1436
1456
  const totalAvailableDecimal = (0, lib_1.lamportsToDecimal)(vaultHoldings.available, decimals);
1437
1457
  const totalInvestedDecimal = (0, lib_1.lamportsToDecimal)(vaultHoldings.invested, decimals);
1458
+ const pendingFees = (0, lib_1.lamportsToDecimal)(totalPendingFees, decimals);
1438
1459
  return {
1439
1460
  available: totalAvailableDecimal,
1440
1461
  invested: totalInvestedDecimal,
1441
1462
  investedInReserves: vaultHoldings.investedInReserves,
1442
- total: totalAvailableDecimal.add(totalInvestedDecimal),
1463
+ totalAUMIncludingFees: totalAvailableDecimal.add(totalInvestedDecimal),
1464
+ pendingFees: pendingFees,
1443
1465
  };
1444
1466
  }
1445
1467
  /**
@@ -1462,7 +1484,8 @@ class KaminoVaultClient {
1462
1484
  availableUSD: holdings.available.mul(price),
1463
1485
  investedUSD: holdings.invested.mul(price),
1464
1486
  investedInReservesUSD: investedInReservesUSD,
1465
- totalUSD: holdings.total.mul(price),
1487
+ totalUSDIncludingFees: holdings.totalAUMIncludingFees.mul(price),
1488
+ pendingFeesUSD: holdings.pendingFees.mul(price),
1466
1489
  };
1467
1490
  }
1468
1491
  /**
@@ -1556,11 +1579,13 @@ class KaminoVaultClient {
1556
1579
  throw new Error(`Reserve ${allocationStrategy.reserve.toBase58()} not found`);
1557
1580
  }
1558
1581
  const suppliedInReserve = this.getSuppliedInReserve(vault, slot, reserve);
1582
+ const utilizationRatio = new decimal_js_1.default(reserve.getEstimatedUtilizationRatio(slot, 0));
1559
1583
  const reserveOverview = {
1560
1584
  supplyAPY: new decimal_js_1.default(reserve.totalSupplyAPY(slot)),
1561
- utilizationRatio: new decimal_js_1.default(reserve.getEstimatedUtilizationRatio(slot, 0)),
1585
+ utilizationRatio: utilizationRatio,
1562
1586
  liquidationThresholdPct: new decimal_js_1.default(reserve.state.config.liquidationThresholdPct),
1563
- borrowedAmount: reserve.getBorrowedAmount(),
1587
+ totalBorrowedAmount: reserve.getBorrowedAmount(),
1588
+ amountBorrowedFromSupplied: suppliedInReserve.mul(utilizationRatio),
1564
1589
  market: reserve.state.lendingMarket,
1565
1590
  suppliedAmount: suppliedInReserve,
1566
1591
  };
@@ -1596,16 +1621,24 @@ class KaminoVaultClient {
1596
1621
  if (totalWeights.isZero()) {
1597
1622
  return new decimal_js_1.default(0);
1598
1623
  }
1599
- return totalAPY.div(totalWeights);
1624
+ const grossAPY = totalAPY.div(totalWeights);
1625
+ const netAPY = grossAPY
1626
+ .mul(new decimal_js_1.default(1).sub(new decimal_js_1.default(vault.performanceFeeBps.toString()).div(CreationParameters_1.FullBPSDecimal)))
1627
+ .mul(new decimal_js_1.default(1).sub(new decimal_js_1.default(vault.managementFeeBps.toString()).div(CreationParameters_1.FullBPSDecimal)));
1628
+ return netAPY;
1600
1629
  }
1601
1630
  /**
1602
- * Retrive the total amount of interest earned by the vault since its inception, including what was charged as fees
1631
+ * Retrive the total amount of interest earned by the vault since its inception, up to the last interaction with the vault on chain, including what was charged as fees
1603
1632
  * @param vaultState the kamino vault state to get total net yield for
1604
- * @returns a Decimal representing the net number of tokens earned by the vault since its inception
1633
+ * @returns a struct containing a Decimal representing the net number of tokens earned by the vault since its inception and the timestamp of the last fee charge
1605
1634
  */
1606
1635
  async getVaultCumulativeInterest(vaultState) {
1607
1636
  const netYieldLamports = new fraction_1.Fraction(vaultState.cumulativeEarnedInterestSf).toDecimal();
1608
- return (0, lib_1.lamportsToDecimal)(netYieldLamports, vaultState.tokenMintDecimals.toString());
1637
+ const cumulativeInterest = (0, lib_1.lamportsToDecimal)(netYieldLamports, vaultState.tokenMintDecimals.toString());
1638
+ return {
1639
+ cumulativeInterest: cumulativeInterest,
1640
+ timestamp: vaultState.lastFeeChargeTimestamp.toNumber(),
1641
+ };
1609
1642
  }
1610
1643
  /**
1611
1644
  * Simulate the current holdings of the vault and the earned interest
@@ -1615,20 +1648,20 @@ class KaminoVaultClient {
1615
1648
  * @param [previousTotalAUM] - the previous AUM of the vault to compute the earned interest relative to this value. Optional. If not provided the function will estimate the total AUM at the slot of the last state update on chain
1616
1649
  * @returns a struct of simulated vault holdings and earned interest
1617
1650
  */
1618
- async calculateSimulatedHoldingsWithInterest(vaultState, vaultReservesMap, currentSlot, previousTotalAUM) {
1651
+ async calculateSimulatedHoldingsWithInterest(vaultState, vaultReservesMap, currentSlot, previousNetAUM) {
1619
1652
  let prevAUM;
1620
- if (previousTotalAUM) {
1621
- prevAUM = previousTotalAUM;
1653
+ let pendingFees = kliquidity_sdk_1.ZERO;
1654
+ if (previousNetAUM) {
1655
+ prevAUM = previousNetAUM;
1622
1656
  }
1623
1657
  else {
1624
- const latestUpdateTs = vaultState.lastFeeChargeTimestamp.toNumber();
1625
- const lastUpdateSlot = latestUpdateTs / this.recentSlotDurationMs;
1626
- const lastUpdateHoldings = await this.getVaultHoldings(vaultState, lastUpdateSlot, vaultReservesMap);
1627
- prevAUM = lastUpdateHoldings.total;
1658
+ const tokenDecimals = vaultState.tokenMintDecimals.toNumber();
1659
+ prevAUM = (0, lib_1.lamportsToDecimal)(new fraction_1.Fraction(vaultState.prevAumSf).toDecimal(), tokenDecimals);
1660
+ pendingFees = (0, lib_1.lamportsToDecimal)(new fraction_1.Fraction(vaultState.pendingFeesSf).toDecimal(), tokenDecimals);
1628
1661
  }
1629
1662
  const slot = currentSlot ? currentSlot : await this.getConnection().getSlot('confirmed');
1630
1663
  const currentHoldings = await this.getVaultHoldings(vaultState, slot, vaultReservesMap);
1631
- const earnedInterest = currentHoldings.total.sub(prevAUM);
1664
+ const earnedInterest = currentHoldings.totalAUMIncludingFees.sub(prevAUM).sub(pendingFees);
1632
1665
  return {
1633
1666
  holdings: currentHoldings,
1634
1667
  earnedInterest: earnedInterest,