@kamino-finance/klend-sdk 5.1.1 → 5.1.3

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.
@@ -1,5 +1,5 @@
1
1
  import { AccountInfo, Connection, Keypair, ParsedAccountData, PublicKey, TransactionInstruction } from '@solana/web3.js';
2
- import { KaminoVault, KaminoVaultClient, KaminoVaultConfig, ReserveAllocationConfig, ReserveOverview, VaultHolder, VaultHoldings } from './vault';
2
+ import { KaminoVault, KaminoVaultClient, KaminoVaultConfig, ReserveAllocationConfig, ReserveOverview, VaultHolder, VaultHoldings, VaultHoldingsWithUSDValue } from './vault';
3
3
  import { AddAssetToMarketParams, CreateKaminoMarketParams, ENV, KaminoReserve, LendingMarket, MarketWithAddress, PubkeyHashMap, Reserve, ReserveWithAddress, ScopeOracleConfig } from '../lib';
4
4
  import { ReserveConfig } from '../idl_codegen/types';
5
5
  import Decimal from 'decimal.js';
@@ -127,6 +127,14 @@ export declare class KaminoManager {
127
127
  * @returns - token per share value
128
128
  */
129
129
  getTokensPerShareSingleVault(vault: KaminoVault, slot: number): Promise<Decimal>;
130
+ /**
131
+ * This method calculates the price of one vault share(kToken)
132
+ * @param vault - vault to calculate sharePrice for
133
+ * @param slot - current slot, used to estimate the interest earned in the different reserves with allocation from the vault
134
+ * @param tokenPrice - the price of the vault token (e.g. SOL) in USD
135
+ * @returns - share value in USD
136
+ */
137
+ getSharePriceInUSD(vault: KaminoVault, slot: number, tokenPrice: Decimal): Promise<Decimal>;
130
138
  /**
131
139
  * This method returns the user shares balance for a given vault
132
140
  * @param user - user to calculate the shares balance for
@@ -180,13 +188,22 @@ export declare class KaminoManager {
180
188
  */
181
189
  getVaultHolders: (vault: KaminoVault) => Promise<VaultHolder[]>;
182
190
  /**
183
- * This will return an Holdings object which contains the amount available (uninvested) in vault, total amount invested in reseves and a breakdown of the amount invested in each reserve
191
+ * 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
184
192
  * @param vault - the kamino vault to get available liquidity to withdraw for
185
193
  * @param slot - current slot
186
194
  * @param vaultReserves - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
187
- * @returns an Holdings object
195
+ * @returns an VaultHoldings object
188
196
  */
189
197
  getVaultHoldings(vault: VaultState, slot: number, vaultReserves?: PubkeyHashMap<PublicKey, KaminoReserve>): Promise<VaultHoldings>;
198
+ /**
199
+ * This will return an VaultHoldingsWithUSDValue object which contains an holdings field representing the amount available (uninvested) in vault, total amount invested in reseves and a breakdown of the amount invested in each reserve and additional fields for the total USD value of the available and invested amounts
200
+ * @param vault - the kamino vault to get available liquidity to withdraw for
201
+ * @param slot - current slot
202
+ * @param vaultReserves - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
203
+ * @param price - the price of the token in the vault (e.g. USDC)
204
+ * @returns an VaultHoldingsWithUSDValue object with details about the tokens available and invested in the vault, denominated in tokens and USD
205
+ */
206
+ getVaultHoldingsWithPrice(vault: VaultState, slot: number, price: Decimal, vaultReserves?: PubkeyHashMap<PublicKey, KaminoReserve>): Promise<VaultHoldingsWithUSDValue>;
190
207
  /**
191
208
  * This will return an overview of each reserve that is part of the vault allocation
192
209
  * @param vault - the kamino vault to get available liquidity to withdraw for
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/classes/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/classes/manager.ts"],"names":[],"mappings":"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"}
@@ -266,6 +266,17 @@ class KaminoManager {
266
266
  async getTokensPerShareSingleVault(vault, slot) {
267
267
  return this._vaultClient.getTokensPerShareSingleVault(vault, slot);
268
268
  }
269
+ /**
270
+ * This method calculates the price of one vault share(kToken)
271
+ * @param vault - vault to calculate sharePrice for
272
+ * @param slot - current slot, used to estimate the interest earned in the different reserves with allocation from the vault
273
+ * @param tokenPrice - the price of the vault token (e.g. SOL) in USD
274
+ * @returns - share value in USD
275
+ */
276
+ async getSharePriceInUSD(vault, slot, tokenPrice) {
277
+ const tokensPerShare = await this.getTokensPerShareSingleVault(vault, slot);
278
+ return tokensPerShare.mul(tokenPrice);
279
+ }
269
280
  /**
270
281
  * This method returns the user shares balance for a given vault
271
282
  * @param user - user to calculate the shares balance for
@@ -377,15 +388,26 @@ class KaminoManager {
377
388
  return result;
378
389
  };
379
390
  /**
380
- * This will return an Holdings object which contains the amount available (uninvested) in vault, total amount invested in reseves and a breakdown of the amount invested in each reserve
391
+ * 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
381
392
  * @param vault - the kamino vault to get available liquidity to withdraw for
382
393
  * @param slot - current slot
383
394
  * @param vaultReserves - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
384
- * @returns an Holdings object
395
+ * @returns an VaultHoldings object
385
396
  */
386
397
  async getVaultHoldings(vault, slot, vaultReserves) {
387
398
  return this._vaultClient.getVaultHoldings(vault, slot, vaultReserves);
388
399
  }
400
+ /**
401
+ * This will return an VaultHoldingsWithUSDValue object which contains an holdings field representing the amount available (uninvested) in vault, total amount invested in reseves and a breakdown of the amount invested in each reserve and additional fields for the total USD value of the available and invested amounts
402
+ * @param vault - the kamino vault to get available liquidity to withdraw for
403
+ * @param slot - current slot
404
+ * @param vaultReserves - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
405
+ * @param price - the price of the token in the vault (e.g. USDC)
406
+ * @returns an VaultHoldingsWithUSDValue object with details about the tokens available and invested in the vault, denominated in tokens and USD
407
+ */
408
+ async getVaultHoldingsWithPrice(vault, slot, price, vaultReserves) {
409
+ return this._vaultClient.getVaultHoldingsWithPrice(vault, slot, price, vaultReserves);
410
+ }
389
411
  /**
390
412
  * This will return an overview of each reserve that is part of the vault allocation
391
413
  * @param vault - the kamino vault to get available liquidity to withdraw for
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/classes/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/classes/manager.ts"],"names":[],"mappings":"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"}
@@ -67,6 +67,7 @@ export declare class KaminoVaultClient {
67
67
  * @param user - user to deposit
68
68
  * @param vault - vault to deposit into
69
69
  * @param tokenAmount - token amount to be deposited, in decimals (will be converted in lamports)
70
+ * @param vaultReservesMap - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
70
71
  * @returns - an array of instructions to be used to be executed
71
72
  */
72
73
  depositIxs(user: PublicKey, vault: KaminoVault, tokenAmount: Decimal, vaultReservesMap?: PubkeyHashMap<PublicKey, KaminoReserve>): Promise<TransactionInstruction[]>;
@@ -81,13 +82,15 @@ export declare class KaminoVaultClient {
81
82
  withdrawIxs(user: PublicKey, vault: KaminoVault, shareAmount: Decimal, slot: number): Promise<TransactionInstruction[]>;
82
83
  /**
83
84
  * This will trigger invest by balancing, based on weights, the reserve allocations of the vault. It can either withdraw or deposit into reserves to balance them. This is a function that should be cranked
84
- * @param kaminoVault - vault to invest from
85
+ * @param payer wallet that pays the tx
86
+ * @param vault - vault to invest from
85
87
  * @returns - an array of invest instructions for each invest action required for the vault reserves
86
88
  */
87
89
  investAllReservesIxs(payer: PublicKey, vault: KaminoVault): Promise<TransactionInstruction[]>;
88
90
  /**
89
91
  * This will trigger invest by balancing, based on weights, the reserve allocation of the vault. It can either withdraw or deposit into the given reserve to balance it
90
- * @param kaminoVault - vault to invest from
92
+ * @param payer wallet pubkey
93
+ * @param vault - vault to invest from
91
94
  * @param reserve - reserve to invest into or disinvest from
92
95
  * @returns - an array of invest instructions for each invest action required for the vault reserves
93
96
  */
@@ -112,16 +115,18 @@ export declare class KaminoVaultClient {
112
115
  * This method calculates the token per shar 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
113
116
  * @param vault - vault to calculate tokensPerShare for
114
117
  * @param slot - current slot, used to estimate the interest earned in the different reserves with allocation from the vault
118
+ * @param vaultReservesMap - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
115
119
  * @returns - token per share value
116
120
  */
117
- getTokensPerShareSingleVault(vault: KaminoVault, slot: number): Promise<Decimal>;
121
+ getTokensPerShareSingleVault(vault: KaminoVault, slot: number, vaultReservesMap?: PubkeyHashMap<PublicKey, KaminoReserve>): Promise<Decimal>;
118
122
  /**
119
123
  * 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
120
- * @param vault - vault to calculate tokensPerShare for
121
124
  * @param slot - current slot, used to estimate the interest earned in the different reserves with allocation from the vault
125
+ * @param vaultsOverride
126
+ * @param vaultReservesMap
122
127
  * @returns - token per share value
123
128
  */
124
- getTokensPerShareAllVaults(slot: number, vaultsOverride?: Array<KaminoVault>): Promise<PubkeyHashMap<PublicKey, Decimal>>;
129
+ getTokensPerShareAllVaults(slot: number, vaultsOverride?: Array<KaminoVault>, vaultReservesMap?: PubkeyHashMap<PublicKey, KaminoReserve>): Promise<PubkeyHashMap<PublicKey, Decimal>>;
125
130
  /**
126
131
  * Get all vaults
127
132
  * @returns an array of all vaults
@@ -136,13 +141,13 @@ export declare class KaminoVaultClient {
136
141
  private getReserveAllocationAvailableLiquidityToWithdraw;
137
142
  /**
138
143
  * This will get the list of all reserve pubkeys that the vault has allocations for
139
- * @param vaultState - the vault state to load reserves for
144
+ * @param vault - the vault state to load reserves for
140
145
  * @returns a hashmap from each reserve pubkey to the reserve state
141
146
  */
142
147
  getAllVaultReserves(vault: VaultState): PublicKey[];
143
148
  /**
144
149
  * This will get the list of all reserve pubkeys that the vault has allocations for ex
145
- * @param vaultState - the vault state to load reserves for
150
+ * @param vault - the vault state to load reserves for
146
151
  * @returns a hashmap from each reserve pubkey to the reserve state
147
152
  */
148
153
  getVaultReserves(vault: VaultState): PublicKey[];
@@ -153,13 +158,22 @@ export declare class KaminoVaultClient {
153
158
  */
154
159
  loadVaultReserves(vaultState: VaultState): Promise<PubkeyHashMap<PublicKey, KaminoReserve>>;
155
160
  /**
156
- * This will return an Holdings object which contains the amount available (uninvested) in vault, total amount invested in reseves and a breakdown of the amount invested in each reserve
161
+ * 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
157
162
  * @param vault - the kamino vault to get available liquidity to withdraw for
158
163
  * @param slot - current slot
159
164
  * @param vaultReserves - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
160
- * @returns an Holdings object
165
+ * @returns an VaultHoldings object
161
166
  */
162
167
  getVaultHoldings(vault: VaultState, slot: number, vaultReserves?: PubkeyHashMap<PublicKey, KaminoReserve>): Promise<VaultHoldings>;
168
+ /**
169
+ * This will return an VaultHoldingsWithUSDValue object which contains an holdings field representing the amount available (uninvested) in vault, total amount invested in reseves and a breakdown of the amount invested in each reserve and additional fields for the total USD value of the available and invested amounts
170
+ * @param vault - the kamino vault to get available liquidity to withdraw for
171
+ * @param slot - current slot
172
+ * @param vaultReserves - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
173
+ * @param price - the price of the token in the vault (e.g. USDC)
174
+ * @returns an VaultHoldingsWithUSDValue object with details about the tokens available and invested in the vault, denominated in tokens and USD
175
+ */
176
+ getVaultHoldingsWithPrice(vault: VaultState, slot: number, price: Decimal, vaultReserves?: PubkeyHashMap<PublicKey, KaminoReserve>): Promise<VaultHoldingsWithUSDValue>;
163
177
  /**
164
178
  * This will return an overview of each reserve that is part of the vault allocation
165
179
  * @param vault - the kamino vault to get available liquidity to withdraw for
@@ -228,6 +242,12 @@ export type VaultHoldings = {
228
242
  invested: Decimal;
229
243
  investedInReserves: PubkeyHashMap<PublicKey, Decimal>;
230
244
  };
245
+ export type VaultHoldingsWithUSDValue = {
246
+ holdings: VaultHoldings;
247
+ availableUSD: Decimal;
248
+ investedUSD: Decimal;
249
+ investedInReservesUSD: PubkeyHashMap<PublicKey, Decimal>;
250
+ };
231
251
  export type ReserveOverview = {
232
252
  supplyAPY: Decimal;
233
253
  uUtilizationRatio: Decimal;
@@ -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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"}
@@ -13,12 +13,12 @@ const instructions_1 = require("../idl_codegen_kamino_vault/instructions");
13
13
  const accounts_1 = require("../idl_codegen_kamino_vault/accounts");
14
14
  const decimal_js_1 = __importDefault(require("decimal.js"));
15
15
  const utils_1 = require("./utils");
16
- const deposit_1 = require("../idl_codegen_kamino_vault/instructions/deposit");
17
- const withdraw_1 = require("../idl_codegen_kamino_vault/instructions/withdraw");
16
+ const instructions_2 = require("../idl_codegen_kamino_vault/instructions");
17
+ const instructions_3 = require("../idl_codegen_kamino_vault/instructions");
18
18
  const programId_1 = require("../idl_codegen/programId");
19
19
  const reserve_1 = require("./reserve");
20
20
  const fraction_1 = require("./fraction");
21
- const seeds_1 = require("../utils/seeds");
21
+ const utils_2 = require("../utils");
22
22
  const bs58_1 = __importDefault(require("bs58"));
23
23
  const rpc_1 = require("../utils/rpc");
24
24
  exports.kaminoVaultId = new web3_js_1.PublicKey('kvauTFR8qm1dhniz6pYuBZkuene3Hfrs1VQhVRgCNrr');
@@ -256,6 +256,7 @@ class KaminoVaultClient {
256
256
  * @param user - user to deposit
257
257
  * @param vault - vault to deposit into
258
258
  * @param tokenAmount - token amount to be deposited, in decimals (will be converted in lamports)
259
+ * @param vaultReservesMap - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
259
260
  * @returns - an array of instructions to be used to be executed
260
261
  */
261
262
  async depositIxs(user, vault, tokenAmount, vaultReservesMap) {
@@ -299,7 +300,7 @@ class KaminoVaultClient {
299
300
  const depositArgs = {
300
301
  maxAmount: new anchor_1.BN((0, utils_1.numberToLamportsDecimal)(tokenAmount, vaultState.tokenMintDecimals.toNumber()).toString()),
301
302
  };
302
- const depositIx = (0, deposit_1.deposit)(depositArgs, depoistAccounts, this._kaminoVaultProgramId);
303
+ const depositIx = (0, instructions_2.deposit)(depositArgs, depoistAccounts, this._kaminoVaultProgramId);
303
304
  const vaultReserves = this.getVaultReserves(vaultState);
304
305
  const vaultReservesState = vaultReservesMap ? vaultReservesMap : await this.loadVaultReserves(vaultState);
305
306
  let vaultReservesAccountMetas = [];
@@ -382,7 +383,8 @@ class KaminoVaultClient {
382
383
  }
383
384
  /**
384
385
  * This will trigger invest by balancing, based on weights, the reserve allocations of the vault. It can either withdraw or deposit into reserves to balance them. This is a function that should be cranked
385
- * @param kaminoVault - vault to invest from
386
+ * @param payer wallet that pays the tx
387
+ * @param vault - vault to invest from
386
388
  * @returns - an array of invest instructions for each invest action required for the vault reserves
387
389
  */
388
390
  async investAllReservesIxs(payer, vault) {
@@ -401,14 +403,15 @@ class KaminoVaultClient {
401
403
  }
402
404
  /**
403
405
  * This will trigger invest by balancing, based on weights, the reserve allocation of the vault. It can either withdraw or deposit into the given reserve to balance it
404
- * @param kaminoVault - vault to invest from
406
+ * @param payer wallet pubkey
407
+ * @param vault - vault to invest from
405
408
  * @param reserve - reserve to invest into or disinvest from
406
409
  * @returns - an array of invest instructions for each invest action required for the vault reserves
407
410
  */
408
411
  async investSingleReserveIxs(payer, vault, reserve) {
409
412
  const vaultState = await vault.getState(this._connection);
410
413
  const cTokenVault = getCTokenVaultPda(vault.address, reserve.address, this._kaminoVaultProgramId);
411
- const lendingMarketAuth = (0, seeds_1.lendingMarketAuthPda)(reserve.state.lendingMarket, this._kaminoLendProgramId)[0];
414
+ const lendingMarketAuth = (0, utils_2.lendingMarketAuthPda)(reserve.state.lendingMarket, this._kaminoLendProgramId)[0];
412
415
  // todo: create ata if needed here
413
416
  const payerTokenAta = (0, lib_1.getAssociatedTokenAddress)(vaultState.tokenMint, payer);
414
417
  const investAccounts = {
@@ -440,7 +443,7 @@ class KaminoVaultClient {
440
443
  return investIx;
441
444
  }
442
445
  async withdrawIxn(user, vault, vaultState, marketWithAddress, reserve, userSharesAta, userTokenAta, shareAmountLamports) {
443
- const lendingMarketAuth = (0, seeds_1.lendingMarketAuthPda)(marketWithAddress.address, this._kaminoLendProgramId)[0];
446
+ const lendingMarketAuth = (0, utils_2.lendingMarketAuthPda)(marketWithAddress.address, this._kaminoLendProgramId)[0];
444
447
  const withdrawAccounts = {
445
448
  user: user,
446
449
  vaultState: vault.address,
@@ -466,7 +469,7 @@ class KaminoVaultClient {
466
469
  const withdrawArgs = {
467
470
  sharesAmount: new anchor_1.BN(shareAmountLamports.toString()),
468
471
  };
469
- const withdrawIxn = (0, withdraw_1.withdraw)(withdrawArgs, withdrawAccounts, this._kaminoVaultProgramId);
472
+ const withdrawIxn = (0, instructions_3.withdraw)(withdrawArgs, withdrawAccounts, this._kaminoVaultProgramId);
470
473
  const vaultReserves = this.getVaultReserves(vaultState);
471
474
  const vaultReservesState = await this.loadVaultReserves(vaultState);
472
475
  let vaultReservesAccountMetas = [];
@@ -488,7 +491,7 @@ class KaminoVaultClient {
488
491
  return withdrawIxn;
489
492
  }
490
493
  async withdrawPendingFeesIxn(vault, vaultState, marketWithAddress, reserve, adminTokenAta) {
491
- const lendingMarketAuth = (0, seeds_1.lendingMarketAuthPda)(marketWithAddress.address, this._kaminoLendProgramId)[0];
494
+ const lendingMarketAuth = (0, utils_2.lendingMarketAuthPda)(marketWithAddress.address, this._kaminoLendProgramId)[0];
492
495
  const withdrawPendingFeesAccounts = {
493
496
  adminAuthority: vaultState.adminAuthority,
494
497
  vaultState: vault.address,
@@ -544,7 +547,7 @@ class KaminoVaultClient {
544
547
  return new decimal_js_1.default(0);
545
548
  }
546
549
  const userSharesAccount = (0, spl_token_1.unpackAccount)(userSharesAta, userSharesAccountInfo);
547
- return new decimal_js_1.default(new decimal_js_1.default(userSharesAccount.amount.toString()).toNumber()).div(new decimal_js_1.default(10).pow(vaultState.sharesMintDecimals.toNumber()));
550
+ return new decimal_js_1.default(userSharesAccount.amount.toString()).div(new decimal_js_1.default(10).pow(vaultState.sharesMintDecimals.toString()));
548
551
  }
549
552
  /**
550
553
  * This method returns the user shares balance for all existing vaults
@@ -571,7 +574,7 @@ class KaminoVaultClient {
571
574
  vaultUserShareBalance.set(vaults[index].address, new decimal_js_1.default(0));
572
575
  }
573
576
  else {
574
- vaultUserShareBalance.set(vaults[index].address, new decimal_js_1.default(userShareAtaAccount.lamports).div(new decimal_js_1.default(10).pow(vaults[index].state.sharesMintDecimals.toNumber())));
577
+ vaultUserShareBalance.set(vaults[index].address, new decimal_js_1.default(userShareAtaAccount.lamports).div(new decimal_js_1.default(10).pow(vaults[index].state.sharesMintDecimals.toString())));
575
578
  }
576
579
  });
577
580
  return vaultUserShareBalance;
@@ -580,15 +583,16 @@ class KaminoVaultClient {
580
583
  * This method calculates the token per shar 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
581
584
  * @param vault - vault to calculate tokensPerShare for
582
585
  * @param slot - current slot, used to estimate the interest earned in the different reserves with allocation from the vault
586
+ * @param vaultReservesMap - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
583
587
  * @returns - token per share value
584
588
  */
585
- async getTokensPerShareSingleVault(vault, slot) {
589
+ async getTokensPerShareSingleVault(vault, slot, vaultReservesMap) {
586
590
  const vaultState = await vault.getState(this._connection);
587
- const reserves = await this.loadVaultReserves(vaultState);
588
- const totalVaultLiquidityAmount = new decimal_js_1.default(vaultState.tokenAvailable.toString());
591
+ const vaultReservesState = vaultReservesMap ? vaultReservesMap : await this.loadVaultReserves(vaultState);
592
+ let totalVaultLiquidityAmount = new decimal_js_1.default(vaultState.tokenAvailable.toString());
589
593
  vaultState.vaultAllocationStrategy.forEach((allocationStrategy) => {
590
594
  if (!allocationStrategy.reserve.equals(web3_js_1.PublicKey.default)) {
591
- const reserve = reserves.get(allocationStrategy.reserve);
595
+ const reserve = vaultReservesState.get(allocationStrategy.reserve);
592
596
  if (reserve === undefined) {
593
597
  throw new Error(`Reserve ${allocationStrategy.reserve.toBase58()} not found`);
594
598
  }
@@ -597,45 +601,31 @@ class KaminoVaultClient {
597
601
  .div(reserve.state.config.protocolTakeRatePct / 100)
598
602
  .floor()
599
603
  .toNumber());
600
- const reserveAllocationLiquidityAmount = new decimal_js_1.default(allocationStrategy.cTokenAllocation.toString()).div(reserveCollExchangeRate);
601
- totalVaultLiquidityAmount.add(reserveAllocationLiquidityAmount);
604
+ if (reserveCollExchangeRate.gt(0)) {
605
+ const reserveAllocationLiquidityAmount = new decimal_js_1.default(allocationStrategy.cTokenAllocation.toString()).div(reserveCollExchangeRate);
606
+ totalVaultLiquidityAmount = totalVaultLiquidityAmount.add(reserveAllocationLiquidityAmount);
607
+ }
602
608
  }
603
609
  });
610
+ if (totalVaultLiquidityAmount.isZero()) {
611
+ return new decimal_js_1.default(0);
612
+ }
604
613
  return new decimal_js_1.default(vaultState.sharesIssued.toString()).div(totalVaultLiquidityAmount);
605
614
  }
606
615
  /**
607
616
  * 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
608
- * @param vault - vault to calculate tokensPerShare for
609
617
  * @param slot - current slot, used to estimate the interest earned in the different reserves with allocation from the vault
618
+ * @param vaultsOverride
619
+ * @param vaultReservesMap
610
620
  * @returns - token per share value
611
621
  */
612
- async getTokensPerShareAllVaults(slot, vaultsOverride) {
622
+ async getTokensPerShareAllVaults(slot, vaultsOverride, vaultReservesMap) {
613
623
  const vaults = vaultsOverride ? vaultsOverride : await this.getAllVaults();
614
624
  const vaultTokensPerShare = new lib_1.PubkeyHashMap();
615
- vaults.forEach(async (vault) => {
616
- const vaultState = vault.state;
617
- if (!vaultState) {
618
- throw new Error(`Vault ${vault.address.toBase58()} not fetched`);
619
- }
620
- const reserves = await this.loadVaultReserves(vaultState);
621
- const totalVaultLiquidityAmount = new decimal_js_1.default(vaultState.tokenAvailable.toString());
622
- vaultState.vaultAllocationStrategy.forEach((allocationStrategy) => {
623
- if (!allocationStrategy.reserve.equals(web3_js_1.PublicKey.default)) {
624
- const reserve = reserves.get(allocationStrategy.reserve);
625
- if (reserve === undefined) {
626
- throw new Error(`Reserve ${allocationStrategy.reserve.toBase58()} not found`);
627
- }
628
- const reserveCollExchangeRate = reserve.getEstimatedCollateralExchangeRate(slot, new fraction_1.Fraction(reserve.state.liquidity.absoluteReferralRateSf)
629
- .toDecimal()
630
- .div(reserve.state.config.protocolTakeRatePct / 100)
631
- .floor()
632
- .toNumber());
633
- const reserveAllocationLiquidityAmount = new decimal_js_1.default(allocationStrategy.cTokenAllocation.toString()).div(reserveCollExchangeRate);
634
- totalVaultLiquidityAmount.add(reserveAllocationLiquidityAmount);
635
- }
636
- });
637
- vaultTokensPerShare.set(vault.address, new decimal_js_1.default(vaultState.sharesIssued.toString()).div(totalVaultLiquidityAmount));
638
- });
625
+ for (const vault of vaults) {
626
+ const tokensPerShare = await this.getTokensPerShareSingleVault(vault, slot, vaultReservesMap);
627
+ vaultTokensPerShare.set(vault.address, tokensPerShare);
628
+ }
639
629
  return vaultTokensPerShare;
640
630
  }
641
631
  /**
@@ -654,12 +644,10 @@ class KaminoVaultClient {
654
644
  },
655
645
  },
656
646
  ];
657
- const [kaminoVaults] = await Promise.all([
658
- (0, rpc_1.getProgramAccounts)(this._connection, this._kaminoVaultProgramId, {
659
- commitment: this._connection.commitment ?? 'processed',
660
- filters,
661
- }),
662
- ]);
647
+ const kaminoVaults = await (0, rpc_1.getProgramAccounts)(this._connection, this._kaminoVaultProgramId, {
648
+ commitment: this._connection.commitment ?? 'processed',
649
+ filters,
650
+ });
663
651
  return kaminoVaults.map((kaminoVault) => {
664
652
  if (kaminoVault.account === null) {
665
653
  throw new Error(`kaminoVault with pubkey ${kaminoVault.pubkey.toString()} does not exist`);
@@ -699,7 +687,7 @@ class KaminoVaultClient {
699
687
  }
700
688
  /**
701
689
  * This will get the list of all reserve pubkeys that the vault has allocations for
702
- * @param vaultState - the vault state to load reserves for
690
+ * @param vault - the vault state to load reserves for
703
691
  * @returns a hashmap from each reserve pubkey to the reserve state
704
692
  */
705
693
  getAllVaultReserves(vault) {
@@ -707,7 +695,7 @@ class KaminoVaultClient {
707
695
  }
708
696
  /**
709
697
  * This will get the list of all reserve pubkeys that the vault has allocations for ex
710
- * @param vaultState - the vault state to load reserves for
698
+ * @param vault - the vault state to load reserves for
711
699
  * @returns a hashmap from each reserve pubkey to the reserve state
712
700
  */
713
701
  getVaultReserves(vault) {
@@ -746,11 +734,11 @@ class KaminoVaultClient {
746
734
  return kaminoReserves;
747
735
  }
748
736
  /**
749
- * This will return an Holdings object which contains the amount available (uninvested) in vault, total amount invested in reseves and a breakdown of the amount invested in each reserve
737
+ * 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
750
738
  * @param vault - the kamino vault to get available liquidity to withdraw for
751
739
  * @param slot - current slot
752
740
  * @param vaultReserves - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
753
- * @returns an Holdings object
741
+ * @returns an VaultHoldings object
754
742
  */
755
743
  async getVaultHoldings(vault, slot, vaultReserves) {
756
744
  const vaultHoldings = {
@@ -774,6 +762,27 @@ class KaminoVaultClient {
774
762
  });
775
763
  return vaultHoldings;
776
764
  }
765
+ /**
766
+ * This will return an VaultHoldingsWithUSDValue object which contains an holdings field representing the amount available (uninvested) in vault, total amount invested in reseves and a breakdown of the amount invested in each reserve and additional fields for the total USD value of the available and invested amounts
767
+ * @param vault - the kamino vault to get available liquidity to withdraw for
768
+ * @param slot - current slot
769
+ * @param vaultReserves - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
770
+ * @param price - the price of the token in the vault (e.g. USDC)
771
+ * @returns an VaultHoldingsWithUSDValue object with details about the tokens available and invested in the vault, denominated in tokens and USD
772
+ */
773
+ async getVaultHoldingsWithPrice(vault, slot, price, vaultReserves) {
774
+ const holdings = await this.getVaultHoldings(vault, slot, vaultReserves);
775
+ const investedInReservesUSD = new lib_1.PubkeyHashMap();
776
+ holdings.investedInReserves.forEach((amount, reserve) => {
777
+ investedInReservesUSD.set(reserve, amount.mul(price));
778
+ });
779
+ return {
780
+ holdings: holdings,
781
+ availableUSD: holdings.available.mul(price),
782
+ investedUSD: holdings.invested.mul(price),
783
+ investedInReservesUSD: investedInReservesUSD,
784
+ };
785
+ }
777
786
  /**
778
787
  * This will return an overview of each reserve that is part of the vault allocation
779
788
  * @param vault - the kamino vault to get available liquidity to withdraw for
@@ -828,6 +837,9 @@ class KaminoVaultClient {
828
837
  totalAPY = totalAPY.add(weightedAPY);
829
838
  totalWeights = totalWeights.add(weight);
830
839
  });
840
+ if (totalWeights.isZero()) {
841
+ return new decimal_js_1.default(0);
842
+ }
831
843
  return totalAPY.div(totalWeights);
832
844
  }
833
845
  } // KaminoVaultClient