@velocity-exchange/sdk 0.0.2 → 0.0.5
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/CHANGELOG.md +15 -0
- package/README.md +5 -6
- package/bunfig.toml +3 -0
- package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +4 -2
- package/lib/browser/auctionSubscriber/auctionSubscriber.js +9 -4
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +4 -2
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +9 -4
- package/lib/browser/auctionSubscriber/types.d.ts +4 -2
- package/lib/browser/config.d.ts +3 -8
- package/lib/browser/config.js +14 -22
- package/lib/browser/constituentMap/constituentMap.d.ts +4 -2
- package/lib/browser/constituentMap/constituentMap.js +14 -10
- package/lib/browser/core/VelocityCore.d.ts +4 -0
- package/lib/browser/core/VelocityCore.js +3 -1
- package/lib/browser/decode/user.js +5 -5
- package/lib/browser/dlob/DLOB.js +1 -1
- package/lib/browser/dlob/DLOBNode.js +1 -2
- package/lib/browser/dlob/DLOBSubscriber.d.ts +3 -1
- package/lib/browser/dlob/DLOBSubscriber.js +19 -10
- package/lib/browser/dlob/types.d.ts +3 -1
- package/lib/browser/idl/drift.d.ts +59 -6
- package/lib/browser/idl/drift.json +6049 -806
- package/lib/browser/math/auction.d.ts +1 -1
- package/lib/browser/math/auction.js +2 -9
- package/lib/browser/math/orders.js +3 -3
- package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +3 -1
- package/lib/browser/orderSubscriber/OrderSubscriber.js +19 -11
- package/lib/browser/orderSubscriber/types.d.ts +3 -1
- package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +4 -2
- package/lib/browser/priorityFee/priorityFeeSubscriber.js +15 -11
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.d.ts +11 -9
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.js +18 -18
- package/lib/browser/priorityFee/types.d.ts +9 -5
- package/lib/browser/priorityFee/types.js +1 -1
- package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.d.ts +3 -12
- package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.js +3 -9
- package/lib/browser/swift/signedMsgUserAccountSubscriber.d.ts +11 -8
- package/lib/browser/swift/signedMsgUserAccountSubscriber.js +10 -5
- package/lib/browser/swift/swiftOrderSubscriber.d.ts +7 -4
- package/lib/browser/swift/swiftOrderSubscriber.js +19 -11
- package/lib/browser/types.d.ts +2 -2
- package/lib/browser/user.d.ts +3 -1
- package/lib/browser/user.js +93 -86
- package/lib/browser/userConfig.d.ts +4 -2
- package/lib/browser/userMap/referrerMap.d.ts +5 -3
- package/lib/browser/userMap/referrerMap.js +18 -14
- package/lib/browser/userMap/revenueShareEscrowMap.d.ts +5 -3
- package/lib/browser/userMap/revenueShareEscrowMap.js +18 -14
- package/lib/browser/userMap/userMap.d.ts +3 -1
- package/lib/browser/userMap/userMap.js +24 -19
- package/lib/browser/userMap/userMapConfig.d.ts +4 -2
- package/lib/browser/userMap/userStatsMap.d.ts +5 -3
- package/lib/browser/userMap/userStatsMap.js +15 -11
- package/lib/browser/userStats.d.ts +3 -1
- package/lib/browser/userStats.js +21 -15
- package/lib/browser/userStatsConfig.d.ts +4 -2
- package/lib/browser/util/deprecatedAlias.d.ts +26 -0
- package/lib/browser/util/deprecatedAlias.js +10 -0
- package/lib/browser/velocityClient.d.ts +6 -6
- package/lib/browser/velocityClient.js +6 -6
- package/lib/browser/velocityClientConfig.d.ts +7 -4
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +4 -2
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriber.js +9 -4
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +4 -2
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +9 -4
- package/lib/node/auctionSubscriber/types.d.ts +4 -2
- package/lib/node/auctionSubscriber/types.d.ts.map +1 -1
- package/lib/node/config.d.ts +3 -8
- package/lib/node/config.d.ts.map +1 -1
- package/lib/node/config.js +14 -22
- package/lib/node/constituentMap/constituentMap.d.ts +4 -2
- package/lib/node/constituentMap/constituentMap.d.ts.map +1 -1
- package/lib/node/constituentMap/constituentMap.js +14 -10
- package/lib/node/core/VelocityCore.d.ts +4 -0
- package/lib/node/core/VelocityCore.d.ts.map +1 -1
- package/lib/node/core/VelocityCore.js +3 -1
- package/lib/node/decode/user.js +5 -5
- package/lib/node/dlob/DLOB.js +1 -1
- package/lib/node/dlob/DLOBNode.js +1 -2
- package/lib/node/dlob/DLOBSubscriber.d.ts +3 -1
- package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
- package/lib/node/dlob/DLOBSubscriber.js +19 -10
- package/lib/node/dlob/types.d.ts +3 -1
- package/lib/node/dlob/types.d.ts.map +1 -1
- package/lib/node/idl/drift.d.ts +59 -6
- package/lib/node/idl/drift.d.ts.map +1 -1
- package/lib/node/idl/drift.json +6049 -806
- package/lib/node/math/auction.d.ts +1 -1
- package/lib/node/math/auction.d.ts.map +1 -1
- package/lib/node/math/auction.js +2 -9
- package/lib/node/math/orders.d.ts.map +1 -1
- package/lib/node/math/orders.js +3 -3
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts +3 -1
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
- package/lib/node/orderSubscriber/OrderSubscriber.js +19 -11
- package/lib/node/orderSubscriber/types.d.ts +3 -1
- package/lib/node/orderSubscriber/types.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts +4 -2
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriber.js +15 -11
- package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts +11 -9
- package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriberMap.js +18 -18
- package/lib/node/priorityFee/types.d.ts +9 -5
- package/lib/node/priorityFee/types.d.ts.map +1 -1
- package/lib/node/priorityFee/types.js +1 -1
- package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts +3 -12
- package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.js +3 -9
- package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts +11 -8
- package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/swift/signedMsgUserAccountSubscriber.js +10 -5
- package/lib/node/swift/swiftOrderSubscriber.d.ts +7 -4
- package/lib/node/swift/swiftOrderSubscriber.d.ts.map +1 -1
- package/lib/node/swift/swiftOrderSubscriber.js +19 -11
- package/lib/node/types.d.ts +2 -2
- package/lib/node/types.d.ts.map +1 -1
- package/lib/node/user.d.ts +3 -1
- package/lib/node/user.d.ts.map +1 -1
- package/lib/node/user.js +93 -86
- package/lib/node/userConfig.d.ts +4 -2
- package/lib/node/userConfig.d.ts.map +1 -1
- package/lib/node/userMap/referrerMap.d.ts +5 -3
- package/lib/node/userMap/referrerMap.d.ts.map +1 -1
- package/lib/node/userMap/referrerMap.js +18 -14
- package/lib/node/userMap/revenueShareEscrowMap.d.ts +5 -3
- package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
- package/lib/node/userMap/revenueShareEscrowMap.js +18 -14
- package/lib/node/userMap/userMap.d.ts +3 -1
- package/lib/node/userMap/userMap.d.ts.map +1 -1
- package/lib/node/userMap/userMap.js +24 -19
- package/lib/node/userMap/userMapConfig.d.ts +4 -2
- package/lib/node/userMap/userMapConfig.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.d.ts +5 -3
- package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.js +15 -11
- package/lib/node/userStats.d.ts +3 -1
- package/lib/node/userStats.d.ts.map +1 -1
- package/lib/node/userStats.js +21 -15
- package/lib/node/userStatsConfig.d.ts +4 -2
- package/lib/node/userStatsConfig.d.ts.map +1 -1
- package/lib/node/util/deprecatedAlias.d.ts +27 -0
- package/lib/node/util/deprecatedAlias.d.ts.map +1 -0
- package/lib/node/util/deprecatedAlias.js +10 -0
- package/lib/node/velocityClient.d.ts +6 -6
- package/lib/node/velocityClient.d.ts.map +1 -1
- package/lib/node/velocityClient.js +6 -6
- package/lib/node/velocityClientConfig.d.ts +7 -4
- package/lib/node/velocityClientConfig.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/auctionSubscriber/auctionSubscriber.ts +12 -6
- package/src/auctionSubscriber/auctionSubscriberGrpc.ts +12 -6
- package/src/auctionSubscriber/types.ts +5 -2
- package/src/config.ts +38 -27
- package/src/constituentMap/constituentMap.ts +17 -9
- package/src/core/VelocityCore.ts +6 -0
- package/src/decode/user.ts +5 -5
- package/src/dlob/DLOB.ts +1 -1
- package/src/dlob/DLOBNode.ts +1 -1
- package/src/dlob/DLOBSubscriber.ts +21 -11
- package/src/dlob/types.ts +3 -1
- package/src/idl/drift.json +23940 -18697
- package/src/idl/drift.ts +59 -6
- package/src/math/auction.ts +3 -10
- package/src/math/orders.ts +3 -6
- package/src/orderSubscriber/OrderSubscriber.ts +17 -7
- package/src/orderSubscriber/types.ts +3 -1
- package/src/priorityFee/priorityFeeSubscriber.ts +13 -9
- package/src/priorityFee/priorityFeeSubscriberMap.ts +23 -25
- package/src/priorityFee/types.ts +19 -9
- package/src/swift/grpcSignedMsgUserAccountSubscriber.ts +10 -23
- package/src/swift/signedMsgUserAccountSubscriber.ts +22 -14
- package/src/swift/swiftOrderSubscriber.ts +24 -16
- package/src/types.ts +2 -2
- package/src/user.ts +93 -82
- package/src/userConfig.ts +5 -2
- package/src/userMap/referrerMap.ts +19 -15
- package/src/userMap/revenueShareEscrowMap.ts +20 -16
- package/src/userMap/userMap.ts +20 -15
- package/src/userMap/userMapConfig.ts +6 -3
- package/src/userMap/userStatsMap.ts +19 -15
- package/src/userStats.ts +13 -7
- package/src/userStatsConfig.ts +5 -2
- package/src/util/deprecatedAlias.ts +21 -0
- package/src/velocityClient.ts +12 -12
- package/src/velocityClientConfig.ts +27 -42
- package/tests/auctions/test.ts +4 -4
- package/tests/decode/test.ts +1 -1
- package/tests/dlob/test.ts +5 -5
- package/tests/user/helpers.ts +1 -1
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
} from '../constants/perpMarkets';
|
|
5
5
|
import { VelocityClient } from '../velocityClient';
|
|
6
6
|
import { VelocityEnv } from '../config';
|
|
7
|
+
import { AtLeastOne } from '../util/deprecatedAlias';
|
|
7
8
|
import {
|
|
8
9
|
getUserAccountPublicKey,
|
|
9
10
|
getUserStatsAccountPublicKey,
|
|
@@ -27,10 +28,8 @@ export interface AccountGetter {
|
|
|
27
28
|
mustGetUserAccount(publicKey: string): Promise<UserAccount>;
|
|
28
29
|
}
|
|
29
30
|
|
|
30
|
-
|
|
31
|
-
driftClient: VelocityClient;
|
|
31
|
+
type SwiftOrderSubscriberConfigBase = {
|
|
32
32
|
userAccountGetter?: AccountGetter;
|
|
33
|
-
driftEnv: VelocityEnv;
|
|
34
33
|
endpoint?: string;
|
|
35
34
|
marketIndexes: number[];
|
|
36
35
|
/**
|
|
@@ -41,6 +40,10 @@ export type SwiftOrderSubscriberConfig = {
|
|
|
41
40
|
keypair: Keypair;
|
|
42
41
|
};
|
|
43
42
|
|
|
43
|
+
export type SwiftOrderSubscriberConfig = SwiftOrderSubscriberConfigBase &
|
|
44
|
+
AtLeastOne<'velocityEnv', 'driftEnv', VelocityEnv> &
|
|
45
|
+
AtLeastOne<'velocityClient', 'driftClient', VelocityClient>;
|
|
46
|
+
|
|
44
47
|
/**
|
|
45
48
|
* Swift order message received from WebSocket
|
|
46
49
|
*/
|
|
@@ -70,7 +73,11 @@ export class SwiftOrderSubscriber {
|
|
|
70
73
|
private heartbeatTimeout: ReturnType<typeof setTimeout> | null = null;
|
|
71
74
|
private readonly heartbeatIntervalMs = 60000;
|
|
72
75
|
private ws: WebSocket | null = null;
|
|
73
|
-
private
|
|
76
|
+
private velocityClient: VelocityClient;
|
|
77
|
+
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
78
|
+
private get driftClient(): VelocityClient {
|
|
79
|
+
return this.velocityClient;
|
|
80
|
+
}
|
|
74
81
|
public userAccountGetter?: AccountGetter; // In practice, this for now is just an OrderSubscriber or a UserMap
|
|
75
82
|
public onOrder: (
|
|
76
83
|
orderMessageRaw: SwiftOrderMessage,
|
|
@@ -83,7 +90,8 @@ export class SwiftOrderSubscriber {
|
|
|
83
90
|
subscribed = false;
|
|
84
91
|
|
|
85
92
|
constructor(private config: SwiftOrderSubscriberConfig) {
|
|
86
|
-
|
|
93
|
+
// Type-system guarantees at least one of the two is supplied.
|
|
94
|
+
this.velocityClient = (config.velocityClient ?? config.driftClient)!;
|
|
87
95
|
this.userAccountGetter = config.userAccountGetter;
|
|
88
96
|
}
|
|
89
97
|
|
|
@@ -97,10 +105,8 @@ export class SwiftOrderSubscriber {
|
|
|
97
105
|
}
|
|
98
106
|
|
|
99
107
|
getSymbolForMarketIndex(marketIndex: number): string {
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
? DevnetPerpMarkets
|
|
103
|
-
: MainnetPerpMarkets;
|
|
108
|
+
const env = this.config.velocityEnv ?? this.config.driftEnv;
|
|
109
|
+
const markets = env === 'devnet' ? DevnetPerpMarkets : MainnetPerpMarkets;
|
|
104
110
|
return markets[marketIndex].symbol;
|
|
105
111
|
}
|
|
106
112
|
|
|
@@ -156,10 +162,12 @@ export class SwiftOrderSubscriber {
|
|
|
156
162
|
): Promise<void> {
|
|
157
163
|
this.onOrder = onOrder;
|
|
158
164
|
|
|
165
|
+
const env = this.config.velocityEnv ?? this.config.driftEnv;
|
|
159
166
|
const endpoint =
|
|
160
|
-
this.config.endpoint
|
|
167
|
+
this.config.endpoint ??
|
|
168
|
+
(env === 'devnet'
|
|
161
169
|
? 'wss://master.swift.drift.trade/ws'
|
|
162
|
-
: 'wss://swift.drift.trade/ws';
|
|
170
|
+
: 'wss://swift.drift.trade/ws');
|
|
163
171
|
const ws = new WebSocket(
|
|
164
172
|
endpoint + '?pubkey=' + this.config.keypair.publicKey.toBase58()
|
|
165
173
|
);
|
|
@@ -202,7 +210,7 @@ export class SwiftOrderSubscriber {
|
|
|
202
210
|
)
|
|
203
211
|
);
|
|
204
212
|
const signedMessage =
|
|
205
|
-
this.
|
|
213
|
+
this.velocityClient.decodeSignedMsgOrderParamsMessage(
|
|
206
214
|
signedMsgOrderParamsBuf,
|
|
207
215
|
isDelegateSigner
|
|
208
216
|
);
|
|
@@ -279,7 +287,7 @@ export class SwiftOrderSubscriber {
|
|
|
279
287
|
).slice(0, 8)
|
|
280
288
|
)
|
|
281
289
|
);
|
|
282
|
-
const signedMessage = this.
|
|
290
|
+
const signedMessage = this.velocityClient.decodeSignedMsgOrderParamsMessage(
|
|
283
291
|
signedMsgOrderParamsBuf,
|
|
284
292
|
isDelegateSigner
|
|
285
293
|
);
|
|
@@ -289,14 +297,14 @@ export class SwiftOrderSubscriber {
|
|
|
289
297
|
const takerUserPubkey = isDelegateSigner
|
|
290
298
|
? (signedMessage as SignedMsgOrderParamsDelegateMessage).takerPubkey
|
|
291
299
|
: await getUserAccountPublicKey(
|
|
292
|
-
this.
|
|
300
|
+
this.velocityClient.program.programId,
|
|
293
301
|
takerAuthority,
|
|
294
302
|
(signedMessage as SignedMsgOrderParamsMessage).subAccountId
|
|
295
303
|
);
|
|
296
304
|
const takerUserAccount = await this.userAccountGetter.mustGetUserAccount(
|
|
297
305
|
takerUserPubkey.toString()
|
|
298
306
|
);
|
|
299
|
-
const ixs = await this.
|
|
307
|
+
const ixs = await this.velocityClient.getPlaceAndMakeSignedMsgPerpOrderIxs(
|
|
300
308
|
{
|
|
301
309
|
orderParams: signedMsgOrderParamsBuf,
|
|
302
310
|
signature: Buffer.from(orderMessageRaw.order_signature, 'base64'),
|
|
@@ -306,7 +314,7 @@ export class SwiftOrderSubscriber {
|
|
|
306
314
|
taker: takerUserPubkey,
|
|
307
315
|
takerUserAccount,
|
|
308
316
|
takerStats: getUserStatsAccountPublicKey(
|
|
309
|
-
this.
|
|
317
|
+
this.velocityClient.program.programId,
|
|
310
318
|
takerUserAccount.authority
|
|
311
319
|
),
|
|
312
320
|
signingAuthority: signingAuthority,
|
package/src/types.ts
CHANGED
|
@@ -1156,7 +1156,7 @@ export type Order = {
|
|
|
1156
1156
|
existingPositionDirection: PositionDirection;
|
|
1157
1157
|
postOnly: boolean;
|
|
1158
1158
|
immediateOrCancel: boolean;
|
|
1159
|
-
oraclePriceOffset:
|
|
1159
|
+
oraclePriceOffset: BN;
|
|
1160
1160
|
auctionDuration: number;
|
|
1161
1161
|
auctionStartPrice: BN;
|
|
1162
1162
|
auctionEndPrice: BN;
|
|
@@ -1178,7 +1178,7 @@ export type OrderParams = {
|
|
|
1178
1178
|
bitFlags: number;
|
|
1179
1179
|
triggerPrice: BN | null;
|
|
1180
1180
|
triggerCondition: OrderTriggerCondition;
|
|
1181
|
-
oraclePriceOffset:
|
|
1181
|
+
oraclePriceOffset: BN | null;
|
|
1182
1182
|
auctionDuration: number | null;
|
|
1183
1183
|
maxTs: BN | null;
|
|
1184
1184
|
auctionStartPrice: BN | null;
|