@kamino-finance/klend-sdk 5.10.9 → 5.10.11

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 (55) hide show
  1. package/README.md +26 -2
  2. package/dist/classes/manager.d.ts +9 -3
  3. package/dist/classes/manager.d.ts.map +1 -1
  4. package/dist/classes/manager.js +10 -2
  5. package/dist/classes/manager.js.map +1 -1
  6. package/dist/classes/market.d.ts.map +1 -1
  7. package/dist/classes/market.js +4 -1
  8. package/dist/classes/market.js.map +1 -1
  9. package/dist/classes/types.d.ts +7 -0
  10. package/dist/classes/types.d.ts.map +1 -1
  11. package/dist/classes/vault.d.ts +23 -11
  12. package/dist/classes/vault.d.ts.map +1 -1
  13. package/dist/classes/vault.js +141 -29
  14. package/dist/classes/vault.js.map +1 -1
  15. package/dist/client_kamino_manager.d.ts.map +1 -1
  16. package/dist/client_kamino_manager.js +5 -5
  17. package/dist/client_kamino_manager.js.map +1 -1
  18. package/dist/idl_codegen_kamino_vault/errors/custom.d.ts +17 -1
  19. package/dist/idl_codegen_kamino_vault/errors/custom.d.ts.map +1 -1
  20. package/dist/idl_codegen_kamino_vault/errors/custom.js +29 -1
  21. package/dist/idl_codegen_kamino_vault/errors/custom.js.map +1 -1
  22. package/dist/idl_codegen_kamino_vault/instructions/deposit.d.ts +0 -1
  23. package/dist/idl_codegen_kamino_vault/instructions/deposit.d.ts.map +1 -1
  24. package/dist/idl_codegen_kamino_vault/instructions/deposit.js +0 -5
  25. package/dist/idl_codegen_kamino_vault/instructions/deposit.js.map +1 -1
  26. package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.d.ts +1 -1
  27. package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.d.ts.map +1 -1
  28. package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.js +5 -1
  29. package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.js.map +1 -1
  30. package/dist/idl_codegen_kamino_vault/types/ReserveConfig.d.ts +8 -5
  31. package/dist/idl_codegen_kamino_vault/types/ReserveConfig.d.ts.map +1 -1
  32. package/dist/idl_codegen_kamino_vault/types/ReserveConfig.js +9 -8
  33. package/dist/idl_codegen_kamino_vault/types/ReserveConfig.js.map +1 -1
  34. package/dist/utils/accountListing.d.ts +4 -0
  35. package/dist/utils/accountListing.d.ts.map +1 -0
  36. package/dist/utils/accountListing.js +37 -0
  37. package/dist/utils/accountListing.js.map +1 -0
  38. package/dist/utils/index.d.ts +1 -0
  39. package/dist/utils/index.d.ts.map +1 -1
  40. package/dist/utils/index.js +1 -0
  41. package/dist/utils/index.js.map +1 -1
  42. package/package.json +2 -1
  43. package/src/classes/manager.ts +12 -2
  44. package/src/classes/market.ts +7 -1
  45. package/src/classes/types.ts +9 -1
  46. package/src/classes/vault.ts +182 -32
  47. package/src/client.ts +11 -0
  48. package/src/client_kamino_manager.ts +12 -5
  49. package/src/idl_codegen_kamino_vault/errors/custom.ts +28 -0
  50. package/src/idl_codegen_kamino_vault/instructions/deposit.ts +0 -6
  51. package/src/idl_codegen_kamino_vault/instructions/updateReserveAllocation.ts +6 -2
  52. package/src/idl_codegen_kamino_vault/types/ReserveConfig.ts +17 -14
  53. package/src/idl_kamino_vault.json +17 -9
  54. package/src/utils/accountListing.ts +32 -0
  55. package/src/utils/index.ts +1 -0
@@ -4,7 +4,7 @@ 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';
6
6
  import { ReserveWithAddress } from './reserve';
7
- import { AcceptVaultOwnershipIxs, DepositIxs, InitVaultIxs, SyncVaultLUTIxs, UpdateReserveAllocationIxs, UpdateVaultConfigIxs, UserSharesForVault, WithdrawIxs } from './types';
7
+ import { AcceptVaultOwnershipIxs, DepositIxs, InitVaultIxs, ReserveAllocationOverview, SyncVaultLUTIxs, UpdateReserveAllocationIxs, UpdateVaultConfigIxs, UserSharesForVault, WithdrawIxs } from './types';
8
8
  import { FarmState } from '@kamino-finance/farms-sdk/dist';
9
9
  export declare const kaminoVaultId: PublicKey;
10
10
  export declare const kaminoVaultStagingId: PublicKey;
@@ -48,9 +48,10 @@ 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
52
  * @returns a struct that contains the instruction to update the field and an optional list of instructions to update the lookup table
52
53
  */
53
- updateVaultConfigIxs(vault: KaminoVault, mode: VaultConfigFieldKind, value: string): Promise<UpdateVaultConfigIxs>;
54
+ updateVaultConfigIxs(vault: KaminoVault, mode: VaultConfigFieldKind, value: string, signer?: PublicKey): Promise<UpdateVaultConfigIxs>;
54
55
  /** Sets the farm where the shares can be staked. This is store in vault state and a vault can only have one farm, so the new farm will ovveride the old farm
55
56
  * @param vault - vault to set the farm for
56
57
  * @param farm - the farm where the vault shares can be staked
@@ -109,7 +110,7 @@ export declare class KaminoVaultClient {
109
110
  * This function will return a struct with the instructions to unstake from the farm if necessary and the instructions for the missing ATA creation instructions, as well as one or multiple withdraw instructions, based on how many reserves it's needed to withdraw from. This might have to be split in multiple transactions
110
111
  * @param user - user to withdraw
111
112
  * @param vault - vault to withdraw from
112
- * @param shareAmount - share amount to withdraw, in order to withdraw everything, any value > user share amount
113
+ * @param shareAmount - share amount to withdraw (in tokens, not lamports), in order to withdraw everything, any value > user share amount
113
114
  * @param slot - current slot, used to estimate the interest earned in the different reserves with allocation from the vault
114
115
  * @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
116
  * @param [farmState] - the state of the vault farm, if the vault has a farm. Optional. If not provided, it will be fetched
@@ -133,7 +134,7 @@ export declare class KaminoVaultClient {
133
134
  * @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
134
135
  * @returns - an array of invest instructions for each invest action required for the vault reserves
135
136
  */
136
- investSingleReserveIxs(payer: PublicKey, vault: KaminoVault, reserve: ReserveWithAddress, vaultReservesMap?: PubkeyHashMap<PublicKey, KaminoReserve>): Promise<TransactionInstruction[]>;
137
+ investSingleReserveIxs(payer: PublicKey, vault: KaminoVault, reserve: ReserveWithAddress, vaultReservesMap?: PubkeyHashMap<PublicKey, KaminoReserve>, createAtaIfNeeded?: boolean): Promise<TransactionInstruction[]>;
137
138
  /** Convert a string to a u8 representation to be stored on chain */
138
139
  encodeVaultName(token: string): Uint8Array;
139
140
  /**Convert an u8 array to a string */
@@ -159,6 +160,11 @@ export declare class KaminoVaultClient {
159
160
  * @returns - an array of instructions to insert the missing keys into the lookup table
160
161
  */
161
162
  insertIntoLookupTableIxs(payer: PublicKey, lookupTable: PublicKey, keys: PublicKey[], accountsInLUT?: PublicKey[]): Promise<TransactionInstruction[]>;
163
+ /** Read the total holdings of a vault and the reserve weights and returns a map from each reserve to how many tokens should be deposited.
164
+ * @param vaultState - the vault state to calculate the allocation for
165
+ * @returns - a map from each reserve to how many tokens should be invested into
166
+ */
167
+ getVaultComputedReservesAllocation(vaultState: VaultState): Promise<PubkeyHashMap<PublicKey, Decimal>>;
162
168
  /**
163
169
  * This method returns the user shares balance for a given vault
164
170
  * @param user - user to calculate the shares balance for
@@ -211,9 +217,15 @@ export declare class KaminoVaultClient {
211
217
  /**
212
218
  * This will return the a map between reserve pubkey and the pct of the vault invested amount in each reserve
213
219
  * @param vaultState - the kamino vault to get reserves distribution for
214
- * @returns a ma between reserve pubkey and the allocation pct for the reserve
220
+ * @returns a map between reserve pubkey and the allocation pct for the reserve
215
221
  */
216
222
  getAllocationsDistribuionPct(vaultState: VaultState): PubkeyHashMap<PublicKey, Decimal>;
223
+ /**
224
+ * This will return the a map between reserve pubkey and the allocation overview for the reserve
225
+ * @param vaultState - the kamino vault to get reserves allocation overview for
226
+ * @returns a map between reserve pubkey and the allocation overview for the reserve
227
+ */
228
+ getVaultAllocations(vaultState: VaultState): PubkeyHashMap<PublicKey, ReserveAllocationOverview>;
217
229
  /**
218
230
  * This will return an unsorted hash map of all reserves that the given vault has allocations for, toghether with the amount that can be withdrawn from each of the reserves
219
231
  * @param vault - the kamino vault to get available liquidity to withdraw for
@@ -344,18 +356,18 @@ export declare class KaminoVaultConfig {
344
356
  readonly tokenMint: PublicKey;
345
357
  /** The token mint program id */
346
358
  readonly tokenMintProgramId: PublicKey;
347
- /** The performance fee rate of the vault, expressed as a decimal */
348
- readonly performanceFeeRate: Decimal;
349
- /** The management fee rate of the vault, expressed as a decimal */
350
- readonly managementFeeRate: Decimal;
359
+ /** The performance fee rate of the vault, as percents, expressed as a decimal */
360
+ readonly performanceFeeRatePercentage: Decimal;
361
+ /** The management fee rate of the vault, as percents, expressed as a decimal */
362
+ readonly managementFeeRatePercentage: Decimal;
351
363
  /** The name to be stored on cain for the vault (max 40 characters). */
352
364
  readonly name: string;
353
365
  constructor(args: {
354
366
  admin: PublicKey;
355
367
  tokenMint: PublicKey;
356
368
  tokenMintProgramId: PublicKey;
357
- performanceFeeRate: Decimal;
358
- managementFeeRate: Decimal;
369
+ performanceFeeRatePercentage: Decimal;
370
+ managementFeeRatePercentage: Decimal;
359
371
  name: string;
360
372
  });
361
373
  getPerformanceFeeBps(): number;
@@ -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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"}
@@ -129,7 +129,7 @@ class KaminoVaultClient {
129
129
  ];
130
130
  const insertIntoLUTIxs = await this.insertIntoLookupTableIxs(vaultConfig.admin, lut, accountsToBeInserted, []);
131
131
  const setLUTIx = this.updateUninitialisedVaultConfigIx(vaultConfig.admin, vaultState.publicKey, new types_1.VaultConfigField.LookupTable(), lut.toString());
132
- const ixns = [createVaultIx, initVaultIx, createLUTIx, setLUTIx];
132
+ const ixns = [createVaultIx, initVaultIx, setLUTIx];
133
133
  if (vaultConfig.getPerformanceFeeBps() > 0) {
134
134
  const setPerformanceFeeIx = this.updateUninitialisedVaultConfigIx(vaultConfig.admin, vaultState.publicKey, new types_1.VaultConfigField.PerformanceFeeBps(), vaultConfig.getPerformanceFeeBps().toString());
135
135
  ixns.push(setPerformanceFeeIx);
@@ -142,7 +142,7 @@ class KaminoVaultClient {
142
142
  const setNameIx = this.updateUninitialisedVaultConfigIx(vaultConfig.admin, vaultState.publicKey, new types_1.VaultConfigField.Name(), vaultConfig.name);
143
143
  ixns.push(setNameIx);
144
144
  }
145
- return { vault: vaultState, initVaultIxs: { initVaultIxs: ixns, populateLUTIxs: insertIntoLUTIxs } };
145
+ return { vault: vaultState, initVaultIxs: { initVaultIxs: ixns, createLUTIx, populateLUTIxs: insertIntoLUTIxs } };
146
146
  }
147
147
  /**
148
148
  * This method updates the vault reserve allocation cofnig for an exiting vault reserve, or adds a new reserve to the vault if it does not exist.
@@ -163,7 +163,7 @@ class KaminoVaultClient {
163
163
  ctokenVault: cTokenVault,
164
164
  systemProgram: web3_js_1.SystemProgram.programId,
165
165
  rent: web3_js_1.SYSVAR_RENT_PUBKEY,
166
- tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
166
+ reserveCollateralTokenProgram: vaultState.tokenProgram,
167
167
  };
168
168
  const updateReserveAllocationArgs = {
169
169
  weight: new anchor_1.BN(reserveAllocationConfig.targetAllocationWeight),
@@ -189,15 +189,19 @@ 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
193
  * @returns a struct that contains the instruction to update the field and an optional list of instructions to update the lookup table
193
194
  */
194
- async updateVaultConfigIxs(vault, mode, value) {
195
+ async updateVaultConfigIxs(vault, mode, value, signer) {
195
196
  const vaultState = await vault.getState(this.getConnection());
196
197
  const updateVaultConfigAccs = {
197
198
  adminAuthority: vaultState.adminAuthority,
198
199
  vaultState: vault.address,
199
200
  klendProgram: this._kaminoLendProgramId,
200
201
  };
202
+ if (signer) {
203
+ updateVaultConfigAccs.adminAuthority = signer;
204
+ }
201
205
  const updateVaultConfigArgs = {
202
206
  entry: mode,
203
207
  data: Buffer.from([0]),
@@ -324,14 +328,14 @@ class KaminoVaultClient {
324
328
  const accountsInExistentLUT = (await (0, lut_utils_1.getAccountsInLUT)(this.getConnection(), vaultState.vaultLookupTable)).filter((account) => !account.equals(vaultState.adminAuthority));
325
329
  const LUTIxs = [];
326
330
  const [initNewLUTIx, newLUT] = (0, lut_utils_1.initLookupTableIx)(vaultState.pendingAdmin, await this.getConnection().getSlot());
327
- LUTIxs.push(initNewLUTIx);
328
- const insertIntoLUTIxs = await this.insertIntoLookupTableIxs(vaultState.pendingAdmin, newLUT, accountsInExistentLUT);
331
+ const insertIntoLUTIxs = await this.insertIntoLookupTableIxs(vaultState.pendingAdmin, newLUT, accountsInExistentLUT, []);
329
332
  LUTIxs.push(...insertIntoLUTIxs);
330
- const updateVaultConfigIxs = await this.updateVaultConfigIxs(vault, new types_1.VaultConfigField.LookupTable(), newLUT.toString());
333
+ const updateVaultConfigIxs = await this.updateVaultConfigIxs(vault, new types_1.VaultConfigField.LookupTable(), newLUT.toString(), vaultState.pendingAdmin);
331
334
  LUTIxs.push(updateVaultConfigIxs.updateVaultConfigIx);
332
335
  LUTIxs.push(...updateVaultConfigIxs.updateLUTIxs);
333
336
  const acceptVaultOwnershipIxs = {
334
337
  acceptVaultOwnershipIx,
338
+ initNewLUTIx,
335
339
  updateLUTIxs: LUTIxs,
336
340
  };
337
341
  return acceptVaultOwnershipIxs;
@@ -453,7 +457,6 @@ class KaminoVaultClient {
453
457
  userTokenAta: userTokenAta,
454
458
  userSharesAta: userSharesAta,
455
459
  tokenProgram: tokenProgramID,
456
- instructionSysvarAccount: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
457
460
  klendProgram: this._kaminoLendProgramId,
458
461
  sharesTokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
459
462
  };
@@ -517,7 +520,7 @@ class KaminoVaultClient {
517
520
  * This function will return a struct with the instructions to unstake from the farm if necessary and the instructions for the missing ATA creation instructions, as well as one or multiple withdraw instructions, based on how many reserves it's needed to withdraw from. This might have to be split in multiple transactions
518
521
  * @param user - user to withdraw
519
522
  * @param vault - vault to withdraw from
520
- * @param shareAmount - share amount to withdraw, in order to withdraw everything, any value > user share amount
523
+ * @param shareAmount - share amount to withdraw (in tokens, not lamports), in order to withdraw everything, any value > user share amount
521
524
  * @param slot - current slot, used to estimate the interest earned in the different reserves with allocation from the vault
522
525
  * @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
523
526
  * @param [farmState] - the state of the vault farm, if the vault has a farm. Optional. If not provided, it will be fetched
@@ -538,7 +541,7 @@ class KaminoVaultClient {
538
541
  withdrawIxs.unstakeFromFarmIfNeededIxs.push(unstakeAndWithdrawFromFarmIxs.withdrawIx);
539
542
  }
540
543
  // if the vault has allocations withdraw otherwise wtihdraw from available ix
541
- const vaultAllocation = vaultState.vaultAllocationStrategy.find((allocation) => allocation.reserve.equals(web3_js_1.PublicKey.default));
544
+ const vaultAllocation = vaultState.vaultAllocationStrategy.find((allocation) => !allocation.reserve.equals(web3_js_1.PublicKey.default));
542
545
  if (vaultAllocation) {
543
546
  const withdrawFromVaultIxs = await this.wihdrdrawWithReserveIxns(user, kaminoVault, shareAmount, slot, vaultReservesMap);
544
547
  withdrawIxs.withdrawIxs = withdrawFromVaultIxs;
@@ -630,7 +633,6 @@ class KaminoVaultClient {
630
633
  }
631
634
  return withdrawIxns;
632
635
  }
633
- // todo: make sure we also check the ata of the investor for the vault token exists
634
636
  /**
635
637
  * 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
636
638
  * @param payer wallet that pays the tx
@@ -638,19 +640,62 @@ class KaminoVaultClient {
638
640
  * @returns - an array of invest instructions for each invest action required for the vault reserves
639
641
  */
640
642
  async investAllReservesIxs(payer, vault) {
641
- //TODO: Order invest ixns by - invest that removes first, then invest that adds
642
643
  const vaultState = await vault.getState(this.getConnection());
643
- const vaultReserves = this.getVaultReserves(vaultState);
644
+ const allReserves = this.getAllVaultReserves(vaultState);
645
+ if (allReserves.length === 0) {
646
+ throw new Error('No reserves found for the vault, please select at least one reserve for the vault');
647
+ }
648
+ const [allReservesStateMap, computedReservesAllocation] = await Promise.all([
649
+ this.loadVaultReserves(vaultState),
650
+ this.getVaultComputedReservesAllocation(vaultState),
651
+ ]);
652
+ const tokenProgram = await (0, rpc_1.getAccountOwner)(this.getConnection(), vaultState.tokenMint);
653
+ const [{ ata: _payerTokenAta, createAtaIx }] = (0, utils_2.createAtasIdempotent)(payer, [
654
+ { mint: vaultState.tokenMint, tokenProgram },
655
+ ]);
656
+ // compute total vault holdings and expected distribution based on weights
657
+ const curentVaultAllocations = this.getVaultAllocations(vaultState);
658
+ const reservesToDisinvestFrom = [];
659
+ for (let index = 0; index < allReserves.length; index++) {
660
+ const reservePubkey = allReserves[index];
661
+ const reserveState = allReservesStateMap.get(reservePubkey);
662
+ const computedAllocation = computedReservesAllocation.get(reservePubkey);
663
+ const currentCTokenAllocation = curentVaultAllocations.get(reservePubkey).ctokenAllocation;
664
+ const reserveCollExchangeRate = reserveState.getCollateralExchangeRate();
665
+ const reserveAllocationLiquidityAmount = (0, lib_1.lamportsToDecimal)(currentCTokenAllocation.div(reserveCollExchangeRate), vaultState.tokenMintDecimals.toNumber());
666
+ if (computedAllocation.lt(reserveAllocationLiquidityAmount)) {
667
+ reservesToDisinvestFrom.push(reservePubkey);
668
+ }
669
+ }
644
670
  const investIxnsPromises = [];
645
- for (const reserve of vaultReserves) {
646
- const reserveState = await lib_1.Reserve.fetch(this.getConnection(), reserve, this._kaminoLendProgramId);
671
+ // invest first the reserves from which we disinvest, then the other ones
672
+ for (const reserve of reservesToDisinvestFrom) {
673
+ const reserveState = allReservesStateMap.get(reserve);
647
674
  if (reserveState === null) {
648
675
  throw new Error(`Reserve ${reserve.toBase58()} not found`);
649
676
  }
650
- const investIxsPromise = this.investSingleReserveIxs(payer, vault, { address: reserve, state: reserveState });
677
+ const investIxsPromise = this.investSingleReserveIxs(payer, vault, {
678
+ address: reserve,
679
+ state: reserveState.state,
680
+ }, allReservesStateMap, false);
651
681
  investIxnsPromises.push(investIxsPromise);
652
682
  }
653
- const investIxns = await Promise.all(investIxnsPromises).then((ixns) => ixns.flat());
683
+ for (const reserve of allReserves) {
684
+ if (!reservesToDisinvestFrom.includes(reserve)) {
685
+ const reserveState = allReservesStateMap.get(reserve);
686
+ if (reserveState === null) {
687
+ throw new Error(`Reserve ${reserve.toBase58()} not found`);
688
+ }
689
+ const investIxsPromise = this.investSingleReserveIxs(payer, vault, {
690
+ address: reserve,
691
+ state: reserveState.state,
692
+ }, allReservesStateMap, false);
693
+ investIxnsPromises.push(investIxsPromise);
694
+ }
695
+ }
696
+ let investIxns = [];
697
+ investIxns.push(createAtaIx);
698
+ investIxns = await Promise.all(investIxnsPromises).then((ixns) => ixns.flat());
654
699
  return investIxns;
655
700
  }
656
701
  // todo: make sure we also check the ata of the investor for the vault token exists
@@ -662,14 +707,19 @@ class KaminoVaultClient {
662
707
  * @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
663
708
  * @returns - an array of invest instructions for each invest action required for the vault reserves
664
709
  */
665
- async investSingleReserveIxs(payer, vault, reserve, vaultReservesMap) {
710
+ async investSingleReserveIxs(payer, vault, reserve, vaultReservesMap, createAtaIfNeeded = true) {
711
+ console.log('create invest ix for reserve', reserve.address.toBase58());
666
712
  const vaultState = await vault.getState(this.getConnection());
667
713
  const cTokenVault = getCTokenVaultPda(vault.address, reserve.address, this._kaminoVaultProgramId);
668
714
  const lendingMarketAuth = (0, utils_2.lendingMarketAuthPda)(reserve.state.lendingMarket, this._kaminoLendProgramId)[0];
715
+ const ixs = [];
669
716
  const tokenProgram = await (0, rpc_1.getAccountOwner)(this.getConnection(), vaultState.tokenMint);
670
717
  const [{ ata: payerTokenAta, createAtaIx }] = (0, utils_2.createAtasIdempotent)(payer, [
671
718
  { mint: vaultState.tokenMint, tokenProgram },
672
719
  ]);
720
+ if (createAtaIfNeeded) {
721
+ ixs.push(createAtaIx);
722
+ }
673
723
  const investAccounts = {
674
724
  payer,
675
725
  vaultState: vault.address,
@@ -949,6 +999,45 @@ class KaminoVaultClient {
949
999
  }
950
1000
  return ixns;
951
1001
  }
1002
+ /** Read the total holdings of a vault and the reserve weights and returns a map from each reserve to how many tokens should be deposited.
1003
+ * @param vaultState - the vault state to calculate the allocation for
1004
+ * @returns - a map from each reserve to how many tokens should be invested into
1005
+ */
1006
+ async getVaultComputedReservesAllocation(vaultState) {
1007
+ const holdings = await this.getVaultHoldings(vaultState);
1008
+ const initialVaultAllocations = this.getVaultAllocations(vaultState);
1009
+ const allReserves = this.getAllVaultReserves(vaultState);
1010
+ let totalAllocation = new decimal_js_1.default(0);
1011
+ initialVaultAllocations.forEach((allocation) => {
1012
+ totalAllocation = totalAllocation.add(allocation.targetWeight);
1013
+ });
1014
+ const expectedHoldingsDistribution = new lib_1.PubkeyHashMap();
1015
+ let totalLeftToInvest = holdings.total;
1016
+ let currentAllocationSum = totalAllocation;
1017
+ const ZERO = new decimal_js_1.default(0);
1018
+ while (totalLeftToInvest.gt(ZERO)) {
1019
+ const totalLeftover = totalLeftToInvest;
1020
+ for (const reserve of allReserves) {
1021
+ const reserveWithWeight = initialVaultAllocations.get(reserve);
1022
+ const targetAllocation = reserveWithWeight.targetWeight.mul(totalLeftover).div(currentAllocationSum);
1023
+ const reserveCap = reserveWithWeight.tokenAllocationCap;
1024
+ // todo: check if both target and reserveCap
1025
+ const amountToInvest = decimal_js_1.default.min(targetAllocation, reserveCap, totalLeftToInvest);
1026
+ totalLeftToInvest = totalLeftToInvest.sub(amountToInvest);
1027
+ if (amountToInvest.eq(reserveCap)) {
1028
+ currentAllocationSum = currentAllocationSum.sub(reserveWithWeight.targetWeight);
1029
+ }
1030
+ const reserveHasPreallocation = expectedHoldingsDistribution.has(reserve);
1031
+ if (reserveHasPreallocation) {
1032
+ expectedHoldingsDistribution.set(reserve, expectedHoldingsDistribution.get(reserve).add(amountToInvest));
1033
+ }
1034
+ else {
1035
+ expectedHoldingsDistribution.set(reserve, amountToInvest);
1036
+ }
1037
+ }
1038
+ }
1039
+ return expectedHoldingsDistribution;
1040
+ }
952
1041
  /**
953
1042
  * This method returns the user shares balance for a given vault
954
1043
  * @param user - user to calculate the shares balance for
@@ -1134,13 +1223,12 @@ class KaminoVaultClient {
1134
1223
  /**
1135
1224
  * This will return the a map between reserve pubkey and the pct of the vault invested amount in each reserve
1136
1225
  * @param vaultState - the kamino vault to get reserves distribution for
1137
- * @returns a ma between reserve pubkey and the allocation pct for the reserve
1226
+ * @returns a map between reserve pubkey and the allocation pct for the reserve
1138
1227
  */
1139
1228
  getAllocationsDistribuionPct(vaultState) {
1140
1229
  const allocationsDistributionPct = new lib_1.PubkeyHashMap();
1141
1230
  let totalAllocation = new decimal_js_1.default(0);
1142
1231
  const filteredAllocations = vaultState.vaultAllocationStrategy.filter((allocation) => !allocation.reserve.equals(web3_js_1.PublicKey.default));
1143
- console.log('filteredAllocations length', filteredAllocations.length);
1144
1232
  filteredAllocations.forEach((allocation) => {
1145
1233
  totalAllocation = totalAllocation.add(new decimal_js_1.default(allocation.targetAllocationWeight.toString()));
1146
1234
  });
@@ -1149,6 +1237,26 @@ class KaminoVaultClient {
1149
1237
  });
1150
1238
  return allocationsDistributionPct;
1151
1239
  }
1240
+ /**
1241
+ * This will return the a map between reserve pubkey and the allocation overview for the reserve
1242
+ * @param vaultState - the kamino vault to get reserves allocation overview for
1243
+ * @returns a map between reserve pubkey and the allocation overview for the reserve
1244
+ */
1245
+ getVaultAllocations(vaultState) {
1246
+ const vaultAllocations = new lib_1.PubkeyHashMap();
1247
+ vaultState.vaultAllocationStrategy.map((allocation) => {
1248
+ if (allocation.reserve.equals(web3_js_1.PublicKey.default)) {
1249
+ return;
1250
+ }
1251
+ const allocationOverview = {
1252
+ targetWeight: new decimal_js_1.default(allocation.targetAllocationWeight.toString()),
1253
+ tokenAllocationCap: new decimal_js_1.default(allocation.tokenAllocationCap.toString()),
1254
+ ctokenAllocation: new decimal_js_1.default(allocation.ctokenAllocation.toString()),
1255
+ };
1256
+ vaultAllocations.set(allocation.reserve, allocationOverview);
1257
+ });
1258
+ return vaultAllocations;
1259
+ }
1152
1260
  /**
1153
1261
  * This will return an unsorted hash map of all reserves that the given vault has allocations for, toghether with the amount that can be withdrawn from each of the reserves
1154
1262
  * @param vault - the kamino vault to get available liquidity to withdraw for
@@ -1189,7 +1297,11 @@ class KaminoVaultClient {
1189
1297
  * @returns a hashmap from each reserve pubkey to the reserve state
1190
1298
  */
1191
1299
  getAllVaultReserves(vault) {
1192
- return vault.vaultAllocationStrategy.map((vaultAllocation) => vaultAllocation.reserve);
1300
+ return vault.vaultAllocationStrategy
1301
+ .map((vaultAllocation) => vaultAllocation.reserve)
1302
+ .filter((reserve) => {
1303
+ return !reserve.equals(web3_js_1.PublicKey.default);
1304
+ });
1193
1305
  }
1194
1306
  /**
1195
1307
  * This will get the list of all reserve pubkeys that the vault has allocations for ex
@@ -1595,25 +1707,25 @@ class KaminoVaultConfig {
1595
1707
  tokenMint;
1596
1708
  /** The token mint program id */
1597
1709
  tokenMintProgramId;
1598
- /** The performance fee rate of the vault, expressed as a decimal */
1599
- performanceFeeRate;
1600
- /** The management fee rate of the vault, expressed as a decimal */
1601
- managementFeeRate;
1710
+ /** The performance fee rate of the vault, as percents, expressed as a decimal */
1711
+ performanceFeeRatePercentage;
1712
+ /** The management fee rate of the vault, as percents, expressed as a decimal */
1713
+ managementFeeRatePercentage;
1602
1714
  /** The name to be stored on cain for the vault (max 40 characters). */
1603
1715
  name;
1604
1716
  constructor(args) {
1605
1717
  this.admin = args.admin;
1606
1718
  this.tokenMint = args.tokenMint;
1607
- this.performanceFeeRate = args.performanceFeeRate;
1608
- this.managementFeeRate = args.managementFeeRate;
1719
+ this.performanceFeeRatePercentage = args.performanceFeeRatePercentage;
1720
+ this.managementFeeRatePercentage = args.managementFeeRatePercentage;
1609
1721
  this.tokenMintProgramId = args.tokenMintProgramId;
1610
1722
  this.name = args.name;
1611
1723
  }
1612
1724
  getPerformanceFeeBps() {
1613
- return this.performanceFeeRate.mul(100).toNumber();
1725
+ return this.performanceFeeRatePercentage.mul(100).toNumber();
1614
1726
  }
1615
1727
  getManagementFeeBps() {
1616
- return this.managementFeeRate.mul(100).toNumber();
1728
+ return this.managementFeeRatePercentage.mul(100).toNumber();
1617
1729
  }
1618
1730
  }
1619
1731
  exports.KaminoVaultConfig = KaminoVaultConfig;