@kamino-finance/klend-sdk 7.1.9 → 7.2.0

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.
@@ -53,6 +53,7 @@ const ManagerEnv_1 = require("./tx/ManagerEnv");
53
53
  const processor_1 = require("./tx/processor");
54
54
  const priorityFee_1 = require("../client/tx/priorityFee");
55
55
  const address_lookup_table_1 = require("@solana-program/address-lookup-table");
56
+ const signer_1 = require("../utils/signer");
56
57
  dotenv_1.default.config({
57
58
  path: `.env${process.env.ENV ? '.' + process.env.ENV : ''}`,
58
59
  });
@@ -258,9 +259,9 @@ async function main() {
258
259
  .option(`--staging`, 'If true, will use the staging programs')
259
260
  .action(async ({ vault, mode, symbol, extraName, staging }) => {
260
261
  const env = await (0, ManagerEnv_1.initEnv)(undefined, staging);
261
- const kVault = new lib_1.KaminoVault((0, kit_1.address)(vault));
262
+ const kVault = new lib_1.KaminoVault(env.c.rpc, (0, kit_1.address)(vault));
262
263
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, lib_1.DEFAULT_RECENT_SLOT_DURATION_MS, env.klendProgramId, env.kvaultProgramId);
263
- const vaultState = await kVault.getState(env.c.rpc);
264
+ const vaultState = await kVault.getState();
264
265
  const signer = await env.getSigner({ vaultState });
265
266
  const ix = await kaminoManager.getSetSharesMetadataIx(signer, kVault, symbol, extraName);
266
267
  await (0, processor_1.processTx)(env.c, signer, [
@@ -280,8 +281,8 @@ async function main() {
280
281
  const env = await (0, ManagerEnv_1.initEnv)(staging);
281
282
  const vaultAddress = (0, kit_1.address)(vault);
282
283
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, lib_1.DEFAULT_RECENT_SLOT_DURATION_MS, env.klendProgramId, env.kvaultProgramId);
283
- const kaminoVault = new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
284
- const vaultState = await kaminoVault.getState(env.c.rpc);
284
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
285
+ const vaultState = await kaminoVault.getState();
285
286
  const signer = await env.getSigner({ vaultState });
286
287
  const instructions = await kaminoManager.updateVaultConfigIxs(kaminoVault, new VaultConfigField_1.PendingVaultAdmin(), newAdmin, signer);
287
288
  await (0, processor_1.processTx)(env.c, signer, [
@@ -304,8 +305,8 @@ async function main() {
304
305
  const env = await (0, ManagerEnv_1.initEnv)(staging);
305
306
  const vaultAddress = (0, kit_1.address)(vault);
306
307
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, lib_1.DEFAULT_RECENT_SLOT_DURATION_MS, env.klendProgramId, env.kvaultProgramId);
307
- const kaminoVault = new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
308
- const vaultState = await kaminoVault.getState(env.c.rpc);
308
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
309
+ const vaultState = await kaminoVault.getState();
309
310
  const signer = await env.getSigner({ vaultState });
310
311
  const instructions = await kaminoManager.updateVaultConfigIxs(kaminoVault, field, value, signer);
311
312
  await (0, processor_1.processTx)(env.c, signer, [
@@ -327,8 +328,8 @@ async function main() {
327
328
  const env = await (0, ManagerEnv_1.initEnv)(staging);
328
329
  const vaultAddress = (0, kit_1.address)(vault);
329
330
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, lib_1.DEFAULT_RECENT_SLOT_DURATION_MS, env.klendProgramId, env.kvaultProgramId);
330
- const kaminoVault = new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
331
- const vaultState = await kaminoVault.getState(env.c.rpc);
331
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
332
+ const vaultState = await kaminoVault.getState();
332
333
  const signer = await env.getSigner({ vaultState });
333
334
  const instructions = await kaminoManager.updateVaultConfigIxs(kaminoVault, new VaultConfigField_1.ManagementFeeBps(), feeBps, signer);
334
335
  await (0, processor_1.processTx)(env.c, signer, [
@@ -386,8 +387,8 @@ async function main() {
386
387
  const env = await (0, ManagerEnv_1.initEnv)(staging);
387
388
  const vaultAddress = (0, kit_1.address)(vault);
388
389
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, lib_1.DEFAULT_RECENT_SLOT_DURATION_MS, env.klendProgramId, env.kvaultProgramId);
389
- const kaminoVault = new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
390
- const vaultState = await kaminoVault.getState(env.c.rpc);
390
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
391
+ const vaultState = await kaminoVault.getState();
391
392
  const signer = await env.getSigner({ vaultState });
392
393
  const syncLUTIxs = await kaminoManager.syncVaultLUTIxs(signer, kaminoVault);
393
394
  // if we need to create the LUT we have to do that in a separate tx and wait a little bit after
@@ -422,8 +423,8 @@ async function main() {
422
423
  const env = await (0, ManagerEnv_1.initEnv)(staging);
423
424
  const vaultAddress = (0, kit_1.address)(vault);
424
425
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, lib_1.DEFAULT_RECENT_SLOT_DURATION_MS, env.klendProgramId, env.kvaultProgramId);
425
- const kaminoVault = new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
426
- const vaultState = await kaminoVault.getState(env.c.rpc);
426
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
427
+ const vaultState = await kaminoVault.getState();
427
428
  const signer = await env.getSigner({ vaultState });
428
429
  const instructions = await kaminoManager.updateVaultConfigIxs(kaminoVault, new VaultConfigField_1.PerformanceFeeBps(), feeBps, signer);
429
430
  await (0, processor_1.processTx)(env.c, signer, [
@@ -444,8 +445,8 @@ async function main() {
444
445
  const env = await (0, ManagerEnv_1.initEnv)(staging);
445
446
  const vaultAddress = (0, kit_1.address)(vault);
446
447
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, lib_1.DEFAULT_RECENT_SLOT_DURATION_MS, env.klendProgramId, env.kvaultProgramId);
447
- const kaminoVault = new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
448
- const vaultState = await kaminoVault.getState(env.c.rpc);
448
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
449
+ const vaultState = await kaminoVault.getState();
449
450
  const pendingAdmin = await env.getSigner({
450
451
  vaultState,
451
452
  useVaultPendingAdmin: true,
@@ -488,8 +489,8 @@ async function main() {
488
489
  const env = await (0, ManagerEnv_1.initEnv)(multisig, staging);
489
490
  const vaultAddress = (0, kit_1.address)(vault);
490
491
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, lib_1.DEFAULT_RECENT_SLOT_DURATION_MS, env.klendProgramId, env.kvaultProgramId);
491
- const kaminoVault = new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
492
- const vaultState = await kaminoVault.getState(env.c.rpc);
492
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
493
+ const vaultState = await kaminoVault.getState();
493
494
  const signer = await env.getSigner({ vaultState });
494
495
  const instruction = await kaminoManager.giveUpPendingFeesIx(kaminoVault, new decimal_js_1.default(maxAmountToGiveUp), signer);
495
496
  await (0, processor_1.processTx)(env.c, signer, [
@@ -509,8 +510,8 @@ async function main() {
509
510
  const env = await (0, ManagerEnv_1.initEnv)(staging);
510
511
  const vaultAddress = (0, kit_1.address)(vault);
511
512
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, lib_1.DEFAULT_RECENT_SLOT_DURATION_MS, env.klendProgramId, env.kvaultProgramId);
512
- const kaminoVault = new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
513
- const vaultState = await kaminoVault.getState(env.c.rpc);
513
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
514
+ const vaultState = await kaminoVault.getState();
514
515
  const signer = await env.getSigner({ vaultState });
515
516
  const instructions = await kaminoManager.withdrawPendingFeesIxs(kaminoVault, await env.c.rpc.getSlot({ commitment: 'confirmed' }).send(), signer);
516
517
  await (0, processor_1.processTx)(env.c, signer, [
@@ -532,8 +533,8 @@ async function main() {
532
533
  const reserveAddress = (0, kit_1.address)(reserve);
533
534
  const vaultAddress = (0, kit_1.address)(vault);
534
535
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, lib_1.DEFAULT_RECENT_SLOT_DURATION_MS, env.klendProgramId, env.kvaultProgramId);
535
- const kaminoVault = new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
536
- const vaultState = await kaminoVault.getState(env.c.rpc);
536
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
537
+ const vaultState = await kaminoVault.getState();
537
538
  const signer = await env.getSigner({ vaultState });
538
539
  const ixs = await kaminoManager.fullRemoveReserveFromVaultIxs(signer, kaminoVault, reserveAddress);
539
540
  const transactionIxs = [
@@ -565,7 +566,7 @@ async function main() {
565
566
  const env = await (0, ManagerEnv_1.initEnv)(staging, ms);
566
567
  const user = await env.getSigner();
567
568
  const vaultAddress = (0, kit_1.address)(vault);
568
- const kaminoVault = new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
569
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
569
570
  const stakeIxs = await new lib_1.KaminoManager(env.c.rpc, lib_1.DEFAULT_RECENT_SLOT_DURATION_MS, env.klendProgramId, env.kvaultProgramId).stakeSharesIxs(user, kaminoVault);
570
571
  await (0, processor_1.processTx)(env.c, user, [
571
572
  ...stakeIxs,
@@ -592,8 +593,8 @@ async function main() {
592
593
  const env = await (0, ManagerEnv_1.initEnv)(staging, ms);
593
594
  const reserveAddress = (0, kit_1.address)(reserve);
594
595
  const vaultAddress = (0, kit_1.address)(vault);
595
- const kaminoVault = new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
596
- const vaultState = await kaminoVault.getState(env.c.rpc);
596
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
597
+ const vaultState = await kaminoVault.getState();
597
598
  const signer = await env.getSigner({ vaultState });
598
599
  const allocationWeightValue = Number(allocationWeight);
599
600
  const allocationCapDecimal = new decimal_js_1.default(allocationCap);
@@ -631,7 +632,7 @@ async function main() {
631
632
  const env = await (0, ManagerEnv_1.initEnv)(staging, multisig);
632
633
  const vaultAddress = (0, kit_1.address)(vault);
633
634
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, lib_1.DEFAULT_RECENT_SLOT_DURATION_MS, env.klendProgramId, env.kvaultProgramId);
634
- const kaminoVault = new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
635
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
635
636
  const payer = await env.getSigner();
636
637
  const depositInstructions = await kaminoManager.depositToVaultIxs(payer, kaminoVault, amount);
637
638
  const instructions = [...depositInstructions.depositIxs, ...depositInstructions.stakeInFarmIfNeededIxs];
@@ -659,7 +660,13 @@ async function main() {
659
660
  const signer = await env.getSigner();
660
661
  const vaultAddress = (0, kit_1.address)(vault);
661
662
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, lib_1.DEFAULT_RECENT_SLOT_DURATION_MS, env.klendProgramId, env.kvaultProgramId);
662
- const kaminoVault = new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
663
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
664
+ const vaultState = await kaminoVault.getState();
665
+ const lookupTableAddresses = [];
666
+ if (vaultState.vaultLookupTable !== lib_1.DEFAULT_PUBLIC_KEY) {
667
+ lookupTableAddresses.push(vaultState.vaultLookupTable);
668
+ }
669
+ const lookupTables = await (0, address_lookup_table_1.fetchAllAddressLookupTable)(env.c.rpc, lookupTableAddresses);
663
670
  const withdrawIxs = await kaminoManager.withdrawFromVaultIxs(signer, kaminoVault, new decimal_js_1.default(amount), await env.c.rpc.getSlot({ commitment: 'confirmed' }).send());
664
671
  await (0, processor_1.processTx)(env.c, signer, [
665
672
  ...withdrawIxs.unstakeFromFarmIfNeededIxs,
@@ -669,7 +676,7 @@ async function main() {
669
676
  priorityFeeMultiplier: 2500,
670
677
  computeUnits: 800_000,
671
678
  }),
672
- ], mode, []);
679
+ ], mode, lookupTables);
673
680
  mode === 'execute' && console.log('User withdrew');
674
681
  });
675
682
  commands
@@ -687,7 +694,7 @@ async function main() {
687
694
  const payer = await env.getSigner();
688
695
  const vaultAddress = (0, kit_1.address)(vault);
689
696
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, lib_1.DEFAULT_RECENT_SLOT_DURATION_MS, env.klendProgramId, env.kvaultProgramId);
690
- const kaminoVault = new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
697
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
691
698
  const instructions = await kaminoManager.investAllReservesIxs(payer, kaminoVault);
692
699
  for (let i = 0; i < instructions.length; i++) {
693
700
  const txInstructions = [];
@@ -717,7 +724,7 @@ async function main() {
717
724
  const env = await (0, ManagerEnv_1.initEnv)(staging, ms);
718
725
  const vaultAddress = (0, kit_1.address)(vault);
719
726
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, lib_1.DEFAULT_RECENT_SLOT_DURATION_MS, env.klendProgramId, env.kvaultProgramId);
720
- const kaminoVault = new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
727
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
721
728
  const reserveAddress = (0, kit_1.address)(reserve);
722
729
  const reserveState = await lib_1.Reserve.fetch(env.c.rpc, reserveAddress, env.klendProgramId);
723
730
  if (!reserveState) {
@@ -760,7 +767,7 @@ async function main() {
760
767
  const slotDuration = await (0, lib_1.getMedianSlotDurationInMsFromLastEpochs)();
761
768
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, slotDuration, env.klendProgramId, env.kvaultProgramId);
762
769
  const vaultAddress = (0, kit_1.address)(vault);
763
- const vaultState = await new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId).getState(env.c.rpc);
770
+ const vaultState = await new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId).getState();
764
771
  const vaultCollaterals = await kaminoManager.getVaultCollaterals(vaultState, await env.c.rpc.getSlot({ commitment: 'confirmed' }).send());
765
772
  vaultCollaterals.forEach((collateral) => {
766
773
  console.log('reserve ', collateral.address);
@@ -779,8 +786,8 @@ async function main() {
779
786
  const slotDuration = await (0, lib_1.getMedianSlotDurationInMsFromLastEpochs)();
780
787
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, slotDuration, env.klendProgramId, env.kvaultProgramId);
781
788
  const vaultAddress = (0, kit_1.address)(vault);
782
- const vaultState = await new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId).getState(env.c.rpc);
783
- const vaultOverview = await kaminoManager.getVaultOverview(vaultState, new decimal_js_1.default(tokenPrice), await env.c.rpc.getSlot({ commitment: 'confirmed' }).send());
789
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
790
+ const vaultOverview = await kaminoManager.getVaultOverview(kaminoVault, new decimal_js_1.default(tokenPrice), await env.c.rpc.getSlot({ commitment: 'confirmed' }).send());
784
791
  console.log('vaultOverview', vaultOverview);
785
792
  vaultOverview.reservesFarmsIncentives.reserveFarmsIncentives.forEach((incentive, reserveAddress) => {
786
793
  console.log('reserve ', reserveAddress);
@@ -796,7 +803,7 @@ async function main() {
796
803
  const env = await (0, ManagerEnv_1.initEnv)(staging);
797
804
  const slotDuration = await (0, lib_1.getMedianSlotDurationInMsFromLastEpochs)();
798
805
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, slotDuration, env.klendProgramId, env.kvaultProgramId);
799
- const kaminoVault = new lib_1.KaminoVault((0, kit_1.address)(vault));
806
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, (0, kit_1.address)(vault), undefined, env.kvaultProgramId, slotDuration);
800
807
  const farmAPY = await kaminoManager.getVaultFarmRewardsAPY(kaminoVault, new decimal_js_1.default(tokenPrice));
801
808
  console.log('farmAPY', farmAPY);
802
809
  });
@@ -821,7 +828,7 @@ async function main() {
821
828
  const slotDuration = await (0, lib_1.getMedianSlotDurationInMsFromLastEpochs)();
822
829
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, slotDuration, env.klendProgramId, env.kvaultProgramId);
823
830
  const vaultAddress = (0, kit_1.address)(vault);
824
- const kaminoVault = new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
831
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId, slotDuration);
825
832
  const allVaultsTokenMints = await kaminoManager.getAllVaultsTokenMintsIncludingRewards([kaminoVault]);
826
833
  console.log('allVaultsTokenMints', allVaultsTokenMints);
827
834
  });
@@ -834,7 +841,7 @@ async function main() {
834
841
  const slotDuration = await (0, lib_1.getMedianSlotDurationInMsFromLastEpochs)();
835
842
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, slotDuration, env.klendProgramId, env.kvaultProgramId);
836
843
  const vaultAddress = (0, kit_1.address)(vault);
837
- const vaultState = await new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId).getState(env.c.rpc);
844
+ const vaultState = await new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId, slotDuration).getState();
838
845
  const allocationDistribution = kaminoManager.getAllocationsDistribuionPct(vaultState);
839
846
  allocationDistribution.forEach((allocation, reserveAddress) => {
840
847
  console.log('reserve ', reserveAddress);
@@ -852,7 +859,7 @@ async function main() {
852
859
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, slotDuration, env.klendProgramId, env.kvaultProgramId);
853
860
  const vaultAddress = (0, kit_1.address)(vault);
854
861
  const walletAddress = (0, kit_1.address)(wallet);
855
- const kaminoVault = new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
862
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId, slotDuration);
856
863
  const userShares = await kaminoManager.getUserSharesBalanceSingleVault(walletAddress, kaminoVault);
857
864
  console.log(`User shares for vault ${vaultAddress}: unstaked shares: ${userShares.unstakedShares} staked shares: ${userShares.stakedShares} total shares: ${userShares.totalShares}`);
858
865
  });
@@ -880,7 +887,7 @@ async function main() {
880
887
  const slotDuration = await (0, lib_1.getMedianSlotDurationInMsFromLastEpochs)();
881
888
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, slotDuration, env.klendProgramId, env.kvaultProgramId);
882
889
  const vaultAddress = (0, kit_1.address)(vault);
883
- const kaminoVault = new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
890
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId, slotDuration);
884
891
  const tokensPerShare = await kaminoManager.getTokensPerShareSingleVault(kaminoVault, await env.c.rpc.getSlot({ commitment: 'confirmed' }).send());
885
892
  console.log(`Tokens per share for vault ${vaultAddress.toBase58()}: ${tokensPerShare}`);
886
893
  });
@@ -893,19 +900,18 @@ async function main() {
893
900
  const slotDuration = await (0, lib_1.getMedianSlotDurationInMsFromLastEpochs)();
894
901
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, slotDuration, env.klendProgramId, env.kvaultProgramId);
895
902
  const vaultAddress = (0, kit_1.address)(vault);
896
- const kaminoVault = new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
897
- await kaminoVault.getState(env.c.rpc);
903
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId, slotDuration);
904
+ const vaultState = await kaminoVault.getState();
898
905
  const slot = await env.c.rpc.getSlot({ commitment: 'confirmed' }).send();
899
906
  const tokensPerShare = await kaminoManager.getTokensPerShareSingleVault(kaminoVault, slot);
900
907
  const holdings = await kaminoManager.getVaultHoldings(kaminoVault.state, slot);
901
- const vaultState = kaminoVault.state;
902
908
  const sharesIssued = (0, lib_1.lamportsToDecimal)(vaultState.sharesIssued.toString(), vaultState.sharesMintDecimals.toString());
903
- const vaultOverview = await kaminoManager.getVaultOverview(vaultState, new decimal_js_1.default(1.0), slot);
909
+ const vaultOverview = await kaminoManager.getVaultOverview(kaminoVault, new decimal_js_1.default(1.0), slot);
904
910
  console.log('farm', vaultState.vaultFarm.toString());
905
911
  console.log('vault token mint', vaultState.tokenMint);
906
912
  console.log('Name: ', kaminoManager.getDecodedVaultName(kaminoVault.state));
907
913
  console.log('Shares issued: ', sharesIssued);
908
- (0, lib_1.printHoldings)(holdings);
914
+ holdings.print();
909
915
  console.log(`Tokens per share for vault ${vaultAddress}: ${tokensPerShare}`);
910
916
  console.log('vaultOverview', vaultOverview);
911
917
  for (const [reserveAddress, reserveOverview] of vaultOverview.reservesOverview) {
@@ -989,7 +995,7 @@ async function main() {
989
995
  const vaultAddress = (0, kit_1.address)(vault);
990
996
  const slotDuration = await (0, lib_1.getMedianSlotDurationInMsFromLastEpochs)();
991
997
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, slotDuration, env.klendProgramId, env.kvaultProgramId);
992
- const vaultState = await new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId).getState(env.c.rpc);
998
+ const vaultState = await new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId, slotDuration).getState();
993
999
  const simulatedHoldings = await kaminoManager.calculateSimulatedHoldingsWithInterest(vaultState);
994
1000
  console.log('Simulated holdings with interest', simulatedHoldings);
995
1001
  const simulatedFees = await kaminoManager.calculateSimulatedFees(vaultState, simulatedHoldings);
@@ -1019,7 +1025,7 @@ async function main() {
1019
1025
  const vaultAddress = (0, kit_1.address)(vault);
1020
1026
  const slotDuration = await (0, lib_1.getMedianSlotDurationInMsFromLastEpochs)();
1021
1027
  const kaminoManager = new lib_1.KaminoManager(env.c.rpc, slotDuration, env.klendProgramId, env.kvaultProgramId);
1022
- const vaultState = await new lib_1.KaminoVault(vaultAddress, undefined, env.kvaultProgramId).getState(env.c.rpc);
1028
+ const vaultState = await new lib_1.KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId, slotDuration).getState();
1023
1029
  const computedAllocation = await kaminoManager.getVaultComputedReservesAllocation(vaultState);
1024
1030
  console.log('computedAllocation', computedAllocation);
1025
1031
  });
@@ -1201,6 +1207,32 @@ async function main() {
1201
1207
  const adminInfo = await lib_1.KaminoManager.getMarketOrVaultAdminInfo(env.c.rpc, (0, kit_1.address)(addr));
1202
1208
  console.log(adminInfo);
1203
1209
  });
1210
+ commands
1211
+ .command('claim-rewards-for-vault')
1212
+ .requiredOption('--vault <string>', 'Vault address')
1213
+ .requiredOption(`--mode <string>`, 'simulate|multisig|execute - simulate - to print txn simulation and to get tx simulation link in explorer, execute - execute tx, multisig - to get bs58 tx for multisig usage')
1214
+ .option(`--staging`, 'If true, will use the staging programs')
1215
+ .option(`--user <string>`, 'User address')
1216
+ .action(async ({ vault, mode, staging, user }) => {
1217
+ const env = await (0, ManagerEnv_1.initEnv)(staging);
1218
+ const vaultAddress = (0, kit_1.address)(vault);
1219
+ const kaminoVault = new lib_1.KaminoVault(env.c.rpc, vaultAddress);
1220
+ const kaminoManager = new lib_1.KaminoManager(env.c.rpc, lib_1.DEFAULT_RECENT_SLOT_DURATION_MS, env.klendProgramId, env.kvaultProgramId);
1221
+ const userWallet = user ? (0, signer_1.noopSigner)((0, kit_1.address)(user)) : await env.getSigner();
1222
+ const rewardsIxs = await kaminoManager.getClaimAllRewardsForVaultIxs(userWallet, kaminoVault);
1223
+ if (rewardsIxs.length > 0) {
1224
+ await (0, processor_1.processTx)(env.c, userWallet, [
1225
+ ...rewardsIxs,
1226
+ ...(0, priorityFee_1.getPriorityFeeAndCuIxs)({
1227
+ priorityFeeMultiplier: 2500,
1228
+ computeUnits: 400_000,
1229
+ }),
1230
+ ], mode, []);
1231
+ }
1232
+ else {
1233
+ console.log('No rewards to claim');
1234
+ }
1235
+ });
1204
1236
  await commands.parseAsync();
1205
1237
  }
1206
1238
  main()