@drift-labs/sdk 0.2.0-master.25 → 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 +7 -6
- package/lib/addresses/pda.js +31 -27
- package/lib/admin.d.ts +9 -6
- package/lib/admin.js +83 -42
- package/lib/clearingHouse.d.ts +69 -42
- package/lib/clearingHouse.js +753 -277
- package/lib/clearingHouseConfig.d.ts +2 -2
- package/lib/clearingHouseUser.d.ts +16 -16
- package/lib/clearingHouseUser.js +139 -119
- package/lib/config.d.ts +7 -7
- package/lib/config.js +20 -20
- 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/types.d.ts +2 -1
- package/lib/events/types.js +1 -0
- package/lib/examples/makeTradeExample.js +7 -7
- package/lib/idl/clearing_house.json +1008 -279
- package/lib/index.d.ts +5 -3
- package/lib/index.js +5 -3
- package/lib/math/amm.d.ts +2 -2
- package/lib/math/amm.js +1 -1
- 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 +123 -33
- package/lib/types.js +31 -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 +49 -44
- package/src/admin.js +1284 -0
- package/src/admin.ts +140 -47
- package/src/assert/assert.js +1 -1
- package/src/clearingHouse.js +3433 -0
- package/src/clearingHouse.ts +1083 -378
- package/src/clearingHouseConfig.js +2 -0
- package/src/clearingHouseConfig.ts +2 -2
- package/src/clearingHouseUser.js +874 -0
- package/src/clearingHouseUser.ts +232 -168
- 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 +29 -29
- 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/fetchLogs.js +117 -0
- package/src/events/pollingLogProvider.js +113 -0
- 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 +3 -0
- package/src/events/webSocketLogProvider.js +76 -0
- package/src/examples/makeTradeExample.ts +10 -8
- package/src/factory/bigNum.js +183 -180
- package/src/factory/oracleClient.js +9 -9
- package/src/idl/clearing_house.json +1008 -279
- package/src/index.js +75 -0
- package/src/index.ts +5 -3
- package/src/math/amm.js +422 -0
- package/src/math/amm.ts +6 -3
- 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 +110 -33
- 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
|
|
@@ -56,7 +56,7 @@ export declare class ClearingHouseUser {
|
|
|
56
56
|
* @returns : the dust base asset amount (ie, < stepsize)
|
|
57
57
|
* @returns : pnl from settle
|
|
58
58
|
*/
|
|
59
|
-
getSettledLPPosition(marketIndex: BN): [
|
|
59
|
+
getSettledLPPosition(marketIndex: BN): [PerpPosition, BN, BN];
|
|
60
60
|
/**
|
|
61
61
|
* calculates Buying Power = FC * MAX_LEVERAGE
|
|
62
62
|
* @returns : Precision QUOTE_PRECISION
|
|
@@ -70,7 +70,7 @@ export declare class ClearingHouseUser {
|
|
|
70
70
|
/**
|
|
71
71
|
* @returns The margin requirement of a certain type (Initial or Maintenance) in USDC. : QUOTE_PRECISION
|
|
72
72
|
*/
|
|
73
|
-
getMarginRequirement(type: MarginCategory): BN;
|
|
73
|
+
getMarginRequirement(type: MarginCategory, liquidationBuffer?: BN): BN;
|
|
74
74
|
/**
|
|
75
75
|
* @returns The initial margin requirement in USDC. : QUOTE_PRECISION
|
|
76
76
|
*/
|
|
@@ -78,7 +78,7 @@ export declare class ClearingHouseUser {
|
|
|
78
78
|
/**
|
|
79
79
|
* @returns The maintenance margin requirement in USDC. : QUOTE_PRECISION
|
|
80
80
|
*/
|
|
81
|
-
getMaintenanceMarginRequirement(): BN;
|
|
81
|
+
getMaintenanceMarginRequirement(liquidationBuffer?: BN): BN;
|
|
82
82
|
/**
|
|
83
83
|
* calculates unrealized position price pnl
|
|
84
84
|
* @returns : Precision QUOTE_PRECISION
|
|
@@ -89,9 +89,9 @@ export declare class ClearingHouseUser {
|
|
|
89
89
|
* @returns : Precision QUOTE_PRECISION
|
|
90
90
|
*/
|
|
91
91
|
getUnrealizedFundingPNL(marketIndex?: BN): BN;
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
getSpotMarketLiabilityValue(marketIndex?: BN, withWeightMarginCategory?: MarginCategory, liquidationBuffer?: BN): BN;
|
|
93
|
+
getSpotMarketAssetValue(marketIndex?: BN, withWeightMarginCategory?: MarginCategory): BN;
|
|
94
|
+
getNetSpotMarketValue(withWeightMarginCategory?: MarginCategory): BN;
|
|
95
95
|
/**
|
|
96
96
|
* calculates TotalCollateral: collateral + unrealized pnl
|
|
97
97
|
* @returns : Precision QUOTE_PRECISION
|
|
@@ -107,12 +107,12 @@ export declare class ClearingHouseUser {
|
|
|
107
107
|
* @returns : Precision QUOTE_PRECISION
|
|
108
108
|
*/
|
|
109
109
|
getPositionValue(marketIndex: BN, oraclePriceData: OraclePriceData): BN;
|
|
110
|
-
getPositionSide(currentPosition: Pick<
|
|
110
|
+
getPositionSide(currentPosition: Pick<PerpPosition, 'baseAssetAmount'>): PositionDirection | undefined;
|
|
111
111
|
/**
|
|
112
112
|
* calculates average exit price (optionally for closing up to 100% of position)
|
|
113
113
|
* @returns : Precision MARK_PRICE_PRECISION
|
|
114
114
|
*/
|
|
115
|
-
getPositionEstimatedExitPriceAndPnl(position:
|
|
115
|
+
getPositionEstimatedExitPriceAndPnl(position: PerpPosition, amountToClose?: BN, useAMMClose?: boolean): [BN, BN];
|
|
116
116
|
/**
|
|
117
117
|
* calculates current user leverage across all positions
|
|
118
118
|
* @returns : Precision TEN_THOUSAND
|
|
@@ -129,7 +129,7 @@ export declare class ClearingHouseUser {
|
|
|
129
129
|
* @returns : Precision TEN_THOUSAND
|
|
130
130
|
*/
|
|
131
131
|
getMarginRatio(): BN;
|
|
132
|
-
canBeLiquidated():
|
|
132
|
+
canBeLiquidated(): boolean;
|
|
133
133
|
/**
|
|
134
134
|
* Checks if any user position cumulative funding differs from respective market cumulative funding
|
|
135
135
|
* @returns
|
|
@@ -137,12 +137,12 @@ export declare class ClearingHouseUser {
|
|
|
137
137
|
needsToSettleFundingPayment(): boolean;
|
|
138
138
|
/**
|
|
139
139
|
* Calculate the liquidation price of a position, with optional parameter to calculate the liquidation price after a trade
|
|
140
|
-
* @param
|
|
140
|
+
* @param PerpPosition
|
|
141
141
|
* @param positionBaseSizeChange // change in position size to calculate liquidation price for : Precision 10^13
|
|
142
142
|
* @param partial
|
|
143
143
|
* @returns Precision : MARK_PRICE_PRECISION
|
|
144
144
|
*/
|
|
145
|
-
liquidationPrice(
|
|
145
|
+
liquidationPrice(perpPosition: Pick<PerpPosition, 'marketIndex'>, positionBaseSizeChange?: BN): BN;
|
|
146
146
|
/**
|
|
147
147
|
* Calculates the estimated liquidation price for a position after closing a quote amount of the position.
|
|
148
148
|
* @param positionMarketIndex
|
|
@@ -193,5 +193,5 @@ export declare class ClearingHouseUser {
|
|
|
193
193
|
*/
|
|
194
194
|
private getTotalPositionValueExcludingMarket;
|
|
195
195
|
private getOracleDataForMarket;
|
|
196
|
-
private
|
|
196
|
+
private getOracleDataForSpotMarket;
|
|
197
197
|
}
|