@drift-labs/sdk 2.130.0-beta.10 → 2.130.0-beta.11

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 (64) hide show
  1. package/VERSION +1 -1
  2. package/lib/browser/dlob/DLOB.d.ts +2 -2
  3. package/lib/browser/driftClient/index.d.ts +1 -1
  4. package/lib/browser/driftClient/types.d.ts +7 -7
  5. package/lib/browser/index.d.ts +1 -1
  6. package/lib/browser/index.js +1 -1
  7. package/lib/browser/math/margin.d.ts +5 -5
  8. package/lib/browser/math/orders.d.ts +4 -4
  9. package/lib/browser/user/index.d.ts +8 -3
  10. package/lib/browser/user/types.d.ts +20 -2
  11. package/lib/browser/userMap/events.d.ts +2 -2
  12. package/lib/browser/userMap/types.d.ts +11 -12
  13. package/lib/browser/userMap/userMap.d.ts +3 -3
  14. package/lib/browser/userMap/userMapConfig.d.ts +2 -2
  15. package/lib/browser/userStats/index.d.ts +6 -1
  16. package/lib/browser/userStatsConfig.d.ts +1 -7
  17. package/lib/node/dlob/DLOB.d.ts +2 -2
  18. package/lib/node/dlob/DLOB.d.ts.map +1 -1
  19. package/lib/node/driftClient/index.d.ts +1 -1
  20. package/lib/node/driftClient/types.d.ts +7 -7
  21. package/lib/node/driftClient/types.d.ts.map +1 -1
  22. package/lib/node/index.d.ts +1 -1
  23. package/lib/node/index.js +1 -1
  24. package/lib/node/math/margin.d.ts +5 -5
  25. package/lib/node/math/margin.d.ts.map +1 -1
  26. package/lib/node/math/orders.d.ts +4 -4
  27. package/lib/node/math/orders.d.ts.map +1 -1
  28. package/lib/node/user/index.d.ts +8 -3
  29. package/lib/node/user/index.d.ts.map +1 -1
  30. package/lib/node/user/types.d.ts +20 -2
  31. package/lib/node/user/types.d.ts.map +1 -1
  32. package/lib/node/userMap/events.d.ts +2 -2
  33. package/lib/node/userMap/events.d.ts.map +1 -1
  34. package/lib/node/userMap/types.d.ts +11 -12
  35. package/lib/node/userMap/types.d.ts.map +1 -1
  36. package/lib/node/userMap/userMap.d.ts +3 -3
  37. package/lib/node/userMap/userMap.d.ts.map +1 -1
  38. package/lib/node/userMap/userMapConfig.d.ts +2 -2
  39. package/lib/node/userMap/userMapConfig.d.ts.map +1 -1
  40. package/lib/node/userStats/index.d.ts +6 -1
  41. package/lib/node/userStats/index.d.ts.map +1 -1
  42. package/lib/node/userStatsConfig.d.ts +1 -7
  43. package/lib/node/userStatsConfig.d.ts.map +1 -1
  44. package/package.json +1 -1
  45. package/src/dlob/DLOB.ts +2 -2
  46. package/src/driftClient/index.ts +1 -1
  47. package/src/driftClient/types.ts +7 -7
  48. package/src/index.ts +1 -1
  49. package/src/math/margin.ts +5 -5
  50. package/src/math/orders.ts +4 -4
  51. package/src/user/index.ts +9 -3
  52. package/src/user/types.ts +25 -1
  53. package/src/userMap/events.ts +2 -2
  54. package/src/userMap/types.ts +11 -12
  55. package/src/userMap/userMap.ts +3 -3
  56. package/src/userMap/userMapConfig.ts +2 -2
  57. package/src/userStats/index.ts +7 -1
  58. package/src/userStatsConfig.ts +1 -8
  59. package/lib/browser/userConfig.d.ts +0 -26
  60. package/lib/browser/userConfig.js +0 -2
  61. package/lib/node/userConfig.d.ts +0 -27
  62. package/lib/node/userConfig.d.ts.map +0 -1
  63. package/lib/node/userConfig.js +0 -2
  64. package/src/userConfig.ts +0 -32
package/VERSION CHANGED
@@ -1 +1 @@
1
- 2.130.0-beta.10
1
+ 2.130.0-beta.11
@@ -2,7 +2,7 @@
2
2
  import { NodeList } from './NodeList';
3
3
  import { BN } from '@coral-xyz/anchor';
4
4
  import { DLOBNode, DLOBNodeType } from './DLOBNode';
5
- import { DriftClient } from '../driftClient';
5
+ import { IDriftClient } from '../driftClient/types';
6
6
  import { MarketType, MarketTypeStr, Order, PerpMarketAccount, PositionDirection, SpotMarketAccount, StateAccount } from '../types';
7
7
  import { OraclePriceData } from '../oracles/types';
8
8
  import { DLOBFilterFcn, DLOBOrders, IDLOB, MarketNodeLists, NodeToFill, NodeToTrigger, OrderBookCallback, ProtectMakerParamsMap } from './types';
@@ -84,7 +84,7 @@ export declare class DLOB implements IDLOB {
84
84
  getTakeProfitMarkets(marketIndex: number, marketType: MarketType, direction: PositionDirection): Generator<DLOBNode>;
85
85
  getTakeProfitLimits(marketIndex: number, marketType: MarketType, direction: PositionDirection): Generator<DLOBNode>;
86
86
  findNodesToTrigger(marketIndex: number, slot: number, oraclePrice: BN, marketType: MarketType, stateAccount: StateAccount): NodeToTrigger[];
87
- printTop(driftClient: DriftClient, slotSubscriber: SlotSubscriber, marketIndex: number, marketType: MarketType): void;
87
+ printTop(driftClient: IDriftClient, slotSubscriber: SlotSubscriber, marketIndex: number, marketType: MarketType): void;
88
88
  getDLOBOrders(): DLOBOrders;
89
89
  getNodeLists(): Generator<NodeList<DLOBNodeType>>;
90
90
  /**
@@ -15,7 +15,7 @@ import { TxSender, TxSigAndSlot } from '../tx/types';
15
15
  import { OraclePriceData } from '../oracles/types';
16
16
  import { DriftClientConfig } from '../driftClientConfig';
17
17
  import { User } from '../user';
18
- import { UserSubscriptionConfig } from '../userConfig';
18
+ import { UserSubscriptionConfig } from '../user/types';
19
19
  import { DriftEnv } from '../config/types';
20
20
  import { IUserStats } from '../userStats/types';
21
21
  import { JupiterClient, QuoteResponse, SwapMode } from '../jupiter/jupiterClient';
@@ -11,8 +11,7 @@ import StrictEventEmitter from 'strict-event-emitter-types';
11
11
  import { DataAndSlot, DriftClientAccountEvents, DriftClientAccountSubscriber } from '../accounts/types';
12
12
  import { TxSender, TxSigAndSlot } from '../tx/types';
13
13
  import { OraclePriceData } from '../oracles/types';
14
- import { User } from '../user';
15
- import { UserSubscriptionConfig } from '../userConfig';
14
+ import { UserSubscriptionConfig } from '../user/types';
16
15
  import { DriftEnv } from '../config/types';
17
16
  import { IUserStats } from '../userStats/types';
18
17
  import { UserStatsSubscriptionConfig } from '../userStatsConfig';
@@ -22,6 +21,7 @@ import { Slothash } from '../slot/SlothashSubscriber';
22
21
  import { TokenFaucet } from '../tokenFaucet';
23
22
  import { JupiterClient, QuoteResponse, SwapMode } from '../jupiter/jupiterClient';
24
23
  import { TxHandler } from '../tx/txHandler';
24
+ import { IUser } from '../user/types';
25
25
  type RemainingAccountParams = {
26
26
  userAccounts: UserAccount[];
27
27
  writablePerpMarketIndexes?: number[];
@@ -38,7 +38,7 @@ export interface IDriftClient {
38
38
  env: DriftEnv;
39
39
  opts?: ConfirmOptions;
40
40
  useHotWalletAdmin?: boolean;
41
- users: Map<string, User>;
41
+ users: Map<string, IUser>;
42
42
  userStats?: IUserStats;
43
43
  activeSubAccountId: number;
44
44
  userAccountSubscriptionConfig: UserSubscriptionConfig;
@@ -74,7 +74,7 @@ export interface IDriftClient {
74
74
  get isSubscribed(): boolean;
75
75
  set isSubscribed(val: boolean);
76
76
  getUserMapKey(subAccountId: number, authority: PublicKey): string;
77
- createUser(subAccountId: number, accountSubscriptionConfig: UserSubscriptionConfig, authority?: PublicKey): User;
77
+ createUser(subAccountId: number, accountSubscriptionConfig: UserSubscriptionConfig, authority?: PublicKey): IUser;
78
78
  subscribe(): Promise<boolean>;
79
79
  subscribeUsers(): Promise<boolean>[];
80
80
  /**
@@ -220,9 +220,9 @@ export interface IDriftClient {
220
220
  isSignedMsgUserOrdersAccountInitialized(authority: PublicKey): Promise<boolean>;
221
221
  reclaimRent(subAccountId?: number, txParams?: TxParams): Promise<TransactionSignature>;
222
222
  getReclaimRentIx(userAccountPublicKey: PublicKey): Promise<TransactionInstruction>;
223
- getUser(subAccountId?: number, authority?: PublicKey): User;
223
+ getUser(subAccountId?: number, authority?: PublicKey): IUser;
224
224
  hasUser(subAccountId?: number, authority?: PublicKey): boolean;
225
- getUsers(): User[];
225
+ getUsers(): IUser[];
226
226
  getUserStats(): IUserStats;
227
227
  fetchReferrerNameAccount(name: string): Promise<ReferrerNameAccount | undefined>;
228
228
  getUserStatsAccountPublicKey(): PublicKey;
@@ -889,7 +889,7 @@ export interface IDriftClient {
889
889
  * @param positionMarketIndex
890
890
  * @returns : {takerFee: number, makerFee: number} Precision None
891
891
  */
892
- getMarketFees(marketType: MarketType, marketIndex?: number, user?: User, enteringHighLeverageMode?: boolean): {
892
+ getMarketFees(marketType: MarketType, marketIndex?: number, user?: IUser, enteringHighLeverageMode?: boolean): {
893
893
  takerFee: number;
894
894
  makerFee: number;
895
895
  };
@@ -30,7 +30,7 @@ export * from './adminClient';
30
30
  export * from './assert/assert';
31
31
  export * from './testClient';
32
32
  export * from './user';
33
- export * from './userConfig';
33
+ export * from './user/types';
34
34
  export * from './userStats';
35
35
  export * from './userName';
36
36
  export * from './userStatsConfig';
@@ -54,7 +54,7 @@ __exportStar(require("./adminClient"), exports);
54
54
  __exportStar(require("./assert/assert"), exports);
55
55
  __exportStar(require("./testClient"), exports);
56
56
  __exportStar(require("./user"), exports);
57
- __exportStar(require("./userConfig"), exports);
57
+ __exportStar(require("./user/types"), exports);
58
58
  __exportStar(require("./userStats"), exports);
59
59
  __exportStar(require("./userName"), exports);
60
60
  __exportStar(require("./userStatsConfig"), exports);
@@ -1,9 +1,9 @@
1
1
  /// <reference types="bn.js" />
2
2
  import { BN } from '@coral-xyz/anchor';
3
3
  import { OraclePriceData } from '../oracles/types';
4
- import { DriftClient } from '../driftClient';
5
4
  import { PerpMarketAccount, PerpPosition, PositionDirection, UserAccount } from '../types';
6
5
  import { PublicKey } from '@solana/web3.js';
6
+ import { IDriftClient } from '../driftClient/types';
7
7
  export declare function calculateSizePremiumLiabilityWeight(size: BN, // AMM_RESERVE_PRECISION
8
8
  imfFactor: BN, liabilityWeight: BN, precision: BN): BN;
9
9
  export declare function calculateSizeDiscountAssetWeight(size: BN, // AMM_RESERVE_PRECISION
@@ -30,16 +30,16 @@ export declare function calculatePerpLiabilityValue(baseAssetAmount: BN, price:
30
30
  * @param baseSize
31
31
  * @returns
32
32
  */
33
- export declare function calculateMarginUSDCRequiredForTrade(driftClient: DriftClient, targetMarketIndex: number, baseSize: BN, userMaxMarginRatio?: number, userHighLeverageMode?: boolean, entryPrice?: BN): BN;
33
+ export declare function calculateMarginUSDCRequiredForTrade(driftClient: IDriftClient, targetMarketIndex: number, baseSize: BN, userMaxMarginRatio?: number, userHighLeverageMode?: boolean, entryPrice?: BN): BN;
34
34
  /**
35
35
  * Similar to calculatetMarginUSDCRequiredForTrade, but calculates how much of a given collateral is required to cover the margin requirements for a given trade. Basically does the same thing as getMarginUSDCRequiredForTrade but also accounts for asset weight of the selected collateral.
36
36
  *
37
37
  * Returns collateral required in the precision of the target collateral market.
38
38
  */
39
- export declare function calculateCollateralDepositRequiredForTrade(driftClient: DriftClient, targetMarketIndex: number, baseSize: BN, collateralIndex: number, userMaxMarginRatio?: number, userHighLeverageMode?: boolean, estEntryPrice?: BN): BN;
40
- export declare function calculateCollateralValueOfDeposit(driftClient: DriftClient, collateralIndex: number, baseSize: BN): BN;
39
+ export declare function calculateCollateralDepositRequiredForTrade(driftClient: IDriftClient, targetMarketIndex: number, baseSize: BN, collateralIndex: number, userMaxMarginRatio?: number, userHighLeverageMode?: boolean, estEntryPrice?: BN): BN;
40
+ export declare function calculateCollateralValueOfDeposit(driftClient: IDriftClient, collateralIndex: number, baseSize: BN): BN;
41
41
  export declare function calculateLiquidationPrice(freeCollateral: BN, freeCollateralDelta: BN, oraclePrice: BN): BN;
42
- export declare function calculateUserMaxPerpOrderSize(driftClient: DriftClient, userAccountKey: PublicKey, userAccount: UserAccount, targetMarketIndex: number, tradeSide: PositionDirection): {
42
+ export declare function calculateUserMaxPerpOrderSize(driftClient: IDriftClient, userAccountKey: PublicKey, userAccount: UserAccount, targetMarketIndex: number, tradeSide: PositionDirection): {
43
43
  tradeSize: BN;
44
44
  oppositeSideTradeSize: BN;
45
45
  };
@@ -1,11 +1,11 @@
1
1
  /// <reference types="bn.js" />
2
- import { User } from '../user';
3
2
  import { PerpMarketAccount, AMM, Order, PositionDirection, ProtectedMakerParams } from '../types';
4
3
  import { BN } from '@coral-xyz/anchor';
5
4
  import { OraclePriceData } from '../oracles/types';
6
- export declare function isOrderRiskIncreasing(user: User, order: Order): boolean;
7
- export declare function isOrderRiskIncreasingInSameDirection(user: User, order: Order): boolean;
8
- export declare function isOrderReduceOnly(user: User, order: Order): boolean;
5
+ import { IUser } from '../user/types';
6
+ export declare function isOrderRiskIncreasing(user: IUser, order: Order): boolean;
7
+ export declare function isOrderRiskIncreasingInSameDirection(user: IUser, order: Order): boolean;
8
+ export declare function isOrderReduceOnly(user: IUser, order: Order): boolean;
9
9
  export declare function standardizePrice(price: BN, tickSize: BN, direction: PositionDirection): BN;
10
10
  export declare function getLimitPrice(order: Order, oraclePriceData: OraclePriceData, slot: number, fallbackPrice?: BN, protectedMakerParams?: ProtectedMakerParams): BN | undefined;
11
11
  export declare function applyProtectedMakerParams(limitPrice: BN, direction: PositionDirection, protectedMakerParams: ProtectedMakerParams): BN;
@@ -3,18 +3,23 @@
3
3
  import { PublicKey } from '@solana/web3.js';
4
4
  import { EventEmitter } from 'events';
5
5
  import StrictEventEmitter from 'strict-event-emitter-types';
6
- import { DriftClient } from '../driftClient';
7
6
  import { HealthComponent, HealthComponents, MarginCategory, Order, PerpMarketAccount, PerpPosition, SpotPosition, UserAccount, UserStatus } from '../types';
8
7
  import { DataAndSlot, UserAccountEvents, UserAccountSubscriber } from '../accounts/types';
9
8
  import { BN } from '@coral-xyz/anchor';
10
9
  import { MarketType, PositionDirection, SpotMarketAccount } from '../types';
11
10
  import { OraclePriceData } from '../oracles/types';
12
- import { UserConfig } from '../userConfig';
11
+ import { UserSubscriptionConfig } from './types';
13
12
  import { StrictOraclePrice } from '../oracles/strictOraclePrice';
14
13
  import { IUserStats } from '../userStats/types';
15
14
  import { IUser } from './types';
15
+ import { IDriftClient } from '../driftClient/types';
16
+ export type UserConfig = {
17
+ accountSubscription?: UserSubscriptionConfig;
18
+ driftClient: IDriftClient;
19
+ userAccountPublicKey: PublicKey;
20
+ };
16
21
  export declare class User implements IUser {
17
- driftClient: DriftClient;
22
+ driftClient: IDriftClient;
18
23
  userAccountPublicKey: PublicKey;
19
24
  accountSubscriber: UserAccountSubscriber;
20
25
  _isSubscribed: boolean;
@@ -1,14 +1,32 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="bn.js" />
3
- import { PublicKey } from '@solana/web3.js';
3
+ import { Commitment, PublicKey } from '@solana/web3.js';
4
4
  import { EventEmitter } from 'events';
5
5
  import StrictEventEmitter from 'strict-event-emitter-types';
6
6
  import { HealthComponent, HealthComponents, MarginCategory, Order, PerpPosition, SpotPosition, UserAccount, UserStatus, MarketType, PositionDirection, SpotMarketAccount, PerpMarketAccount, FeeTier } from '../types';
7
- import { DataAndSlot, UserAccountEvents, UserAccountSubscriber } from '../accounts/types';
7
+ import { DataAndSlot, GrpcConfigs, UserAccountEvents, UserAccountSubscriber } from '../accounts/types';
8
8
  import { BN } from '@coral-xyz/anchor';
9
9
  import { OraclePriceData } from '../oracles/types';
10
10
  import { StrictOraclePrice } from '../oracles/strictOraclePrice';
11
11
  import { IUserStats } from '../userStats/types';
12
+ import { BulkAccountLoader } from '../accounts/bulkAccountLoader/bulkAccountLoader';
13
+ export type UserSubscriptionConfig = {
14
+ type: 'grpc';
15
+ resubTimeoutMs?: number;
16
+ logResubMessages?: boolean;
17
+ grpcConfigs: GrpcConfigs;
18
+ } | {
19
+ type: 'websocket';
20
+ resubTimeoutMs?: number;
21
+ logResubMessages?: boolean;
22
+ commitment?: Commitment;
23
+ } | {
24
+ type: 'polling';
25
+ accountLoader: BulkAccountLoader;
26
+ } | {
27
+ type: 'custom';
28
+ userAccountSubscriber: UserAccountSubscriber;
29
+ };
12
30
  export interface IUser {
13
31
  userAccountPublicKey: PublicKey;
14
32
  accountSubscriber: UserAccountSubscriber;
@@ -1,6 +1,6 @@
1
- import { User } from '../user';
1
+ import { IUser } from '../user/types';
2
2
  export interface UserEvents {
3
- userUpdate: (payload: User) => void;
3
+ userUpdate: (payload: IUser) => void;
4
4
  update: void;
5
5
  error: (e: Error) => void;
6
6
  }
@@ -1,9 +1,7 @@
1
1
  /// <reference types="node" />
2
- import { User } from '../user';
3
- import { DriftClient } from '../driftClient';
2
+ import { IDriftClient } from '../driftClient/types';
4
3
  import { UserAccount, OrderRecord } from '../types';
5
4
  import { WrappedEvent } from '../events/types';
6
- import { UserSubscriptionConfig } from '../userConfig';
7
5
  import { DataAndSlot } from '../accounts/types';
8
6
  import { IDLOB, ProtectMakerParamsMap } from '../dlob/types';
9
7
  import { PublicKey } from '@solana/web3.js';
@@ -11,8 +9,9 @@ import { UserAccountFilterCriteria as UserFilterCriteria } from './userMapConfig
11
9
  import StrictEventEmitter from 'strict-event-emitter-types';
12
10
  import { EventEmitter } from 'events';
13
11
  import { UserEvents } from './events';
12
+ import { IUser, UserSubscriptionConfig } from '../user/types';
14
13
  export interface IUserMap {
15
- driftClient: DriftClient;
14
+ driftClient: IDriftClient;
16
15
  eventEmitter: StrictEventEmitter<EventEmitter, UserEvents>;
17
16
  subscribe(): Promise<void>;
18
17
  addPubkey(userAccountPublicKey: PublicKey, userAccount?: UserAccount, slot?: number, accountSubscription?: UserSubscriptionConfig): Promise<void>;
@@ -22,15 +21,15 @@ export interface IUserMap {
22
21
  * @param key userAccountPublicKey to get User for
23
22
  * @returns user User | undefined
24
23
  */
25
- get(key: string): User | undefined;
26
- getWithSlot(key: string): DataAndSlot<User> | undefined;
24
+ get(key: string): IUser | undefined;
25
+ getWithSlot(key: string): DataAndSlot<IUser> | undefined;
27
26
  /**
28
27
  * gets the User for a particular userAccountPublicKey, if no User exists, new one is created
29
28
  * @param key userAccountPublicKey to get User for
30
29
  * @returns User
31
30
  */
32
- mustGet(key: string, accountSubscription?: UserSubscriptionConfig): Promise<User>;
33
- mustGetWithSlot(key: string, accountSubscription?: UserSubscriptionConfig): Promise<DataAndSlot<User>>;
31
+ mustGet(key: string, accountSubscription?: UserSubscriptionConfig): Promise<IUser>;
32
+ mustGetWithSlot(key: string, accountSubscription?: UserSubscriptionConfig): Promise<DataAndSlot<IUser>>;
34
33
  mustGetUserAccount(key: string): Promise<UserAccount>;
35
34
  /**
36
35
  * gets the Authority for a particular userAccountPublicKey, if no User exists, undefined is returned
@@ -46,10 +45,10 @@ export interface IUserMap {
46
45
  getDLOB(slot: number, protectedMakerParamsMap?: ProtectMakerParamsMap): Promise<IDLOB>;
47
46
  updateWithOrderRecord(record: OrderRecord): Promise<void>;
48
47
  updateWithEventRecord(record: WrappedEvent<any>): Promise<void>;
49
- values(): IterableIterator<User>;
50
- valuesWithSlot(): IterableIterator<DataAndSlot<User>>;
51
- entries(): IterableIterator<[string, User]>;
52
- entriesWithSlot(): IterableIterator<[string, DataAndSlot<User>]>;
48
+ values(): IterableIterator<IUser>;
49
+ valuesWithSlot(): IterableIterator<DataAndSlot<IUser>>;
50
+ entries(): IterableIterator<[string, IUser]>;
51
+ entriesWithSlot(): IterableIterator<[string, DataAndSlot<IUser>]>;
53
52
  size(): number;
54
53
  /**
55
54
  * Returns a unique list of authorities for all users in the UserMap that meet the filter criteria
@@ -1,10 +1,9 @@
1
1
  /// <reference types="node" />
2
2
  import { User } from '../user';
3
- import { DriftClient } from '../driftClient';
4
3
  import { UserAccount, OrderRecord } from '../types';
5
4
  import { WrappedEvent } from '../events/types';
6
5
  import { DLOB } from '../dlob/DLOB';
7
- import { UserSubscriptionConfig } from '../userConfig';
6
+ import { UserSubscriptionConfig } from '../user/types';
8
7
  import { DataAndSlot } from '../accounts/types';
9
8
  import { ProtectMakerParamsMap } from '../dlob/types';
10
9
  import { PublicKey } from '@solana/web3.js';
@@ -13,9 +12,10 @@ import StrictEventEmitter from 'strict-event-emitter-types';
13
12
  import { EventEmitter } from 'events';
14
13
  import { UserEvents } from './events';
15
14
  import { IUserMap } from './types';
15
+ import { IDriftClient } from '../driftClient/types';
16
16
  export declare class UserMap implements IUserMap {
17
17
  private userMap;
18
- driftClient: DriftClient;
18
+ driftClient: IDriftClient;
19
19
  eventEmitter: StrictEventEmitter<EventEmitter, UserEvents>;
20
20
  private connection;
21
21
  private commitment;
@@ -1,5 +1,5 @@
1
1
  import { Commitment, Connection, MemcmpFilter } from '@solana/web3.js';
2
- import { DriftClient } from '../driftClient';
2
+ import { IDriftClient } from '../driftClient/types';
3
3
  import { GrpcConfigs } from '../accounts/types';
4
4
  export type UserAccountFilterCriteria = {
5
5
  hasOpenOrders: boolean;
@@ -12,7 +12,7 @@ export type SyncConfig = {
12
12
  concurrencyLimit?: number;
13
13
  };
14
14
  export type UserMapConfig = {
15
- driftClient: DriftClient;
15
+ driftClient: IDriftClient;
16
16
  connection?: Connection;
17
17
  subscriptionConfig: {
18
18
  type: 'polling';
@@ -1,11 +1,16 @@
1
1
  /// <reference types="bn.js" />
2
2
  import { PublicKey } from '@solana/web3.js';
3
3
  import { DataAndSlot, UserStatsAccountSubscriber } from '../accounts/types';
4
- import { UserStatsConfig } from '../userStatsConfig';
4
+ import { UserStatsSubscriptionConfig } from '../userStatsConfig';
5
5
  import { ReferrerInfo, UserStatsAccount } from '../types';
6
6
  import { BN } from '@coral-xyz/anchor';
7
7
  import { IDriftClient } from '../driftClient/types';
8
8
  import { IUserStats } from './types';
9
+ export type UserStatsConfig = {
10
+ accountSubscription?: UserStatsSubscriptionConfig;
11
+ driftClient: IDriftClient;
12
+ userStatsAccountPublicKey: PublicKey;
13
+ };
9
14
  export declare class UserStats implements IUserStats {
10
15
  driftClient: IDriftClient;
11
16
  userStatsAccountPublicKey: PublicKey;
@@ -1,12 +1,6 @@
1
- import { DriftClient } from './driftClient';
2
- import { Commitment, PublicKey } from '@solana/web3.js';
1
+ import { Commitment } from '@solana/web3.js';
3
2
  import { BulkAccountLoader } from './accounts/bulkAccountLoader/bulkAccountLoader';
4
3
  import { GrpcConfigs } from './accounts/types';
5
- export type UserStatsConfig = {
6
- accountSubscription?: UserStatsSubscriptionConfig;
7
- driftClient: DriftClient;
8
- userStatsAccountPublicKey: PublicKey;
9
- };
10
4
  export type UserStatsSubscriptionConfig = {
11
5
  type: 'websocket';
12
6
  resubTimeoutMs?: number;
@@ -2,7 +2,7 @@
2
2
  import { NodeList } from './NodeList';
3
3
  import { BN } from '@coral-xyz/anchor';
4
4
  import { DLOBNode, DLOBNodeType } from './DLOBNode';
5
- import { DriftClient } from '../driftClient';
5
+ import { IDriftClient } from '../driftClient/types';
6
6
  import { MarketType, MarketTypeStr, Order, PerpMarketAccount, PositionDirection, SpotMarketAccount, StateAccount } from '../types';
7
7
  import { OraclePriceData } from '../oracles/types';
8
8
  import { DLOBFilterFcn, DLOBOrders, IDLOB, MarketNodeLists, NodeToFill, NodeToTrigger, OrderBookCallback, ProtectMakerParamsMap } from './types';
@@ -84,7 +84,7 @@ export declare class DLOB implements IDLOB {
84
84
  getTakeProfitMarkets(marketIndex: number, marketType: MarketType, direction: PositionDirection): Generator<DLOBNode>;
85
85
  getTakeProfitLimits(marketIndex: number, marketType: MarketType, direction: PositionDirection): Generator<DLOBNode>;
86
86
  findNodesToTrigger(marketIndex: number, slot: number, oraclePrice: BN, marketType: MarketType, stateAccount: StateAccount): NodeToTrigger[];
87
- printTop(driftClient: DriftClient, slotSubscriber: SlotSubscriber, marketIndex: number, marketType: MarketType): void;
87
+ printTop(driftClient: IDriftClient, slotSubscriber: SlotSubscriber, marketIndex: number, marketType: MarketType): void;
88
88
  getDLOBOrders(): DLOBOrders;
89
89
  getNodeLists(): Generator<NodeList<DLOBNodeType>>;
90
90
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"DLOB.d.ts","sourceRoot":"","sources":["../../../src/dlob/DLOB.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DLOB.d.ts","sourceRoot":"","sources":["../../../src/dlob/DLOB.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ import { TxSender, TxSigAndSlot } from '../tx/types';
15
15
  import { OraclePriceData } from '../oracles/types';
16
16
  import { DriftClientConfig } from '../driftClientConfig';
17
17
  import { User } from '../user';
18
- import { UserSubscriptionConfig } from '../userConfig';
18
+ import { UserSubscriptionConfig } from '../user/types';
19
19
  import { DriftEnv } from '../config/types';
20
20
  import { IUserStats } from '../userStats/types';
21
21
  import { JupiterClient, QuoteResponse, SwapMode } from '../jupiter/jupiterClient';
@@ -11,8 +11,7 @@ import StrictEventEmitter from 'strict-event-emitter-types';
11
11
  import { DataAndSlot, DriftClientAccountEvents, DriftClientAccountSubscriber } from '../accounts/types';
12
12
  import { TxSender, TxSigAndSlot } from '../tx/types';
13
13
  import { OraclePriceData } from '../oracles/types';
14
- import { User } from '../user';
15
- import { UserSubscriptionConfig } from '../userConfig';
14
+ import { UserSubscriptionConfig } from '../user/types';
16
15
  import { DriftEnv } from '../config/types';
17
16
  import { IUserStats } from '../userStats/types';
18
17
  import { UserStatsSubscriptionConfig } from '../userStatsConfig';
@@ -22,6 +21,7 @@ import { Slothash } from '../slot/SlothashSubscriber';
22
21
  import { TokenFaucet } from '../tokenFaucet';
23
22
  import { JupiterClient, QuoteResponse, SwapMode } from '../jupiter/jupiterClient';
24
23
  import { TxHandler } from '../tx/txHandler';
24
+ import { IUser } from '../user/types';
25
25
  type RemainingAccountParams = {
26
26
  userAccounts: UserAccount[];
27
27
  writablePerpMarketIndexes?: number[];
@@ -38,7 +38,7 @@ export interface IDriftClient {
38
38
  env: DriftEnv;
39
39
  opts?: ConfirmOptions;
40
40
  useHotWalletAdmin?: boolean;
41
- users: Map<string, User>;
41
+ users: Map<string, IUser>;
42
42
  userStats?: IUserStats;
43
43
  activeSubAccountId: number;
44
44
  userAccountSubscriptionConfig: UserSubscriptionConfig;
@@ -74,7 +74,7 @@ export interface IDriftClient {
74
74
  get isSubscribed(): boolean;
75
75
  set isSubscribed(val: boolean);
76
76
  getUserMapKey(subAccountId: number, authority: PublicKey): string;
77
- createUser(subAccountId: number, accountSubscriptionConfig: UserSubscriptionConfig, authority?: PublicKey): User;
77
+ createUser(subAccountId: number, accountSubscriptionConfig: UserSubscriptionConfig, authority?: PublicKey): IUser;
78
78
  subscribe(): Promise<boolean>;
79
79
  subscribeUsers(): Promise<boolean>[];
80
80
  /**
@@ -220,9 +220,9 @@ export interface IDriftClient {
220
220
  isSignedMsgUserOrdersAccountInitialized(authority: PublicKey): Promise<boolean>;
221
221
  reclaimRent(subAccountId?: number, txParams?: TxParams): Promise<TransactionSignature>;
222
222
  getReclaimRentIx(userAccountPublicKey: PublicKey): Promise<TransactionInstruction>;
223
- getUser(subAccountId?: number, authority?: PublicKey): User;
223
+ getUser(subAccountId?: number, authority?: PublicKey): IUser;
224
224
  hasUser(subAccountId?: number, authority?: PublicKey): boolean;
225
- getUsers(): User[];
225
+ getUsers(): IUser[];
226
226
  getUserStats(): IUserStats;
227
227
  fetchReferrerNameAccount(name: string): Promise<ReferrerNameAccount | undefined>;
228
228
  getUserStatsAccountPublicKey(): PublicKey;
@@ -889,7 +889,7 @@ export interface IDriftClient {
889
889
  * @param positionMarketIndex
890
890
  * @returns : {takerFee: number, makerFee: number} Precision None
891
891
  */
892
- getMarketFees(marketType: MarketType, marketIndex?: number, user?: User, enteringHighLeverageMode?: boolean): {
892
+ getMarketFees(marketType: MarketType, marketIndex?: number, user?: IUser, enteringHighLeverageMode?: boolean): {
893
893
  takerFee: number;
894
894
  makerFee: number;
895
895
  };