@velocity-exchange/vaults-sdk 0.0.1 → 0.0.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.
Files changed (66) hide show
  1. package/lib/accountSubscribers/index.d.ts +3 -0
  2. package/lib/accountSubscribers/index.d.ts.map +1 -0
  3. package/lib/accountSubscribers/index.js +18 -0
  4. package/lib/accountSubscribers/pollingVaultDepositorSubscriber.d.ts +8 -0
  5. package/lib/accountSubscribers/pollingVaultDepositorSubscriber.d.ts.map +1 -0
  6. package/lib/accountSubscribers/pollingVaultDepositorSubscriber.js +46 -0
  7. package/lib/accountSubscribers/pollingVaultSubscriber.d.ts +8 -0
  8. package/lib/accountSubscribers/pollingVaultSubscriber.d.ts.map +1 -0
  9. package/lib/accountSubscribers/pollingVaultSubscriber.js +46 -0
  10. package/lib/accountSubscribers/pollingVaultsProgramAccountSubscriber.d.ts +28 -0
  11. package/lib/accountSubscribers/pollingVaultsProgramAccountSubscriber.d.ts.map +1 -0
  12. package/lib/accountSubscribers/pollingVaultsProgramAccountSubscriber.js +71 -0
  13. package/lib/accounts/index.d.ts +3 -0
  14. package/lib/accounts/index.d.ts.map +1 -0
  15. package/lib/accounts/index.js +18 -0
  16. package/lib/accounts/vaultAccount.d.ts +27 -0
  17. package/lib/accounts/vaultAccount.d.ts.map +1 -0
  18. package/lib/accounts/vaultAccount.js +174 -0
  19. package/lib/accounts/vaultDepositorAccount.d.ts +18 -0
  20. package/lib/accounts/vaultDepositorAccount.d.ts.map +1 -0
  21. package/lib/accounts/vaultDepositorAccount.js +47 -0
  22. package/lib/accounts/vaultsProgramAccount.d.ts +13 -0
  23. package/lib/accounts/vaultsProgramAccount.d.ts.map +1 -0
  24. package/lib/accounts/vaultsProgramAccount.js +25 -0
  25. package/lib/addresses.d.ts +10 -0
  26. package/lib/addresses.d.ts.map +1 -0
  27. package/lib/addresses.js +87 -0
  28. package/lib/constants/index.d.ts +8 -0
  29. package/lib/constants/index.d.ts.map +1 -0
  30. package/lib/constants/index.js +12 -0
  31. package/lib/idl/drift_vaults.json +5698 -0
  32. package/lib/index.d.ts +12 -0
  33. package/lib/index.d.ts.map +1 -0
  34. package/lib/index.js +27 -0
  35. package/lib/math/index.d.ts +3 -0
  36. package/lib/math/index.d.ts.map +1 -0
  37. package/lib/math/index.js +18 -0
  38. package/lib/math/vault.d.ts +17 -0
  39. package/lib/math/vault.d.ts.map +1 -0
  40. package/lib/math/vault.js +56 -0
  41. package/lib/math/vaultDepositor.d.ts +24 -0
  42. package/lib/math/vaultDepositor.d.ts.map +1 -0
  43. package/lib/math/vaultDepositor.js +49 -0
  44. package/lib/name.d.ts +4 -0
  45. package/lib/name.d.ts.map +1 -0
  46. package/lib/name.js +19 -0
  47. package/lib/parsers/index.d.ts +2 -0
  48. package/lib/parsers/index.d.ts.map +1 -0
  49. package/lib/parsers/index.js +17 -0
  50. package/lib/parsers/logParser.d.ts +15 -0
  51. package/lib/parsers/logParser.d.ts.map +1 -0
  52. package/lib/parsers/logParser.js +21 -0
  53. package/lib/types/drift_vaults.d.ts +6212 -0
  54. package/lib/types/drift_vaults.d.ts.map +1 -0
  55. package/lib/types/drift_vaults.js +2 -0
  56. package/lib/types/types.d.ts +283 -0
  57. package/lib/types/types.d.ts.map +1 -0
  58. package/lib/types/types.js +48 -0
  59. package/lib/utils.d.ts +10 -0
  60. package/lib/utils.d.ts.map +1 -0
  61. package/lib/utils.js +69 -0
  62. package/lib/vaultClient.d.ts +446 -0
  63. package/lib/vaultClient.d.ts.map +1 -0
  64. package/lib/vaultClient.js +1914 -0
  65. package/package.json +1 -1
  66. package/velocity-exchange-vaults-sdk-0.0.1.tgz +0 -0
package/lib/utils.js ADDED
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.getOrCreateATAInstruction = exports.getVaultClient = exports.getDriftVaultProgram = exports.IDL = void 0;
30
+ const anchor_1 = require("@coral-xyz/anchor");
31
+ const drift_vaults_json_1 = __importDefault(require("./idl/drift_vaults.json"));
32
+ exports.IDL = drift_vaults_json_1.default;
33
+ const vaultClient_1 = require("./vaultClient");
34
+ const anchor = __importStar(require("@coral-xyz/anchor"));
35
+ const spl_token_1 = require("@solana/spl-token");
36
+ const getDriftVaultProgram = (connection, wallet) => {
37
+ const provider = new anchor_1.AnchorProvider(connection, wallet, {});
38
+ anchor.setProvider(provider);
39
+ const vaultProgram = new anchor.Program(drift_vaults_json_1.default, provider);
40
+ return vaultProgram;
41
+ };
42
+ exports.getDriftVaultProgram = getDriftVaultProgram;
43
+ const getVaultClient = (connection, wallet, driftClient) => {
44
+ const vaultProgram = (0, exports.getDriftVaultProgram)(connection, wallet);
45
+ const vaultClient = new vaultClient_1.VaultClient({
46
+ driftClient,
47
+ program: vaultProgram,
48
+ });
49
+ return vaultClient;
50
+ };
51
+ exports.getVaultClient = getVaultClient;
52
+ const getOrCreateATAInstruction = async (tokenMint, owner, connection, allowOwnerOffCurve = true, payer = owner) => {
53
+ let toAccount;
54
+ try {
55
+ toAccount = await (0, spl_token_1.getAssociatedTokenAddress)(tokenMint, owner, allowOwnerOffCurve);
56
+ const account = await connection.getAccountInfo(toAccount);
57
+ if (!account) {
58
+ const ix = (0, spl_token_1.createAssociatedTokenAccountInstruction)(payer, toAccount, owner, tokenMint);
59
+ return [toAccount, ix];
60
+ }
61
+ return [toAccount, undefined];
62
+ }
63
+ catch (e) {
64
+ /* handle error */
65
+ console.error('Error::getOrCreateATAInstruction', e);
66
+ throw e;
67
+ }
68
+ };
69
+ exports.getOrCreateATAInstruction = getOrCreateATAInstruction;
@@ -0,0 +1,446 @@
1
+ import { BN, BigNum, DriftClient, UserMap, OracleSource } from '@velocity-exchange/sdk';
2
+ import { Program, ProgramAccount } from '@coral-xyz/anchor';
3
+ import { DriftVaults } from './types/drift_vaults';
4
+ import { AccountMeta, AddressLookupTableAccount, PublicKey, TransactionInstruction, TransactionSignature, VersionedTransaction } from '@solana/web3.js';
5
+ import { FeeUpdate, Vault, VaultClass, VaultDepositor, VaultProtocol, VaultProtocolParams, WithdrawUnit } from './types/types';
6
+ import { UserMapConfig } from '@velocity-exchange/sdk';
7
+ import { Metaplex } from '@metaplex-foundation/js';
8
+ type OracleFeedConfig = {
9
+ feed: PublicKey;
10
+ oracleSource: OracleSource;
11
+ pythLazerId?: number;
12
+ };
13
+ export type TxParams = {
14
+ cuLimit?: number;
15
+ cuPriceMicroLamports?: number;
16
+ simulateTransaction?: boolean;
17
+ lookupTables?: AddressLookupTableAccount[];
18
+ oracleFeedsToCrank?: {
19
+ feedsToCrank: OracleFeedConfig[];
20
+ pythLazerMsgHexGetter?: (feedIds: number[]) => Promise<string>;
21
+ };
22
+ noLut?: boolean;
23
+ };
24
+ export declare class VaultClient {
25
+ driftClient: DriftClient;
26
+ metaplex?: Metaplex;
27
+ program: Program<DriftVaults>;
28
+ cliMode: boolean;
29
+ /**
30
+ * Cache map of drift user accounts of vaults.
31
+ */
32
+ readonly vaultUsers: UserMap;
33
+ constructor({ driftClient, program, metaplex, cliMode, userMapConfig, }: {
34
+ driftClient: DriftClient;
35
+ program: Program<DriftVaults>;
36
+ metaplex?: Metaplex;
37
+ cliMode?: boolean;
38
+ userMapConfig?: UserMapConfig;
39
+ });
40
+ private getRemainingAccountsForUser;
41
+ private checkIfAccountExists;
42
+ /**
43
+ * Unsubscribes from the vault users map. Call this to clean up any dangling promises.
44
+ */
45
+ unsubscribe(): Promise<void>;
46
+ getVault(vault: PublicKey): Promise<Vault>;
47
+ getFeeUpdate(feeUpdate: PublicKey): Promise<FeeUpdate>;
48
+ getVaultAndSlot(vault: PublicKey): Promise<{
49
+ vault: Vault;
50
+ slot: number;
51
+ }>;
52
+ getVaultDepositor(vaultDepositor: PublicKey): Promise<any>;
53
+ getVaultDepositorAndSlot(vaultDepositor: PublicKey): Promise<{
54
+ vaultDepositor: any;
55
+ slot: number;
56
+ }>;
57
+ getVaultProtocolAddress(vault: PublicKey): PublicKey;
58
+ getVaultProtocol(vaultProtocol: PublicKey): Promise<VaultProtocol>;
59
+ getVaultProtocolAndSlot(vaultProtocol: PublicKey): Promise<{
60
+ vaultProtocol: VaultProtocol;
61
+ slot: number;
62
+ }>;
63
+ getAllVaultDepositorsWithNoWithdrawRequest(vault: PublicKey): Promise<ProgramAccount<VaultDepositor>[]>;
64
+ getAllVaultDepositors(vault?: PublicKey): Promise<ProgramAccount<VaultDepositor>[]>;
65
+ getAllVaultDepositorsForAuthority(authority: PublicKey): Promise<ProgramAccount<VaultDepositor>[]>;
66
+ getSubscribedVaultUser(vaultDriftUserAccountPubKey: PublicKey): Promise<import("@velocity-exchange/sdk").User>;
67
+ syncVaultUsers(): Promise<void>;
68
+ /**
69
+ *
70
+ * @param vault pubkey
71
+ * @param factorUnrealizedPNL add unrealized pnl to net balance
72
+ * @returns vault equity, in USDC
73
+ */
74
+ calculateVaultEquity(params: {
75
+ address?: PublicKey;
76
+ vault?: Vault;
77
+ factorUnrealizedPNL?: boolean;
78
+ includeManagerBorrowedValue?: boolean;
79
+ }): Promise<BN>;
80
+ calculateVaultAllTimeNotionalPnl(params: {
81
+ address?: PublicKey;
82
+ vault?: Vault;
83
+ }): Promise<BN>;
84
+ /**
85
+ *
86
+ * @param vault pubkey
87
+ * @param factorUnrealizedPNL add unrealized pnl to existing equity
88
+ * @returns total vault equity, in spot deposit asset
89
+ */
90
+ calculateVaultEquityInDepositAsset(params: {
91
+ address?: PublicKey;
92
+ vault?: Vault;
93
+ factorUnrealizedPNL?: boolean;
94
+ }): Promise<BN>;
95
+ /**
96
+ * @param params
97
+ * @returns vault depositor equity, in spot market value (which is usually USDC)
98
+ */
99
+ calculateWithdrawableVaultDepositorEquity(params: {
100
+ vaultDepositorAddress?: PublicKey;
101
+ vaultDepositor?: VaultDepositor;
102
+ vaultAddress?: PublicKey;
103
+ vault?: Vault;
104
+ }): Promise<BN>;
105
+ calculateWithdrawableVaultDepositorEquityInDepositAsset(params: {
106
+ vaultDepositorAddress?: PublicKey;
107
+ vaultDepositor?: VaultDepositor;
108
+ vaultAddress?: PublicKey;
109
+ vault?: Vault;
110
+ }): Promise<BN>;
111
+ calculateVaultProtocolEquity(params: {
112
+ vault: PublicKey;
113
+ }): Promise<BN>;
114
+ initializeVault(params: {
115
+ name: number[];
116
+ spotMarketIndex: number;
117
+ redeemPeriod: BN;
118
+ maxTokens: BN;
119
+ minDepositAmount: BN;
120
+ managementFee: BN;
121
+ profitShare: number;
122
+ hurdleRate: number;
123
+ permissioned: boolean;
124
+ vaultProtocol?: VaultProtocolParams;
125
+ manager?: PublicKey;
126
+ }, uiTxParams?: TxParams): Promise<TransactionSignature>;
127
+ getInitializeVaultIx(params: {
128
+ name: number[];
129
+ spotMarketIndex: number;
130
+ redeemPeriod: BN;
131
+ maxTokens: BN;
132
+ minDepositAmount: BN;
133
+ managementFee: BN;
134
+ profitShare: number;
135
+ hurdleRate: number;
136
+ permissioned: boolean;
137
+ vaultProtocol?: VaultProtocolParams;
138
+ manager?: PublicKey;
139
+ }): Promise<TransactionInstruction>;
140
+ /**
141
+ * Updates the delegate address for a vault. The delegate address will be allowed to trade
142
+ * on behalf of the vault.
143
+ * @param vault vault address to update
144
+ * @param delegate delegate address to update to
145
+ * @returns
146
+ */
147
+ updateDelegate(vault: PublicKey, delegate: PublicKey, uiTxParams?: TxParams): Promise<TransactionSignature>;
148
+ getUpdateDelegateIx(vault: PublicKey, delegate: PublicKey, vaultDriftUser: PublicKey, vaultManager: PublicKey): Promise<TransactionInstruction>;
149
+ /**
150
+ * Updates the vault margin trading status.
151
+ * @param vault vault address to update
152
+ * @param enabled whether to enable margin trading
153
+ * @returns
154
+ */
155
+ updateMarginTradingEnabled(vault: PublicKey, enabled: boolean, uiTxParams?: TxParams): Promise<TransactionSignature>;
156
+ getUpdateMarginTradingEnabledIx(vault: PublicKey, enabled: boolean): Promise<TransactionInstruction>;
157
+ /**
158
+ * Updates the vault's pool id (for isolated pools).
159
+ * @param vault vault address to update
160
+ * @param poolId pool id to update to
161
+ * @returns
162
+ */
163
+ updateUserPoolId(vault: PublicKey, poolId: number, uiTxParams?: TxParams): Promise<TransactionSignature>;
164
+ /**
165
+ * Gets the instruction to update the pool id for a vault.
166
+ * @param vault vault address to update
167
+ * @param vaultAccount vault account data (optional, will be fetched if not provided)
168
+ * @param poolId pool id to update to
169
+ * @returns instruction to update pool id
170
+ */
171
+ getUpdatePoolIdIx(vault: PublicKey, poolId: number, vaultAccount?: any): Promise<TransactionInstruction>;
172
+ private handleWSolMovement;
173
+ /**
174
+ *
175
+ * @param vault vault address to deposit to
176
+ * @param amount amount to deposit
177
+ * @returns
178
+ */
179
+ managerDeposit(vault: PublicKey, amount: BN, uiTxParams?: TxParams, managerTokenAccount?: PublicKey): Promise<TransactionSignature>;
180
+ /**
181
+ *
182
+ * @param vault vault address to deposit to
183
+ * @param amount amount to deposit
184
+ * @returns
185
+ */
186
+ getManagerDepositIx(vault: PublicKey, amount: BN, managerTokenAccount?: PublicKey): Promise<Array<TransactionInstruction>>;
187
+ managerRequestWithdraw(vault: PublicKey, amount: BN, withdrawUnit: WithdrawUnit, uiTxParams?: TxParams): Promise<TransactionSignature>;
188
+ getManagerRequestWithdrawIx(vault: PublicKey, amount: BN, withdrawUnit: WithdrawUnit): Promise<TransactionInstruction>;
189
+ managerCancelWithdrawRequest(vault: PublicKey, uiTxParams?: TxParams): Promise<TransactionSignature>;
190
+ getManagerCancelWithdrawRequestIx(vault: PublicKey): Promise<TransactionInstruction>;
191
+ managerWithdraw(vault: PublicKey, uiTxParams?: TxParams): Promise<TransactionSignature>;
192
+ getManagerWithdrawIx(vault: PublicKey): Promise<TransactionInstruction[]>;
193
+ managerBorrow(vault: PublicKey, borrowSpotMarketIndex: number, borrowAmount: BN, managerTokenAccount?: PublicKey, txParams?: TxParams): Promise<TransactionSignature>;
194
+ getManagerBorrowIx(vault: PublicKey, borrowSpotMarketIndex: number, borrowAmount: BN, managerTokenAccount?: PublicKey): Promise<TransactionInstruction[]>;
195
+ managerRepay(vault: PublicKey, repaySpotMarketIndex: number, repayAmount: BN, repayValue: BN | null, managerTokenAccount?: PublicKey, uiTxParams?: TxParams): Promise<TransactionSignature>;
196
+ /**
197
+ * Get the instructions for the manager repay transaction
198
+ * @param vault - The vault to repay
199
+ * @param repaySpotMarketIndex - The spot market index to repay
200
+ * @param repayAmount - The amount to repay
201
+ * @param repayValue - The value of the repay
202
+ * @param managerTokenAccount - The manager token account to use, if depositing SOL, leave undefined to automatically wrap the SOL
203
+ * @returns The instructions for the manager repay transaction
204
+ */
205
+ getManagerRepayIxs(vault: PublicKey, repaySpotMarketIndex: number, repayAmount: BN, repayValue: BN | null, managerTokenAccount?: PublicKey): Promise<TransactionInstruction[]>;
206
+ managerUpdateBorrow(vault: PublicKey, newBorrowValue: BN, txParams?: TxParams): Promise<TransactionSignature>;
207
+ getManagerUpdateBorrowIx(vault: PublicKey, newBorrowValue: BN): Promise<TransactionInstruction>;
208
+ managerUpdateVault(vault: PublicKey, params: {
209
+ redeemPeriod: BN | null;
210
+ maxTokens: BN | null;
211
+ managementFee: BN | null;
212
+ minDepositAmount: BN | null;
213
+ profitShare: number | null;
214
+ hurdleRate: number | null;
215
+ permissioned: boolean | null;
216
+ }, uiTxParams?: TxParams): Promise<TransactionSignature>;
217
+ getManagerUpdateVaultIx(vault: PublicKey, params: {
218
+ redeemPeriod: BN | null;
219
+ maxTokens: BN | null;
220
+ managementFee: BN | null;
221
+ minDepositAmount: BN | null;
222
+ profitShare: number | null;
223
+ hurdleRate: number | null;
224
+ permissioned: boolean | null;
225
+ }): Promise<TransactionInstruction>;
226
+ managerUpdateVaultManager(vault: PublicKey, manager: PublicKey, uiTxParams?: TxParams): Promise<TransactionSignature>;
227
+ getManagerUpdateVaultManagerIx(vault: PublicKey, manager: PublicKey): Promise<TransactionInstruction>;
228
+ applyProfitShare(vault: PublicKey, vaultDepositor: PublicKey, uiTxParams?: TxParams): Promise<TransactionSignature>;
229
+ getApplyProfitShareIx(vault: PublicKey, vaultDepositor: PublicKey): Promise<TransactionInstruction>;
230
+ getApplyRebaseTokenizedDepositorIx(vault: PublicKey, tokenizedVaultDepositor: PublicKey): Promise<TransactionInstruction>;
231
+ applyRebase(vault: PublicKey, vaultDepositor: PublicKey): Promise<TransactionSignature>;
232
+ getApplyRebaseIx(vault: PublicKey, vaultDepositor: PublicKey): Promise<TransactionInstruction>;
233
+ applyRebaseTokenizedDepositor(vault: PublicKey, tokenizedVaultDepositor: PublicKey): Promise<TransactionSignature>;
234
+ private createInitVaultDepositorIx;
235
+ /**
236
+ * Initializes the vault depositor account. This account is used to deposit funds into a vault.
237
+ * @param vault the vault address to deposit into
238
+ * @param authority the authority allowed to make deposits into the vault
239
+ * @returns
240
+ */
241
+ initializeVaultDepositor(vault: PublicKey, authority?: PublicKey, payer?: PublicKey, uiTxParams?: TxParams): Promise<TransactionSignature>;
242
+ initializeTokenizedVaultDepositor(params: {
243
+ vault: PublicKey;
244
+ tokenName: string;
245
+ tokenSymbol: string;
246
+ tokenUri: string;
247
+ decimals?: number;
248
+ sharesBase?: number;
249
+ }, uiTxParams?: TxParams): Promise<TransactionSignature>;
250
+ createTokenizeSharesIx(vaultDepositor: PublicKey, amount: BN, unit: WithdrawUnit, mint?: PublicKey): Promise<TransactionInstruction[]>;
251
+ tokenizeShares(vaultDepositor: PublicKey, amount: BN, unit: WithdrawUnit, mint?: PublicKey, txParams?: TxParams): Promise<TransactionSignature>;
252
+ createTransferVaultDepositorSharesIx(fromVaultDepositor: PublicKey, toVaultDepositor: PublicKey, amount: BN, withdrawUnit: WithdrawUnit): Promise<TransactionInstruction[]>;
253
+ transferVaultDepositorShares(fromVaultDepositor: PublicKey, toVaultDepositor: PublicKey, amount: BN, withdrawUnit: WithdrawUnit, txParams?: TxParams): Promise<TransactionSignature>;
254
+ createRedeemTokensIx(vaultDepositor: PublicKey, tokensToBurn: BN, sharesBase?: number): Promise<TransactionInstruction>;
255
+ /**
256
+ * Redeems tokens from the vault.
257
+ * @param vaultDepositor
258
+ * @param tokensToBurn
259
+ * @param mint optionally provide a mint, or infer the mint from the current vault share base
260
+ * @param txParams
261
+ * @returns
262
+ */
263
+ redeemTokens(vaultDepositor: PublicKey, tokensToBurn: BN, sharesBase?: number, txParams?: TxParams): Promise<TransactionSignature>;
264
+ prepDepositTx(vaultDepositor: PublicKey, amount: BN, initVaultDepositor?: {
265
+ authority: PublicKey;
266
+ vault: PublicKey;
267
+ }, depositTokenAccount?: PublicKey): Promise<{
268
+ vaultAccount: {
269
+ name: number[];
270
+ pubkey: PublicKey;
271
+ manager: PublicKey;
272
+ tokenAccount: PublicKey;
273
+ userStats: PublicKey;
274
+ user: PublicKey;
275
+ delegate: PublicKey;
276
+ liquidationDelegate: PublicKey;
277
+ userShares: BN;
278
+ totalShares: BN;
279
+ lastManagerWithdrawRequest: {
280
+ shares: BN;
281
+ value: BN;
282
+ ts: BN;
283
+ };
284
+ lastFeeUpdateTs: BN;
285
+ liquidationStartTs: BN;
286
+ redeemPeriod: BN;
287
+ totalWithdrawRequested: BN;
288
+ maxTokens: BN;
289
+ managementFee: BN;
290
+ initTs: BN;
291
+ netDeposits: BN;
292
+ managerNetDeposits: BN;
293
+ totalDeposits: BN;
294
+ totalWithdraws: BN;
295
+ managerTotalDeposits: BN;
296
+ managerTotalWithdraws: BN;
297
+ managerTotalFee: BN;
298
+ managerTotalProfitShare: BN;
299
+ minDepositAmount: BN;
300
+ managerBorrowedValue: BN;
301
+ sharesBase: number;
302
+ profitShare: number;
303
+ hurdleRate: number;
304
+ spotMarketIndex: number;
305
+ bump: number;
306
+ permissioned: boolean;
307
+ vaultProtocol: boolean;
308
+ feeUpdateStatus: number;
309
+ vaultClass: number;
310
+ padding: number[];
311
+ };
312
+ accounts: {
313
+ vault: PublicKey;
314
+ vaultDepositor: PublicKey;
315
+ vaultTokenAccount: PublicKey;
316
+ driftUserStats: PublicKey;
317
+ driftUser: PublicKey;
318
+ driftState: PublicKey;
319
+ driftSpotMarketVault: PublicKey;
320
+ userTokenAccount: PublicKey;
321
+ driftProgram: PublicKey;
322
+ tokenProgram: PublicKey;
323
+ };
324
+ remainingAccounts: AccountMeta[];
325
+ preIxs: TransactionInstruction[];
326
+ postIxs: TransactionInstruction[];
327
+ }>;
328
+ /**
329
+ * Creates a transaction to deposit funds into the specified vault.
330
+ * Uses the associated token account of the vault depositor authority and spot market mint,
331
+ * and assumes it exists before calling this function.
332
+ * @param vaultDepositor
333
+ * @param amount
334
+ * @param initVaultDepositor If true, will initialize the vault depositor account
335
+ * @returns transaction
336
+ */
337
+ createDepositTx(vaultDepositor: PublicKey, amount: BN, initVaultDepositor?: {
338
+ authority: PublicKey;
339
+ vault: PublicKey;
340
+ }, txParams?: TxParams, userTokenAccount?: PublicKey): Promise<VersionedTransaction>;
341
+ /**
342
+ * Depositor funds into the specified vault.
343
+ * @param vaultDepositor
344
+ * @param amount
345
+ * @param initVaultDepositor If true, will initialize the vault depositor account
346
+ * @param txParams
347
+ * @returns
348
+ */
349
+ deposit(vaultDepositor: PublicKey, amount: BN, initVaultDepositor?: {
350
+ authority: PublicKey;
351
+ vault: PublicKey;
352
+ }, txParams?: TxParams, userTokenAccount?: PublicKey): Promise<TransactionSignature>;
353
+ requestWithdraw(vaultDepositor: PublicKey, amount: BN, withdrawUnit: WithdrawUnit, txParams?: TxParams): Promise<TransactionSignature>;
354
+ getRequestWithdrawIx(vaultDepositor: PublicKey, amount: BN, withdrawUnit: WithdrawUnit, oracleFeedsToCrank?: TxParams['oracleFeedsToCrank']): Promise<TransactionInstruction[]>;
355
+ withdraw(vaultDepositor: PublicKey, txParams?: TxParams): Promise<TransactionSignature>;
356
+ getWithdrawIx(vaultDepositor: PublicKey, oracleFeedsToCrank?: TxParams['oracleFeedsToCrank']): Promise<TransactionInstruction[]>;
357
+ forceWithdraw(vaultDepositor: PublicKey, txParams?: TxParams): Promise<TransactionSignature>;
358
+ getForceWithdrawIx(vaultDepositor: PublicKey): Promise<TransactionInstruction[]>;
359
+ cancelRequestWithdraw(vaultDepositor: PublicKey, txParams?: TxParams): Promise<TransactionSignature>;
360
+ getCancelRequestWithdrawIx(vaultDepositor: PublicKey, oracleFeedsToCrank: TxParams['oracleFeedsToCrank']): Promise<TransactionInstruction[]>;
361
+ /**
362
+ * Liquidates (become delegate for) a vault.
363
+ * @param
364
+ * @param
365
+ * @returns
366
+ */
367
+ liquidate(vaultDepositor: PublicKey, txParams?: TxParams): Promise<TransactionSignature>;
368
+ getLiquidateIx(vaultDepositor: PublicKey): Promise<TransactionInstruction>;
369
+ createTxn(vaultIxs: TransactionInstruction[], txParams?: TxParams): Promise<VersionedTransaction>;
370
+ createTxnNoLut(vaultIxs: TransactionInstruction[], txParams?: TxParams): Promise<VersionedTransaction>;
371
+ sendTxn(transaction: VersionedTransaction, simulateTransaction?: boolean): Promise<TransactionSignature>;
372
+ /**
373
+ * Used for UI wallet adapters compatibility
374
+ */
375
+ createAndSendTxn(vaultIxs: TransactionInstruction[], txParams?: TxParams): Promise<TransactionSignature>;
376
+ /**
377
+ * Initializes an insurance fund stake for the vault.
378
+ * @param vault vault address to update
379
+ * @param spotMarketIndex spot market index of the insurance fund stake
380
+ * @returns
381
+ */
382
+ initializeInsuranceFundStake(vault: PublicKey, spotMarketIndex: number, txParams?: TxParams): Promise<TransactionSignature>;
383
+ getInitializeInsuranceFundStakeIx(vault: PublicKey, spotMarketIndex: number): Promise<TransactionInstruction>;
384
+ /**
385
+ * Adds an amount to an insurance fund stake for the vault.
386
+ * @param vault vault address to update
387
+ * @param spotMarketIndex spot market index of the insurance fund stake
388
+ * @param amount amount to add to the insurance fund stake, in spotMarketIndex precision
389
+ * @returns
390
+ */
391
+ addToInsuranceFundStake(vault: PublicKey, spotMarketIndex: number, amount: BN, managerTokenAccount?: PublicKey, txParams?: TxParams): Promise<TransactionSignature>;
392
+ getAddToInsuranceFundStakeIx(vault: PublicKey, spotMarketIndex: number, amount: BN, managerTokenAccount?: PublicKey): Promise<TransactionInstruction>;
393
+ requestRemoveInsuranceFundStake(vault: PublicKey, spotMarketIndex: number, amount: BN, txParams?: TxParams): Promise<TransactionSignature>;
394
+ getRequestRemoveInsuranceFundStakeIx(vault: PublicKey, spotMarketIndex: number, amount: BN): Promise<TransactionInstruction>;
395
+ cancelRequestRemoveInsuranceFundStake(vault: PublicKey, spotMarketIndex: number, txParams?: TxParams): Promise<TransactionSignature>;
396
+ getCancelRequestRemoveInsuranceFundStakeIx(vault: PublicKey, spotMarketIndex: number): Promise<TransactionInstruction>;
397
+ removeInsuranceFundStake(vault: PublicKey, spotMarketIndex: number, managerTokenAccount?: PublicKey, txParams?: TxParams): Promise<TransactionSignature>;
398
+ getRemoveInsuranceFundStakeIx(vault: PublicKey, spotMarketIndex: number, managerTokenAccount?: PublicKey): Promise<TransactionInstruction>;
399
+ protocolRequestWithdraw(vault: PublicKey, amount: BN, withdrawUnit: WithdrawUnit, txParams?: TxParams): Promise<TransactionSignature>;
400
+ getProtocolRequestWithdrawIx(vault: PublicKey, amount: BN, withdrawUnit: WithdrawUnit): Promise<TransactionInstruction>;
401
+ protocolCancelWithdrawRequest(vault: PublicKey, txParams?: TxParams): Promise<TransactionSignature>;
402
+ getProtocolCancelWithdrawRequestIx(vault: PublicKey): Promise<TransactionInstruction[]>;
403
+ protocolWithdraw(vault: PublicKey, txParams?: TxParams): Promise<TransactionSignature>;
404
+ getProtocolWithdrawIx(vault: PublicKey): Promise<TransactionInstruction[]>;
405
+ private getPythLazerOracleCrankIxs;
406
+ getOracleFeedsToCrankIxs(oracleFeedsToCrank: TxParams['oracleFeedsToCrank']): Promise<TransactionInstruction[]>;
407
+ updateVaultProtocol(vault: PublicKey, params: {
408
+ protocolFee: BN | null;
409
+ protocolProfitShare: number | null;
410
+ }, txParams?: TxParams): Promise<TransactionSignature>;
411
+ getUpdateVaultProtocolIx(vault: PublicKey, params: {
412
+ protocolFee: BN | null;
413
+ protocolProfitShare: number | null;
414
+ }): Promise<TransactionInstruction>;
415
+ adminInitFeeUpdate(vault: PublicKey, uiTxParams?: TxParams): Promise<TransactionSignature>;
416
+ getAdminInitFeeUpdateIx(vault: PublicKey): Promise<TransactionInstruction>;
417
+ adminDeleteFeeUpdate(vault: PublicKey, uiTxParams?: TxParams): Promise<TransactionSignature>;
418
+ getAdminDeleteFeeUpdateIx(vault: PublicKey): Promise<TransactionInstruction>;
419
+ adminUpdateVaultClass(vault: PublicKey, newVaultClass: VaultClass, uiTxParams?: TxParams): Promise<TransactionSignature>;
420
+ getAdminUpdateVaultClassIx(vault: PublicKey, newVaultClass: VaultClass): Promise<TransactionInstruction>;
421
+ managerUpdateFees(vault: PublicKey, params: {
422
+ timelockDuration: BN;
423
+ newManagementFee: BN | null;
424
+ newProfitShare: number | null;
425
+ newHurdleRate: number | null;
426
+ }, uiTxParams?: TxParams): Promise<TransactionSignature>;
427
+ getManagerUpdateFeesIx(vault: PublicKey, params: {
428
+ timelockDuration: BN;
429
+ newManagementFee: BN | null;
430
+ newProfitShare: number | null;
431
+ newHurdleRate: number | null;
432
+ }): Promise<TransactionInstruction>;
433
+ managerCancelFeeUpdate(vault: PublicKey, uiTxParams?: TxParams): Promise<TransactionSignature>;
434
+ getManagerCancelFeeUpdateIx(vault: PublicKey): Promise<TransactionInstruction>;
435
+ /**
436
+ * Calculate the vault share price (base value per share)
437
+ * @param params vault address or vault account, and precision exponent
438
+ * @returns BigNum representing the base value per share
439
+ */
440
+ calcVaultSharePrice(params: {
441
+ address?: PublicKey;
442
+ vault?: Vault;
443
+ }): Promise<BigNum>;
444
+ }
445
+ export {};
446
+ //# sourceMappingURL=vaultClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaultClient.d.ts","sourceRoot":"","sources":["../src/vaultClient.ts"],"names":[],"mappings":"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"}