@kamino-finance/klend-sdk 5.10.0 → 5.10.2
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 +22 -0
- package/dist/classes/farm_utils.d.ts.map +1 -0
- package/dist/classes/farm_utils.js +93 -0
- package/dist/classes/farm_utils.js.map +1 -0
- package/dist/classes/lut_utils.d.ts +29 -0
- package/dist/classes/lut_utils.d.ts.map +1 -0
- package/dist/classes/lut_utils.js +62 -0
- package/dist/classes/lut_utils.js.map +1 -0
- package/dist/classes/manager.d.ts +51 -28
- package/dist/classes/manager.d.ts.map +1 -1
- package/dist/classes/manager.js +53 -27
- package/dist/classes/manager.js.map +1 -1
- package/dist/classes/types.d.ts +15 -0
- package/dist/classes/types.d.ts.map +1 -1
- package/dist/classes/utils.d.ts +6 -0
- package/dist/classes/utils.d.ts.map +1 -1
- package/dist/classes/utils.js +10 -0
- package/dist/classes/utils.js.map +1 -1
- package/dist/classes/vault.d.ts +84 -56
- package/dist/classes/vault.d.ts.map +1 -1
- package/dist/classes/vault.js +229 -134
- package/dist/classes/vault.js.map +1 -1
- package/dist/client_kamino_manager.d.ts.map +1 -1
- package/dist/client_kamino_manager.js +10 -26
- package/dist/client_kamino_manager.js.map +1 -1
- package/dist/utils/ata.d.ts.map +1 -1
- package/dist/utils/ata.js +1 -0
- package/dist/utils/ata.js.map +1 -1
- package/package.json +6 -6
- package/src/classes/farm_utils.ts +155 -0
- package/src/classes/lut_utils.ts +63 -0
- package/src/classes/manager.ts +75 -31
- package/src/classes/types.ts +18 -0
- package/src/classes/utils.ts +10 -0
- package/src/classes/vault.ts +315 -158
- package/src/client_kamino_manager.ts +19 -33
- package/src/utils/ata.ts +1 -0
|
@@ -53,7 +53,6 @@ import {
|
|
|
53
53
|
PerformanceFeeBps,
|
|
54
54
|
} from './idl_codegen_kamino_vault/types/VaultConfigField';
|
|
55
55
|
import { getAccountOwner } from './utils/rpc';
|
|
56
|
-
import { Farms, FarmState, getUserStatePDA } from '@kamino-finance/farms-sdk';
|
|
57
56
|
|
|
58
57
|
dotenv.config({
|
|
59
58
|
path: `.env${process.env.ENV ? '.' + process.env.ENV : ''}`,
|
|
@@ -351,7 +350,7 @@ async function main() {
|
|
|
351
350
|
|
|
352
351
|
const kaminoManager = new KaminoManager(env.connection, env.kLendProgramId, env.kVaultProgramId);
|
|
353
352
|
|
|
354
|
-
const instructions = await kaminoManager.
|
|
353
|
+
const instructions = await kaminoManager.insertIntoLUTIxs(env.payer.publicKey, lutAddress, addressesArr);
|
|
355
354
|
|
|
356
355
|
const updateVaultConfigSig = await processTxn(env.client, env.payer, instructions, mode, 2500, []);
|
|
357
356
|
|
|
@@ -378,7 +377,7 @@ async function main() {
|
|
|
378
377
|
const kaminoManager = new KaminoManager(env.connection, env.kLendProgramId, env.kVaultProgramId);
|
|
379
378
|
|
|
380
379
|
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kVaultProgramId);
|
|
381
|
-
const syncLUTIxs = await kaminoManager.
|
|
380
|
+
const syncLUTIxs = await kaminoManager.syncVaultLUTIxs(kaminoVault);
|
|
382
381
|
|
|
383
382
|
// if we need to create the LUT we have to do that in a separate tx and wait a little bit after
|
|
384
383
|
if (syncLUTIxs.setupLUTIfNeededIxs.length > 0) {
|
|
@@ -523,51 +522,29 @@ async function main() {
|
|
|
523
522
|
commands
|
|
524
523
|
.command('stake')
|
|
525
524
|
.requiredOption('--vault <string>', 'Vault address')
|
|
526
|
-
.requiredOption('--farm <string>', 'Farm address')
|
|
527
|
-
.requiredOption('--amount <string>', 'The number of kTokens to stake')
|
|
528
525
|
.requiredOption(
|
|
529
526
|
`--mode <string>`,
|
|
530
527
|
'simulate - to print txn simulation, inspect - to get txn simulation in explorer, execute - execute txn, multisig - to get bs58 txn for multisig usage'
|
|
531
528
|
)
|
|
532
529
|
.option(`--staging`, 'If true, will use the staging programs')
|
|
533
530
|
.option(`--multisig <string>`, 'If using multisig mode this is required, otherwise will be ignored')
|
|
534
|
-
.action(async ({ vault,
|
|
531
|
+
.action(async ({ vault, mode, staging, multisig }) => {
|
|
535
532
|
const env = initializeClient(mode === 'multisig', staging);
|
|
536
533
|
const vaultAddress = new PublicKey(vault);
|
|
537
|
-
const farmAddress = new PublicKey(farm);
|
|
538
|
-
|
|
539
|
-
const farmClient = new Farms(env.connection);
|
|
540
|
-
|
|
541
|
-
const farmState = await FarmState.fetch(env.connection, farmAddress);
|
|
542
|
-
const vaultState = await new KaminoVault(vaultAddress, undefined, env.kVaultProgramId).getState(env.connection);
|
|
543
534
|
|
|
544
|
-
const
|
|
545
|
-
? farmClient.getProgramID()
|
|
546
|
-
: farmState!.scopePrices;
|
|
547
|
-
|
|
548
|
-
const ixns: TransactionInstruction[] = [];
|
|
549
|
-
const userState = getUserStatePDA(farmClient.getProgramID(), farmAddress, env.provider.publicKey);
|
|
550
|
-
if (!userState) {
|
|
551
|
-
const createUserIx = await farmClient.createNewUserIx(env.provider.publicKey, farmAddress);
|
|
552
|
-
ixns.push(createUserIx);
|
|
553
|
-
}
|
|
535
|
+
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kVaultProgramId);
|
|
554
536
|
|
|
555
|
-
|
|
556
|
-
const stakeIx = await farmClient.stakeIx(
|
|
537
|
+
const stakeIxs = await new KaminoManager(env.connection, env.kLendProgramId, env.kVaultProgramId).stakeSharesIxs(
|
|
557
538
|
env.payer.publicKey,
|
|
558
|
-
|
|
559
|
-
new Decimal(amount),
|
|
560
|
-
vaultState.sharesMint,
|
|
561
|
-
scopePricesArg
|
|
539
|
+
kaminoVault
|
|
562
540
|
);
|
|
563
|
-
ixns.push(stakeIx);
|
|
564
541
|
|
|
565
542
|
if (mode === 'multisig' && !multisig) {
|
|
566
543
|
throw new Error('If using multisig mode, multisig is required');
|
|
567
544
|
}
|
|
568
|
-
const withdrawPendingFeesSig = await processTxn(env.client, env.payer,
|
|
545
|
+
const withdrawPendingFeesSig = await processTxn(env.client, env.payer, stakeIxs, mode, 2500, []);
|
|
569
546
|
|
|
570
|
-
mode === 'execute' && console.log('
|
|
547
|
+
mode === 'execute' && console.log('Stake into vault farm:', withdrawPendingFeesSig);
|
|
571
548
|
});
|
|
572
549
|
|
|
573
550
|
commands
|
|
@@ -647,7 +624,8 @@ async function main() {
|
|
|
647
624
|
const kaminoManager = new KaminoManager(env.connection, env.kLendProgramId, env.kVaultProgramId);
|
|
648
625
|
|
|
649
626
|
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kVaultProgramId);
|
|
650
|
-
const
|
|
627
|
+
const depositInstructions = await kaminoManager.depositToVaultIxs(env.payer.publicKey, kaminoVault, amount);
|
|
628
|
+
const instructions = [...depositInstructions.depositIxs, ...depositInstructions.stakeInFarmIfNeededIxs];
|
|
651
629
|
|
|
652
630
|
const depositSig = await processTxn(env.client, env.payer, instructions, mode, 2500, [], 800_000);
|
|
653
631
|
|
|
@@ -682,7 +660,15 @@ async function main() {
|
|
|
682
660
|
await env.connection.getSlot('confirmed')
|
|
683
661
|
);
|
|
684
662
|
|
|
685
|
-
const depositSig = await processTxn(
|
|
663
|
+
const depositSig = await processTxn(
|
|
664
|
+
env.client,
|
|
665
|
+
env.payer,
|
|
666
|
+
[...withdrawIxs.unstakeFromFarmIfNeededIxs, ...withdrawIxs.withdrawIxs],
|
|
667
|
+
mode,
|
|
668
|
+
2500,
|
|
669
|
+
[],
|
|
670
|
+
800_000
|
|
671
|
+
);
|
|
686
672
|
|
|
687
673
|
mode === 'execute' && console.log('User withdraw:', depositSig);
|
|
688
674
|
});
|
package/src/utils/ata.ts
CHANGED
|
@@ -150,6 +150,7 @@ export async function getTokenAccountBalance(provider: AnchorProvider, tokenAcco
|
|
|
150
150
|
return Number(tokenAccountBalance.value.amount).valueOf();
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
+
/// Get the balance of a token account in decimal format (tokens, not lamports)
|
|
153
154
|
export async function getTokenAccountBalanceDecimal(
|
|
154
155
|
connection: Connection,
|
|
155
156
|
mint: PublicKey,
|