@kamino-finance/klend-sdk 5.2.11 → 5.2.13
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/manager.d.ts +38 -9
- package/dist/classes/manager.d.ts.map +1 -1
- package/dist/classes/manager.js +44 -10
- package/dist/classes/manager.js.map +1 -1
- package/dist/classes/types.d.ts +23 -0
- package/dist/classes/types.d.ts.map +1 -0
- package/dist/classes/types.js +3 -0
- package/dist/classes/types.js.map +1 -0
- package/dist/classes/utils.js +2 -2
- package/dist/classes/utils.js.map +1 -1
- package/dist/classes/vault.d.ts +47 -11
- package/dist/classes/vault.d.ts.map +1 -1
- package/dist/classes/vault.js +367 -49
- package/dist/classes/vault.js.map +1 -1
- package/dist/client_kamino_manager.d.ts.map +1 -1
- package/dist/client_kamino_manager.js +62 -12
- package/dist/client_kamino_manager.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/accounts/Reserve.js +1 -1
- package/dist/idl_codegen_kamino_vault/accounts/VaultState.d.ts +18 -9
- package/dist/idl_codegen_kamino_vault/accounts/VaultState.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/accounts/VaultState.js +62 -42
- package/dist/idl_codegen_kamino_vault/accounts/VaultState.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/errors/custom.d.ts +112 -80
- package/dist/idl_codegen_kamino_vault/errors/custom.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/errors/custom.js +214 -158
- package/dist/idl_codegen_kamino_vault/errors/custom.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/deposit.d.ts +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/deposit.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/deposit.js +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/deposit.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/index.d.ts +6 -0
- package/dist/idl_codegen_kamino_vault/instructions/index.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/index.js +7 -1
- package/dist/idl_codegen_kamino_vault/instructions/index.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/initVault.d.ts +2 -2
- package/dist/idl_codegen_kamino_vault/instructions/initVault.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/initVault.js +2 -2
- package/dist/idl_codegen_kamino_vault/instructions/initVault.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/initializeSharesMetadata.d.ts +19 -0
- package/dist/idl_codegen_kamino_vault/instructions/initializeSharesMetadata.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/initializeSharesMetadata.js +58 -0
- package/dist/idl_codegen_kamino_vault/instructions/initializeSharesMetadata.js.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/invest.d.ts +3 -4
- package/dist/idl_codegen_kamino_vault/instructions/invest.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/invest.js +2 -3
- package/dist/idl_codegen_kamino_vault/instructions/invest.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/updateSharesMetadata.d.ts +16 -0
- package/dist/idl_codegen_kamino_vault/instructions/updateSharesMetadata.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/updateSharesMetadata.js +55 -0
- package/dist/idl_codegen_kamino_vault/instructions/updateSharesMetadata.js.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/updateVaultConfig.js +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/updateVaultConfig.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/withdraw.d.ts +24 -20
- package/dist/idl_codegen_kamino_vault/instructions/withdraw.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/withdraw.js +81 -20
- package/dist/idl_codegen_kamino_vault/instructions/withdraw.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/withdrawFromAvailable.d.ts +21 -0
- package/dist/idl_codegen_kamino_vault/instructions/withdrawFromAvailable.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/withdrawFromAvailable.js +55 -0
- package/dist/idl_codegen_kamino_vault/instructions/withdrawFromAvailable.js.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.d.ts +2 -3
- package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.js +3 -4
- package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/ReserveConfig.d.ts +78 -20
- package/dist/idl_codegen_kamino_vault/types/ReserveConfig.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/ReserveConfig.js +45 -14
- package/dist/idl_codegen_kamino_vault/types/ReserveConfig.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.d.ts +16 -16
- package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.js +16 -16
- package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/VaultAllocation.d.ts +5 -5
- package/dist/idl_codegen_kamino_vault/types/VaultAllocation.js +7 -7
- package/dist/idl_codegen_kamino_vault/types/VaultConfigField.d.ts +46 -7
- package/dist/idl_codegen_kamino_vault/types/VaultConfigField.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/VaultConfigField.js +84 -12
- package/dist/idl_codegen_kamino_vault/types/VaultConfigField.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/index.d.ts +2 -2
- package/dist/idl_codegen_kamino_vault/types/index.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/index.js.map +1 -1
- package/dist/lending_operations/repay_with_collateral_calcs.d.ts.map +1 -1
- package/dist/lending_operations/repay_with_collateral_calcs.js +10 -1
- package/dist/lending_operations/repay_with_collateral_calcs.js.map +1 -1
- package/dist/lending_operations/repay_with_collateral_operations.d.ts.map +1 -1
- package/dist/lending_operations/repay_with_collateral_operations.js +7 -6
- package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
- package/dist/leverage/operations.d.ts.map +1 -1
- package/dist/leverage/operations.js +12 -8
- package/dist/leverage/operations.js.map +1 -1
- package/dist/leverage/types.d.ts +1 -0
- package/dist/leverage/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/classes/manager.ts +60 -13
- package/src/classes/types.ts +28 -0
- package/src/classes/utils.ts +2 -2
- package/src/classes/vault.ts +527 -54
- package/src/client_kamino_manager.ts +119 -15
- package/src/idl_codegen_kamino_vault/accounts/Reserve.ts +1 -1
- package/src/idl_codegen_kamino_vault/accounts/VaultState.ts +215 -178
- package/src/idl_codegen_kamino_vault/errors/custom.ts +213 -157
- package/src/idl_codegen_kamino_vault/instructions/deposit.ts +2 -2
- package/src/idl_codegen_kamino_vault/instructions/index.ts +15 -0
- package/src/idl_codegen_kamino_vault/instructions/initVault.ts +4 -4
- package/src/idl_codegen_kamino_vault/instructions/initializeSharesMetadata.ts +58 -0
- package/src/idl_codegen_kamino_vault/instructions/invest.ts +5 -7
- package/src/idl_codegen_kamino_vault/instructions/updateSharesMetadata.ts +52 -0
- package/src/idl_codegen_kamino_vault/instructions/updateVaultConfig.ts +1 -1
- package/src/idl_codegen_kamino_vault/instructions/withdraw.ts +106 -40
- package/src/idl_codegen_kamino_vault/instructions/withdrawFromAvailable.ts +56 -0
- package/src/idl_codegen_kamino_vault/instructions/withdrawPendingFees.ts +5 -7
- package/src/idl_codegen_kamino_vault/types/ReserveConfig.ts +100 -28
- package/src/idl_codegen_kamino_vault/types/ReserveLiquidity.ts +25 -24
- package/src/idl_codegen_kamino_vault/types/VaultAllocation.ts +9 -9
- package/src/idl_codegen_kamino_vault/types/VaultConfigField.ts +103 -13
- package/src/idl_codegen_kamino_vault/types/index.ts +8 -2
- package/src/lending_operations/repay_with_collateral_calcs.ts +18 -1
- package/src/lending_operations/repay_with_collateral_operations.ts +9 -7
- package/src/leverage/operations.ts +69 -29
- package/src/leverage/types.ts +1 -0
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
ReserveAllocationConfig,
|
|
27
27
|
ReserveWithAddress,
|
|
28
28
|
signSendAndConfirmRawTransactionWithRetry,
|
|
29
|
+
sleep,
|
|
29
30
|
Web3Client,
|
|
30
31
|
} from './lib';
|
|
31
32
|
import * as anchor from '@coral-xyz/anchor';
|
|
@@ -224,9 +225,10 @@ async function main() {
|
|
|
224
225
|
`--mode <string>`,
|
|
225
226
|
'simulate - to print txn simulation, inspect - to get txn simulation in explorer, execute - execute txn, multisig - to get bs58 txn for multisig usage'
|
|
226
227
|
)
|
|
228
|
+
.option(`--name`, 'The onchain name of the strat')
|
|
227
229
|
.option(`--staging`, 'If true, will use the staging programs')
|
|
228
230
|
.option(`--multisig <string>`, 'If using multisig mode this is required, otherwise will be ignored')
|
|
229
|
-
.action(async ({ mint, mode, staging, multisig }) => {
|
|
231
|
+
.action(async ({ mint, mode, name, staging, multisig }) => {
|
|
230
232
|
const env = initializeClient(mode === 'multisig', staging);
|
|
231
233
|
const tokenMint = new PublicKey(mint);
|
|
232
234
|
|
|
@@ -244,11 +246,14 @@ async function main() {
|
|
|
244
246
|
tokenMintProgramId: tokenProgramID,
|
|
245
247
|
performanceFeeRate: new Decimal(0.0),
|
|
246
248
|
managementFeeRate: new Decimal(0.0),
|
|
249
|
+
name,
|
|
247
250
|
});
|
|
248
251
|
|
|
249
|
-
const { vault: vaultKp,
|
|
252
|
+
const { vault: vaultKp, initVaultIxs: instructions } = await kaminoManager.createVaultIxs(kaminoVaultConfig);
|
|
250
253
|
|
|
251
|
-
const _createVaultSig = await processTxn(env.client, env.payer, instructions, mode, 2500, [vaultKp]);
|
|
254
|
+
const _createVaultSig = await processTxn(env.client, env.payer, instructions.initVaultIxs, mode, 2500, [vaultKp]);
|
|
255
|
+
await sleep(5000);
|
|
256
|
+
const _populateLUTSig = await processTxn(env.client, env.payer, instructions.populateLUTIxs, mode, 2500, []);
|
|
252
257
|
|
|
253
258
|
mode === 'execute' && console.log('Vault created:', vaultKp.publicKey.toBase58());
|
|
254
259
|
});
|
|
@@ -274,9 +279,16 @@ async function main() {
|
|
|
274
279
|
const kaminoManager = new KaminoManager(env.connection, env.kLendProgramId, env.kVaultProgramId);
|
|
275
280
|
|
|
276
281
|
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kVaultProgramId);
|
|
277
|
-
const
|
|
278
|
-
|
|
279
|
-
const updateVaultPendingAdminSig = await processTxn(
|
|
282
|
+
const instructions = await kaminoManager.updateVaultConfigIxs(kaminoVault, new PendingVaultAdmin(), newAdmin);
|
|
283
|
+
|
|
284
|
+
const updateVaultPendingAdminSig = await processTxn(
|
|
285
|
+
env.client,
|
|
286
|
+
env.payer,
|
|
287
|
+
[instructions.updateVaultConfigIx, ...instructions.updateLUTIxs],
|
|
288
|
+
mode,
|
|
289
|
+
2500,
|
|
290
|
+
[]
|
|
291
|
+
);
|
|
280
292
|
|
|
281
293
|
mode === 'execute' && console.log('Pending admin updated:', updateVaultPendingAdminSig);
|
|
282
294
|
});
|
|
@@ -302,13 +314,84 @@ async function main() {
|
|
|
302
314
|
const kaminoManager = new KaminoManager(env.connection, env.kLendProgramId, env.kVaultProgramId);
|
|
303
315
|
|
|
304
316
|
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kVaultProgramId);
|
|
305
|
-
const
|
|
317
|
+
const instructions = await kaminoManager.updateVaultConfigIxs(kaminoVault, new ManagementFeeBps(), feeBps);
|
|
318
|
+
|
|
319
|
+
const updateVaultConfigSig = await processTxn(
|
|
320
|
+
env.client,
|
|
321
|
+
env.payer,
|
|
322
|
+
[instructions.updateVaultConfigIx, ...instructions.updateLUTIxs],
|
|
323
|
+
mode,
|
|
324
|
+
2500,
|
|
325
|
+
[]
|
|
326
|
+
);
|
|
327
|
+
|
|
328
|
+
mode === 'execute' && console.log('Management fee updated:', updateVaultConfigSig);
|
|
329
|
+
});
|
|
330
|
+
|
|
331
|
+
commands
|
|
332
|
+
.command('insert-into-lut')
|
|
333
|
+
.requiredOption('--lut <string>', 'Lookup table address')
|
|
334
|
+
.requiredOption('--addresses <string>', 'The addresses to insert into the LUT, space separated')
|
|
335
|
+
.requiredOption(
|
|
336
|
+
`--mode <string>`,
|
|
337
|
+
'simulate - to print txn simulation, inspect - to get txn simulation in explorer, execute - execute txn, multisig - to get bs58 txn for multisig usage'
|
|
338
|
+
)
|
|
339
|
+
.option(`--staging`, 'If true, will use the staging programs')
|
|
340
|
+
.option(`--multisig <string>`, 'If using multisig mode this is required, otherwise will be ignored')
|
|
341
|
+
.action(async ({ lut, addresses, mode, staging, multisig }) => {
|
|
342
|
+
const env = initializeClient(mode === 'multisig', staging);
|
|
343
|
+
const lutAddress = new PublicKey(lut);
|
|
306
344
|
|
|
307
|
-
const
|
|
345
|
+
const addressesArr = addresses.split(' ').map((address: string) => new PublicKey(address));
|
|
346
|
+
|
|
347
|
+
if (mode === 'multisig' && !multisig) {
|
|
348
|
+
throw new Error('If using multisig mode, multisig is required');
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
const kaminoManager = new KaminoManager(env.connection, env.kLendProgramId, env.kVaultProgramId);
|
|
352
|
+
|
|
353
|
+
const instructions = await kaminoManager.insertIntoLUT(env.payer.publicKey, lutAddress, addressesArr);
|
|
354
|
+
|
|
355
|
+
const updateVaultConfigSig = await processTxn(env.client, env.payer, instructions, mode, 2500, []);
|
|
308
356
|
|
|
309
357
|
mode === 'execute' && console.log('Management fee updated:', updateVaultConfigSig);
|
|
310
358
|
});
|
|
311
359
|
|
|
360
|
+
commands
|
|
361
|
+
.command('sync-vault-lut')
|
|
362
|
+
.requiredOption('--vault <string>', 'The vault address to sync')
|
|
363
|
+
.requiredOption(
|
|
364
|
+
`--mode <string>`,
|
|
365
|
+
'simulate - to print txn simulation, inspect - to get txn simulation in explorer, execute - execute txn, multisig - to get bs58 txn for multisig usage'
|
|
366
|
+
)
|
|
367
|
+
.option(`--staging`, 'If true, will use the staging programs')
|
|
368
|
+
.option(`--multisig <string>`, 'If using multisig mode this is required, otherwise will be ignored')
|
|
369
|
+
.action(async ({ vault, mode, staging, multisig }) => {
|
|
370
|
+
const env = initializeClient(mode === 'multisig', staging);
|
|
371
|
+
const vaultAddress = new PublicKey(vault);
|
|
372
|
+
|
|
373
|
+
if (mode === 'multisig' && !multisig) {
|
|
374
|
+
throw new Error('If using multisig mode, multisig is required');
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
const kaminoManager = new KaminoManager(env.connection, env.kLendProgramId, env.kVaultProgramId);
|
|
378
|
+
|
|
379
|
+
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kVaultProgramId);
|
|
380
|
+
const syncLUTIxs = await kaminoManager.syncVaultLUT(kaminoVault);
|
|
381
|
+
|
|
382
|
+
// if we need to create the LUT we have to do that in a separate tx and wait a little bit after
|
|
383
|
+
if (syncLUTIxs.setupLUTIfNeededIxs.length > 0) {
|
|
384
|
+
const setupLUTSig = await processTxn(env.client, env.payer, syncLUTIxs.setupLUTIfNeededIxs, mode, 2500, []);
|
|
385
|
+
await sleep(5000);
|
|
386
|
+
mode === 'execute' && console.log('LUT created and set to the vault:', setupLUTSig);
|
|
387
|
+
}
|
|
388
|
+
// if there are accounts to be added to the LUT we have to do that in a separate tx
|
|
389
|
+
for (const ix of syncLUTIxs.syncLUTIxs) {
|
|
390
|
+
const insertIntoLUTSig = await processTxn(env.client, env.payer, [ix], mode, 2500, []);
|
|
391
|
+
mode === 'execute' && console.log('Accounts added to the LUT:', insertIntoLUTSig);
|
|
392
|
+
}
|
|
393
|
+
});
|
|
394
|
+
|
|
312
395
|
commands
|
|
313
396
|
.command('update-vault-perf-fee')
|
|
314
397
|
.requiredOption('--vault <string>', 'Vault address')
|
|
@@ -330,9 +413,16 @@ async function main() {
|
|
|
330
413
|
const kaminoManager = new KaminoManager(env.connection, env.kLendProgramId, env.kVaultProgramId);
|
|
331
414
|
|
|
332
415
|
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kVaultProgramId);
|
|
333
|
-
const
|
|
334
|
-
|
|
335
|
-
const updateVaultPerfFeeSig = await processTxn(
|
|
416
|
+
const instructions = await kaminoManager.updateVaultConfigIxs(kaminoVault, new PerformanceFeeBps(), feeBps);
|
|
417
|
+
|
|
418
|
+
const updateVaultPerfFeeSig = await processTxn(
|
|
419
|
+
env.client,
|
|
420
|
+
env.payer,
|
|
421
|
+
[instructions.updateVaultConfigIx, ...instructions.updateLUTIxs],
|
|
422
|
+
mode,
|
|
423
|
+
2500,
|
|
424
|
+
[]
|
|
425
|
+
);
|
|
336
426
|
|
|
337
427
|
mode === 'execute' && console.log('Performance fee updated:', updateVaultPerfFeeSig);
|
|
338
428
|
});
|
|
@@ -357,9 +447,16 @@ async function main() {
|
|
|
357
447
|
const kaminoManager = new KaminoManager(env.connection, env.kLendProgramId, env.kVaultProgramId);
|
|
358
448
|
|
|
359
449
|
const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kVaultProgramId);
|
|
360
|
-
const
|
|
361
|
-
|
|
362
|
-
const acceptVaultOwnershipSig = await processTxn(
|
|
450
|
+
const instructions = await kaminoManager.acceptVaultOwnershipIxs(kaminoVault);
|
|
451
|
+
|
|
452
|
+
const acceptVaultOwnershipSig = await processTxn(
|
|
453
|
+
env.client,
|
|
454
|
+
env.payer,
|
|
455
|
+
[instructions.acceptVaultOwnershipIx, ...instructions.updateLUTIxs],
|
|
456
|
+
mode,
|
|
457
|
+
2500,
|
|
458
|
+
[]
|
|
459
|
+
);
|
|
363
460
|
|
|
364
461
|
mode === 'execute' && console.log('Vault ownership accepted:', acceptVaultOwnershipSig);
|
|
365
462
|
});
|
|
@@ -466,7 +563,14 @@ async function main() {
|
|
|
466
563
|
firstReserveAllocationConfig
|
|
467
564
|
);
|
|
468
565
|
|
|
469
|
-
const updateVaultAllocationSig = await processTxn(
|
|
566
|
+
const updateVaultAllocationSig = await processTxn(
|
|
567
|
+
env.client,
|
|
568
|
+
env.payer,
|
|
569
|
+
[instructions.updateReserveAllocationIx, ...instructions.updateLUTIxs],
|
|
570
|
+
mode,
|
|
571
|
+
2500,
|
|
572
|
+
[]
|
|
573
|
+
);
|
|
470
574
|
|
|
471
575
|
mode === 'execute' && console.log('Vault allocation updated:', updateVaultAllocationSig);
|
|
472
576
|
});
|
|
@@ -99,7 +99,7 @@ export class Reserve {
|
|
|
99
99
|
types.ReserveCollateral.layout("collateral"),
|
|
100
100
|
borsh.array(borsh.u64(), 150, "reserveCollateralPadding"),
|
|
101
101
|
types.ReserveConfig.layout("config"),
|
|
102
|
-
borsh.array(borsh.u64(),
|
|
102
|
+
borsh.array(borsh.u64(), 116, "configPadding"),
|
|
103
103
|
borsh.u64("borrowedAmountOutsideElevationGroup"),
|
|
104
104
|
borsh.array(
|
|
105
105
|
borsh.u64(),
|