@drift-labs/vaults-sdk 0.4.31 → 0.4.33
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/lib/constants/index.d.ts +3 -0
- package/lib/constants/index.js +6 -1
- package/lib/math/vaultDepositor.d.ts +4 -1
- package/lib/math/vaultDepositor.js +75 -0
- package/lib/types/drift_vaults.d.ts +207 -5
- package/lib/types/drift_vaults.js +207 -5
- package/lib/types/types.d.ts +26 -2
- package/lib/types/types.js +6 -1
- package/lib/vaultClient.d.ts +24 -4
- package/lib/vaultClient.js +325 -464
- package/package.json +2 -2
- package/src/constants/index.ts +8 -1
- package/src/idl/drift_vaults.json +215 -5
- package/src/math/vaultDepositor.ts +122 -1
- package/src/types/drift_vaults.ts +414 -10
- package/src/types/types.ts +28 -5
- package/src/vaultClient.ts +653 -541
package/lib/types/types.d.ts
CHANGED
|
@@ -95,7 +95,17 @@ export type Vault = {
|
|
|
95
95
|
permissioned: boolean;
|
|
96
96
|
lastManagerWithdrawRequest: WithdrawRequest;
|
|
97
97
|
vaultProtocol: boolean;
|
|
98
|
+
fuelDistributionMode: FuelDistributionMode;
|
|
99
|
+
padding1: number[];
|
|
100
|
+
lastCumulativeFuelPerShareTs: number;
|
|
101
|
+
cumulativeFuelPerShare: BN;
|
|
102
|
+
cumulativeFuel: BN;
|
|
103
|
+
padding: BN[];
|
|
98
104
|
};
|
|
105
|
+
export declare enum FuelDistributionMode {
|
|
106
|
+
UsersOnly = 0,
|
|
107
|
+
UsersAndManager = 1
|
|
108
|
+
}
|
|
99
109
|
export type VaultDepositor = {
|
|
100
110
|
vault: PublicKey;
|
|
101
111
|
pubkey: PublicKey;
|
|
@@ -109,8 +119,10 @@ export type VaultDepositor = {
|
|
|
109
119
|
cumulativeProfitShareAmount: BN;
|
|
110
120
|
vaultSharesBase: number;
|
|
111
121
|
profitShareFeePaid: BN;
|
|
112
|
-
|
|
113
|
-
|
|
122
|
+
lastFuelUpdateTs: number;
|
|
123
|
+
cumulativeFuelPerShareAmount: BN;
|
|
124
|
+
fuelAmount: BN;
|
|
125
|
+
padding: BN | BN[];
|
|
114
126
|
};
|
|
115
127
|
export type VaultProtocol = {
|
|
116
128
|
protocol: PublicKey;
|
|
@@ -201,9 +213,21 @@ export type VaultDepositorV1Record = {
|
|
|
201
213
|
managementFee: BN;
|
|
202
214
|
managementFeeShares: BN;
|
|
203
215
|
};
|
|
216
|
+
export type FuelSeasonRecord = {
|
|
217
|
+
ts: BN;
|
|
218
|
+
authority: PublicKey;
|
|
219
|
+
fuelInsurance: BN;
|
|
220
|
+
fuelDeposits: BN;
|
|
221
|
+
fuelBorrows: BN;
|
|
222
|
+
fuelPositions: BN;
|
|
223
|
+
fuelTaker: BN;
|
|
224
|
+
fuelMaker: BN;
|
|
225
|
+
fuelTotal: BN;
|
|
226
|
+
};
|
|
204
227
|
export type VaultsEventMap = {
|
|
205
228
|
VaultDepositorRecord: Event<VaultDepositorRecord>;
|
|
206
229
|
VaultDepositorV1Record: Event<VaultDepositorV1Record>;
|
|
230
|
+
FuelSeasonRecord: Event<FuelSeasonRecord>;
|
|
207
231
|
};
|
|
208
232
|
export type EventType = keyof VaultsEventMap;
|
|
209
233
|
export type WrappedEvent<Type extends EventType> = VaultsEventMap[Type] & {
|
package/lib/types/types.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VaultDepositorAction = exports.WithdrawUnit = exports.VAULT_PROGRAM_ID = void 0;
|
|
3
|
+
exports.VaultDepositorAction = exports.FuelDistributionMode = exports.WithdrawUnit = exports.VAULT_PROGRAM_ID = void 0;
|
|
4
4
|
const web3_js_1 = require("@solana/web3.js");
|
|
5
5
|
exports.VAULT_PROGRAM_ID = new web3_js_1.PublicKey('vAuLTsyrvSfZRuRB3XgvkPwNGgYSs9YRYymVebLKoxR');
|
|
6
6
|
class WithdrawUnit {
|
|
@@ -9,6 +9,11 @@ exports.WithdrawUnit = WithdrawUnit;
|
|
|
9
9
|
WithdrawUnit.SHARES = { shares: {} };
|
|
10
10
|
WithdrawUnit.TOKEN = { token: {} };
|
|
11
11
|
WithdrawUnit.SHARES_PERCENT = { sharesPercent: {} };
|
|
12
|
+
var FuelDistributionMode;
|
|
13
|
+
(function (FuelDistributionMode) {
|
|
14
|
+
FuelDistributionMode[FuelDistributionMode["UsersOnly"] = 0] = "UsersOnly";
|
|
15
|
+
FuelDistributionMode[FuelDistributionMode["UsersAndManager"] = 1] = "UsersAndManager";
|
|
16
|
+
})(FuelDistributionMode || (exports.FuelDistributionMode = FuelDistributionMode = {}));
|
|
12
17
|
// Logs/Records
|
|
13
18
|
class VaultDepositorAction {
|
|
14
19
|
}
|
package/lib/vaultClient.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { BN, DriftClient, UserMap, OracleSource } from '@drift-labs/sdk';
|
|
|
2
2
|
import { Program, ProgramAccount } from '@coral-xyz/anchor';
|
|
3
3
|
import { DriftVaults } from './types/drift_vaults';
|
|
4
4
|
import { AccountMeta, AddressLookupTableAccount, PublicKey, TransactionInstruction, TransactionSignature, VersionedTransaction } from '@solana/web3.js';
|
|
5
|
-
import { Vault, VaultDepositor, VaultProtocol, VaultProtocolParams, WithdrawUnit } from './types/types';
|
|
5
|
+
import { FuelDistributionMode, Vault, VaultDepositor, VaultProtocol, VaultProtocolParams, WithdrawUnit } from './types/types';
|
|
6
6
|
import { UserMapConfig } from '@drift-labs/sdk';
|
|
7
7
|
import { Metaplex } from '@metaplex-foundation/js';
|
|
8
8
|
export type TxParams = {
|
|
@@ -14,6 +14,7 @@ export type TxParams = {
|
|
|
14
14
|
feed: PublicKey;
|
|
15
15
|
oracleSource: OracleSource;
|
|
16
16
|
}[];
|
|
17
|
+
noLut?: boolean;
|
|
17
18
|
};
|
|
18
19
|
export declare class VaultClient {
|
|
19
20
|
driftClient: DriftClient;
|
|
@@ -31,6 +32,7 @@ export declare class VaultClient {
|
|
|
31
32
|
cliMode?: boolean;
|
|
32
33
|
userMapConfig?: UserMapConfig;
|
|
33
34
|
});
|
|
35
|
+
private getRemainingAccountsForUser;
|
|
34
36
|
/**
|
|
35
37
|
* Unsubscribes from the vault users map. Call this to clean up any dangling promises.
|
|
36
38
|
*/
|
|
@@ -52,8 +54,9 @@ export declare class VaultClient {
|
|
|
52
54
|
slot: number;
|
|
53
55
|
}>;
|
|
54
56
|
getAllVaultDepositorsWithNoWithdrawRequest(vault: PublicKey): Promise<ProgramAccount<VaultDepositor>[]>;
|
|
55
|
-
getAllVaultDepositors(vault
|
|
57
|
+
getAllVaultDepositors(vault?: PublicKey): Promise<ProgramAccount<VaultDepositor>[]>;
|
|
56
58
|
getSubscribedVaultUser(vaultDriftUserAccountPubKey: PublicKey): Promise<import("@drift-labs/sdk").User>;
|
|
59
|
+
syncVaultUsers(): Promise<void>;
|
|
57
60
|
/**
|
|
58
61
|
*
|
|
59
62
|
* @param vault pubkey
|
|
@@ -166,7 +169,7 @@ export declare class VaultClient {
|
|
|
166
169
|
tokenUri: string;
|
|
167
170
|
decimals?: number;
|
|
168
171
|
sharesBase?: number;
|
|
169
|
-
}): Promise<TransactionSignature>;
|
|
172
|
+
}, uiTxParams?: TxParams): Promise<TransactionSignature>;
|
|
170
173
|
createTokenizeSharesIx(vaultDepositor: PublicKey, amount: BN, unit: WithdrawUnit, mint?: PublicKey): Promise<TransactionInstruction[]>;
|
|
171
174
|
tokenizeShares(vaultDepositor: PublicKey, amount: BN, unit: WithdrawUnit, mint?: PublicKey, txParams?: TxParams): Promise<TransactionSignature>;
|
|
172
175
|
createRedeemTokensIx(vaultDepositor: PublicKey, tokensToBurn: BN, sharesBase?: number): Promise<TransactionInstruction>;
|
|
@@ -222,7 +225,11 @@ export declare class VaultClient {
|
|
|
222
225
|
bump: number;
|
|
223
226
|
permissioned: boolean;
|
|
224
227
|
vaultProtocol: boolean;
|
|
228
|
+
fuelDistributionMode: number;
|
|
225
229
|
padding1: number[];
|
|
230
|
+
lastCumulativeFuelPerShareTs: number;
|
|
231
|
+
cumulativeFuelPerShare: BN;
|
|
232
|
+
cumulativeFuel: BN;
|
|
226
233
|
padding: BN[];
|
|
227
234
|
};
|
|
228
235
|
accounts: {
|
|
@@ -253,7 +260,7 @@ export declare class VaultClient {
|
|
|
253
260
|
createDepositTx(vaultDepositor: PublicKey, amount: BN, initVaultDepositor?: {
|
|
254
261
|
authority: PublicKey;
|
|
255
262
|
vault: PublicKey;
|
|
256
|
-
}, txParams?: TxParams): Promise<VersionedTransaction>;
|
|
263
|
+
}, txParams?: TxParams, userTokenAccount?: PublicKey): Promise<VersionedTransaction>;
|
|
257
264
|
/**
|
|
258
265
|
* Depositor funds into the specified vault.
|
|
259
266
|
* @param vaultDepositor
|
|
@@ -279,6 +286,7 @@ export declare class VaultClient {
|
|
|
279
286
|
*/
|
|
280
287
|
liquidate(vaultDepositor: PublicKey, txParams?: TxParams): Promise<TransactionSignature>;
|
|
281
288
|
createTxn(vaultIxs: TransactionInstruction[], txParams?: TxParams): Promise<VersionedTransaction>;
|
|
289
|
+
createTxnNoLut(vaultIxs: TransactionInstruction[], txParams?: TxParams): Promise<VersionedTransaction>;
|
|
282
290
|
sendTxn(transaction: VersionedTransaction, simulateTransaction?: boolean): Promise<TransactionSignature>;
|
|
283
291
|
/**
|
|
284
292
|
* Used for UI wallet adapters compatibility
|
|
@@ -306,4 +314,16 @@ export declare class VaultClient {
|
|
|
306
314
|
protocolCancelWithdrawRequest(vault: PublicKey): Promise<TransactionSignature>;
|
|
307
315
|
protocolWithdraw(vault: PublicKey): Promise<TransactionSignature>;
|
|
308
316
|
private getOracleFeedsToCrank;
|
|
317
|
+
updateVaultProtocol(vault: PublicKey, params: {
|
|
318
|
+
protocolFee: BN | null;
|
|
319
|
+
protocolProfitShare: number | null;
|
|
320
|
+
}, txParams?: TxParams): Promise<TransactionSignature>;
|
|
321
|
+
updateCumulativeFuelAmount(vaultDepositor: PublicKey, txParams?: TxParams): Promise<TransactionSignature>;
|
|
322
|
+
getUpdateCumulativeFuelAmountIx(vaultDepositor: PublicKey): Promise<TransactionInstruction>;
|
|
323
|
+
resetFuelSeason(vaultDepositor: PublicKey, txParams?: TxParams): Promise<TransactionSignature>;
|
|
324
|
+
getResetFuelSeasonIx(vaultDepositor: PublicKey): Promise<TransactionInstruction>;
|
|
325
|
+
resetVaultFuelSeason(vault: PublicKey, txParams?: TxParams): Promise<TransactionSignature>;
|
|
326
|
+
getResetVaultFuelSeasonIx(vault: PublicKey): Promise<TransactionInstruction>;
|
|
327
|
+
managerUpdateFuelDistributionMode(vault: PublicKey, fuelDistributionMode: FuelDistributionMode, txParams?: TxParams): Promise<TransactionSignature>;
|
|
328
|
+
getManagerUpdateFuelDistributionModeIx(vault: PublicKey, fuelDistributionMode: FuelDistributionMode): Promise<TransactionInstruction>;
|
|
309
329
|
}
|