@kamino-finance/klend-sdk 7.1.10 → 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 +1 -1
- package/dist/classes/reserve.js +1 -1
- package/dist/classes/vault.d.ts +156 -10
- package/dist/classes/vault.d.ts.map +1 -1
- package/dist/classes/vault.js +477 -71
- package/dist/classes/vault.js.map +1 -1
- package/dist/manager/client_kamino_manager.js +69 -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 +1 -1
- package/src/classes/farm_utils.ts +48 -0
- package/src/classes/manager.ts +100 -14
- package/src/classes/reserve.ts +1 -1
- package/src/classes/vault.ts +677 -74
- package/src/manager/client_kamino_manager.ts +103 -44
- package/src/utils/farmUtils.ts +0 -1
|
@@ -20,7 +20,6 @@ import {
|
|
|
20
20
|
lamportsToDecimal,
|
|
21
21
|
LendingMarket,
|
|
22
22
|
parseZeroPaddedUtf8,
|
|
23
|
-
printHoldings,
|
|
24
23
|
Reserve,
|
|
25
24
|
ReserveAllocationConfig,
|
|
26
25
|
ReserveWithAddress,
|
|
@@ -49,6 +48,7 @@ import { initEnv, ManagerEnv } from './tx/ManagerEnv';
|
|
|
49
48
|
import { processTx } from './tx/processor';
|
|
50
49
|
import { getPriorityFeeAndCuIxs } from '../client/tx/priorityFee';
|
|
51
50
|
import { fetchAddressLookupTable, fetchAllAddressLookupTable } from '@solana-program/address-lookup-table';
|
|
51
|
+
import { noopSigner } from '../utils/signer';
|
|
52
52
|
|
|
53
53
|
dotenv.config({
|
|
54
54
|
path: `.env${process.env.ENV ? '.' + process.env.ENV : ''}`,
|
|
@@ -401,7 +401,7 @@ async function main() {
|
|
|
401
401
|
.option(`--staging`, 'If true, will use the staging programs')
|
|
402
402
|
.action(async ({ vault, mode, symbol, extraName, staging }) => {
|
|
403
403
|
const env = await initEnv(undefined, staging);
|
|
404
|
-
const kVault = new KaminoVault(address(vault));
|
|
404
|
+
const kVault = new KaminoVault(env.c.rpc, address(vault));
|
|
405
405
|
|
|
406
406
|
const kaminoManager = new KaminoManager(
|
|
407
407
|
env.c.rpc,
|
|
@@ -409,7 +409,7 @@ async function main() {
|
|
|
409
409
|
env.klendProgramId,
|
|
410
410
|
env.kvaultProgramId
|
|
411
411
|
);
|
|
412
|
-
const vaultState = await kVault.getState(
|
|
412
|
+
const vaultState = await kVault.getState();
|
|
413
413
|
const signer = await env.getSigner({ vaultState });
|
|
414
414
|
const ix = await kaminoManager.getSetSharesMetadataIx(signer, kVault, symbol, extraName);
|
|
415
415
|
|
|
@@ -447,8 +447,8 @@ async function main() {
|
|
|
447
447
|
env.kvaultProgramId
|
|
448
448
|
);
|
|
449
449
|
|
|
450
|
-
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
|
|
451
|
-
const vaultState = await kaminoVault.getState(
|
|
450
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
|
|
451
|
+
const vaultState = await kaminoVault.getState();
|
|
452
452
|
const signer = await env.getSigner({ vaultState });
|
|
453
453
|
|
|
454
454
|
const instructions = await kaminoManager.updateVaultConfigIxs(
|
|
@@ -496,8 +496,8 @@ async function main() {
|
|
|
496
496
|
env.kvaultProgramId
|
|
497
497
|
);
|
|
498
498
|
|
|
499
|
-
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
|
|
500
|
-
const vaultState = await kaminoVault.getState(
|
|
499
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
|
|
500
|
+
const vaultState = await kaminoVault.getState();
|
|
501
501
|
const signer = await env.getSigner({ vaultState });
|
|
502
502
|
|
|
503
503
|
const instructions = await kaminoManager.updateVaultConfigIxs(kaminoVault, field, value, signer);
|
|
@@ -539,8 +539,8 @@ async function main() {
|
|
|
539
539
|
env.kvaultProgramId
|
|
540
540
|
);
|
|
541
541
|
|
|
542
|
-
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
|
|
543
|
-
const vaultState = await kaminoVault.getState(
|
|
542
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
|
|
543
|
+
const vaultState = await kaminoVault.getState();
|
|
544
544
|
const signer = await env.getSigner({ vaultState });
|
|
545
545
|
const instructions = await kaminoManager.updateVaultConfigIxs(
|
|
546
546
|
kaminoVault,
|
|
@@ -651,8 +651,8 @@ async function main() {
|
|
|
651
651
|
env.kvaultProgramId
|
|
652
652
|
);
|
|
653
653
|
|
|
654
|
-
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
|
|
655
|
-
const vaultState = await kaminoVault.getState(
|
|
654
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
|
|
655
|
+
const vaultState = await kaminoVault.getState();
|
|
656
656
|
const signer = await env.getSigner({ vaultState });
|
|
657
657
|
const syncLUTIxs = await kaminoManager.syncVaultLUTIxs(signer, kaminoVault);
|
|
658
658
|
|
|
@@ -711,8 +711,8 @@ async function main() {
|
|
|
711
711
|
env.kvaultProgramId
|
|
712
712
|
);
|
|
713
713
|
|
|
714
|
-
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
|
|
715
|
-
const vaultState = await kaminoVault.getState(
|
|
714
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
|
|
715
|
+
const vaultState = await kaminoVault.getState();
|
|
716
716
|
const signer = await env.getSigner({ vaultState });
|
|
717
717
|
const instructions = await kaminoManager.updateVaultConfigIxs(
|
|
718
718
|
kaminoVault,
|
|
@@ -757,8 +757,8 @@ async function main() {
|
|
|
757
757
|
env.kvaultProgramId
|
|
758
758
|
);
|
|
759
759
|
|
|
760
|
-
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
|
|
761
|
-
const vaultState = await kaminoVault.getState(
|
|
760
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
|
|
761
|
+
const vaultState = await kaminoVault.getState();
|
|
762
762
|
const pendingAdmin = await env.getSigner({
|
|
763
763
|
vaultState,
|
|
764
764
|
useVaultPendingAdmin: true,
|
|
@@ -835,8 +835,8 @@ async function main() {
|
|
|
835
835
|
env.kvaultProgramId
|
|
836
836
|
);
|
|
837
837
|
|
|
838
|
-
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
|
|
839
|
-
const vaultState = await kaminoVault.getState(
|
|
838
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
|
|
839
|
+
const vaultState = await kaminoVault.getState();
|
|
840
840
|
const signer = await env.getSigner({ vaultState });
|
|
841
841
|
const instruction = await kaminoManager.giveUpPendingFeesIx(kaminoVault, new Decimal(maxAmountToGiveUp), signer);
|
|
842
842
|
|
|
@@ -875,8 +875,8 @@ async function main() {
|
|
|
875
875
|
env.kvaultProgramId
|
|
876
876
|
);
|
|
877
877
|
|
|
878
|
-
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
|
|
879
|
-
const vaultState = await kaminoVault.getState(
|
|
878
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
|
|
879
|
+
const vaultState = await kaminoVault.getState();
|
|
880
880
|
const signer = await env.getSigner({ vaultState });
|
|
881
881
|
|
|
882
882
|
const instructions = await kaminoManager.withdrawPendingFeesIxs(
|
|
@@ -922,8 +922,8 @@ async function main() {
|
|
|
922
922
|
env.kvaultProgramId
|
|
923
923
|
);
|
|
924
924
|
|
|
925
|
-
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
|
|
926
|
-
const vaultState = await kaminoVault.getState(
|
|
925
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
|
|
926
|
+
const vaultState = await kaminoVault.getState();
|
|
927
927
|
const signer = await env.getSigner({ vaultState });
|
|
928
928
|
|
|
929
929
|
const ixs = await kaminoManager.fullRemoveReserveFromVaultIxs(signer, kaminoVault, reserveAddress);
|
|
@@ -964,7 +964,7 @@ async function main() {
|
|
|
964
964
|
const user = await env.getSigner();
|
|
965
965
|
const vaultAddress = address(vault);
|
|
966
966
|
|
|
967
|
-
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
|
|
967
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
|
|
968
968
|
|
|
969
969
|
const stakeIxs = await new KaminoManager(
|
|
970
970
|
env.c.rpc,
|
|
@@ -1008,8 +1008,8 @@ async function main() {
|
|
|
1008
1008
|
const env = await initEnv(staging, ms);
|
|
1009
1009
|
const reserveAddress = address(reserve);
|
|
1010
1010
|
const vaultAddress = address(vault);
|
|
1011
|
-
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
|
|
1012
|
-
const vaultState = await kaminoVault.getState(
|
|
1011
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
|
|
1012
|
+
const vaultState = await kaminoVault.getState();
|
|
1013
1013
|
const signer = await env.getSigner({ vaultState });
|
|
1014
1014
|
const allocationWeightValue = Number(allocationWeight);
|
|
1015
1015
|
const allocationCapDecimal = new Decimal(allocationCap);
|
|
@@ -1081,7 +1081,7 @@ async function main() {
|
|
|
1081
1081
|
env.kvaultProgramId
|
|
1082
1082
|
);
|
|
1083
1083
|
|
|
1084
|
-
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
|
|
1084
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
|
|
1085
1085
|
const payer = await env.getSigner();
|
|
1086
1086
|
const depositInstructions = await kaminoManager.depositToVaultIxs(payer, kaminoVault, amount);
|
|
1087
1087
|
const instructions = [...depositInstructions.depositIxs, ...depositInstructions.stakeInFarmIfNeededIxs];
|
|
@@ -1128,8 +1128,8 @@ async function main() {
|
|
|
1128
1128
|
env.kvaultProgramId
|
|
1129
1129
|
);
|
|
1130
1130
|
|
|
1131
|
-
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
|
|
1132
|
-
const vaultState = await kaminoVault.getState(
|
|
1131
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
|
|
1132
|
+
const vaultState = await kaminoVault.getState();
|
|
1133
1133
|
const lookupTableAddresses = [];
|
|
1134
1134
|
if (vaultState.vaultLookupTable !== DEFAULT_PUBLIC_KEY) {
|
|
1135
1135
|
lookupTableAddresses.push(vaultState.vaultLookupTable);
|
|
@@ -1186,7 +1186,7 @@ async function main() {
|
|
|
1186
1186
|
env.kvaultProgramId
|
|
1187
1187
|
);
|
|
1188
1188
|
|
|
1189
|
-
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
|
|
1189
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
|
|
1190
1190
|
const instructions = await kaminoManager.investAllReservesIxs(payer, kaminoVault);
|
|
1191
1191
|
|
|
1192
1192
|
for (let i = 0; i < instructions.length; i++) {
|
|
@@ -1234,7 +1234,8 @@ async function main() {
|
|
|
1234
1234
|
env.kvaultProgramId
|
|
1235
1235
|
);
|
|
1236
1236
|
|
|
1237
|
-
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
|
|
1237
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
|
|
1238
|
+
|
|
1238
1239
|
const reserveAddress = address(reserve);
|
|
1239
1240
|
const reserveState = await Reserve.fetch(env.c.rpc, reserveAddress, env.klendProgramId);
|
|
1240
1241
|
if (!reserveState) {
|
|
@@ -1292,7 +1293,7 @@ async function main() {
|
|
|
1292
1293
|
const kaminoManager = new KaminoManager(env.c.rpc, slotDuration, env.klendProgramId, env.kvaultProgramId);
|
|
1293
1294
|
|
|
1294
1295
|
const vaultAddress = address(vault);
|
|
1295
|
-
const vaultState = await new KaminoVault(vaultAddress, undefined, env.kvaultProgramId).getState(
|
|
1296
|
+
const vaultState = await new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId).getState();
|
|
1296
1297
|
const vaultCollaterals = await kaminoManager.getVaultCollaterals(
|
|
1297
1298
|
vaultState,
|
|
1298
1299
|
await env.c.rpc.getSlot({ commitment: 'confirmed' }).send()
|
|
@@ -1317,9 +1318,9 @@ async function main() {
|
|
|
1317
1318
|
const kaminoManager = new KaminoManager(env.c.rpc, slotDuration, env.klendProgramId, env.kvaultProgramId);
|
|
1318
1319
|
|
|
1319
1320
|
const vaultAddress = address(vault);
|
|
1320
|
-
const
|
|
1321
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId);
|
|
1321
1322
|
const vaultOverview = await kaminoManager.getVaultOverview(
|
|
1322
|
-
|
|
1323
|
+
kaminoVault,
|
|
1323
1324
|
new Decimal(tokenPrice),
|
|
1324
1325
|
await env.c.rpc.getSlot({ commitment: 'confirmed' }).send()
|
|
1325
1326
|
);
|
|
@@ -1342,7 +1343,7 @@ async function main() {
|
|
|
1342
1343
|
|
|
1343
1344
|
const kaminoManager = new KaminoManager(env.c.rpc, slotDuration, env.klendProgramId, env.kvaultProgramId);
|
|
1344
1345
|
|
|
1345
|
-
const kaminoVault = new KaminoVault(address(vault));
|
|
1346
|
+
const kaminoVault = new KaminoVault(env.c.rpc, address(vault), undefined, env.kvaultProgramId, slotDuration);
|
|
1346
1347
|
const farmAPY = await kaminoManager.getVaultFarmRewardsAPY(kaminoVault, new Decimal(tokenPrice));
|
|
1347
1348
|
console.log('farmAPY', farmAPY);
|
|
1348
1349
|
});
|
|
@@ -1373,7 +1374,7 @@ async function main() {
|
|
|
1373
1374
|
const kaminoManager = new KaminoManager(env.c.rpc, slotDuration, env.klendProgramId, env.kvaultProgramId);
|
|
1374
1375
|
|
|
1375
1376
|
const vaultAddress = address(vault);
|
|
1376
|
-
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
|
|
1377
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId, slotDuration);
|
|
1377
1378
|
|
|
1378
1379
|
const allVaultsTokenMints = await kaminoManager.getAllVaultsTokenMintsIncludingRewards([kaminoVault]);
|
|
1379
1380
|
console.log('allVaultsTokenMints', allVaultsTokenMints);
|
|
@@ -1390,7 +1391,13 @@ async function main() {
|
|
|
1390
1391
|
const kaminoManager = new KaminoManager(env.c.rpc, slotDuration, env.klendProgramId, env.kvaultProgramId);
|
|
1391
1392
|
|
|
1392
1393
|
const vaultAddress = address(vault);
|
|
1393
|
-
const vaultState = await new KaminoVault(
|
|
1394
|
+
const vaultState = await new KaminoVault(
|
|
1395
|
+
env.c.rpc,
|
|
1396
|
+
vaultAddress,
|
|
1397
|
+
undefined,
|
|
1398
|
+
env.kvaultProgramId,
|
|
1399
|
+
slotDuration
|
|
1400
|
+
).getState();
|
|
1394
1401
|
const allocationDistribution = kaminoManager.getAllocationsDistribuionPct(vaultState);
|
|
1395
1402
|
|
|
1396
1403
|
allocationDistribution.forEach((allocation, reserveAddress) => {
|
|
@@ -1412,7 +1419,7 @@ async function main() {
|
|
|
1412
1419
|
|
|
1413
1420
|
const vaultAddress = address(vault);
|
|
1414
1421
|
const walletAddress = address(wallet);
|
|
1415
|
-
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
|
|
1422
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId, slotDuration);
|
|
1416
1423
|
const userShares = await kaminoManager.getUserSharesBalanceSingleVault(walletAddress, kaminoVault);
|
|
1417
1424
|
console.log(
|
|
1418
1425
|
`User shares for vault ${vaultAddress}: unstaked shares: ${userShares.unstakedShares} staked shares: ${userShares.stakedShares} total shares: ${userShares.totalShares}`
|
|
@@ -1451,7 +1458,7 @@ async function main() {
|
|
|
1451
1458
|
const kaminoManager = new KaminoManager(env.c.rpc, slotDuration, env.klendProgramId, env.kvaultProgramId);
|
|
1452
1459
|
|
|
1453
1460
|
const vaultAddress = address(vault);
|
|
1454
|
-
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
|
|
1461
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId, slotDuration);
|
|
1455
1462
|
const tokensPerShare = await kaminoManager.getTokensPerShareSingleVault(
|
|
1456
1463
|
kaminoVault,
|
|
1457
1464
|
await env.c.rpc.getSlot({ commitment: 'confirmed' }).send()
|
|
@@ -1470,26 +1477,25 @@ async function main() {
|
|
|
1470
1477
|
const kaminoManager = new KaminoManager(env.c.rpc, slotDuration, env.klendProgramId, env.kvaultProgramId);
|
|
1471
1478
|
|
|
1472
1479
|
const vaultAddress = address(vault);
|
|
1473
|
-
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kvaultProgramId);
|
|
1474
|
-
await kaminoVault.getState(
|
|
1480
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress, undefined, env.kvaultProgramId, slotDuration);
|
|
1481
|
+
const vaultState = await kaminoVault.getState();
|
|
1475
1482
|
|
|
1476
1483
|
const slot = await env.c.rpc.getSlot({ commitment: 'confirmed' }).send();
|
|
1477
1484
|
const tokensPerShare = await kaminoManager.getTokensPerShareSingleVault(kaminoVault, slot);
|
|
1478
1485
|
const holdings = await kaminoManager.getVaultHoldings(kaminoVault.state!, slot);
|
|
1479
|
-
const vaultState = kaminoVault.state!;
|
|
1480
1486
|
|
|
1481
1487
|
const sharesIssued = lamportsToDecimal(
|
|
1482
1488
|
vaultState.sharesIssued.toString(),
|
|
1483
1489
|
vaultState.sharesMintDecimals.toString()
|
|
1484
1490
|
);
|
|
1485
1491
|
|
|
1486
|
-
const vaultOverview = await kaminoManager.getVaultOverview(
|
|
1492
|
+
const vaultOverview = await kaminoManager.getVaultOverview(kaminoVault, new Decimal(1.0), slot);
|
|
1487
1493
|
|
|
1488
1494
|
console.log('farm', vaultState.vaultFarm.toString());
|
|
1489
1495
|
console.log('vault token mint', vaultState.tokenMint);
|
|
1490
1496
|
console.log('Name: ', kaminoManager.getDecodedVaultName(kaminoVault.state!));
|
|
1491
1497
|
console.log('Shares issued: ', sharesIssued);
|
|
1492
|
-
|
|
1498
|
+
holdings.print();
|
|
1493
1499
|
console.log(`Tokens per share for vault ${vaultAddress}: ${tokensPerShare}`);
|
|
1494
1500
|
console.log('vaultOverview', vaultOverview);
|
|
1495
1501
|
|
|
@@ -1613,7 +1619,13 @@ async function main() {
|
|
|
1613
1619
|
const slotDuration = await getMedianSlotDurationInMsFromLastEpochs();
|
|
1614
1620
|
|
|
1615
1621
|
const kaminoManager = new KaminoManager(env.c.rpc, slotDuration, env.klendProgramId, env.kvaultProgramId);
|
|
1616
|
-
const vaultState = await new KaminoVault(
|
|
1622
|
+
const vaultState = await new KaminoVault(
|
|
1623
|
+
env.c.rpc,
|
|
1624
|
+
vaultAddress,
|
|
1625
|
+
undefined,
|
|
1626
|
+
env.kvaultProgramId,
|
|
1627
|
+
slotDuration
|
|
1628
|
+
).getState();
|
|
1617
1629
|
|
|
1618
1630
|
const simulatedHoldings = await kaminoManager.calculateSimulatedHoldingsWithInterest(vaultState);
|
|
1619
1631
|
|
|
@@ -1657,7 +1669,13 @@ async function main() {
|
|
|
1657
1669
|
const slotDuration = await getMedianSlotDurationInMsFromLastEpochs();
|
|
1658
1670
|
|
|
1659
1671
|
const kaminoManager = new KaminoManager(env.c.rpc, slotDuration, env.klendProgramId, env.kvaultProgramId);
|
|
1660
|
-
const vaultState = await new KaminoVault(
|
|
1672
|
+
const vaultState = await new KaminoVault(
|
|
1673
|
+
env.c.rpc,
|
|
1674
|
+
vaultAddress,
|
|
1675
|
+
undefined,
|
|
1676
|
+
env.kvaultProgramId,
|
|
1677
|
+
slotDuration
|
|
1678
|
+
).getState();
|
|
1661
1679
|
|
|
1662
1680
|
const computedAllocation = await kaminoManager.getVaultComputedReservesAllocation(vaultState);
|
|
1663
1681
|
console.log('computedAllocation', computedAllocation);
|
|
@@ -1975,6 +1993,47 @@ async function main() {
|
|
|
1975
1993
|
console.log(adminInfo);
|
|
1976
1994
|
});
|
|
1977
1995
|
|
|
1996
|
+
commands
|
|
1997
|
+
.command('claim-rewards-for-vault')
|
|
1998
|
+
.requiredOption('--vault <string>', 'Vault address')
|
|
1999
|
+
.requiredOption(
|
|
2000
|
+
`--mode <string>`,
|
|
2001
|
+
'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'
|
|
2002
|
+
)
|
|
2003
|
+
.option(`--staging`, 'If true, will use the staging programs')
|
|
2004
|
+
.option(`--user <string>`, 'User address')
|
|
2005
|
+
.action(async ({ vault, mode, staging, user }) => {
|
|
2006
|
+
const env = await initEnv(staging);
|
|
2007
|
+
const vaultAddress = address(vault);
|
|
2008
|
+
const kaminoVault = new KaminoVault(env.c.rpc, vaultAddress);
|
|
2009
|
+
const kaminoManager = new KaminoManager(
|
|
2010
|
+
env.c.rpc,
|
|
2011
|
+
DEFAULT_RECENT_SLOT_DURATION_MS,
|
|
2012
|
+
env.klendProgramId,
|
|
2013
|
+
env.kvaultProgramId
|
|
2014
|
+
);
|
|
2015
|
+
const userWallet = user ? noopSigner(address(user)) : await env.getSigner();
|
|
2016
|
+
const rewardsIxs = await kaminoManager.getClaimAllRewardsForVaultIxs(userWallet, kaminoVault);
|
|
2017
|
+
|
|
2018
|
+
if (rewardsIxs.length > 0) {
|
|
2019
|
+
await processTx(
|
|
2020
|
+
env.c,
|
|
2021
|
+
userWallet,
|
|
2022
|
+
[
|
|
2023
|
+
...rewardsIxs,
|
|
2024
|
+
...getPriorityFeeAndCuIxs({
|
|
2025
|
+
priorityFeeMultiplier: 2500,
|
|
2026
|
+
computeUnits: 400_000,
|
|
2027
|
+
}),
|
|
2028
|
+
],
|
|
2029
|
+
mode,
|
|
2030
|
+
[]
|
|
2031
|
+
);
|
|
2032
|
+
} else {
|
|
2033
|
+
console.log('No rewards to claim');
|
|
2034
|
+
}
|
|
2035
|
+
});
|
|
2036
|
+
|
|
1978
2037
|
await commands.parseAsync();
|
|
1979
2038
|
}
|
|
1980
2039
|
|
package/src/utils/farmUtils.ts
CHANGED
|
@@ -20,7 +20,6 @@ export async function getReserveFarmRewardsAPY(
|
|
|
20
20
|
farmsClient: Farms,
|
|
21
21
|
slot: Slot,
|
|
22
22
|
reserveState?: Reserve,
|
|
23
|
-
cTokenMintDecimals?: number,
|
|
24
23
|
tokensPrices?: Map<Address, Decimal>
|
|
25
24
|
): Promise<ReserveIncentives> {
|
|
26
25
|
const reserveIncentives: ReserveIncentives = {
|