@drift-labs/sdk 0.1.18-orders.1 → 0.1.19-master.2
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 +2 -1
- package/lib/accounts/defaultClearingHouseAccountSubscriber.d.ts +4 -7
- package/lib/accounts/defaultClearingHouseAccountSubscriber.d.ts.map +1 -0
- package/lib/accounts/defaultClearingHouseAccountSubscriber.js +2 -27
- package/lib/accounts/defaultUserAccountSubscriber.d.ts +2 -3
- package/lib/accounts/defaultUserAccountSubscriber.d.ts.map +1 -0
- package/lib/accounts/defaultUserAccountSubscriber.js +5 -14
- package/lib/accounts/types.d.ts +6 -32
- package/lib/accounts/types.d.ts.map +1 -0
- package/lib/accounts/webSocketAccountSubscriber.d.ts +1 -0
- package/lib/accounts/webSocketAccountSubscriber.d.ts.map +1 -0
- package/lib/addresses.d.ts +1 -4
- package/lib/addresses.d.ts.map +1 -0
- package/lib/addresses.js +1 -28
- package/lib/admin.d.ts +7 -10
- package/lib/admin.d.ts.map +1 -0
- package/lib/admin.js +64 -53
- package/lib/assert/assert.d.ts +1 -0
- package/lib/assert/assert.d.ts.map +1 -0
- package/lib/clearingHouse.d.ts +3 -22
- package/lib/clearingHouse.d.ts.map +1 -0
- package/lib/clearingHouse.js +15 -246
- package/lib/clearingHouseUser.d.ts +17 -10
- package/lib/clearingHouseUser.d.ts.map +1 -0
- package/lib/clearingHouseUser.js +97 -111
- package/lib/config.d.ts +1 -0
- package/lib/config.d.ts.map +1 -0
- package/lib/config.js +1 -1
- package/lib/constants/markets.d.ts +1 -0
- package/lib/constants/markets.d.ts.map +1 -0
- package/lib/constants/markets.js +16 -0
- package/lib/constants/numericConstants.d.ts +1 -0
- package/lib/constants/numericConstants.d.ts.map +1 -0
- package/lib/examples/makeTradeExample.d.ts +1 -0
- package/lib/examples/makeTradeExample.d.ts.map +1 -0
- package/lib/examples/makeTradeExample.js +6 -6
- package/lib/idl/clearing_house.json +233 -911
- package/lib/index.d.ts +1 -4
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +0 -4
- package/lib/math/amm.d.ts +1 -1
- package/lib/math/amm.d.ts.map +1 -0
- package/lib/math/amm.js +15 -38
- package/lib/math/conversion.d.ts +1 -0
- package/lib/math/conversion.d.ts.map +1 -0
- package/lib/math/conversion.js +1 -1
- package/lib/math/funding.d.ts +1 -0
- package/lib/math/funding.d.ts.map +1 -0
- package/lib/math/funding.js +5 -2
- package/lib/math/insuranceFund.d.ts +1 -0
- package/lib/math/insuranceFund.d.ts.map +1 -0
- package/lib/math/market.d.ts +2 -2
- package/lib/math/market.d.ts.map +1 -0
- package/lib/math/market.js +2 -12
- package/lib/math/position.d.ts +2 -4
- package/lib/math/position.d.ts.map +1 -0
- package/lib/math/position.js +5 -19
- package/lib/math/trade.d.ts +1 -0
- package/lib/math/trade.d.ts.map +1 -0
- package/lib/math/trade.js +16 -16
- package/lib/math/utils.d.ts +1 -0
- package/lib/math/utils.d.ts.map +1 -0
- package/lib/mockUSDCFaucet.d.ts +1 -0
- package/lib/mockUSDCFaucet.d.ts.map +1 -0
- package/lib/pythClient.d.ts +1 -0
- package/lib/pythClient.d.ts.map +1 -0
- package/lib/pythClient.js +1 -1
- package/lib/tx/defaultTxSender.d.ts +1 -0
- package/lib/tx/defaultTxSender.d.ts.map +1 -0
- package/lib/tx/types.d.ts +1 -0
- package/lib/tx/types.d.ts.map +1 -0
- package/lib/tx/utils.d.ts +1 -0
- package/lib/tx/utils.d.ts.map +1 -0
- package/lib/types.d.ts +9 -140
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +1 -36
- package/lib/util/computeUnits.d.ts +1 -0
- package/lib/util/computeUnits.d.ts.map +1 -0
- package/lib/util/tps.d.ts +1 -0
- package/lib/util/tps.d.ts.map +1 -0
- package/lib/wallet.d.ts +1 -0
- package/lib/wallet.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/accounts/defaultClearingHouseAccountSubscriber.ts +5 -52
- package/src/accounts/defaultUserAccountSubscriber.ts +6 -31
- package/src/accounts/types.ts +5 -42
- package/src/addresses.ts +0 -35
- package/src/admin.ts +71 -86
- package/src/clearingHouse.ts +7 -340
- package/src/clearingHouseUser.ts +102 -154
- package/src/config.ts +1 -1
- package/src/constants/markets.ts +16 -0
- package/src/idl/clearing_house.json +233 -911
- package/src/index.ts +0 -4
- package/src/math/amm.ts +14 -47
- package/src/math/funding.ts +5 -1
- package/src/math/market.ts +2 -28
- package/src/math/position.ts +3 -23
- package/src/types.ts +8 -124
- package/tsconfig.json +1 -0
- package/lib/accounts/defaultHistoryAccountSubscriber.d.ts +0 -28
- package/lib/accounts/defaultHistoryAccountSubscriber.js +0 -110
- package/lib/math/orders.d.ts +0 -3
- package/lib/math/orders.js +0 -30
- package/lib/orderParams.d.ts +0 -7
- package/lib/orderParams.js +0 -88
- package/lib/orders.d.ts +0 -5
- package/lib/orders.js +0 -136
- package/src/accounts/defaultHistoryAccountSubscriber.ts +0 -176
- package/src/math/orders.ts +0 -39
- package/src/orderParams.ts +0 -128
- package/src/orders.ts +0 -230
package/lib/types.d.ts
CHANGED
|
@@ -24,65 +24,6 @@ export declare class OracleSource {
|
|
|
24
24
|
switchboard: {};
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
|
-
export declare class OrderType {
|
|
28
|
-
static readonly LIMIT: {
|
|
29
|
-
limit: {};
|
|
30
|
-
};
|
|
31
|
-
static readonly STOP: {
|
|
32
|
-
stop: {};
|
|
33
|
-
};
|
|
34
|
-
static readonly STOP_LIMIT: {
|
|
35
|
-
stopLimit: {};
|
|
36
|
-
};
|
|
37
|
-
static readonly MARKET: {
|
|
38
|
-
market: {};
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
export declare class OrderStatus {
|
|
42
|
-
static readonly INIT: {
|
|
43
|
-
init: {};
|
|
44
|
-
};
|
|
45
|
-
static readonly OPEN: {
|
|
46
|
-
open: {};
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
export declare class OrderDiscountTier {
|
|
50
|
-
static readonly NONE: {
|
|
51
|
-
none: {};
|
|
52
|
-
};
|
|
53
|
-
static readonly FIRST: {
|
|
54
|
-
first: {};
|
|
55
|
-
};
|
|
56
|
-
static readonly SECOND: {
|
|
57
|
-
second: {};
|
|
58
|
-
};
|
|
59
|
-
static readonly THIRD: {
|
|
60
|
-
third: {};
|
|
61
|
-
};
|
|
62
|
-
static readonly FOURTH: {
|
|
63
|
-
fourth: {};
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
export declare class OrderAction {
|
|
67
|
-
static readonly PLACE: {
|
|
68
|
-
place: {};
|
|
69
|
-
};
|
|
70
|
-
static readonly CANCEL: {
|
|
71
|
-
cancel: {};
|
|
72
|
-
};
|
|
73
|
-
static readonly FILL: {
|
|
74
|
-
fill: {};
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
export declare class OrderTriggerCondition {
|
|
78
|
-
static readonly ABOVE: {
|
|
79
|
-
above: {};
|
|
80
|
-
};
|
|
81
|
-
static readonly BELOW: {
|
|
82
|
-
below: {};
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
export declare function isVariant(object: unknown, type: string): boolean;
|
|
86
27
|
export declare enum TradeSide {
|
|
87
28
|
None = 0,
|
|
88
29
|
Buy = 1,
|
|
@@ -97,9 +38,9 @@ export declare type DepositHistoryAccount = {
|
|
|
97
38
|
head: BN;
|
|
98
39
|
depositRecords: DepositRecord[];
|
|
99
40
|
};
|
|
100
|
-
export declare type
|
|
41
|
+
export declare type ExtendedCurveHistoryAccount = {
|
|
101
42
|
head: BN;
|
|
102
|
-
curveRecords:
|
|
43
|
+
curveRecords: ExtendedCurveRecord[];
|
|
103
44
|
};
|
|
104
45
|
export declare type FundingRateHistoryAccount = {
|
|
105
46
|
head: BN;
|
|
@@ -113,11 +54,6 @@ export declare type LiquidationHistoryAccount = {
|
|
|
113
54
|
head: BN;
|
|
114
55
|
liquidationRecords: LiquidationRecord[];
|
|
115
56
|
};
|
|
116
|
-
export declare type OrderHistoryAccount = {
|
|
117
|
-
head: BN;
|
|
118
|
-
lastOrderId: BN;
|
|
119
|
-
orderRecords: OrderRecord[];
|
|
120
|
-
};
|
|
121
57
|
export declare type DepositRecord = {
|
|
122
58
|
ts: BN;
|
|
123
59
|
recordId: BN;
|
|
@@ -131,7 +67,7 @@ export declare type DepositRecord = {
|
|
|
131
67
|
cumulativeDepositsBefore: BN;
|
|
132
68
|
amount: BN;
|
|
133
69
|
};
|
|
134
|
-
export declare type
|
|
70
|
+
export declare type ExtendedCurveRecord = {
|
|
135
71
|
ts: BN;
|
|
136
72
|
recordId: BN;
|
|
137
73
|
marketIndex: BN;
|
|
@@ -147,6 +83,8 @@ export declare type CurveRecord = {
|
|
|
147
83
|
baseAssetAmountShort: BN;
|
|
148
84
|
baseAssetAmount: BN;
|
|
149
85
|
openInterest: BN;
|
|
86
|
+
oraclePrice: BN;
|
|
87
|
+
tradeId: BN;
|
|
150
88
|
};
|
|
151
89
|
export declare type TradeRecord = {
|
|
152
90
|
ts: BN;
|
|
@@ -209,20 +147,6 @@ export declare type LiquidationRecord = {
|
|
|
209
147
|
unrealizedPnl: BN;
|
|
210
148
|
marginRatio: BN;
|
|
211
149
|
};
|
|
212
|
-
export declare type OrderRecord = {
|
|
213
|
-
ts: BN;
|
|
214
|
-
recordId: BN;
|
|
215
|
-
order: Order;
|
|
216
|
-
user: PublicKey;
|
|
217
|
-
authority: PublicKey;
|
|
218
|
-
action: OrderAction;
|
|
219
|
-
filler: PublicKey;
|
|
220
|
-
baseAssetAmountFilled: BN;
|
|
221
|
-
quoteAssetAmountFilled: BN;
|
|
222
|
-
fee: BN;
|
|
223
|
-
fillerReward: BN;
|
|
224
|
-
tradeRecordId: BN;
|
|
225
|
-
};
|
|
226
150
|
export declare type StateAccount = {
|
|
227
151
|
admin: PublicKey;
|
|
228
152
|
fundingPaused: boolean;
|
|
@@ -260,12 +184,7 @@ export declare type StateAccount = {
|
|
|
260
184
|
discountMint: PublicKey;
|
|
261
185
|
oracleGuardRails: OracleGuardRails;
|
|
262
186
|
maxDeposit: BN;
|
|
263
|
-
|
|
264
|
-
};
|
|
265
|
-
export declare type OrderStateAccount = {
|
|
266
|
-
orderHistory: PublicKey;
|
|
267
|
-
orderFillerRewardStructure: OrderFillerRewardStructure;
|
|
268
|
-
minOrderQuoteAssetAmount: BN;
|
|
187
|
+
extendedCurveHistory: PublicKey;
|
|
269
188
|
};
|
|
270
189
|
export declare type MarketsAccount = {
|
|
271
190
|
accountIndex: BN;
|
|
@@ -301,15 +220,14 @@ export declare type AMM = {
|
|
|
301
220
|
totalFeeMinusDistributions: BN;
|
|
302
221
|
totalFeeWithdrawn: BN;
|
|
303
222
|
totalFee: BN;
|
|
304
|
-
|
|
305
|
-
|
|
223
|
+
minimumTradeSize: BN;
|
|
224
|
+
lastOraclePrice: BN;
|
|
306
225
|
};
|
|
307
226
|
export declare type UserPosition = {
|
|
308
227
|
baseAssetAmount: BN;
|
|
309
228
|
lastCumulativeFundingRate: BN;
|
|
310
229
|
marketIndex: BN;
|
|
311
230
|
quoteAssetAmount: BN;
|
|
312
|
-
openOrders: BN;
|
|
313
231
|
};
|
|
314
232
|
export declare type UserPositionsAccount = {
|
|
315
233
|
positions: UserPosition[];
|
|
@@ -321,51 +239,6 @@ export declare type UserAccount = {
|
|
|
321
239
|
cumulativeDeposits: BN;
|
|
322
240
|
positions: PublicKey;
|
|
323
241
|
totalFeePaid: BN;
|
|
324
|
-
totalTokenDiscount: BN;
|
|
325
|
-
totalReferralReward: BN;
|
|
326
|
-
totalRefereeDiscount: BN;
|
|
327
|
-
};
|
|
328
|
-
export declare type UserOrdersAccount = {
|
|
329
|
-
orders: Order[];
|
|
330
|
-
user: PublicKey;
|
|
331
|
-
};
|
|
332
|
-
export declare type Order = {
|
|
333
|
-
status: OrderStatus;
|
|
334
|
-
orderType: OrderType;
|
|
335
|
-
ts: BN;
|
|
336
|
-
orderId: BN;
|
|
337
|
-
marketIndex: BN;
|
|
338
|
-
price: BN;
|
|
339
|
-
baseAssetAmount: BN;
|
|
340
|
-
baseAssetAmountFilled: BN;
|
|
341
|
-
quoteAssetAmount: BN;
|
|
342
|
-
quoteAssetAmountFilled: BN;
|
|
343
|
-
fee: BN;
|
|
344
|
-
direction: PositionDirection;
|
|
345
|
-
reduceOnly: boolean;
|
|
346
|
-
triggerPrice: BN;
|
|
347
|
-
triggerCondition: OrderTriggerCondition;
|
|
348
|
-
discountTier: OrderDiscountTier;
|
|
349
|
-
referrer: PublicKey;
|
|
350
|
-
postOnly: boolean;
|
|
351
|
-
immediateOrCancel: boolean;
|
|
352
|
-
};
|
|
353
|
-
export declare type OrderParams = {
|
|
354
|
-
orderType: OrderType;
|
|
355
|
-
direction: PositionDirection;
|
|
356
|
-
quoteAssetAmount: BN;
|
|
357
|
-
baseAssetAmount: BN;
|
|
358
|
-
price: BN;
|
|
359
|
-
marketIndex: BN;
|
|
360
|
-
reduceOnly: boolean;
|
|
361
|
-
postOnly: boolean;
|
|
362
|
-
immediateOrCancel: boolean;
|
|
363
|
-
triggerPrice: BN;
|
|
364
|
-
triggerCondition: OrderTriggerCondition;
|
|
365
|
-
optionalAccounts: {
|
|
366
|
-
discountToken: boolean;
|
|
367
|
-
referrer: boolean;
|
|
368
|
-
};
|
|
369
242
|
};
|
|
370
243
|
export interface IWallet {
|
|
371
244
|
signTransaction(tx: Transaction): Promise<Transaction>;
|
|
@@ -416,8 +289,4 @@ export declare type OracleGuardRails = {
|
|
|
416
289
|
};
|
|
417
290
|
useForLiquidations: boolean;
|
|
418
291
|
};
|
|
419
|
-
|
|
420
|
-
rewardNumerator: BN;
|
|
421
|
-
rewardDenominator: BN;
|
|
422
|
-
timeBasedRewardLowerBound: BN;
|
|
423
|
-
};
|
|
292
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,MAAM,OAAO,CAAC;AAGvB,qBAAa,aAAa;IACzB,MAAM,CAAC,QAAQ,CAAC,GAAG;;MAAe;IAClC,MAAM,CAAC,QAAQ,CAAC,MAAM;;MAAkB;CACxC;AACD,qBAAa,iBAAiB;IAC7B,MAAM,CAAC,QAAQ,CAAC,IAAI;;MAAgB;IACpC,MAAM,CAAC,QAAQ,CAAC,KAAK;;MAAiB;CACtC;AAED,qBAAa,YAAY;IACxB,MAAM,CAAC,QAAQ,CAAC,IAAI;;MAAgB;IACpC,MAAM,CAAC,QAAQ,CAAC,WAAW;;MAAuB;CAClD;AAED,oBAAY,SAAS;IACpB,IAAI,IAAI;IACR,GAAG,IAAI;IACP,IAAI,IAAI;CACR;AAED,oBAAY,gBAAgB,GACzB,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,GAAG,GACH,GAAG,GACH,GAAG,CAAC;AAGP,oBAAY,mBAAmB,GAAG;IACjC,IAAI,EAAE,EAAE,CAAC;IACT,YAAY,EAAE,WAAW,EAAE,CAAC;CAC5B,CAAC;AAEF,oBAAY,qBAAqB,GAAG;IACnC,IAAI,EAAE,EAAE,CAAC;IACT,cAAc,EAAE,aAAa,EAAE,CAAC;CAChC,CAAC;AAEF,oBAAY,2BAA2B,GAAG;IACzC,IAAI,EAAE,EAAE,CAAC;IACT,YAAY,EAAE,mBAAmB,EAAE,CAAC;CACpC,CAAC;AAEF,oBAAY,yBAAyB,GAAG;IACvC,IAAI,EAAE,EAAE,CAAC;IACT,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;CACxC,CAAC;AAEF,oBAAY,4BAA4B,GAAG;IAC1C,IAAI,EAAE,EAAE,CAAC;IACT,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;CAC9C,CAAC;AAEF,oBAAY,yBAAyB,GAAG;IACvC,IAAI,EAAE,EAAE,CAAC;IACT,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;CACxC,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC3B,EAAE,EAAE,EAAE,CAAC;IACP,QAAQ,EAAE,EAAE,CAAC;IACb,aAAa,EAAE,SAAS,CAAC;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE;QACV,OAAO,CAAC,EAAE,GAAG,CAAC;QACd,QAAQ,CAAC,EAAE,GAAG,CAAC;KACf,CAAC;IACF,gBAAgB,EAAE,EAAE,CAAC;IACrB,wBAAwB,EAAE,EAAE,CAAC;IAC7B,MAAM,EAAE,EAAE,CAAC;CACX,CAAC;AAEF,oBAAY,mBAAmB,GAAG;IACjC,EAAE,EAAE,EAAE,CAAC;IACP,QAAQ,EAAE,EAAE,CAAC;IACb,WAAW,EAAE,EAAE,CAAC;IAChB,mBAAmB,EAAE,EAAE,CAAC;IACxB,sBAAsB,EAAE,EAAE,CAAC;IAC3B,uBAAuB,EAAE,EAAE,CAAC;IAC5B,WAAW,EAAE,EAAE,CAAC;IAChB,kBAAkB,EAAE,EAAE,CAAC;IACvB,qBAAqB,EAAE,EAAE,CAAC;IAC1B,sBAAsB,EAAE,EAAE,CAAC;IAC3B,UAAU,EAAE,EAAE,CAAC;IACf,mBAAmB,EAAE,EAAE,CAAC;IACxB,oBAAoB,EAAE,EAAE,CAAC;IACzB,eAAe,EAAE,EAAE,CAAC;IACpB,YAAY,EAAE,EAAE,CAAC;IACjB,WAAW,EAAE,EAAE,CAAC;IAChB,OAAO,EAAE,EAAE,CAAC;CACZ,CAAC;AAEF,oBAAY,WAAW,GAAG;IACzB,EAAE,EAAE,EAAE,CAAC;IACP,QAAQ,EAAE,EAAE,CAAC;IACb,aAAa,EAAE,SAAS,CAAC;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE;QACV,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,KAAK,CAAC,EAAE,GAAG,CAAC;KACZ,CAAC;IACF,eAAe,EAAE,EAAE,CAAC;IACpB,gBAAgB,EAAE,EAAE,CAAC;IACrB,eAAe,EAAE,EAAE,CAAC;IACpB,cAAc,EAAE,EAAE,CAAC;IACnB,GAAG,EAAE,EAAE,CAAC;IACR,cAAc,EAAE,EAAE,CAAC;IACnB,eAAe,EAAE,EAAE,CAAC;IACpB,aAAa,EAAE,EAAE,CAAC;IAClB,WAAW,EAAE,EAAE,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,EAAE,CAAC;CAChB,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC/B,EAAE,EAAE,EAAE,CAAC;IACP,QAAQ,EAAE,EAAE,CAAC;IACb,WAAW,EAAE,EAAE,CAAC;IAChB,WAAW,EAAE,EAAE,CAAC;IAChB,yBAAyB,EAAE,EAAE,CAAC;IAC9B,0BAA0B,EAAE,EAAE,CAAC;IAC/B,eAAe,EAAE,EAAE,CAAC;IACpB,aAAa,EAAE,EAAE,CAAC;CAClB,CAAC;AAEF,oBAAY,oBAAoB,GAAG;IAClC,EAAE,EAAE,EAAE,CAAC;IACP,QAAQ,EAAE,EAAE,CAAC;IACb,aAAa,EAAE,SAAS,CAAC;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,EAAE,CAAC;IAChB,cAAc,EAAE,EAAE,CAAC;IACnB,eAAe,EAAE,EAAE,CAAC;IACpB,yBAAyB,EAAE,EAAE,CAAC;IAC9B,qBAAqB,EAAE,EAAE,CAAC;IAC1B,wBAAwB,EAAE,EAAE,CAAC;IAC7B,yBAAyB,EAAE,EAAE,CAAC;CAC9B,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC/B,EAAE,EAAE,EAAE,CAAC;IACP,QAAQ,EAAE,EAAE,CAAC;IACb,aAAa,EAAE,SAAS,CAAC;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,EAAE,CAAC;IACnB,oBAAoB,EAAE,EAAE,CAAC;IACzB,cAAc,EAAE,EAAE,CAAC;IACnB,eAAe,EAAE,EAAE,CAAC;IACpB,kBAAkB,EAAE,EAAE,CAAC;IACvB,UAAU,EAAE,SAAS,CAAC;IACtB,eAAe,EAAE,EAAE,CAAC;IACpB,UAAU,EAAE,EAAE,CAAC;IACf,aAAa,EAAE,EAAE,CAAC;IAClB,WAAW,EAAE,EAAE,CAAC;CAChB,CAAC;AAEF,oBAAY,YAAY,GAAG;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,SAAS,CAAC;IAC1B,eAAe,EAAE,SAAS,CAAC;IAC3B,wBAAwB,EAAE,SAAS,CAAC;IACpC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,SAAS,CAAC;IAC1B,uBAAuB,EAAE,SAAS,CAAC;IACnC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,EAAE,CAAC;IACvB,sBAAsB,EAAE,EAAE,CAAC;IAC3B,kBAAkB,EAAE,EAAE,CAAC;IACvB,OAAO,EAAE,SAAS,CAAC;IACnB,YAAY,EAAE,SAAS,CAAC;IACxB,cAAc,EAAE,SAAS,CAAC;IAC1B,kBAAkB,EAAE,SAAS,CAAC;IAC9B,qBAAqB,EAAE,SAAS,CAAC;IACjC,YAAY,EAAE,SAAS,CAAC;IACxB,kBAAkB,EAAE,SAAS,CAAC;IAC9B,0CAA0C,EAAE,EAAE,CAAC;IAC/C,4CAA4C,EAAE,EAAE,CAAC;IACjD,4CAA4C,EAAE,EAAE,CAAC;IACjD,8CAA8C,EAAE,EAAE,CAAC;IACnD,yCAAyC,EAAE,EAAE,CAAC;IAC9C,2CAA2C,EAAE,EAAE,CAAC;IAChD,4CAA4C,EAAE,EAAE,CAAC;IACjD,yCAAyC,EAAE,EAAE,CAAC;IAC9C,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,EAAE,CAAC;IACb,iBAAiB,EAAE,EAAE,CAAC;IACtB,aAAa,EAAE,SAAS,CAAC;IACzB,YAAY,EAAE,SAAS,CAAC;IACxB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,UAAU,EAAE,EAAE,CAAC;IACf,oBAAoB,EAAE,SAAS,CAAC;CAChC,CAAC;AAEF,oBAAY,cAAc,GAAG;IAC5B,YAAY,EAAE,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,oBAAY,MAAM,GAAG;IACpB,GAAG,EAAE,GAAG,CAAC;IACT,eAAe,EAAE,EAAE,CAAC;IACpB,mBAAmB,EAAE,EAAE,CAAC;IACxB,oBAAoB,EAAE,EAAE,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,EAAE,CAAC;CACjB,CAAC;AAEF,oBAAY,GAAG,GAAG;IACjB,gBAAgB,EAAE,EAAE,CAAC;IACrB,KAAK,EAAE,EAAE,CAAC;IACV,qBAAqB,EAAE,EAAE,CAAC;IAC1B,eAAe,EAAE,EAAE,CAAC;IACpB,iBAAiB,EAAE,EAAE,CAAC;IACtB,iBAAiB,EAAE,EAAE,CAAC;IACtB,mBAAmB,EAAE,EAAE,CAAC;IACxB,mBAAmB,EAAE,EAAE,CAAC;IACxB,qBAAqB,EAAE,EAAE,CAAC;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,EAAE,CAAC;IAClB,iBAAiB,EAAE,EAAE,CAAC;IACtB,aAAa,EAAE,EAAE,CAAC;IAClB,yBAAyB,EAAE,EAAE,CAAC;IAC9B,0BAA0B,EAAE,EAAE,CAAC;IAC/B,yBAAyB,EAAE,EAAE,CAAC;IAC9B,0BAA0B,EAAE,EAAE,CAAC;IAC/B,0BAA0B,EAAE,EAAE,CAAC;IAC/B,iBAAiB,EAAE,EAAE,CAAC;IACtB,QAAQ,EAAE,EAAE,CAAC;IACb,gBAAgB,EAAE,EAAE,CAAC;IACrB,eAAe,EAAE,EAAE,CAAC;CACpB,CAAC;AAGF,oBAAY,YAAY,GAAG;IAC1B,eAAe,EAAE,EAAE,CAAC;IACpB,yBAAyB,EAAE,EAAE,CAAC;IAC9B,WAAW,EAAE,EAAE,CAAC;IAChB,gBAAgB,EAAE,EAAE,CAAC;CACrB,CAAC;AAEF,oBAAY,oBAAoB,GAAG;IAClC,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,IAAI,EAAE,SAAS,CAAC;CAChB,CAAC;AAEF,oBAAY,WAAW,GAAG;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,EAAE,CAAC;IACf,kBAAkB,EAAE,EAAE,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,EAAE,CAAC;CACjB,CAAC;AAGF,MAAM,WAAW,OAAO;IACvB,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACvD,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,SAAS,EAAE,SAAS,CAAC;CACrB;AAED,oBAAY,YAAY,GAAG;IAC1B,YAAY,EAAE,EAAE,CAAC;IACjB,cAAc,EAAE,EAAE,CAAC;IACnB,kBAAkB,EAAE;QACnB,SAAS,EAAE;YACV,cAAc,EAAE,EAAE,CAAC;YACnB,iBAAiB,EAAE,EAAE,CAAC;YACtB,mBAAmB,EAAE,EAAE,CAAC;SACxB,CAAC;QACF,UAAU,EAAE;YACX,cAAc,EAAE,EAAE,CAAC;YACnB,iBAAiB,EAAE,EAAE,CAAC;YACtB,mBAAmB,EAAE,EAAE,CAAC;SACxB,CAAC;QACF,SAAS,EAAE;YACV,cAAc,EAAE,EAAE,CAAC;YACnB,iBAAiB,EAAE,EAAE,CAAC;YACtB,mBAAmB,EAAE,EAAE,CAAC;SACxB,CAAC;QACF,UAAU,EAAE;YACX,cAAc,EAAE,EAAE,CAAC;YACnB,iBAAiB,EAAE,EAAE,CAAC;YACtB,mBAAmB,EAAE,EAAE,CAAC;SACxB,CAAC;KACF,CAAC;IACF,gBAAgB,EAAE;QACjB,uBAAuB,EAAE,EAAE,CAAC;QAC5B,yBAAyB,EAAE,EAAE,CAAC;QAC9B,wBAAwB,EAAE,EAAE,CAAC;QAC7B,0BAA0B,EAAE,EAAE,CAAC;KAC/B,CAAC;CACF,CAAC;AAEF,oBAAY,gBAAgB,GAAG;IAC9B,eAAe,EAAE;QAChB,6BAA6B,EAAE,EAAE,CAAC;QAClC,+BAA+B,EAAE,EAAE,CAAC;KACpC,CAAC;IACF,QAAQ,EAAE;QACT,gBAAgB,EAAE,EAAE,CAAC;QACrB,yBAAyB,EAAE,EAAE,CAAC;QAC9B,gBAAgB,EAAE,EAAE,CAAC;KACrB,CAAC;IACF,kBAAkB,EAAE,OAAO,CAAC;CAC5B,CAAC"}
|
package/lib/types.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TradeSide = exports.
|
|
3
|
+
exports.TradeSide = exports.OracleSource = exports.PositionDirection = exports.SwapDirection = void 0;
|
|
4
4
|
// # Utility Types / Enums / Constants
|
|
5
5
|
class SwapDirection {
|
|
6
6
|
}
|
|
@@ -17,41 +17,6 @@ class OracleSource {
|
|
|
17
17
|
exports.OracleSource = OracleSource;
|
|
18
18
|
OracleSource.PYTH = { pyth: {} };
|
|
19
19
|
OracleSource.SWITCHBOARD = { switchboard: {} };
|
|
20
|
-
class OrderType {
|
|
21
|
-
}
|
|
22
|
-
exports.OrderType = OrderType;
|
|
23
|
-
OrderType.LIMIT = { limit: {} };
|
|
24
|
-
OrderType.STOP = { stop: {} };
|
|
25
|
-
OrderType.STOP_LIMIT = { stopLimit: {} };
|
|
26
|
-
OrderType.MARKET = { market: {} };
|
|
27
|
-
class OrderStatus {
|
|
28
|
-
}
|
|
29
|
-
exports.OrderStatus = OrderStatus;
|
|
30
|
-
OrderStatus.INIT = { init: {} };
|
|
31
|
-
OrderStatus.OPEN = { open: {} };
|
|
32
|
-
class OrderDiscountTier {
|
|
33
|
-
}
|
|
34
|
-
exports.OrderDiscountTier = OrderDiscountTier;
|
|
35
|
-
OrderDiscountTier.NONE = { none: {} };
|
|
36
|
-
OrderDiscountTier.FIRST = { first: {} };
|
|
37
|
-
OrderDiscountTier.SECOND = { second: {} };
|
|
38
|
-
OrderDiscountTier.THIRD = { third: {} };
|
|
39
|
-
OrderDiscountTier.FOURTH = { fourth: {} };
|
|
40
|
-
class OrderAction {
|
|
41
|
-
}
|
|
42
|
-
exports.OrderAction = OrderAction;
|
|
43
|
-
OrderAction.PLACE = { place: {} };
|
|
44
|
-
OrderAction.CANCEL = { cancel: {} };
|
|
45
|
-
OrderAction.FILL = { fill: {} };
|
|
46
|
-
class OrderTriggerCondition {
|
|
47
|
-
}
|
|
48
|
-
exports.OrderTriggerCondition = OrderTriggerCondition;
|
|
49
|
-
OrderTriggerCondition.ABOVE = { above: {} };
|
|
50
|
-
OrderTriggerCondition.BELOW = { below: {} };
|
|
51
|
-
function isVariant(object, type) {
|
|
52
|
-
return object.hasOwnProperty(type);
|
|
53
|
-
}
|
|
54
|
-
exports.isVariant = isVariant;
|
|
55
20
|
var TradeSide;
|
|
56
21
|
(function (TradeSide) {
|
|
57
22
|
TradeSide[TradeSide["None"] = 0] = "None";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeUnits.d.ts","sourceRoot":"","sources":["../../src/util/computeUnits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAElE,wBAAsB,0BAA0B,CAC/C,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,QAAsB,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC,CAanB"}
|
package/lib/util/tps.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tps.d.ts","sourceRoot":"","sources":["../../src/util/tps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAExD,wBAAsB,WAAW,CAChC,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,OAAO,GACb,OAAO,CAAC,MAAM,CAAC,CAoBjB"}
|
package/lib/wallet.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,qBAAa,MAAO,YAAW,OAAO;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO;gBAAd,KAAK,EAAE,OAAO;IAE7B,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAKtD,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAOrE,IAAI,SAAS,IAAI,SAAS,CAEzB;CACD"}
|
package/package.json
CHANGED
|
@@ -5,14 +5,12 @@ import {
|
|
|
5
5
|
} from './types';
|
|
6
6
|
import { AccountSubscriber, NotSubscribedError } from './types';
|
|
7
7
|
import {
|
|
8
|
-
CurveHistoryAccount,
|
|
9
8
|
DepositHistoryAccount,
|
|
9
|
+
ExtendedCurveHistoryAccount,
|
|
10
10
|
FundingPaymentHistoryAccount,
|
|
11
11
|
FundingRateHistoryAccount,
|
|
12
12
|
LiquidationHistoryAccount,
|
|
13
13
|
MarketsAccount,
|
|
14
|
-
OrderHistoryAccount,
|
|
15
|
-
OrderStateAccount,
|
|
16
14
|
StateAccount,
|
|
17
15
|
TradeHistoryAccount,
|
|
18
16
|
} from '../types';
|
|
@@ -34,10 +32,8 @@ export class DefaultClearingHouseAccountSubscriber
|
|
|
34
32
|
depositHistoryAccountSubscriber?: AccountSubscriber<DepositHistoryAccount>;
|
|
35
33
|
fundingPaymentHistoryAccountSubscriber?: AccountSubscriber<FundingPaymentHistoryAccount>;
|
|
36
34
|
fundingRateHistoryAccountSubscriber?: AccountSubscriber<FundingRateHistoryAccount>;
|
|
37
|
-
curveHistoryAccountSubscriber?: AccountSubscriber<
|
|
35
|
+
curveHistoryAccountSubscriber?: AccountSubscriber<ExtendedCurveHistoryAccount>;
|
|
38
36
|
liquidationHistoryAccountSubscriber?: AccountSubscriber<LiquidationHistoryAccount>;
|
|
39
|
-
orderStateAccountSubscriber?: AccountSubscriber<OrderStateAccount>;
|
|
40
|
-
orderHistoryAccountSubscriber?: AccountSubscriber<OrderHistoryAccount>;
|
|
41
37
|
|
|
42
38
|
optionalExtraSubscriptions: ClearingHouseAccountTypes[] = [];
|
|
43
39
|
|
|
@@ -96,21 +92,6 @@ export class DefaultClearingHouseAccountSubscriber
|
|
|
96
92
|
this.eventEmitter.emit('update');
|
|
97
93
|
});
|
|
98
94
|
|
|
99
|
-
this.orderStateAccountSubscriber = new WebSocketAccountSubscriber(
|
|
100
|
-
'orderState',
|
|
101
|
-
this.program,
|
|
102
|
-
state.orderState
|
|
103
|
-
);
|
|
104
|
-
|
|
105
|
-
await this.orderStateAccountSubscriber.subscribe(
|
|
106
|
-
(data: OrderStateAccount) => {
|
|
107
|
-
this.eventEmitter.emit('orderStateAccountUpdate', data);
|
|
108
|
-
this.eventEmitter.emit('update');
|
|
109
|
-
}
|
|
110
|
-
);
|
|
111
|
-
|
|
112
|
-
const orderState = this.orderStateAccountSubscriber.data;
|
|
113
|
-
|
|
114
95
|
// create subscribers for other state accounts
|
|
115
96
|
|
|
116
97
|
this.tradeHistoryAccountSubscriber = new WebSocketAccountSubscriber(
|
|
@@ -145,15 +126,9 @@ export class DefaultClearingHouseAccountSubscriber
|
|
|
145
126
|
);
|
|
146
127
|
|
|
147
128
|
this.curveHistoryAccountSubscriber = new WebSocketAccountSubscriber(
|
|
148
|
-
'
|
|
129
|
+
'extendedCurveHistory',
|
|
149
130
|
this.program,
|
|
150
|
-
state.
|
|
151
|
-
);
|
|
152
|
-
|
|
153
|
-
this.orderHistoryAccountSubscriber = new WebSocketAccountSubscriber(
|
|
154
|
-
'orderHistory',
|
|
155
|
-
this.program,
|
|
156
|
-
orderState.orderHistory
|
|
131
|
+
state.extendedCurveHistory
|
|
157
132
|
);
|
|
158
133
|
|
|
159
134
|
const extraSusbcribersToUse: {
|
|
@@ -197,12 +172,6 @@ export class DefaultClearingHouseAccountSubscriber
|
|
|
197
172
|
eventType: 'curveHistoryAccountUpdate',
|
|
198
173
|
});
|
|
199
174
|
|
|
200
|
-
if (optionalSubscriptions?.includes('orderHistoryAccount'))
|
|
201
|
-
extraSusbcribersToUse.push({
|
|
202
|
-
subscriber: this.orderHistoryAccountSubscriber,
|
|
203
|
-
eventType: 'orderHistoryAccountUpdate',
|
|
204
|
-
});
|
|
205
|
-
|
|
206
175
|
this.optionalExtraSubscriptions = optionalSubscriptions ?? [];
|
|
207
176
|
|
|
208
177
|
// await all subcriptions in parallel to boost performance
|
|
@@ -250,7 +219,6 @@ export class DefaultClearingHouseAccountSubscriber
|
|
|
250
219
|
|
|
251
220
|
await this.stateAccountSubscriber.unsubscribe();
|
|
252
221
|
await this.marketsAccountSubscriber.unsubscribe();
|
|
253
|
-
await this.orderStateAccountSubscriber.unsubscribe();
|
|
254
222
|
|
|
255
223
|
if (this.optionalExtraSubscriptions.includes('tradeHistoryAccount')) {
|
|
256
224
|
await this.tradeHistoryAccountSubscriber.unsubscribe();
|
|
@@ -278,10 +246,6 @@ export class DefaultClearingHouseAccountSubscriber
|
|
|
278
246
|
await this.liquidationHistoryAccountSubscriber.unsubscribe();
|
|
279
247
|
}
|
|
280
248
|
|
|
281
|
-
if (this.optionalExtraSubscriptions.includes('orderHistoryAccount')) {
|
|
282
|
-
await this.orderHistoryAccountSubscriber.unsubscribe();
|
|
283
|
-
}
|
|
284
|
-
|
|
285
249
|
this.isSubscribed = false;
|
|
286
250
|
}
|
|
287
251
|
|
|
@@ -343,7 +307,7 @@ export class DefaultClearingHouseAccountSubscriber
|
|
|
343
307
|
return this.fundingRateHistoryAccountSubscriber.data;
|
|
344
308
|
}
|
|
345
309
|
|
|
346
|
-
public getCurveHistoryAccount():
|
|
310
|
+
public getCurveHistoryAccount(): ExtendedCurveHistoryAccount {
|
|
347
311
|
this.assertIsSubscribed();
|
|
348
312
|
this.assertOptionalIsSubscribed('curveHistoryAccount');
|
|
349
313
|
return this.curveHistoryAccountSubscriber.data;
|
|
@@ -354,15 +318,4 @@ export class DefaultClearingHouseAccountSubscriber
|
|
|
354
318
|
this.assertOptionalIsSubscribed('liquidationHistoryAccount');
|
|
355
319
|
return this.liquidationHistoryAccountSubscriber.data;
|
|
356
320
|
}
|
|
357
|
-
|
|
358
|
-
public getOrderHistoryAccount(): OrderHistoryAccount {
|
|
359
|
-
this.assertIsSubscribed();
|
|
360
|
-
this.assertOptionalIsSubscribed('orderHistoryAccount');
|
|
361
|
-
return this.orderHistoryAccountSubscriber.data;
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
public getOrderStateAccount(): OrderStateAccount {
|
|
365
|
-
this.assertIsSubscribed();
|
|
366
|
-
return this.orderStateAccountSubscriber.data;
|
|
367
|
-
}
|
|
368
321
|
}
|
|
@@ -8,12 +8,9 @@ import { Program } from '@project-serum/anchor';
|
|
|
8
8
|
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
9
9
|
import { EventEmitter } from 'events';
|
|
10
10
|
import { PublicKey } from '@solana/web3.js';
|
|
11
|
-
import {
|
|
12
|
-
getUserAccountPublicKey,
|
|
13
|
-
getUserOrdersAccountPublicKey,
|
|
14
|
-
} from '../addresses';
|
|
11
|
+
import { getUserAccountPublicKey } from '../addresses';
|
|
15
12
|
import { WebSocketAccountSubscriber } from './webSocketAccountSubscriber';
|
|
16
|
-
import { UserAccount,
|
|
13
|
+
import { UserAccount, UserPositionsAccount } from '../types';
|
|
17
14
|
|
|
18
15
|
export class DefaultUserAccountSubscriber implements UserAccountSubscriber {
|
|
19
16
|
isSubscribed: boolean;
|
|
@@ -23,7 +20,6 @@ export class DefaultUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
23
20
|
|
|
24
21
|
userDataAccountSubscriber: AccountSubscriber<UserAccount>;
|
|
25
22
|
userPositionsAccountSubscriber: AccountSubscriber<UserPositionsAccount>;
|
|
26
|
-
userOrdersAccountSubscriber: AccountSubscriber<UserOrdersAccount>;
|
|
27
23
|
|
|
28
24
|
public constructor(program: Program, authority: PublicKey) {
|
|
29
25
|
this.isSubscribed = false;
|
|
@@ -65,23 +61,6 @@ export class DefaultUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
65
61
|
}
|
|
66
62
|
);
|
|
67
63
|
|
|
68
|
-
const userOrdersPublicKey = await getUserOrdersAccountPublicKey(
|
|
69
|
-
this.program.programId,
|
|
70
|
-
this.authority
|
|
71
|
-
);
|
|
72
|
-
|
|
73
|
-
this.userOrdersAccountSubscriber = new WebSocketAccountSubscriber(
|
|
74
|
-
'userOrders',
|
|
75
|
-
this.program,
|
|
76
|
-
userOrdersPublicKey
|
|
77
|
-
);
|
|
78
|
-
await this.userOrdersAccountSubscriber.subscribe(
|
|
79
|
-
(data: UserOrdersAccount) => {
|
|
80
|
-
this.eventEmitter.emit('userOrdersData', data);
|
|
81
|
-
this.eventEmitter.emit('update');
|
|
82
|
-
}
|
|
83
|
-
);
|
|
84
|
-
|
|
85
64
|
this.eventEmitter.emit('update');
|
|
86
65
|
this.isSubscribed = true;
|
|
87
66
|
return true;
|
|
@@ -91,7 +70,6 @@ export class DefaultUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
91
70
|
await Promise.all([
|
|
92
71
|
this.userDataAccountSubscriber.fetch(),
|
|
93
72
|
this.userPositionsAccountSubscriber.fetch(),
|
|
94
|
-
this.userOrdersAccountSubscriber.fetch(),
|
|
95
73
|
]);
|
|
96
74
|
}
|
|
97
75
|
|
|
@@ -100,9 +78,10 @@ export class DefaultUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
100
78
|
return;
|
|
101
79
|
}
|
|
102
80
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
81
|
+
await Promise.all([
|
|
82
|
+
this.userDataAccountSubscriber.unsubscribe(),
|
|
83
|
+
this.userPositionsAccountSubscriber.unsubscribe(),
|
|
84
|
+
]);
|
|
106
85
|
|
|
107
86
|
this.isSubscribed = false;
|
|
108
87
|
}
|
|
@@ -124,8 +103,4 @@ export class DefaultUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
124
103
|
this.assertIsSubscribed();
|
|
125
104
|
return this.userPositionsAccountSubscriber.data;
|
|
126
105
|
}
|
|
127
|
-
|
|
128
|
-
public getUserOrdersAccount(): UserOrdersAccount {
|
|
129
|
-
return this.userOrdersAccountSubscriber.data;
|
|
130
|
-
}
|
|
131
106
|
}
|
package/src/accounts/types.ts
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
|
-
CurveHistoryAccount,
|
|
3
2
|
DepositHistoryAccount,
|
|
3
|
+
ExtendedCurveHistoryAccount,
|
|
4
4
|
FundingPaymentHistoryAccount,
|
|
5
5
|
FundingRateHistoryAccount,
|
|
6
6
|
LiquidationHistoryAccount,
|
|
7
7
|
MarketsAccount,
|
|
8
|
-
OrderHistoryAccount,
|
|
9
|
-
OrderStateAccount,
|
|
10
8
|
StateAccount,
|
|
11
9
|
TradeHistoryAccount,
|
|
12
10
|
UserAccount,
|
|
13
|
-
UserOrdersAccount,
|
|
14
11
|
UserPositionsAccount,
|
|
15
12
|
} from '../types';
|
|
16
13
|
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
@@ -20,7 +17,7 @@ export interface AccountSubscriber<T> {
|
|
|
20
17
|
data?: T;
|
|
21
18
|
subscribe(onChange: (data: T) => void): Promise<void>;
|
|
22
19
|
fetch(): Promise<void>;
|
|
23
|
-
unsubscribe(): void
|
|
20
|
+
unsubscribe(): Promise<void>;
|
|
24
21
|
}
|
|
25
22
|
|
|
26
23
|
export class NotSubscribedError extends Error {
|
|
@@ -37,9 +34,7 @@ export interface ClearingHouseAccountEvents {
|
|
|
37
34
|
tradeHistoryAccountUpdate: (payload: TradeHistoryAccount) => void;
|
|
38
35
|
liquidationHistoryAccountUpdate: (payload: LiquidationHistoryAccount) => void;
|
|
39
36
|
depositHistoryAccountUpdate: (payload: DepositHistoryAccount) => void;
|
|
40
|
-
curveHistoryAccountUpdate: (payload:
|
|
41
|
-
orderHistoryAccountUpdate: (payload: OrderHistoryAccount) => void;
|
|
42
|
-
orderStateAccountUpdate: (payload: OrderStateAccount) => void;
|
|
37
|
+
curveHistoryAccountUpdate: (payload: ExtendedCurveHistoryAccount) => void;
|
|
43
38
|
update: void;
|
|
44
39
|
}
|
|
45
40
|
|
|
@@ -49,8 +44,7 @@ export type ClearingHouseAccountTypes =
|
|
|
49
44
|
| 'fundingPaymentHistoryAccount'
|
|
50
45
|
| 'fundingRateHistoryAccount'
|
|
51
46
|
| 'curveHistoryAccount'
|
|
52
|
-
| 'liquidationHistoryAccount'
|
|
53
|
-
| 'orderHistoryAccount';
|
|
47
|
+
| 'liquidationHistoryAccount';
|
|
54
48
|
|
|
55
49
|
export interface ClearingHouseAccountSubscriber {
|
|
56
50
|
eventEmitter: StrictEventEmitter<EventEmitter, ClearingHouseAccountEvents>;
|
|
@@ -70,43 +64,13 @@ export interface ClearingHouseAccountSubscriber {
|
|
|
70
64
|
getDepositHistoryAccount(): DepositHistoryAccount;
|
|
71
65
|
getFundingPaymentHistoryAccount(): FundingPaymentHistoryAccount;
|
|
72
66
|
getFundingRateHistoryAccount(): FundingRateHistoryAccount;
|
|
73
|
-
getCurveHistoryAccount():
|
|
74
|
-
getLiquidationHistoryAccount(): LiquidationHistoryAccount;
|
|
75
|
-
getOrderStateAccount(): OrderStateAccount;
|
|
76
|
-
getOrderHistoryAccount(): OrderHistoryAccount;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export interface HistoryAccountEvents {
|
|
80
|
-
fundingPaymentHistoryAccountUpdate: (
|
|
81
|
-
payload: FundingPaymentHistoryAccount
|
|
82
|
-
) => void;
|
|
83
|
-
fundingRateHistoryAccountUpdate: (payload: FundingRateHistoryAccount) => void;
|
|
84
|
-
tradeHistoryAccountUpdate: (payload: TradeHistoryAccount) => void;
|
|
85
|
-
liquidationHistoryAccountUpdate: (payload: LiquidationHistoryAccount) => void;
|
|
86
|
-
depositHistoryAccountUpdate: (payload: DepositHistoryAccount) => void;
|
|
87
|
-
curveHistoryAccountUpdate: (payload: CurveHistoryAccount) => void;
|
|
88
|
-
update: void;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export interface HistoryAccountSubscriber {
|
|
92
|
-
eventEmitter: StrictEventEmitter<EventEmitter, HistoryAccountEvents>;
|
|
93
|
-
isSubscribed: boolean;
|
|
94
|
-
|
|
95
|
-
subscribe(): Promise<boolean>;
|
|
96
|
-
unsubscribe(): Promise<void>;
|
|
97
|
-
|
|
98
|
-
getTradeHistoryAccount(): TradeHistoryAccount;
|
|
99
|
-
getDepositHistoryAccount(): DepositHistoryAccount;
|
|
100
|
-
getFundingPaymentHistoryAccount(): FundingPaymentHistoryAccount;
|
|
101
|
-
getFundingRateHistoryAccount(): FundingRateHistoryAccount;
|
|
102
|
-
getCurveHistoryAccount(): CurveHistoryAccount;
|
|
67
|
+
getCurveHistoryAccount(): ExtendedCurveHistoryAccount;
|
|
103
68
|
getLiquidationHistoryAccount(): LiquidationHistoryAccount;
|
|
104
69
|
}
|
|
105
70
|
|
|
106
71
|
export interface UserAccountEvents {
|
|
107
72
|
userAccountData: (payload: UserAccount) => void;
|
|
108
73
|
userPositionsData: (payload: UserPositionsAccount) => void;
|
|
109
|
-
userOrdersData: (payload: UserOrdersAccount) => void;
|
|
110
74
|
update: void;
|
|
111
75
|
}
|
|
112
76
|
|
|
@@ -120,5 +84,4 @@ export interface UserAccountSubscriber {
|
|
|
120
84
|
|
|
121
85
|
getUserAccount(): UserAccount;
|
|
122
86
|
getUserPositionsAccount(): UserPositionsAccount;
|
|
123
|
-
getUserOrdersAccount(): UserOrdersAccount;
|
|
124
87
|
}
|
package/src/addresses.ts
CHANGED
|
@@ -10,21 +10,6 @@ export async function getClearingHouseStateAccountPublicKeyAndNonce(
|
|
|
10
10
|
);
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
export async function getOrderStateAccountPublicKey(
|
|
14
|
-
programId: PublicKey
|
|
15
|
-
): Promise<PublicKey> {
|
|
16
|
-
return (await getOrderStateAccountPublicKeyAndNonce(programId))[0];
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export async function getOrderStateAccountPublicKeyAndNonce(
|
|
20
|
-
programId: PublicKey
|
|
21
|
-
): Promise<[PublicKey, number]> {
|
|
22
|
-
return anchor.web3.PublicKey.findProgramAddress(
|
|
23
|
-
[Buffer.from(anchor.utils.bytes.utf8.encode('order_state'))],
|
|
24
|
-
programId
|
|
25
|
-
);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
13
|
export async function getClearingHouseStateAccountPublicKey(
|
|
29
14
|
programId: PublicKey
|
|
30
15
|
): Promise<PublicKey> {
|
|
@@ -47,23 +32,3 @@ export async function getUserAccountPublicKey(
|
|
|
47
32
|
): Promise<PublicKey> {
|
|
48
33
|
return (await getUserAccountPublicKeyAndNonce(programId, authority))[0];
|
|
49
34
|
}
|
|
50
|
-
|
|
51
|
-
export async function getUserOrdersAccountPublicKeyAndNonce(
|
|
52
|
-
programId: PublicKey,
|
|
53
|
-
authority: PublicKey
|
|
54
|
-
): Promise<[PublicKey, number]> {
|
|
55
|
-
return anchor.web3.PublicKey.findProgramAddress(
|
|
56
|
-
[
|
|
57
|
-
Buffer.from(anchor.utils.bytes.utf8.encode('user_orders')),
|
|
58
|
-
authority.toBuffer(),
|
|
59
|
-
],
|
|
60
|
-
programId
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export async function getUserOrdersAccountPublicKey(
|
|
65
|
-
programId: PublicKey,
|
|
66
|
-
authority: PublicKey
|
|
67
|
-
): Promise<PublicKey> {
|
|
68
|
-
return (await getUserOrdersAccountPublicKeyAndNonce(programId, authority))[0];
|
|
69
|
-
}
|