@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.
- package/dist/classes/farm_utils.d.ts +8 -0
- package/dist/classes/farm_utils.d.ts.map +1 -1
- package/dist/classes/farm_utils.js +39 -0
- package/dist/classes/farm_utils.js.map +1 -1
- package/dist/classes/manager.d.ts +52 -5
- package/dist/classes/manager.d.ts.map +1 -1
- package/dist/classes/manager.js +68 -9
- package/dist/classes/manager.js.map +1 -1
- package/dist/classes/reserve.d.ts +6 -1
- package/dist/classes/reserve.d.ts.map +1 -1
- package/dist/classes/reserve.js +14 -1
- package/dist/classes/reserve.js.map +1 -1
- package/dist/classes/vault.d.ts +156 -10
- package/dist/classes/vault.d.ts.map +1 -1
- package/dist/classes/vault.js +478 -72
- package/dist/classes/vault.js.map +1 -1
- package/dist/manager/client_kamino_manager.js +75 -43
- package/dist/manager/client_kamino_manager.js.map +1 -1
- package/dist/utils/farmUtils.d.ts +1 -1
- package/dist/utils/farmUtils.d.ts.map +1 -1
- package/dist/utils/farmUtils.js +1 -1
- package/dist/utils/farmUtils.js.map +1 -1
- package/package.json +3 -3
- package/src/classes/farm_utils.ts +48 -0
- package/src/classes/manager.ts +100 -14
- package/src/classes/reserve.ts +18 -1
- package/src/classes/vault.ts +678 -75
- package/src/manager/client_kamino_manager.ts +109 -44
- package/src/utils/farmUtils.ts +0 -1
|
@@ -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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
783
|
-
const vaultOverview = await kaminoManager.getVaultOverview(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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()
|