@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.
- package/VERSION +1 -1
- package/lib/browser/dlob/DLOB.d.ts +2 -2
- package/lib/browser/driftClient/index.d.ts +1 -1
- package/lib/browser/driftClient/types.d.ts +7 -7
- package/lib/browser/index.d.ts +1 -1
- package/lib/browser/index.js +1 -1
- package/lib/browser/math/margin.d.ts +5 -5
- package/lib/browser/math/orders.d.ts +4 -4
- package/lib/browser/user/index.d.ts +8 -3
- package/lib/browser/user/types.d.ts +20 -2
- package/lib/browser/userMap/events.d.ts +2 -2
- package/lib/browser/userMap/types.d.ts +11 -12
- package/lib/browser/userMap/userMap.d.ts +3 -3
- package/lib/browser/userMap/userMapConfig.d.ts +2 -2
- package/lib/browser/userStats/index.d.ts +6 -1
- package/lib/browser/userStatsConfig.d.ts +1 -7
- package/lib/node/dlob/DLOB.d.ts +2 -2
- package/lib/node/dlob/DLOB.d.ts.map +1 -1
- package/lib/node/driftClient/index.d.ts +1 -1
- package/lib/node/driftClient/types.d.ts +7 -7
- package/lib/node/driftClient/types.d.ts.map +1 -1
- package/lib/node/index.d.ts +1 -1
- package/lib/node/index.js +1 -1
- package/lib/node/math/margin.d.ts +5 -5
- package/lib/node/math/margin.d.ts.map +1 -1
- package/lib/node/math/orders.d.ts +4 -4
- package/lib/node/math/orders.d.ts.map +1 -1
- package/lib/node/user/index.d.ts +8 -3
- package/lib/node/user/index.d.ts.map +1 -1
- package/lib/node/user/types.d.ts +20 -2
- package/lib/node/user/types.d.ts.map +1 -1
- package/lib/node/userMap/events.d.ts +2 -2
- package/lib/node/userMap/events.d.ts.map +1 -1
- package/lib/node/userMap/types.d.ts +11 -12
- package/lib/node/userMap/types.d.ts.map +1 -1
- package/lib/node/userMap/userMap.d.ts +3 -3
- package/lib/node/userMap/userMap.d.ts.map +1 -1
- package/lib/node/userMap/userMapConfig.d.ts +2 -2
- package/lib/node/userMap/userMapConfig.d.ts.map +1 -1
- package/lib/node/userStats/index.d.ts +6 -1
- package/lib/node/userStats/index.d.ts.map +1 -1
- package/lib/node/userStatsConfig.d.ts +1 -7
- package/lib/node/userStatsConfig.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/dlob/DLOB.ts +2 -2
- package/src/driftClient/index.ts +1 -1
- package/src/driftClient/types.ts +7 -7
- package/src/index.ts +1 -1
- package/src/math/margin.ts +5 -5
- package/src/math/orders.ts +4 -4
- package/src/user/index.ts +9 -3
- package/src/user/types.ts +25 -1
- package/src/userMap/events.ts +2 -2
- package/src/userMap/types.ts +11 -12
- package/src/userMap/userMap.ts +3 -3
- package/src/userMap/userMapConfig.ts +2 -2
- package/src/userStats/index.ts +7 -1
- package/src/userStatsConfig.ts +1 -8
- package/lib/browser/userConfig.d.ts +0 -26
- package/lib/browser/userConfig.js +0 -2
- package/lib/node/userConfig.d.ts +0 -27
- package/lib/node/userConfig.d.ts.map +0 -1
- package/lib/node/userConfig.js +0 -2
- package/src/userConfig.ts +0 -32
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.130.0-beta.
|
|
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 {
|
|
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:
|
|
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 '../
|
|
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 {
|
|
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,
|
|
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):
|
|
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):
|
|
223
|
+
getUser(subAccountId?: number, authority?: PublicKey): IUser;
|
|
224
224
|
hasUser(subAccountId?: number, authority?: PublicKey): boolean;
|
|
225
|
-
getUsers():
|
|
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?:
|
|
892
|
+
getMarketFees(marketType: MarketType, marketIndex?: number, user?: IUser, enteringHighLeverageMode?: boolean): {
|
|
893
893
|
takerFee: number;
|
|
894
894
|
makerFee: number;
|
|
895
895
|
};
|
package/lib/browser/index.d.ts
CHANGED
|
@@ -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 './
|
|
33
|
+
export * from './user/types';
|
|
34
34
|
export * from './userStats';
|
|
35
35
|
export * from './userName';
|
|
36
36
|
export * from './userStatsConfig';
|
package/lib/browser/index.js
CHANGED
|
@@ -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("./
|
|
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:
|
|
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:
|
|
40
|
-
export declare function calculateCollateralValueOfDeposit(driftClient:
|
|
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:
|
|
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
|
-
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function
|
|
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 {
|
|
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:
|
|
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,9 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import {
|
|
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:
|
|
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):
|
|
26
|
-
getWithSlot(key: string): DataAndSlot<
|
|
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<
|
|
33
|
-
mustGetWithSlot(key: string, accountSubscription?: UserSubscriptionConfig): Promise<DataAndSlot<
|
|
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<
|
|
50
|
-
valuesWithSlot(): IterableIterator<DataAndSlot<
|
|
51
|
-
entries(): IterableIterator<[string,
|
|
52
|
-
entriesWithSlot(): IterableIterator<[string, DataAndSlot<
|
|
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 '../
|
|
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:
|
|
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 {
|
|
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:
|
|
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 {
|
|
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 {
|
|
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;
|
package/lib/node/dlob/DLOB.d.ts
CHANGED
|
@@ -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 {
|
|
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:
|
|
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":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AASvC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,
|
|
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 '../
|
|
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 {
|
|
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,
|
|
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):
|
|
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):
|
|
223
|
+
getUser(subAccountId?: number, authority?: PublicKey): IUser;
|
|
224
224
|
hasUser(subAccountId?: number, authority?: PublicKey): boolean;
|
|
225
|
-
getUsers():
|
|
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?:
|
|
892
|
+
getMarketFees(marketType: MarketType, marketIndex?: number, user?: IUser, enteringHighLeverageMode?: boolean): {
|
|
893
893
|
takerFee: number;
|
|
894
894
|
makerFee: number;
|
|
895
895
|
};
|