@drift-labs/sdk 0.2.0-master.37 → 0.2.0-master.39
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/README.md +14 -14
- package/lib/accounts/bulkUserStatsSubscription.d.ts +2 -2
- package/lib/accounts/bulkUserSubscription.d.ts +2 -2
- package/lib/accounts/{pollingClearingHouseAccountSubscriber.d.ts → pollingDriftClientAccountSubscriber.d.ts} +3 -8
- package/lib/accounts/{pollingClearingHouseAccountSubscriber.js → pollingDriftClientAccountSubscriber.js} +6 -13
- package/lib/accounts/{pollingOracleSubscriber.d.ts → pollingOracleAccountSubscriber.d.ts} +2 -2
- package/lib/accounts/{pollingOracleSubscriber.js → pollingOracleAccountSubscriber.js} +3 -3
- package/lib/accounts/types.d.ts +4 -4
- package/lib/accounts/{webSocketClearingHouseAccountSubscriber.d.ts → webSocketDriftClientAccountSubscriber.d.ts} +3 -3
- package/lib/accounts/{webSocketClearingHouseAccountSubscriber.js → webSocketDriftClientAccountSubscriber.js} +4 -4
- package/lib/addresses/pda.d.ts +3 -3
- package/lib/addresses/pda.js +10 -10
- package/lib/{admin.d.ts → adminClient.d.ts} +12 -4
- package/lib/{admin.js → adminClient.js} +89 -15
- package/lib/config.js +1 -1
- package/lib/constants/numericConstants.d.ts +3 -0
- package/lib/constants/numericConstants.js +5 -2
- package/lib/dlob/DLOB.d.ts +2 -2
- package/lib/dlob/DLOB.js +4 -4
- package/lib/{clearingHouse.d.ts → driftClient.d.ts} +21 -20
- package/lib/{clearingHouse.js → driftClient.js} +48 -37
- package/lib/{clearingHouseConfig.d.ts → driftClientConfig.d.ts} +3 -3
- package/lib/{clearingHouseConfig.js → driftClientConfig.js} +0 -0
- package/lib/examples/makeTradeExample.js +13 -13
- package/lib/idl/{clearing_house.json → drift.json} +717 -143
- package/lib/index.d.ts +10 -10
- package/lib/index.js +10 -10
- package/lib/math/orders.d.ts +4 -4
- package/lib/math/orders.js +3 -3
- package/lib/serum/serumFulfillmentConfigMap.d.ts +3 -3
- package/lib/serum/serumFulfillmentConfigMap.js +3 -3
- package/lib/types.d.ts +38 -2
- package/lib/types.js +2 -1
- package/lib/{clearingHouseUser.d.ts → user.d.ts} +16 -10
- package/lib/{clearingHouseUser.js → user.js} +54 -46
- package/lib/userConfig.d.ts +14 -0
- package/lib/{clearingHouseUserConfig.js → userConfig.js} +0 -0
- package/lib/userMap/userMap.d.ts +17 -17
- package/lib/userMap/userMap.js +15 -15
- package/lib/userMap/userStatsMap.d.ts +7 -7
- package/lib/userMap/userStatsMap.js +10 -10
- package/lib/{clearingHouseUserStats.d.ts → userStats.d.ts} +5 -5
- package/lib/{clearingHouseUserStats.js → userStats.js} +8 -8
- package/lib/userStatsConfig.d.ts +14 -0
- package/lib/{clearingHouseUserStatsConfig.js → userStatsConfig.js} +0 -0
- package/package.json +1 -1
- package/src/accounts/bulkUserStatsSubscription.ts +2 -2
- package/src/accounts/bulkUserSubscription.ts +2 -2
- package/src/accounts/{pollingClearingHouseAccountSubscriber.ts → pollingDriftClientAccountSubscriber.ts} +11 -25
- package/src/accounts/{pollingOracleSubscriber.ts → pollingOracleAccountSubscriber.ts} +2 -2
- package/src/accounts/types.ts +4 -4
- package/src/accounts/{webSocketClearingHouseAccountSubscriber.ts → webSocketDriftClientAccountSubscriber.ts} +7 -7
- package/src/addresses/pda.ts +6 -8
- package/src/{admin.ts → adminClient.ts} +185 -18
- package/src/config.ts +1 -1
- package/src/constants/numericConstants.ts +4 -0
- package/src/dlob/DLOB.ts +5 -5
- package/src/{clearingHouse.ts → driftClient.ts} +85 -68
- package/src/{clearingHouseConfig.ts → driftClientConfig.ts} +3 -3
- package/src/examples/makeTradeExample.ts +15 -17
- package/src/idl/{clearing_house.json → drift.json} +717 -143
- package/src/index.ts +10 -10
- package/src/math/orders.ts +7 -13
- package/src/serum/serumFulfillmentConfigMap.ts +5 -5
- package/src/types.ts +41 -2
- package/src/{clearingHouseUser.ts → user.ts} +60 -54
- package/src/{clearingHouseUserConfig.ts → userConfig.ts} +5 -5
- package/src/userMap/userMap.ts +29 -29
- package/src/userMap/userStatsMap.ts +21 -23
- package/src/{clearingHouseUserStats.ts → userStats.ts} +10 -10
- package/src/userStatsConfig.ts +18 -0
- package/tests/dlob/helpers.ts +55 -13
- package/lib/clearingHouseUserConfig.d.ts +0 -14
- package/lib/clearingHouseUserStatsConfig.d.ts +0 -14
- package/src/clearingHouseUserStatsConfig.ts +0 -18
package/lib/index.d.ts
CHANGED
|
@@ -8,23 +8,23 @@ export * from './oracles/switchboardClient';
|
|
|
8
8
|
export * from './types';
|
|
9
9
|
export * from './constants/perpMarkets';
|
|
10
10
|
export * from './accounts/fetch';
|
|
11
|
-
export * from './accounts/
|
|
11
|
+
export * from './accounts/webSocketDriftClientAccountSubscriber';
|
|
12
12
|
export * from './accounts/bulkAccountLoader';
|
|
13
13
|
export * from './accounts/bulkUserSubscription';
|
|
14
14
|
export * from './accounts/bulkUserStatsSubscription';
|
|
15
|
-
export * from './accounts/
|
|
16
|
-
export * from './accounts/
|
|
15
|
+
export * from './accounts/pollingDriftClientAccountSubscriber';
|
|
16
|
+
export * from './accounts/pollingOracleAccountSubscriber';
|
|
17
17
|
export * from './accounts/pollingTokenAccountSubscriber';
|
|
18
18
|
export * from './accounts/pollingUserAccountSubscriber';
|
|
19
19
|
export * from './accounts/pollingUserStatsAccountSubscriber';
|
|
20
20
|
export * from './accounts/types';
|
|
21
21
|
export * from './addresses/pda';
|
|
22
|
-
export * from './
|
|
23
|
-
export * from './
|
|
24
|
-
export * from './
|
|
25
|
-
export * from './
|
|
26
|
-
export * from './
|
|
27
|
-
export * from './
|
|
22
|
+
export * from './adminClient';
|
|
23
|
+
export * from './user';
|
|
24
|
+
export * from './userConfig';
|
|
25
|
+
export * from './userStats';
|
|
26
|
+
export * from './userStatsConfig';
|
|
27
|
+
export * from './driftClient';
|
|
28
28
|
export * from './factory/oracleClient';
|
|
29
29
|
export * from './factory/bigNum';
|
|
30
30
|
export * from './events/types';
|
|
@@ -59,7 +59,7 @@ export * from './util/tps';
|
|
|
59
59
|
export * from './util/promiseTimeout';
|
|
60
60
|
export * from './math/spotBalance';
|
|
61
61
|
export * from './constants/spotMarkets';
|
|
62
|
-
export * from './
|
|
62
|
+
export * from './driftClientConfig';
|
|
63
63
|
export * from './dlob/DLOB';
|
|
64
64
|
export * from './dlob/DLOBNode';
|
|
65
65
|
export * from './dlob/NodeList';
|
package/lib/index.js
CHANGED
|
@@ -31,23 +31,23 @@ __exportStar(require("./oracles/switchboardClient"), exports);
|
|
|
31
31
|
__exportStar(require("./types"), exports);
|
|
32
32
|
__exportStar(require("./constants/perpMarkets"), exports);
|
|
33
33
|
__exportStar(require("./accounts/fetch"), exports);
|
|
34
|
-
__exportStar(require("./accounts/
|
|
34
|
+
__exportStar(require("./accounts/webSocketDriftClientAccountSubscriber"), exports);
|
|
35
35
|
__exportStar(require("./accounts/bulkAccountLoader"), exports);
|
|
36
36
|
__exportStar(require("./accounts/bulkUserSubscription"), exports);
|
|
37
37
|
__exportStar(require("./accounts/bulkUserStatsSubscription"), exports);
|
|
38
|
-
__exportStar(require("./accounts/
|
|
39
|
-
__exportStar(require("./accounts/
|
|
38
|
+
__exportStar(require("./accounts/pollingDriftClientAccountSubscriber"), exports);
|
|
39
|
+
__exportStar(require("./accounts/pollingOracleAccountSubscriber"), exports);
|
|
40
40
|
__exportStar(require("./accounts/pollingTokenAccountSubscriber"), exports);
|
|
41
41
|
__exportStar(require("./accounts/pollingUserAccountSubscriber"), exports);
|
|
42
42
|
__exportStar(require("./accounts/pollingUserStatsAccountSubscriber"), exports);
|
|
43
43
|
__exportStar(require("./accounts/types"), exports);
|
|
44
44
|
__exportStar(require("./addresses/pda"), exports);
|
|
45
|
-
__exportStar(require("./
|
|
46
|
-
__exportStar(require("./
|
|
47
|
-
__exportStar(require("./
|
|
48
|
-
__exportStar(require("./
|
|
49
|
-
__exportStar(require("./
|
|
50
|
-
__exportStar(require("./
|
|
45
|
+
__exportStar(require("./adminClient"), exports);
|
|
46
|
+
__exportStar(require("./user"), exports);
|
|
47
|
+
__exportStar(require("./userConfig"), exports);
|
|
48
|
+
__exportStar(require("./userStats"), exports);
|
|
49
|
+
__exportStar(require("./userStatsConfig"), exports);
|
|
50
|
+
__exportStar(require("./driftClient"), exports);
|
|
51
51
|
__exportStar(require("./factory/oracleClient"), exports);
|
|
52
52
|
__exportStar(require("./factory/bigNum"), exports);
|
|
53
53
|
__exportStar(require("./events/types"), exports);
|
|
@@ -82,7 +82,7 @@ __exportStar(require("./util/tps"), exports);
|
|
|
82
82
|
__exportStar(require("./util/promiseTimeout"), exports);
|
|
83
83
|
__exportStar(require("./math/spotBalance"), exports);
|
|
84
84
|
__exportStar(require("./constants/spotMarkets"), exports);
|
|
85
|
-
__exportStar(require("./
|
|
85
|
+
__exportStar(require("./driftClientConfig"), exports);
|
|
86
86
|
__exportStar(require("./dlob/DLOB"), exports);
|
|
87
87
|
__exportStar(require("./dlob/DLOBNode"), exports);
|
|
88
88
|
__exportStar(require("./dlob/NodeList"), exports);
|
package/lib/math/orders.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/// <reference types="bn.js" />
|
|
2
|
-
import {
|
|
2
|
+
import { User } from '../user';
|
|
3
3
|
import { PerpMarketAccount, Order } from '../types';
|
|
4
4
|
import { BN } from '@project-serum/anchor';
|
|
5
5
|
import { OraclePriceData } from '../oracles/types';
|
|
6
|
-
export declare function isOrderRiskIncreasing(user:
|
|
7
|
-
export declare function isOrderRiskIncreasingInSameDirection(user:
|
|
8
|
-
export declare function isOrderReduceOnly(user:
|
|
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;
|
|
9
9
|
export declare function standardizeBaseAssetAmount(baseAssetAmount: BN, stepSize: BN): BN;
|
|
10
10
|
export declare function getLimitPrice(order: Order, oraclePriceData: OraclePriceData, slot: number): BN;
|
|
11
11
|
export declare function getOptionalLimitPrice(order: Order, oraclePriceData: OraclePriceData, slot: number): BN | undefined;
|
package/lib/math/orders.js
CHANGED
|
@@ -10,7 +10,7 @@ function isOrderRiskIncreasing(user, order) {
|
|
|
10
10
|
if ((0, types_1.isVariant)(order.status, 'init')) {
|
|
11
11
|
return false;
|
|
12
12
|
}
|
|
13
|
-
const position = user.
|
|
13
|
+
const position = user.getPerpPosition(order.marketIndex) ||
|
|
14
14
|
user.getEmptyPosition(order.marketIndex);
|
|
15
15
|
// if no position exists, it's risk increasing
|
|
16
16
|
if (position.baseAssetAmount.eq(numericConstants_1.ZERO)) {
|
|
@@ -37,7 +37,7 @@ function isOrderRiskIncreasingInSameDirection(user, order) {
|
|
|
37
37
|
if ((0, types_1.isVariant)(order.status, 'init')) {
|
|
38
38
|
return false;
|
|
39
39
|
}
|
|
40
|
-
const position = user.
|
|
40
|
+
const position = user.getPerpPosition(order.marketIndex) ||
|
|
41
41
|
user.getEmptyPosition(order.marketIndex);
|
|
42
42
|
// if no position exists, it's risk increasing
|
|
43
43
|
if (position.baseAssetAmount.eq(numericConstants_1.ZERO)) {
|
|
@@ -59,7 +59,7 @@ function isOrderReduceOnly(user, order) {
|
|
|
59
59
|
if ((0, types_1.isVariant)(order.status, 'init')) {
|
|
60
60
|
return false;
|
|
61
61
|
}
|
|
62
|
-
const position = user.
|
|
62
|
+
const position = user.getPerpPosition(order.marketIndex) ||
|
|
63
63
|
user.getEmptyPosition(order.marketIndex);
|
|
64
64
|
// if position is long and order is long
|
|
65
65
|
if (position.baseAssetAmount.gte(numericConstants_1.ZERO) &&
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { PublicKey } from '@solana/web3.js';
|
|
2
2
|
import { SerumV3FulfillmentConfigAccount } from '../types';
|
|
3
|
-
import {
|
|
3
|
+
import { DriftClient } from '../driftClient';
|
|
4
4
|
export declare class SerumFulfillmentConfigMap {
|
|
5
|
-
|
|
5
|
+
driftClient: DriftClient;
|
|
6
6
|
map: Map<number, SerumV3FulfillmentConfigAccount>;
|
|
7
|
-
constructor(
|
|
7
|
+
constructor(driftClient: DriftClient);
|
|
8
8
|
add(marketIndex: number, serumMarketAddress: PublicKey): Promise<void>;
|
|
9
9
|
get(marketIndex: number): SerumV3FulfillmentConfigAccount;
|
|
10
10
|
}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SerumFulfillmentConfigMap = void 0;
|
|
4
4
|
class SerumFulfillmentConfigMap {
|
|
5
|
-
constructor(
|
|
5
|
+
constructor(driftClient) {
|
|
6
6
|
this.map = new Map();
|
|
7
|
-
this.
|
|
7
|
+
this.driftClient = driftClient;
|
|
8
8
|
}
|
|
9
9
|
async add(marketIndex, serumMarketAddress) {
|
|
10
|
-
const account = await this.
|
|
10
|
+
const account = await this.driftClient.getSerumV3FulfillmentConfig(serumMarketAddress);
|
|
11
11
|
this.map.set(marketIndex, account);
|
|
12
12
|
}
|
|
13
13
|
get(marketIndex) {
|
package/lib/types.d.ts
CHANGED
|
@@ -71,9 +71,12 @@ export declare class ContractTier {
|
|
|
71
71
|
static readonly C: {
|
|
72
72
|
c: {};
|
|
73
73
|
};
|
|
74
|
-
static readonly
|
|
74
|
+
static readonly SPECULATIVE: {
|
|
75
75
|
speculative: {};
|
|
76
76
|
};
|
|
77
|
+
static readonly ISOLATED: {
|
|
78
|
+
isolated: {};
|
|
79
|
+
};
|
|
77
80
|
}
|
|
78
81
|
export declare class AssetTier {
|
|
79
82
|
static readonly COLLATERAL: {
|
|
@@ -270,6 +273,7 @@ export declare type DepositRecord = {
|
|
|
270
273
|
marketWithdrawBalance: BN;
|
|
271
274
|
marketCumulativeDepositInterest: BN;
|
|
272
275
|
marketCumulativeBorrowInterest: BN;
|
|
276
|
+
depositRecordId: BN;
|
|
273
277
|
transferUser?: PublicKey;
|
|
274
278
|
};
|
|
275
279
|
export declare type SpotInterestRecord = {
|
|
@@ -436,6 +440,9 @@ export declare type LiquidatePerpPnlForDepositRecord = {
|
|
|
436
440
|
export declare type PerpBankruptcyRecord = {
|
|
437
441
|
marketIndex: number;
|
|
438
442
|
pnl: BN;
|
|
443
|
+
ifPayment: BN;
|
|
444
|
+
clawbackUser: PublicKey | null;
|
|
445
|
+
clawbackUserPayment: BN | null;
|
|
439
446
|
cumulativeFundingRateDelta: BN;
|
|
440
447
|
};
|
|
441
448
|
export declare type SpotBankruptcyRecord = {
|
|
@@ -511,6 +518,7 @@ export declare type StateAccount = {
|
|
|
511
518
|
export declare type PerpMarketAccount = {
|
|
512
519
|
status: MarketStatus;
|
|
513
520
|
contractType: ContractType;
|
|
521
|
+
contractTier: ContractTier;
|
|
514
522
|
expiryTs: BN;
|
|
515
523
|
expiryPrice: BN;
|
|
516
524
|
marketIndex: number;
|
|
@@ -522,6 +530,8 @@ export declare type PerpMarketAccount = {
|
|
|
522
530
|
marginRatioInitial: number;
|
|
523
531
|
marginRatioMaintenance: number;
|
|
524
532
|
nextFillRecordId: BN;
|
|
533
|
+
nextFundingRateRecordId: BN;
|
|
534
|
+
nextCurveRecordId: BN;
|
|
525
535
|
pnlPool: PoolBalance;
|
|
526
536
|
liquidatorFee: number;
|
|
527
537
|
ifLiquidationFee: number;
|
|
@@ -598,11 +608,13 @@ export declare type SpotMarketAccount = {
|
|
|
598
608
|
depositTokenTwap: BN;
|
|
599
609
|
borrowTokenTwap: BN;
|
|
600
610
|
utilizationTwap: BN;
|
|
611
|
+
nextDepositRecordId: BN;
|
|
601
612
|
orderStepSize: BN;
|
|
602
613
|
orderTickSize: BN;
|
|
603
614
|
nextFillRecordId: BN;
|
|
604
615
|
spotFeePool: PoolBalance;
|
|
605
616
|
totalSpotFee: BN;
|
|
617
|
+
ordersEnabled: boolean;
|
|
606
618
|
};
|
|
607
619
|
export declare type PoolBalance = {
|
|
608
620
|
scaledBalance: BN;
|
|
@@ -617,6 +629,7 @@ export declare type AMM = {
|
|
|
617
629
|
lastMarkPriceTwap: BN;
|
|
618
630
|
lastMarkPriceTwap5min: BN;
|
|
619
631
|
lastMarkPriceTwapTs: BN;
|
|
632
|
+
lastTradeTs: BN;
|
|
620
633
|
oracle: PublicKey;
|
|
621
634
|
oracleSource: OracleSource;
|
|
622
635
|
historicalOracleData: HistoricalOracleData;
|
|
@@ -627,7 +640,10 @@ export declare type AMM = {
|
|
|
627
640
|
pegMultiplier: BN;
|
|
628
641
|
cumulativeFundingRateLong: BN;
|
|
629
642
|
cumulativeFundingRateShort: BN;
|
|
630
|
-
|
|
643
|
+
last24hAvgFundingRate: BN;
|
|
644
|
+
lastFundingRateShort: BN;
|
|
645
|
+
lastFundingRateLong: BN;
|
|
646
|
+
totalLiquidationFee: BN;
|
|
631
647
|
totalFeeMinusDistributions: BN;
|
|
632
648
|
totalFeeWithdrawn: BN;
|
|
633
649
|
totalFee: BN;
|
|
@@ -644,11 +660,13 @@ export declare type AMM = {
|
|
|
644
660
|
baseAssetAmountShort: BN;
|
|
645
661
|
quoteAssetAmount: BN;
|
|
646
662
|
terminalQuoteAssetReserve: BN;
|
|
663
|
+
concentrationCoef: BN;
|
|
647
664
|
feePool: PoolBalance;
|
|
648
665
|
totalExchangeFee: BN;
|
|
649
666
|
totalMmFee: BN;
|
|
650
667
|
netRevenueSinceLastFunding: BN;
|
|
651
668
|
lastUpdateSlot: BN;
|
|
669
|
+
lastOracleNormalisedPrice: BN;
|
|
652
670
|
lastOracleValid: boolean;
|
|
653
671
|
lastBidPriceTwap: BN;
|
|
654
672
|
lastAskPriceTwap: BN;
|
|
@@ -658,9 +676,26 @@ export declare type AMM = {
|
|
|
658
676
|
baseAssetAmountPerLp: BN;
|
|
659
677
|
quoteAssetAmountPerLp: BN;
|
|
660
678
|
ammJitIntensity: number;
|
|
679
|
+
maxOpenInterest: BN;
|
|
661
680
|
maxBaseAssetReserve: BN;
|
|
662
681
|
minBaseAssetReserve: BN;
|
|
663
682
|
cumulativeSocialLoss: BN;
|
|
683
|
+
quoteBreakEvenAmountLong: BN;
|
|
684
|
+
quoteBreakEvenAmountShort: BN;
|
|
685
|
+
quoteEntryAmountLong: BN;
|
|
686
|
+
quoteEntryAmountShort: BN;
|
|
687
|
+
markStd: BN;
|
|
688
|
+
longIntensityCount: number;
|
|
689
|
+
longIntensityVolume: BN;
|
|
690
|
+
shortIntensityCount: number;
|
|
691
|
+
shortIntensityVolume: BN;
|
|
692
|
+
volume24h: BN;
|
|
693
|
+
minOrderSize: BN;
|
|
694
|
+
maxPositionSize: BN;
|
|
695
|
+
bidBaseAssetReserve: BN;
|
|
696
|
+
bidQuoteAssetReserve: BN;
|
|
697
|
+
askBaseAssetReserve: BN;
|
|
698
|
+
askQuoteAssetReserve: BN;
|
|
664
699
|
};
|
|
665
700
|
export declare type PerpPosition = {
|
|
666
701
|
baseAssetAmount: BN;
|
|
@@ -717,6 +752,7 @@ export declare type UserAccount = {
|
|
|
717
752
|
settledPerpPnl: BN;
|
|
718
753
|
totalDeposits: BN;
|
|
719
754
|
totalWithdraws: BN;
|
|
755
|
+
cumulativePerpFunding: BN;
|
|
720
756
|
};
|
|
721
757
|
export declare type SpotPosition = {
|
|
722
758
|
marketIndex: number;
|
package/lib/types.js
CHANGED
|
@@ -36,7 +36,8 @@ exports.ContractTier = ContractTier;
|
|
|
36
36
|
ContractTier.A = { a: {} };
|
|
37
37
|
ContractTier.B = { b: {} };
|
|
38
38
|
ContractTier.C = { c: {} };
|
|
39
|
-
ContractTier.
|
|
39
|
+
ContractTier.SPECULATIVE = { speculative: {} };
|
|
40
|
+
ContractTier.ISOLATED = { isolated: {} };
|
|
40
41
|
class AssetTier {
|
|
41
42
|
}
|
|
42
43
|
exports.AssetTier = AssetTier;
|
|
@@ -3,23 +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 {
|
|
7
|
-
import { MarginCategory, Order, UserAccount, PerpPosition } from './types';
|
|
6
|
+
import { DriftClient } from './driftClient';
|
|
7
|
+
import { MarginCategory, Order, UserAccount, PerpPosition, SpotPosition } from './types';
|
|
8
8
|
import { UserAccountSubscriber, UserAccountEvents, DataAndSlot } from './accounts/types';
|
|
9
9
|
import { PositionDirection, BN, SpotMarketAccount } from '.';
|
|
10
10
|
import { OraclePriceData } from './oracles/types';
|
|
11
|
-
import {
|
|
12
|
-
export declare class
|
|
13
|
-
|
|
11
|
+
import { UserConfig } from './userConfig';
|
|
12
|
+
export declare class User {
|
|
13
|
+
driftClient: DriftClient;
|
|
14
14
|
userAccountPublicKey: PublicKey;
|
|
15
15
|
accountSubscriber: UserAccountSubscriber;
|
|
16
16
|
_isSubscribed: boolean;
|
|
17
17
|
eventEmitter: StrictEventEmitter<EventEmitter, UserAccountEvents>;
|
|
18
18
|
get isSubscribed(): boolean;
|
|
19
19
|
set isSubscribed(val: boolean);
|
|
20
|
-
constructor(config:
|
|
20
|
+
constructor(config: UserConfig);
|
|
21
21
|
/**
|
|
22
|
-
* Subscribe to
|
|
22
|
+
* Subscribe to User state accounts
|
|
23
23
|
* @returns SusbcriptionSuccess result
|
|
24
24
|
*/
|
|
25
25
|
subscribe(): Promise<boolean>;
|
|
@@ -31,11 +31,17 @@ export declare class ClearingHouseUser {
|
|
|
31
31
|
getUserAccount(): UserAccount;
|
|
32
32
|
getUserAccountAndSlot(): DataAndSlot<UserAccount> | undefined;
|
|
33
33
|
/**
|
|
34
|
-
* Gets the user's current position for a given market. If the user has no position returns undefined
|
|
34
|
+
* Gets the user's current position for a given perp market. If the user has no position returns undefined
|
|
35
35
|
* @param marketIndex
|
|
36
|
-
* @returns
|
|
36
|
+
* @returns userPerpPosition
|
|
37
37
|
*/
|
|
38
|
-
|
|
38
|
+
getPerpPosition(marketIndex: number): PerpPosition | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Gets the user's current position for a given spot market. If the user has no position returns undefined
|
|
41
|
+
* @param marketIndex
|
|
42
|
+
* @returns userSpotPosition
|
|
43
|
+
*/
|
|
44
|
+
getSpotPosition(marketIndex: number): SpotPosition | undefined;
|
|
39
45
|
getEmptyPosition(marketIndex: number): PerpPosition;
|
|
40
46
|
getClonedPosition(position: PerpPosition): PerpPosition;
|
|
41
47
|
/**
|