@drift-labs/sdk 0.2.0-master.24 → 0.2.0-master.26
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/accounts/pollingClearingHouseAccountSubscriber.d.ts +13 -13
- package/lib/accounts/pollingClearingHouseAccountSubscriber.js +27 -27
- package/lib/accounts/types.d.ts +8 -9
- package/lib/accounts/webSocketClearingHouseAccountSubscriber.d.ts +14 -14
- package/lib/accounts/webSocketClearingHouseAccountSubscriber.js +35 -34
- package/lib/addresses/pda.d.ts +8 -6
- package/lib/addresses/pda.js +35 -27
- package/lib/admin.d.ts +9 -6
- package/lib/admin.js +90 -54
- package/lib/clearingHouse.d.ts +71 -42
- package/lib/clearingHouse.js +765 -282
- package/lib/clearingHouseConfig.d.ts +2 -2
- package/lib/clearingHouseUser.d.ts +19 -17
- package/lib/clearingHouseUser.js +145 -123
- package/lib/config.d.ts +7 -7
- package/lib/config.js +21 -21
- package/lib/constants/numericConstants.d.ts +12 -12
- package/lib/constants/numericConstants.js +13 -13
- package/lib/constants/{markets.d.ts → perpMarkets.d.ts} +5 -5
- package/{src/constants/markets.js → lib/constants/perpMarkets.js} +4 -4
- package/lib/constants/{banks.d.ts → spotMarkets.d.ts} +6 -6
- package/lib/constants/{banks.js → spotMarkets.js} +16 -16
- package/lib/events/eventSubscriber.d.ts +4 -2
- package/lib/events/eventSubscriber.js +16 -9
- package/lib/events/fetchLogs.d.ts +10 -1
- package/lib/events/fetchLogs.js +27 -7
- package/lib/events/pollingLogProvider.d.ts +2 -1
- package/lib/events/pollingLogProvider.js +6 -2
- package/lib/events/types.d.ts +4 -2
- package/lib/events/types.js +2 -0
- package/lib/examples/makeTradeExample.js +18 -6
- package/lib/idl/clearing_house.json +1128 -347
- package/lib/index.d.ts +6 -3
- package/lib/index.js +6 -3
- package/lib/math/amm.d.ts +5 -3
- package/lib/math/amm.js +42 -4
- package/lib/math/funding.d.ts +6 -6
- package/lib/math/funding.js +2 -1
- package/lib/math/margin.d.ts +4 -4
- package/lib/math/margin.js +18 -11
- package/lib/math/market.d.ts +10 -9
- package/lib/math/market.js +29 -6
- package/lib/math/oracles.d.ts +2 -1
- package/lib/math/oracles.js +11 -1
- package/lib/math/orders.d.ts +5 -5
- package/lib/math/position.d.ts +13 -13
- package/lib/math/position.js +19 -19
- package/lib/math/spotBalance.d.ts +19 -0
- package/lib/math/spotBalance.js +176 -0
- package/lib/math/spotMarket.d.ts +4 -0
- package/lib/math/spotMarket.js +8 -0
- package/lib/math/spotPosition.d.ts +2 -0
- package/lib/math/spotPosition.js +8 -0
- package/lib/math/state.js +2 -2
- package/lib/math/trade.d.ts +4 -4
- package/lib/orderParams.d.ts +4 -4
- package/lib/orderParams.js +12 -4
- package/lib/serum/serumSubscriber.d.ts +23 -0
- package/lib/serum/serumSubscriber.js +41 -0
- package/lib/serum/types.d.ts +11 -0
- package/lib/serum/types.js +2 -0
- package/lib/tx/retryTxSender.d.ts +1 -1
- package/lib/tx/retryTxSender.js +4 -2
- package/lib/tx/types.d.ts +1 -1
- package/lib/types.d.ts +148 -39
- package/lib/types.js +37 -9
- package/my-script/.env +7 -0
- package/my-script/getUserStats.ts +106 -0
- package/my-script/multiConnections.ts +119 -0
- package/my-script/test-regex.ts +11 -0
- package/my-script/utils.ts +52 -0
- package/package.json +1 -1
- package/src/accounts/bulkAccountLoader.js +249 -0
- package/src/accounts/bulkUserStatsSubscription.js +75 -0
- package/src/accounts/bulkUserSubscription.js +75 -0
- package/src/accounts/fetch.js +92 -0
- package/src/accounts/pollingClearingHouseAccountSubscriber.js +465 -0
- package/src/accounts/pollingClearingHouseAccountSubscriber.ts +38 -38
- package/src/accounts/pollingOracleSubscriber.js +156 -0
- package/src/accounts/pollingTokenAccountSubscriber.js +141 -0
- package/src/accounts/pollingUserAccountSubscriber.js +208 -0
- package/src/accounts/pollingUserStatsAccountSubscriber.js +208 -0
- package/src/accounts/types.js +28 -0
- package/src/accounts/types.ts +11 -9
- package/src/accounts/utils.js +7 -0
- package/src/accounts/webSocketAccountSubscriber.js +138 -0
- package/src/accounts/webSocketClearingHouseAccountSubscriber.js +433 -0
- package/src/accounts/webSocketClearingHouseAccountSubscriber.ts +59 -52
- package/src/accounts/webSocketUserAccountSubscriber.js +113 -0
- package/src/accounts/webSocketUserStatsAccountSubsriber.js +113 -0
- package/src/addresses/pda.js +186 -0
- package/src/addresses/pda.ts +56 -42
- package/src/admin.js +1284 -0
- package/src/admin.ts +149 -75
- package/src/assert/assert.js +1 -1
- package/src/clearingHouse.js +3433 -0
- package/src/clearingHouse.ts +1097 -380
- package/src/clearingHouseConfig.js +2 -0
- package/src/clearingHouseConfig.ts +2 -2
- package/src/clearingHouseUser.js +874 -0
- package/src/clearingHouseUser.ts +237 -172
- package/src/clearingHouseUserConfig.js +2 -0
- package/src/clearingHouseUserStats.js +115 -0
- package/src/clearingHouseUserStatsConfig.js +2 -0
- package/src/config.js +80 -0
- package/src/config.ts +30 -30
- package/src/constants/numericConstants.js +18 -11
- package/src/constants/numericConstants.ts +17 -15
- package/{lib/constants/markets.js → src/constants/perpMarkets.js} +11 -11
- package/src/constants/{markets.ts → perpMarkets.ts} +5 -5
- package/src/constants/spotMarkets.js +51 -0
- package/src/constants/{banks.ts → spotMarkets.ts} +19 -19
- package/src/events/eventList.js +66 -23
- package/src/events/eventSubscriber.js +202 -0
- package/src/events/eventSubscriber.ts +20 -12
- package/src/events/fetchLogs.js +117 -0
- package/src/events/fetchLogs.ts +35 -8
- package/src/events/pollingLogProvider.js +113 -0
- package/src/events/pollingLogProvider.ts +10 -2
- package/src/events/sort.js +41 -0
- package/src/events/txEventCache.js +22 -19
- package/src/events/types.js +25 -0
- package/src/events/types.ts +7 -1
- package/src/events/webSocketLogProvider.js +76 -0
- package/src/examples/makeTradeExample.ts +27 -6
- package/src/factory/bigNum.js +183 -180
- package/src/factory/oracleClient.js +9 -9
- package/src/idl/clearing_house.json +1128 -347
- package/src/index.js +75 -0
- package/src/index.ts +6 -3
- package/src/math/amm.js +422 -0
- package/src/math/amm.ts +73 -5
- package/src/math/auction.js +10 -10
- package/src/math/conversion.js +4 -3
- package/src/math/funding.js +223 -175
- package/src/math/funding.ts +7 -7
- package/src/math/insurance.js +27 -0
- package/src/math/margin.js +77 -0
- package/src/math/margin.ts +34 -23
- package/src/math/market.js +105 -0
- package/src/math/market.ts +71 -19
- package/src/math/oracles.js +40 -10
- package/src/math/oracles.ts +18 -1
- package/src/math/orders.js +153 -0
- package/src/math/orders.ts +5 -5
- package/src/math/position.js +172 -0
- package/src/math/position.ts +31 -31
- package/src/math/repeg.js +40 -40
- package/src/math/spotBalance.js +176 -0
- package/src/math/spotBalance.ts +290 -0
- package/src/math/spotMarket.js +8 -0
- package/src/math/spotMarket.ts +9 -0
- package/src/math/spotPosition.js +8 -0
- package/src/math/spotPosition.ts +6 -0
- package/src/math/state.ts +2 -2
- package/src/math/trade.js +81 -74
- package/src/math/trade.ts +4 -4
- package/src/math/utils.js +8 -7
- package/src/oracles/oracleClientCache.js +10 -9
- package/src/oracles/pythClient.js +52 -17
- package/src/oracles/quoteAssetOracleClient.js +44 -13
- package/src/oracles/switchboardClient.js +69 -37
- package/src/oracles/types.js +1 -1
- package/src/orderParams.js +14 -6
- package/src/orderParams.ts +16 -8
- package/src/serum/serumSubscriber.js +102 -0
- package/src/serum/serumSubscriber.ts +80 -0
- package/src/serum/types.js +2 -0
- package/src/serum/types.ts +13 -0
- package/src/slot/SlotSubscriber.js +67 -20
- package/src/token/index.js +4 -4
- package/src/tokenFaucet.js +288 -154
- package/src/tx/retryTxSender.js +280 -0
- package/src/tx/retryTxSender.ts +5 -2
- package/src/tx/types.js +1 -1
- package/src/tx/types.ts +2 -1
- package/src/tx/utils.js +7 -6
- package/src/types.js +216 -0
- package/src/types.ts +131 -39
- package/src/userName.js +5 -5
- package/src/util/computeUnits.js +46 -11
- package/src/util/promiseTimeout.js +5 -5
- package/src/util/tps.js +46 -12
- package/src/wallet.js +55 -18
- package/lib/math/bankBalance.d.ts +0 -15
- package/lib/math/bankBalance.js +0 -150
- package/src/addresses/marketAddresses.js +0 -26
- package/src/constants/banks.js +0 -42
- package/src/examples/makeTradeExample.js +0 -80
- package/src/math/bankBalance.ts +0 -258
- package/src/math/state.js +0 -15
- package/src/math/utils.js.map +0 -1
- package/src/util/getTokenAddress.js +0 -9
|
@@ -14,8 +14,8 @@ export declare type ClearingHouseConfig = {
|
|
|
14
14
|
txSenderConfig?: TxSenderConfig;
|
|
15
15
|
userIds?: number[];
|
|
16
16
|
activeUserId?: number;
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
perpMarketIndexes?: BN[];
|
|
18
|
+
spotMarketIndexes?: BN[];
|
|
19
19
|
oracleInfos?: OracleInfo[];
|
|
20
20
|
env?: DriftEnv;
|
|
21
21
|
userStats?: boolean;
|
|
@@ -4,7 +4,7 @@ import { PublicKey } from '@solana/web3.js';
|
|
|
4
4
|
import { EventEmitter } from 'events';
|
|
5
5
|
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
6
6
|
import { ClearingHouse } from './clearingHouse';
|
|
7
|
-
import { MarginCategory, Order, UserAccount,
|
|
7
|
+
import { MarginCategory, Order, UserAccount, PerpPosition } from './types';
|
|
8
8
|
import { UserAccountSubscriber, UserAccountEvents, DataAndSlot } from './accounts/types';
|
|
9
9
|
import { PositionDirection, BN } from '.';
|
|
10
10
|
import { OraclePriceData } from './oracles/types';
|
|
@@ -35,9 +35,9 @@ export declare class ClearingHouseUser {
|
|
|
35
35
|
* @param marketIndex
|
|
36
36
|
* @returns userPosition
|
|
37
37
|
*/
|
|
38
|
-
getUserPosition(marketIndex: BN):
|
|
39
|
-
getEmptyPosition(marketIndex: BN):
|
|
40
|
-
getClonedPosition(position:
|
|
38
|
+
getUserPosition(marketIndex: BN): PerpPosition | undefined;
|
|
39
|
+
getEmptyPosition(marketIndex: BN): PerpPosition;
|
|
40
|
+
getClonedPosition(position: PerpPosition): PerpPosition;
|
|
41
41
|
/**
|
|
42
42
|
* @param orderId
|
|
43
43
|
* @returns Order
|
|
@@ -52,9 +52,11 @@ export declare class ClearingHouseUser {
|
|
|
52
52
|
exists(): Promise<boolean>;
|
|
53
53
|
/**
|
|
54
54
|
* calculates the market position if the lp position was settled
|
|
55
|
-
* @returns : userPosition
|
|
55
|
+
* @returns : the settled userPosition
|
|
56
|
+
* @returns : the dust base asset amount (ie, < stepsize)
|
|
57
|
+
* @returns : pnl from settle
|
|
56
58
|
*/
|
|
57
|
-
getSettledLPPosition(marketIndex: BN): [
|
|
59
|
+
getSettledLPPosition(marketIndex: BN): [PerpPosition, BN, BN];
|
|
58
60
|
/**
|
|
59
61
|
* calculates Buying Power = FC * MAX_LEVERAGE
|
|
60
62
|
* @returns : Precision QUOTE_PRECISION
|
|
@@ -68,7 +70,7 @@ export declare class ClearingHouseUser {
|
|
|
68
70
|
/**
|
|
69
71
|
* @returns The margin requirement of a certain type (Initial or Maintenance) in USDC. : QUOTE_PRECISION
|
|
70
72
|
*/
|
|
71
|
-
getMarginRequirement(type: MarginCategory): BN;
|
|
73
|
+
getMarginRequirement(type: MarginCategory, liquidationBuffer?: BN): BN;
|
|
72
74
|
/**
|
|
73
75
|
* @returns The initial margin requirement in USDC. : QUOTE_PRECISION
|
|
74
76
|
*/
|
|
@@ -76,7 +78,7 @@ export declare class ClearingHouseUser {
|
|
|
76
78
|
/**
|
|
77
79
|
* @returns The maintenance margin requirement in USDC. : QUOTE_PRECISION
|
|
78
80
|
*/
|
|
79
|
-
getMaintenanceMarginRequirement(): BN;
|
|
81
|
+
getMaintenanceMarginRequirement(liquidationBuffer?: BN): BN;
|
|
80
82
|
/**
|
|
81
83
|
* calculates unrealized position price pnl
|
|
82
84
|
* @returns : Precision QUOTE_PRECISION
|
|
@@ -87,9 +89,9 @@ export declare class ClearingHouseUser {
|
|
|
87
89
|
* @returns : Precision QUOTE_PRECISION
|
|
88
90
|
*/
|
|
89
91
|
getUnrealizedFundingPNL(marketIndex?: BN): BN;
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
92
|
+
getSpotMarketLiabilityValue(marketIndex?: BN, withWeightMarginCategory?: MarginCategory, liquidationBuffer?: BN): BN;
|
|
93
|
+
getSpotMarketAssetValue(marketIndex?: BN, withWeightMarginCategory?: MarginCategory): BN;
|
|
94
|
+
getNetSpotMarketValue(withWeightMarginCategory?: MarginCategory): BN;
|
|
93
95
|
/**
|
|
94
96
|
* calculates TotalCollateral: collateral + unrealized pnl
|
|
95
97
|
* @returns : Precision QUOTE_PRECISION
|
|
@@ -105,12 +107,12 @@ export declare class ClearingHouseUser {
|
|
|
105
107
|
* @returns : Precision QUOTE_PRECISION
|
|
106
108
|
*/
|
|
107
109
|
getPositionValue(marketIndex: BN, oraclePriceData: OraclePriceData): BN;
|
|
108
|
-
getPositionSide(currentPosition: Pick<
|
|
110
|
+
getPositionSide(currentPosition: Pick<PerpPosition, 'baseAssetAmount'>): PositionDirection | undefined;
|
|
109
111
|
/**
|
|
110
112
|
* calculates average exit price (optionally for closing up to 100% of position)
|
|
111
113
|
* @returns : Precision MARK_PRICE_PRECISION
|
|
112
114
|
*/
|
|
113
|
-
getPositionEstimatedExitPriceAndPnl(position:
|
|
115
|
+
getPositionEstimatedExitPriceAndPnl(position: PerpPosition, amountToClose?: BN, useAMMClose?: boolean): [BN, BN];
|
|
114
116
|
/**
|
|
115
117
|
* calculates current user leverage across all positions
|
|
116
118
|
* @returns : Precision TEN_THOUSAND
|
|
@@ -127,7 +129,7 @@ export declare class ClearingHouseUser {
|
|
|
127
129
|
* @returns : Precision TEN_THOUSAND
|
|
128
130
|
*/
|
|
129
131
|
getMarginRatio(): BN;
|
|
130
|
-
canBeLiquidated():
|
|
132
|
+
canBeLiquidated(): boolean;
|
|
131
133
|
/**
|
|
132
134
|
* Checks if any user position cumulative funding differs from respective market cumulative funding
|
|
133
135
|
* @returns
|
|
@@ -135,12 +137,12 @@ export declare class ClearingHouseUser {
|
|
|
135
137
|
needsToSettleFundingPayment(): boolean;
|
|
136
138
|
/**
|
|
137
139
|
* Calculate the liquidation price of a position, with optional parameter to calculate the liquidation price after a trade
|
|
138
|
-
* @param
|
|
140
|
+
* @param PerpPosition
|
|
139
141
|
* @param positionBaseSizeChange // change in position size to calculate liquidation price for : Precision 10^13
|
|
140
142
|
* @param partial
|
|
141
143
|
* @returns Precision : MARK_PRICE_PRECISION
|
|
142
144
|
*/
|
|
143
|
-
liquidationPrice(
|
|
145
|
+
liquidationPrice(perpPosition: Pick<PerpPosition, 'marketIndex'>, positionBaseSizeChange?: BN): BN;
|
|
144
146
|
/**
|
|
145
147
|
* Calculates the estimated liquidation price for a position after closing a quote amount of the position.
|
|
146
148
|
* @param positionMarketIndex
|
|
@@ -191,5 +193,5 @@ export declare class ClearingHouseUser {
|
|
|
191
193
|
*/
|
|
192
194
|
private getTotalPositionValueExcludingMarket;
|
|
193
195
|
private getOracleDataForMarket;
|
|
194
|
-
private
|
|
196
|
+
private getOracleDataForSpotMarket;
|
|
195
197
|
}
|