@kamino-finance/klend-sdk 5.9.0 → 5.10.1

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.
Files changed (37) hide show
  1. package/dist/classes/farm_utils.d.ts +22 -0
  2. package/dist/classes/farm_utils.d.ts.map +1 -0
  3. package/dist/classes/farm_utils.js +93 -0
  4. package/dist/classes/farm_utils.js.map +1 -0
  5. package/dist/classes/lut_utils.d.ts +29 -0
  6. package/dist/classes/lut_utils.d.ts.map +1 -0
  7. package/dist/classes/lut_utils.js +62 -0
  8. package/dist/classes/lut_utils.js.map +1 -0
  9. package/dist/classes/manager.d.ts +47 -26
  10. package/dist/classes/manager.d.ts.map +1 -1
  11. package/dist/classes/manager.js +47 -23
  12. package/dist/classes/manager.js.map +1 -1
  13. package/dist/classes/types.d.ts +15 -0
  14. package/dist/classes/types.d.ts.map +1 -1
  15. package/dist/classes/utils.d.ts +6 -0
  16. package/dist/classes/utils.d.ts.map +1 -1
  17. package/dist/classes/utils.js +10 -0
  18. package/dist/classes/utils.js.map +1 -1
  19. package/dist/classes/vault.d.ts +81 -55
  20. package/dist/classes/vault.d.ts.map +1 -1
  21. package/dist/classes/vault.js +225 -132
  22. package/dist/classes/vault.js.map +1 -1
  23. package/dist/client_kamino_manager.d.ts.map +1 -1
  24. package/dist/client_kamino_manager.js +10 -26
  25. package/dist/client_kamino_manager.js.map +1 -1
  26. package/dist/utils/ata.d.ts.map +1 -1
  27. package/dist/utils/ata.js +1 -0
  28. package/dist/utils/ata.js.map +1 -1
  29. package/package.json +6 -88
  30. package/src/classes/farm_utils.ts +155 -0
  31. package/src/classes/lut_utils.ts +63 -0
  32. package/src/classes/manager.ts +67 -27
  33. package/src/classes/types.ts +18 -0
  34. package/src/classes/utils.ts +10 -0
  35. package/src/classes/vault.ts +309 -156
  36. package/src/client_kamino_manager.ts +19 -33
  37. package/src/utils/ata.ts +1 -0
@@ -0,0 +1,22 @@
1
+ import { FarmState, UserState } from '@kamino-finance/farms-sdk';
2
+ import { Connection, Keypair, PublicKey, TransactionInstruction } from '@solana/web3.js';
3
+ import Decimal from 'decimal.js/decimal';
4
+ export declare const FARMS_GLOBAL_CONFIG_MAINNET: PublicKey;
5
+ export declare function getFarmStakeIxs(connection: Connection, user: PublicKey, lamportsToStake: Decimal, farmAddress: PublicKey, fetchedFarmState?: FarmState): Promise<TransactionInstruction[]>;
6
+ export declare function getFarmUserStatePDA(connection: Connection, user: PublicKey, farm: PublicKey): Promise<PublicKey>;
7
+ export declare function getFarmUnstakeIx(connection: Connection, user: PublicKey, lamportsToUnstake: Decimal, farmAddress: PublicKey, fetchedFarmState?: FarmState): Promise<TransactionInstruction>;
8
+ export declare function getFarmWithdrawUnstakedDepositIx(connection: Connection, user: PublicKey, farm: PublicKey, stakeTokenMint: PublicKey): Promise<TransactionInstruction>;
9
+ export declare function getFarmUnstakeAndWithdrawIxs(connection: Connection, user: PublicKey, lamportsToUnstake: Decimal, farmAddress: PublicKey, fetchedFarmState?: FarmState): Promise<UnstakeAndWithdrawFromFarmIxs>;
10
+ export declare function getSetupFarmIxsWithFarm(connection: Connection, farmAdmin: Keypair, farmTokenMint: PublicKey): Promise<SetupFarmIxsWithFarm>;
11
+ export declare function getUserSharesInFarm(connection: Connection, user: PublicKey, farm: PublicKey, farmTokenDecimals: number): Promise<Decimal>;
12
+ export declare function setVaultIdForFarmIx(connection: Connection, farmAdmin: PublicKey, farm: PublicKey, vault: PublicKey): Promise<TransactionInstruction>;
13
+ export declare function getSharesInFarmUserPosition(userState: UserState, tokenDecimals: number): Decimal;
14
+ export type SetupFarmIxsWithFarm = {
15
+ farm: Keypair;
16
+ setupFarmIxs: TransactionInstruction[];
17
+ };
18
+ export type UnstakeAndWithdrawFromFarmIxs = {
19
+ unstakeIx: TransactionInstruction;
20
+ withdrawIx: TransactionInstruction;
21
+ };
22
+ //# sourceMappingURL=farm_utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"farm_utils.d.ts","sourceRoot":"","sources":["../../src/classes/farm_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EAET,SAAS,EAKV,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,OAAO,MAAM,oBAAoB,CAAC;AAEzC,eAAO,MAAM,2BAA2B,EAAE,SAAyE,CAAC;AAEpH,wBAAsB,eAAe,CACnC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,eAAe,EAAE,OAAO,EACxB,WAAW,EAAE,SAAS,EACtB,gBAAgB,CAAC,EAAE,SAAS,GAC3B,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAuBnC;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,SAAS,CAAC,CAGpB;AAED,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,iBAAiB,EAAE,OAAO,EAC1B,WAAW,EAAE,SAAS,EACtB,gBAAgB,CAAC,EAAE,SAAS,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CAkBjC;AAGD,wBAAsB,gCAAgC,CACpD,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,SAAS,EACf,cAAc,EAAE,SAAS,GACxB,OAAO,CAAC,sBAAsB,CAAC,CAKjC;AAED,wBAAsB,4BAA4B,CAChD,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,iBAAiB,EAAE,OAAO,EAC1B,WAAW,EAAE,SAAS,EACtB,gBAAgB,CAAC,EAAE,SAAS,GAC3B,OAAO,CAAC,6BAA6B,CAAC,CASxC;AAED,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,OAAO,EAClB,aAAa,EAAE,SAAS,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAK/B;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,SAAS,EACf,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,sBAAsB,CAAC,CAGjC;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAEhG;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,sBAAsB,EAAE,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,SAAS,EAAE,sBAAsB,CAAC;IAClC,UAAU,EAAE,sBAAsB,CAAC;CACpC,CAAC"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FARMS_GLOBAL_CONFIG_MAINNET = void 0;
7
+ exports.getFarmStakeIxs = getFarmStakeIxs;
8
+ exports.getFarmUserStatePDA = getFarmUserStatePDA;
9
+ exports.getFarmUnstakeIx = getFarmUnstakeIx;
10
+ exports.getFarmWithdrawUnstakedDepositIx = getFarmWithdrawUnstakedDepositIx;
11
+ exports.getFarmUnstakeAndWithdrawIxs = getFarmUnstakeAndWithdrawIxs;
12
+ exports.getSetupFarmIxsWithFarm = getSetupFarmIxsWithFarm;
13
+ exports.getUserSharesInFarm = getUserSharesInFarm;
14
+ exports.setVaultIdForFarmIx = setVaultIdForFarmIx;
15
+ exports.getSharesInFarmUserPosition = getSharesInFarmUserPosition;
16
+ const farms_sdk_1 = require("@kamino-finance/farms-sdk");
17
+ const web3_js_1 = require("@solana/web3.js");
18
+ const decimal_1 = __importDefault(require("decimal.js/decimal"));
19
+ exports.FARMS_GLOBAL_CONFIG_MAINNET = new web3_js_1.PublicKey('6UodrBjL2ZreDy7QdR4YV1oxqMBjVYSEyrFpctqqwGwL');
20
+ async function getFarmStakeIxs(connection, user, lamportsToStake, farmAddress, fetchedFarmState) {
21
+ const farmState = fetchedFarmState ? fetchedFarmState : await farms_sdk_1.FarmState.fetch(connection, farmAddress);
22
+ if (!farmState) {
23
+ throw new Error(`Farm state not found for ${farmAddress}`);
24
+ }
25
+ const farmClient = new farms_sdk_1.Farms(connection);
26
+ const scopePricesArg = farmState.scopePrices.equals(web3_js_1.PublicKey.default)
27
+ ? farmClient.getProgramID()
28
+ : farmState.scopePrices;
29
+ const stakeIxs = [];
30
+ const userState = (0, farms_sdk_1.getUserStatePDA)(farmClient.getProgramID(), farmAddress, user);
31
+ const userStateExists = await connection.getAccountInfo(userState);
32
+ if (!userStateExists) {
33
+ const createUserIx = farmClient.createNewUserIx(user, farmAddress);
34
+ stakeIxs.push(createUserIx);
35
+ }
36
+ const stakeIx = farmClient.stakeIx(user, farmAddress, lamportsToStake, farmState.token.mint, scopePricesArg);
37
+ stakeIxs.push(stakeIx);
38
+ return stakeIxs;
39
+ }
40
+ async function getFarmUserStatePDA(connection, user, farm) {
41
+ const farmClient = new farms_sdk_1.Farms(connection);
42
+ return (0, farms_sdk_1.getUserStatePDA)(farmClient.getProgramID(), farm, user);
43
+ }
44
+ async function getFarmUnstakeIx(connection, user, lamportsToUnstake, farmAddress, fetchedFarmState) {
45
+ const farmState = fetchedFarmState ? fetchedFarmState : await farms_sdk_1.FarmState.fetch(connection, farmAddress);
46
+ if (!farmState) {
47
+ throw new Error(`Farm state not found for ${farmAddress}`);
48
+ }
49
+ const farmClient = new farms_sdk_1.Farms(connection);
50
+ const scopePricesArg = farmState.scopePrices.equals(web3_js_1.PublicKey.default)
51
+ ? farmClient.getProgramID()
52
+ : farmState.scopePrices;
53
+ const userState = (0, farms_sdk_1.getUserStatePDA)(farmClient.getProgramID(), farmAddress, user);
54
+ if (!userState) {
55
+ throw new Error(`User state not found for ${user}`);
56
+ }
57
+ const x = new decimal_1.default(lamportsToUnstake.toString()).mul(farms_sdk_1.WAD);
58
+ console.log('lamportsToUnstake', lamportsToUnstake.toString());
59
+ return farmClient.unstakeIx(user, farmAddress, x.toString(), scopePricesArg);
60
+ }
61
+ // withdrawing from a farm is a 2 step operation: first we unstake the tokens from the farm, then we withdraw them
62
+ async function getFarmWithdrawUnstakedDepositIx(connection, user, farm, stakeTokenMint) {
63
+ const farmClient = new farms_sdk_1.Farms(connection);
64
+ const userState = (0, farms_sdk_1.getUserStatePDA)(farmClient.getProgramID(), farm, user);
65
+ return farmClient.withdrawUnstakedDepositIx(user, userState, farm, stakeTokenMint);
66
+ }
67
+ async function getFarmUnstakeAndWithdrawIxs(connection, user, lamportsToUnstake, farmAddress, fetchedFarmState) {
68
+ const farmState = fetchedFarmState ? fetchedFarmState : await farms_sdk_1.FarmState.fetch(connection, farmAddress);
69
+ if (!farmState) {
70
+ throw new Error(`Farm state not found for ${farmAddress}`);
71
+ }
72
+ const unstakeIx = await getFarmUnstakeIx(connection, user, lamportsToUnstake, farmAddress, farmState);
73
+ const withdrawIx = await getFarmWithdrawUnstakedDepositIx(connection, user, farmAddress, farmState.token.mint);
74
+ return { unstakeIx, withdrawIx };
75
+ }
76
+ async function getSetupFarmIxsWithFarm(connection, farmAdmin, farmTokenMint) {
77
+ const farmClient = new farms_sdk_1.Farms(connection);
78
+ const farm = new web3_js_1.Keypair();
79
+ const ixs = await farmClient.createFarmIx(farmAdmin.publicKey, farm, exports.FARMS_GLOBAL_CONFIG_MAINNET, farmTokenMint);
80
+ return { farm, setupFarmIxs: ixs };
81
+ }
82
+ async function getUserSharesInFarm(connection, user, farm, farmTokenDecimals) {
83
+ const farmClient = new farms_sdk_1.Farms(connection);
84
+ return farmClient.getUserTokensInUndelegatedFarm(user, farm, farmTokenDecimals);
85
+ }
86
+ async function setVaultIdForFarmIx(connection, farmAdmin, farm, vault) {
87
+ const farmClient = new farms_sdk_1.Farms(connection);
88
+ return farmClient.updateFarmConfigIx(farmAdmin, farm, web3_js_1.PublicKey.default, new farms_sdk_1.FarmConfigOption.UpdateVaultId(), vault);
89
+ }
90
+ function getSharesInFarmUserPosition(userState, tokenDecimals) {
91
+ return (0, farms_sdk_1.lamportsToCollDecimal)(new decimal_1.default((0, farms_sdk_1.scaleDownWads)(userState.activeStakeScaled)), tokenDecimals);
92
+ }
93
+ //# sourceMappingURL=farm_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"farm_utils.js","sourceRoot":"","sources":["../../src/classes/farm_utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { Connection, PublicKey, TransactionInstruction } from '@solana/web3.js';
2
+ /**
3
+ * This method retuns an instruction that creates a lookup table, alongside the pubkey of the lookup table
4
+ * @param payer - the owner of the lookup table
5
+ * @param slot - the current slot
6
+ * @returns - the instruction to create the lookup table and its address
7
+ */
8
+ export declare function initLookupTableIx(payer: PublicKey, slot: number): [TransactionInstruction, PublicKey];
9
+ /**
10
+ * This method retuns an instruction that deactivates a lookup table, which is needed to close it
11
+ * @param payer - the owner of the lookup table
12
+ * @param lookupTable - the lookup table to deactivate
13
+ * @returns - the instruction to deactivate the lookup table
14
+ */
15
+ export declare function deactivateLookupTableIx(payer: PublicKey, lookupTable: PublicKey): TransactionInstruction;
16
+ /**
17
+ * This method returns an instruction that closes a lookup table. That lookup table needs to be disabled at least 500 blocks before closing it.
18
+ * @param payer - the owner of the lookup table
19
+ * @param lookupTable - the lookup table to close
20
+ * @returns - the instruction to close the lookup table
21
+ */
22
+ export declare function closeLookupTableIx(payer: PublicKey, lookupTable: PublicKey): TransactionInstruction;
23
+ /**
24
+ * Returns the accounts in a lookup table
25
+ * @param lookupTable - lookup table to get the accounts from
26
+ * @returns - an array of accounts in the lookup table
27
+ */
28
+ export declare function getAccountsInLUT(connection: Connection, lookupTable: PublicKey): Promise<PublicKey[]>;
29
+ //# sourceMappingURL=lut_utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lut_utils.d.ts","sourceRoot":"","sources":["../../src/classes/lut_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,UAAU,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE3G;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAQrG;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,GAAG,sBAAsB,CAOxG;AAED;;;;;GAKG;AAEH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,GAAG,sBAAsB,CAQnG;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAO3G"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initLookupTableIx = initLookupTableIx;
4
+ exports.deactivateLookupTableIx = deactivateLookupTableIx;
5
+ exports.closeLookupTableIx = closeLookupTableIx;
6
+ exports.getAccountsInLUT = getAccountsInLUT;
7
+ const web3_js_1 = require("@solana/web3.js");
8
+ /**
9
+ * This method retuns an instruction that creates a lookup table, alongside the pubkey of the lookup table
10
+ * @param payer - the owner of the lookup table
11
+ * @param slot - the current slot
12
+ * @returns - the instruction to create the lookup table and its address
13
+ */
14
+ function initLookupTableIx(payer, slot) {
15
+ const [ixn, address] = web3_js_1.AddressLookupTableProgram.createLookupTable({
16
+ authority: payer,
17
+ payer,
18
+ recentSlot: slot,
19
+ });
20
+ return [ixn, address];
21
+ }
22
+ /**
23
+ * This method retuns an instruction that deactivates a lookup table, which is needed to close it
24
+ * @param payer - the owner of the lookup table
25
+ * @param lookupTable - the lookup table to deactivate
26
+ * @returns - the instruction to deactivate the lookup table
27
+ */
28
+ function deactivateLookupTableIx(payer, lookupTable) {
29
+ const ixn = web3_js_1.AddressLookupTableProgram.deactivateLookupTable({
30
+ authority: payer,
31
+ lookupTable: lookupTable,
32
+ });
33
+ return ixn;
34
+ }
35
+ /**
36
+ * This method returns an instruction that closes a lookup table. That lookup table needs to be disabled at least 500 blocks before closing it.
37
+ * @param payer - the owner of the lookup table
38
+ * @param lookupTable - the lookup table to close
39
+ * @returns - the instruction to close the lookup table
40
+ */
41
+ /// this require the LUT to be deactivated at least 500 blocks before
42
+ function closeLookupTableIx(payer, lookupTable) {
43
+ const ixn = web3_js_1.AddressLookupTableProgram.closeLookupTable({
44
+ authority: payer,
45
+ recipient: payer,
46
+ lookupTable: lookupTable,
47
+ });
48
+ return ixn;
49
+ }
50
+ /**
51
+ * Returns the accounts in a lookup table
52
+ * @param lookupTable - lookup table to get the accounts from
53
+ * @returns - an array of accounts in the lookup table
54
+ */
55
+ async function getAccountsInLUT(connection, lookupTable) {
56
+ const lutState = await connection.getAddressLookupTable(lookupTable);
57
+ if (!lutState || !lutState.value) {
58
+ throw new Error(`Lookup table ${lookupTable} not found`);
59
+ }
60
+ return lutState.value.state.addresses;
61
+ }
62
+ //# sourceMappingURL=lut_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lut_utils.js","sourceRoot":"","sources":["../../src/classes/lut_utils.ts"],"names":[],"mappings":";;AAQA,8CAQC;AAQD,0DAOC;AASD,gDAQC;AAOD,4CAOC;AA9DD,6CAA2G;AAE3G;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,KAAgB,EAAE,IAAY;IAC9D,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,mCAAyB,CAAC,iBAAiB,CAAC;QACjE,SAAS,EAAE,KAAK;QAChB,KAAK;QACL,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,uBAAuB,CAAC,KAAgB,EAAE,WAAsB;IAC9E,MAAM,GAAG,GAAG,mCAAyB,CAAC,qBAAqB,CAAC;QAC1D,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,WAAW;KACzB,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,qEAAqE;AACrE,SAAgB,kBAAkB,CAAC,KAAgB,EAAE,WAAsB;IACzE,MAAM,GAAG,GAAG,mCAAyB,CAAC,gBAAgB,CAAC;QACrD,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,WAAW;KACzB,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,gBAAgB,CAAC,UAAsB,EAAE,WAAsB;IACnF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACrE,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,gBAAgB,WAAW,YAAY,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;AACxC,CAAC"}
@@ -5,7 +5,8 @@ import { ReserveConfig } from '../idl_codegen/types';
5
5
  import Decimal from 'decimal.js';
6
6
  import { VaultState } from '../idl_codegen_kamino_vault/accounts';
7
7
  import { VaultConfigFieldKind } from '../idl_codegen_kamino_vault/types';
8
- import { AcceptVaultOwnershipIxs, InitVaultIxs, SyncVaultLUTIxs, UpdateReserveAllocationIxs, UpdateVaultConfigIxs } from './types';
8
+ import { AcceptVaultOwnershipIxs, DepositIxs, InitVaultIxs, SyncVaultLUTIxs, UpdateReserveAllocationIxs, UpdateVaultConfigIxs, UserSharesForVault, WithdrawIxs } from './types';
9
+ import { FarmState } from '@kamino-finance/farms-sdk/dist';
9
10
  /**
10
11
  * KaminoManager is a class that provides a high-level interface to interact with the Kamino Lend and Kamino Vault programs, in order to create and manage a market, as well as vaults
11
12
  */
@@ -43,7 +44,6 @@ export declare class KaminoManager {
43
44
  /**
44
45
  * This method will create a vault with a given config. The config can be changed later on, but it is recommended to set it up correctly from the start
45
46
  * @param vaultConfig - the config object used to create a vault
46
- * @returns vault - keypair, should be used to sign the transaction which creates the vault account
47
47
  * @returns vault: the keypair of the vault, used to sign the initialization transaction; initVaultIxs: a struct with ixs to initialize the vault and its lookup table + populateLUTIxs, a list to populate the lookup table which has to be executed in a separate transaction
48
48
  */
49
49
  createVaultIxs(vaultConfig: KaminoVaultConfig): Promise<{
@@ -54,7 +54,7 @@ export declare class KaminoManager {
54
54
  * This method updates the vault reserve allocation cofnig for an exiting vault reserve, or adds a new reserve to the vault if it does not exist.
55
55
  * @param vault - vault to be updated
56
56
  * @param reserveAllocationConfig - new reserve allocation config
57
- * @returns - a struct of instructions
57
+ * @returns - a struct with an instruction to update the reserve allocation and an optional list of instructions to update the lookup table for the allocation changes
58
58
  */
59
59
  updateVaultReserveAllocationIxs(vault: KaminoVault, reserveAllocationConfig: ReserveAllocationConfig): Promise<UpdateReserveAllocationIxs>;
60
60
  /**
@@ -86,13 +86,22 @@ export declare class KaminoManager {
86
86
  /**
87
87
  * This function creates instructions to deposit into a vault. It will also create ATA creation instructions for the vault shares that the user receives in return
88
88
  * @param user - user to deposit
89
- * @param vault - vault to deposit into
89
+ * @param vault - vault to deposit into (if the state is not provided, it will be fetched)
90
90
  * @param tokenAmount - token amount to be deposited, in decimals (will be converted in lamports)
91
- * @param tokenProgramIDOverride - optional param; should be passed if token to be deposited is token22
92
- * @param vaultReservesMap - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
93
- * @returns - an array of instructions to be used to be executed
91
+ * @param [vaultReservesMap] - optional parameter; a hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
92
+ * @param [farmState] - the state of the vault farm, if the vault has a farm. Optional. If not provided, it will be fetched
93
+ * @returns - an instance of DepositIxs which contains the instructions to deposit in vault and the instructions to stake the shares in the farm if the vault has a farm
94
94
  */
95
- depositToVaultIxs(user: PublicKey, vault: KaminoVault, tokenAmount: Decimal, vaultReservesMap?: PubkeyHashMap<PublicKey, KaminoReserve>): Promise<TransactionInstruction[]>;
95
+ depositToVaultIxs(user: PublicKey, vault: KaminoVault, tokenAmount: Decimal, vaultReservesMap?: PubkeyHashMap<PublicKey, KaminoReserve>): Promise<DepositIxs>;
96
+ /**
97
+ * This function creates instructions to stake the shares in the vault farm if the vault has a farm
98
+ * @param user - user to stake
99
+ * @param vault - vault to deposit into its farm (if the state is not provided, it will be fetched)
100
+ * @param [sharesAmount] - token amount to be deposited, in decimals (will be converted in lamports). Optional. If not provided, the user's share balance will be used
101
+ * @param [farmState] - the state of the vault farm, if the vault has a farm. Optional. If not provided, it will be fetched
102
+ * @returns - a list of instructions for the user to stake shares into the vault's farm, including the creation of prerequisite accounts if needed
103
+ */
104
+ stakeSharesIxs(user: PublicKey, vault: KaminoVault, sharesAmount?: Decimal, farmState?: FarmState): Promise<TransactionInstruction[]>;
96
105
  /**
97
106
  * Update a field of the vault. If the field is a pubkey it will return an extra instruction to add that account into the lookup table
98
107
  * @param vault the vault to update
@@ -101,17 +110,23 @@ export declare class KaminoManager {
101
110
  * @returns a struct that contains the instruction to update the field and an optional list of instructions to update the lookup table
102
111
  */
103
112
  updateVaultConfigIxs(vault: KaminoVault, mode: VaultConfigFieldKind, value: string): Promise<UpdateVaultConfigIxs>;
113
+ /** Sets the farm where the shares can be staked. This is store in vault state and a vault can only have one farm, so the new farm will ovveride the old farm
114
+ * @param vault - vault to set the farm for
115
+ * @param farm - the farm where the vault shares can be staked
116
+ * @param [errorOnOverride] - if true, the function will throw an error if the vault already has a farm. If false, it will override the farm
117
+ */
118
+ setVaultFarm(vault: KaminoVault, farm: PublicKey, errorOnOverride?: boolean): Promise<UpdateVaultConfigIxs>;
104
119
  /**
105
- * This function creates the instruction for the `pendingAdmin` of the vault to accept to become the owner of the vault (step 2/2 of the ownership transfer) and the instructions to sync the vault LUT to the new state
120
+ * This function creates the instruction for the `pendingAdmin` of the vault to accept to become the owner of the vault (step 2/2 of the ownership transfer)
106
121
  * @param vault - vault to change the ownership for
107
- * @returns - an instruction to be used to be executed
122
+ * @returns - an instruction to accept the ownership of the vault and a list of instructions to update the lookup table
108
123
  */
109
124
  acceptVaultOwnershipIxs(vault: KaminoVault): Promise<AcceptVaultOwnershipIxs>;
110
125
  /**
111
126
  * This function creates the instruction for the admin to give up a part of the pending fees (which will be accounted as part of the vault)
112
127
  * @param vault - vault to give up pending fees for
113
128
  * @param maxAmountToGiveUp - the maximum amount of fees to give up, in tokens
114
- * @returns - an instruction to be used to be executed
129
+ * @returns - an instruction to give up the specified pending fees
115
130
  */
116
131
  giveUpPendingFeesIx(vault: KaminoVault, maxAmountToGiveUp: Decimal): Promise<TransactionInstruction>;
117
132
  /**
@@ -120,31 +135,35 @@ export declare class KaminoManager {
120
135
  * @param vault - vault to withdraw from
121
136
  * @param shareAmount - share amount to withdraw, in order to withdraw everything, any value > user share amount
122
137
  * @param slot - current slot, used to estimate the interest earned in the different reserves with allocation from the vault
123
- * @returns an array of instructions to be executed
138
+ * @param [vaultReservesMap] - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
139
+ * @returns an array of instructions to create missing ATAs if needed and the withdraw instructions
124
140
  */
125
- withdrawFromVaultIxs(user: PublicKey, vault: KaminoVault, shareAmount: Decimal, slot: number): Promise<TransactionInstruction[]>;
141
+ withdrawFromVaultIxs(user: PublicKey, vault: KaminoVault, shareAmount: Decimal, slot: number): Promise<WithdrawIxs>;
126
142
  /**
127
143
  * This method withdraws all the pending fees from the vault to the owner's token ATA
128
144
  * @param vault - vault for which the admin withdraws the pending fees
129
145
  * @param slot - current slot, used to estimate the interest earned in the different reserves with allocation from the vault
130
- * @returns - list of instructions to withdraw all pending fees
146
+ * @param [vaultReservesMap] - a hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
147
+ * @returns - list of instructions to withdraw all pending fees, including the ATA creation instructions if needed
131
148
  */
132
149
  withdrawPendingFeesIxs(vault: KaminoVault, slot: number): Promise<TransactionInstruction[]>;
133
150
  /**
134
- * This method append the given keys to the lookup table
135
- * @param payer - the owner of the lookup table
136
- * @param slot - the LUT into which the keys will be inserted
137
- * @param keys - the keys to be inserted
138
- * @returns - list of instructions to insert the keys into the lookup table
151
+ * This method inserts the missing keys from the provided keys into an existent lookup table
152
+ * @param payer - payer wallet pubkey
153
+ * @param lookupTable - lookup table to insert the keys into
154
+ * @param keys - keys to insert into the lookup table
155
+ * @param [accountsInLUT] - the existent accounts in the lookup table. Optional. If provided, the function will not fetch the accounts in the lookup table
156
+ * @returns - an array of instructions to insert the missing keys into the lookup table
139
157
  */
140
- insertIntoLUT(payer: PublicKey, lut: PublicKey, keys: PublicKey[]): Promise<TransactionInstruction[]>;
158
+ insertIntoLUTIxs(payer: PublicKey, lut: PublicKey, keys: PublicKey[]): Promise<TransactionInstruction[]>;
141
159
  /**
142
160
  * Sync a vault for lookup table; create and set the LUT for the vault if needed and fill it with all the needed accounts
143
161
  * @param vault the vault to sync and set the LUT for if needed
144
162
  * @param vaultReserves optional; the state of the reserves in the vault allocation
163
+ * @param [vaultReservesMap] - optional parameter; a hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
145
164
  * @returns a struct that contains a list of ix to create the LUT and assign it to the vault if needed + a list of ixs to insert all the accounts in the LUT
146
165
  */
147
- syncVaultLUT(vault: KaminoVault, vaultReserves?: PubkeyHashMap<PublicKey, KaminoReserve>): Promise<SyncVaultLUTIxs>;
166
+ syncVaultLUTIxs(vault: KaminoVault, vaultReserves?: PubkeyHashMap<PublicKey, KaminoReserve>): Promise<SyncVaultLUTIxs>;
148
167
  /**
149
168
  * This method calculates the token per share value. This will always change based on interest earned from the vault, but calculating it requires a bunch of rpc requests. Caching this for a short duration would be optimal
150
169
  * @param vault - vault to calculate tokensPerShare for
@@ -164,16 +183,16 @@ export declare class KaminoManager {
164
183
  * This method returns the user shares balance for a given vault
165
184
  * @param user - user to calculate the shares balance for
166
185
  * @param vault - vault to calculate shares balance for
167
- * @returns - user share balance in decimal (not lamports)
186
+ * @returns - a struct of user share balance (staked in vault farm if the vault has a farm and unstaked) in decimal (not lamports)
168
187
  */
169
- getUserSharesBalanceSingleVault(user: PublicKey, vault: KaminoVault): Promise<Decimal>;
188
+ getUserSharesBalanceSingleVault(user: PublicKey, vault: KaminoVault): Promise<UserSharesForVault>;
170
189
  /**
171
190
  * This method returns the user shares balance for all existing vaults
172
191
  * @param user - user to calculate the shares balance for
173
192
  * @param vaultsOverride - the kamino vaults if already fetched, in order to reduce rpc calls
174
193
  * @returns - hash map with keyh as vault address and value as user share balance in decimal (not lamports)
175
194
  */
176
- getUserSharesBalanceAllVaults(user: PublicKey, vaultsOverride?: KaminoVault[]): Promise<PubkeyHashMap<PublicKey, Decimal>>;
195
+ getUserSharesBalanceAllVaults(user: PublicKey, vaultsOverride?: KaminoVault[]): Promise<PubkeyHashMap<PublicKey, UserSharesForVault>>;
177
196
  /**
178
197
  * This method returns the management and performance fee percentages
179
198
  * @param vaultState - vault to retrieve the fees percentages from
@@ -329,11 +348,13 @@ export declare class KaminoManager {
329
348
  investAllReserves(payer: PublicKey, kaminoVault: KaminoVault): Promise<TransactionInstruction[]>;
330
349
  /**
331
350
  * This will trigger invest by balancing, based on weights, the reserve allocation of the vault. It can either withdraw or deposit into the given reserve to balance it
332
- * @param kaminoVault - vault to invest from
351
+ * @param payer wallet pubkey
352
+ * @param vault - vault to invest from
333
353
  * @param reserve - reserve to invest into or disinvest from
354
+ * @param [vaultReservesMap] - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
334
355
  * @returns - an array of invest instructions for each invest action required for the vault reserves
335
356
  */
336
- investSingleReserve(payer: PublicKey, kaminoVault: KaminoVault, reserveWithAddress: ReserveWithAddress): Promise<TransactionInstruction[]>;
357
+ investSingleReserve(payer: PublicKey, kaminoVault: KaminoVault, reserveWithAddress: ReserveWithAddress, vaultReservesMap?: PubkeyHashMap<PublicKey, KaminoReserve>): Promise<TransactionInstruction[]>;
337
358
  /**
338
359
  * This will return the a map between reserve pubkey and the pct of the vault invested amount in each reserve
339
360
  * @param vaultState - the kamino vault to get reserves distribution for
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/classes/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/classes/manager.ts"],"names":[],"mappings":"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"}
@@ -128,7 +128,6 @@ class KaminoManager {
128
128
  /**
129
129
  * This method will create a vault with a given config. The config can be changed later on, but it is recommended to set it up correctly from the start
130
130
  * @param vaultConfig - the config object used to create a vault
131
- * @returns vault - keypair, should be used to sign the transaction which creates the vault account
132
131
  * @returns vault: the keypair of the vault, used to sign the initialization transaction; initVaultIxs: a struct with ixs to initialize the vault and its lookup table + populateLUTIxs, a list to populate the lookup table which has to be executed in a separate transaction
133
132
  */
134
133
  async createVaultIxs(vaultConfig) {
@@ -138,7 +137,7 @@ class KaminoManager {
138
137
  * This method updates the vault reserve allocation cofnig for an exiting vault reserve, or adds a new reserve to the vault if it does not exist.
139
138
  * @param vault - vault to be updated
140
139
  * @param reserveAllocationConfig - new reserve allocation config
141
- * @returns - a struct of instructions
140
+ * @returns - a struct with an instruction to update the reserve allocation and an optional list of instructions to update the lookup table for the allocation changes
142
141
  */
143
142
  async updateVaultReserveAllocationIxs(vault, reserveAllocationConfig) {
144
143
  return this._vaultClient.updateReserveAllocationIxs(vault, reserveAllocationConfig);
@@ -220,15 +219,26 @@ class KaminoManager {
220
219
  /**
221
220
  * This function creates instructions to deposit into a vault. It will also create ATA creation instructions for the vault shares that the user receives in return
222
221
  * @param user - user to deposit
223
- * @param vault - vault to deposit into
222
+ * @param vault - vault to deposit into (if the state is not provided, it will be fetched)
224
223
  * @param tokenAmount - token amount to be deposited, in decimals (will be converted in lamports)
225
- * @param tokenProgramIDOverride - optional param; should be passed if token to be deposited is token22
226
- * @param vaultReservesMap - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
227
- * @returns - an array of instructions to be used to be executed
224
+ * @param [vaultReservesMap] - optional parameter; a hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
225
+ * @param [farmState] - the state of the vault farm, if the vault has a farm. Optional. If not provided, it will be fetched
226
+ * @returns - an instance of DepositIxs which contains the instructions to deposit in vault and the instructions to stake the shares in the farm if the vault has a farm
228
227
  */
229
228
  async depositToVaultIxs(user, vault, tokenAmount, vaultReservesMap) {
230
229
  return this._vaultClient.depositIxs(user, vault, tokenAmount, vaultReservesMap);
231
230
  }
231
+ /**
232
+ * This function creates instructions to stake the shares in the vault farm if the vault has a farm
233
+ * @param user - user to stake
234
+ * @param vault - vault to deposit into its farm (if the state is not provided, it will be fetched)
235
+ * @param [sharesAmount] - token amount to be deposited, in decimals (will be converted in lamports). Optional. If not provided, the user's share balance will be used
236
+ * @param [farmState] - the state of the vault farm, if the vault has a farm. Optional. If not provided, it will be fetched
237
+ * @returns - a list of instructions for the user to stake shares into the vault's farm, including the creation of prerequisite accounts if needed
238
+ */
239
+ async stakeSharesIxs(user, vault, sharesAmount, farmState) {
240
+ return this._vaultClient.stakeSharesIxs(user, vault, sharesAmount, farmState);
241
+ }
232
242
  /**
233
243
  * Update a field of the vault. If the field is a pubkey it will return an extra instruction to add that account into the lookup table
234
244
  * @param vault the vault to update
@@ -239,10 +249,18 @@ class KaminoManager {
239
249
  async updateVaultConfigIxs(vault, mode, value) {
240
250
  return this._vaultClient.updateVaultConfigIxs(vault, mode, value);
241
251
  }
252
+ /** Sets the farm where the shares can be staked. This is store in vault state and a vault can only have one farm, so the new farm will ovveride the old farm
253
+ * @param vault - vault to set the farm for
254
+ * @param farm - the farm where the vault shares can be staked
255
+ * @param [errorOnOverride] - if true, the function will throw an error if the vault already has a farm. If false, it will override the farm
256
+ */
257
+ async setVaultFarm(vault, farm, errorOnOverride = true) {
258
+ return this._vaultClient.setVaultFarm(vault, farm, errorOnOverride);
259
+ }
242
260
  /**
243
- * This function creates the instruction for the `pendingAdmin` of the vault to accept to become the owner of the vault (step 2/2 of the ownership transfer) and the instructions to sync the vault LUT to the new state
261
+ * This function creates the instruction for the `pendingAdmin` of the vault to accept to become the owner of the vault (step 2/2 of the ownership transfer)
244
262
  * @param vault - vault to change the ownership for
245
- * @returns - an instruction to be used to be executed
263
+ * @returns - an instruction to accept the ownership of the vault and a list of instructions to update the lookup table
246
264
  */
247
265
  async acceptVaultOwnershipIxs(vault) {
248
266
  return this._vaultClient.acceptVaultOwnershipIxs(vault);
@@ -251,7 +269,7 @@ class KaminoManager {
251
269
  * This function creates the instruction for the admin to give up a part of the pending fees (which will be accounted as part of the vault)
252
270
  * @param vault - vault to give up pending fees for
253
271
  * @param maxAmountToGiveUp - the maximum amount of fees to give up, in tokens
254
- * @returns - an instruction to be used to be executed
272
+ * @returns - an instruction to give up the specified pending fees
255
273
  */
256
274
  async giveUpPendingFeesIx(vault, maxAmountToGiveUp) {
257
275
  return this._vaultClient.giveUpPendingFeesIx(vault, maxAmountToGiveUp);
@@ -262,7 +280,8 @@ class KaminoManager {
262
280
  * @param vault - vault to withdraw from
263
281
  * @param shareAmount - share amount to withdraw, in order to withdraw everything, any value > user share amount
264
282
  * @param slot - current slot, used to estimate the interest earned in the different reserves with allocation from the vault
265
- * @returns an array of instructions to be executed
283
+ * @param [vaultReservesMap] - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
284
+ * @returns an array of instructions to create missing ATAs if needed and the withdraw instructions
266
285
  */
267
286
  async withdrawFromVaultIxs(user, vault, shareAmount, slot) {
268
287
  return this._vaultClient.withdrawIxs(user, vault, shareAmount, slot);
@@ -271,29 +290,32 @@ class KaminoManager {
271
290
  * This method withdraws all the pending fees from the vault to the owner's token ATA
272
291
  * @param vault - vault for which the admin withdraws the pending fees
273
292
  * @param slot - current slot, used to estimate the interest earned in the different reserves with allocation from the vault
274
- * @returns - list of instructions to withdraw all pending fees
293
+ * @param [vaultReservesMap] - a hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
294
+ * @returns - list of instructions to withdraw all pending fees, including the ATA creation instructions if needed
275
295
  */
276
296
  async withdrawPendingFeesIxs(vault, slot) {
277
297
  return this._vaultClient.withdrawPendingFeesIxs(vault, slot);
278
298
  }
279
299
  /**
280
- * This method append the given keys to the lookup table
281
- * @param payer - the owner of the lookup table
282
- * @param slot - the LUT into which the keys will be inserted
283
- * @param keys - the keys to be inserted
284
- * @returns - list of instructions to insert the keys into the lookup table
300
+ * This method inserts the missing keys from the provided keys into an existent lookup table
301
+ * @param payer - payer wallet pubkey
302
+ * @param lookupTable - lookup table to insert the keys into
303
+ * @param keys - keys to insert into the lookup table
304
+ * @param [accountsInLUT] - the existent accounts in the lookup table. Optional. If provided, the function will not fetch the accounts in the lookup table
305
+ * @returns - an array of instructions to insert the missing keys into the lookup table
285
306
  */
286
- async insertIntoLUT(payer, lut, keys) {
307
+ async insertIntoLUTIxs(payer, lut, keys) {
287
308
  return this._vaultClient.insertIntoLookupTableIxs(payer, lut, keys);
288
309
  }
289
310
  /**
290
311
  * Sync a vault for lookup table; create and set the LUT for the vault if needed and fill it with all the needed accounts
291
312
  * @param vault the vault to sync and set the LUT for if needed
292
313
  * @param vaultReserves optional; the state of the reserves in the vault allocation
314
+ * @param [vaultReservesMap] - optional parameter; a hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
293
315
  * @returns a struct that contains a list of ix to create the LUT and assign it to the vault if needed + a list of ixs to insert all the accounts in the LUT
294
316
  */
295
- async syncVaultLUT(vault, vaultReserves) {
296
- return this._vaultClient.syncVaultLookupTable(vault, vaultReserves);
317
+ async syncVaultLUTIxs(vault, vaultReserves) {
318
+ return this._vaultClient.syncVaultLookupTableIxs(vault, vaultReserves);
297
319
  }
298
320
  /**
299
321
  * This method calculates the token per share value. This will always change based on interest earned from the vault, but calculating it requires a bunch of rpc requests. Caching this for a short duration would be optimal
@@ -319,7 +341,7 @@ class KaminoManager {
319
341
  * This method returns the user shares balance for a given vault
320
342
  * @param user - user to calculate the shares balance for
321
343
  * @param vault - vault to calculate shares balance for
322
- * @returns - user share balance in decimal (not lamports)
344
+ * @returns - a struct of user share balance (staked in vault farm if the vault has a farm and unstaked) in decimal (not lamports)
323
345
  */
324
346
  async getUserSharesBalanceSingleVault(user, vault) {
325
347
  return this._vaultClient.getUserSharesBalanceSingleVault(user, vault);
@@ -572,12 +594,14 @@ class KaminoManager {
572
594
  }
573
595
  /**
574
596
  * This will trigger invest by balancing, based on weights, the reserve allocation of the vault. It can either withdraw or deposit into the given reserve to balance it
575
- * @param kaminoVault - vault to invest from
597
+ * @param payer wallet pubkey
598
+ * @param vault - vault to invest from
576
599
  * @param reserve - reserve to invest into or disinvest from
600
+ * @param [vaultReservesMap] - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
577
601
  * @returns - an array of invest instructions for each invest action required for the vault reserves
578
602
  */
579
- async investSingleReserve(payer, kaminoVault, reserveWithAddress) {
580
- return this._vaultClient.investSingleReserveIxs(payer, kaminoVault, reserveWithAddress);
603
+ async investSingleReserve(payer, kaminoVault, reserveWithAddress, vaultReservesMap) {
604
+ return this._vaultClient.investSingleReserveIxs(payer, kaminoVault, reserveWithAddress, vaultReservesMap);
581
605
  }
582
606
  /**
583
607
  * This will return the a map between reserve pubkey and the pct of the vault invested amount in each reserve