@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.
Files changed (192) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +5 -6
  3. package/bunfig.toml +3 -0
  4. package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +4 -2
  5. package/lib/browser/auctionSubscriber/auctionSubscriber.js +9 -4
  6. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +4 -2
  7. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +9 -4
  8. package/lib/browser/auctionSubscriber/types.d.ts +4 -2
  9. package/lib/browser/config.d.ts +3 -8
  10. package/lib/browser/config.js +14 -22
  11. package/lib/browser/constituentMap/constituentMap.d.ts +4 -2
  12. package/lib/browser/constituentMap/constituentMap.js +14 -10
  13. package/lib/browser/core/VelocityCore.d.ts +4 -0
  14. package/lib/browser/core/VelocityCore.js +3 -1
  15. package/lib/browser/decode/user.js +5 -5
  16. package/lib/browser/dlob/DLOB.js +1 -1
  17. package/lib/browser/dlob/DLOBNode.js +1 -2
  18. package/lib/browser/dlob/DLOBSubscriber.d.ts +3 -1
  19. package/lib/browser/dlob/DLOBSubscriber.js +19 -10
  20. package/lib/browser/dlob/types.d.ts +3 -1
  21. package/lib/browser/idl/drift.d.ts +59 -6
  22. package/lib/browser/idl/drift.json +6049 -806
  23. package/lib/browser/math/auction.d.ts +1 -1
  24. package/lib/browser/math/auction.js +2 -9
  25. package/lib/browser/math/orders.js +3 -3
  26. package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +3 -1
  27. package/lib/browser/orderSubscriber/OrderSubscriber.js +19 -11
  28. package/lib/browser/orderSubscriber/types.d.ts +3 -1
  29. package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +4 -2
  30. package/lib/browser/priorityFee/priorityFeeSubscriber.js +15 -11
  31. package/lib/browser/priorityFee/priorityFeeSubscriberMap.d.ts +11 -9
  32. package/lib/browser/priorityFee/priorityFeeSubscriberMap.js +18 -18
  33. package/lib/browser/priorityFee/types.d.ts +9 -5
  34. package/lib/browser/priorityFee/types.js +1 -1
  35. package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.d.ts +3 -12
  36. package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.js +3 -9
  37. package/lib/browser/swift/signedMsgUserAccountSubscriber.d.ts +11 -8
  38. package/lib/browser/swift/signedMsgUserAccountSubscriber.js +10 -5
  39. package/lib/browser/swift/swiftOrderSubscriber.d.ts +7 -4
  40. package/lib/browser/swift/swiftOrderSubscriber.js +19 -11
  41. package/lib/browser/types.d.ts +2 -2
  42. package/lib/browser/user.d.ts +3 -1
  43. package/lib/browser/user.js +93 -86
  44. package/lib/browser/userConfig.d.ts +4 -2
  45. package/lib/browser/userMap/referrerMap.d.ts +5 -3
  46. package/lib/browser/userMap/referrerMap.js +18 -14
  47. package/lib/browser/userMap/revenueShareEscrowMap.d.ts +5 -3
  48. package/lib/browser/userMap/revenueShareEscrowMap.js +18 -14
  49. package/lib/browser/userMap/userMap.d.ts +3 -1
  50. package/lib/browser/userMap/userMap.js +24 -19
  51. package/lib/browser/userMap/userMapConfig.d.ts +4 -2
  52. package/lib/browser/userMap/userStatsMap.d.ts +5 -3
  53. package/lib/browser/userMap/userStatsMap.js +15 -11
  54. package/lib/browser/userStats.d.ts +3 -1
  55. package/lib/browser/userStats.js +21 -15
  56. package/lib/browser/userStatsConfig.d.ts +4 -2
  57. package/lib/browser/util/deprecatedAlias.d.ts +26 -0
  58. package/lib/browser/util/deprecatedAlias.js +10 -0
  59. package/lib/browser/velocityClient.d.ts +6 -6
  60. package/lib/browser/velocityClient.js +6 -6
  61. package/lib/browser/velocityClientConfig.d.ts +7 -4
  62. package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +4 -2
  63. package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
  64. package/lib/node/auctionSubscriber/auctionSubscriber.js +9 -4
  65. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +4 -2
  66. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
  67. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +9 -4
  68. package/lib/node/auctionSubscriber/types.d.ts +4 -2
  69. package/lib/node/auctionSubscriber/types.d.ts.map +1 -1
  70. package/lib/node/config.d.ts +3 -8
  71. package/lib/node/config.d.ts.map +1 -1
  72. package/lib/node/config.js +14 -22
  73. package/lib/node/constituentMap/constituentMap.d.ts +4 -2
  74. package/lib/node/constituentMap/constituentMap.d.ts.map +1 -1
  75. package/lib/node/constituentMap/constituentMap.js +14 -10
  76. package/lib/node/core/VelocityCore.d.ts +4 -0
  77. package/lib/node/core/VelocityCore.d.ts.map +1 -1
  78. package/lib/node/core/VelocityCore.js +3 -1
  79. package/lib/node/decode/user.js +5 -5
  80. package/lib/node/dlob/DLOB.js +1 -1
  81. package/lib/node/dlob/DLOBNode.js +1 -2
  82. package/lib/node/dlob/DLOBSubscriber.d.ts +3 -1
  83. package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
  84. package/lib/node/dlob/DLOBSubscriber.js +19 -10
  85. package/lib/node/dlob/types.d.ts +3 -1
  86. package/lib/node/dlob/types.d.ts.map +1 -1
  87. package/lib/node/idl/drift.d.ts +59 -6
  88. package/lib/node/idl/drift.d.ts.map +1 -1
  89. package/lib/node/idl/drift.json +6049 -806
  90. package/lib/node/math/auction.d.ts +1 -1
  91. package/lib/node/math/auction.d.ts.map +1 -1
  92. package/lib/node/math/auction.js +2 -9
  93. package/lib/node/math/orders.d.ts.map +1 -1
  94. package/lib/node/math/orders.js +3 -3
  95. package/lib/node/orderSubscriber/OrderSubscriber.d.ts +3 -1
  96. package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
  97. package/lib/node/orderSubscriber/OrderSubscriber.js +19 -11
  98. package/lib/node/orderSubscriber/types.d.ts +3 -1
  99. package/lib/node/orderSubscriber/types.d.ts.map +1 -1
  100. package/lib/node/priorityFee/priorityFeeSubscriber.d.ts +4 -2
  101. package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
  102. package/lib/node/priorityFee/priorityFeeSubscriber.js +15 -11
  103. package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts +11 -9
  104. package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts.map +1 -1
  105. package/lib/node/priorityFee/priorityFeeSubscriberMap.js +18 -18
  106. package/lib/node/priorityFee/types.d.ts +9 -5
  107. package/lib/node/priorityFee/types.d.ts.map +1 -1
  108. package/lib/node/priorityFee/types.js +1 -1
  109. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts +3 -12
  110. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts.map +1 -1
  111. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.js +3 -9
  112. package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts +11 -8
  113. package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts.map +1 -1
  114. package/lib/node/swift/signedMsgUserAccountSubscriber.js +10 -5
  115. package/lib/node/swift/swiftOrderSubscriber.d.ts +7 -4
  116. package/lib/node/swift/swiftOrderSubscriber.d.ts.map +1 -1
  117. package/lib/node/swift/swiftOrderSubscriber.js +19 -11
  118. package/lib/node/types.d.ts +2 -2
  119. package/lib/node/types.d.ts.map +1 -1
  120. package/lib/node/user.d.ts +3 -1
  121. package/lib/node/user.d.ts.map +1 -1
  122. package/lib/node/user.js +93 -86
  123. package/lib/node/userConfig.d.ts +4 -2
  124. package/lib/node/userConfig.d.ts.map +1 -1
  125. package/lib/node/userMap/referrerMap.d.ts +5 -3
  126. package/lib/node/userMap/referrerMap.d.ts.map +1 -1
  127. package/lib/node/userMap/referrerMap.js +18 -14
  128. package/lib/node/userMap/revenueShareEscrowMap.d.ts +5 -3
  129. package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
  130. package/lib/node/userMap/revenueShareEscrowMap.js +18 -14
  131. package/lib/node/userMap/userMap.d.ts +3 -1
  132. package/lib/node/userMap/userMap.d.ts.map +1 -1
  133. package/lib/node/userMap/userMap.js +24 -19
  134. package/lib/node/userMap/userMapConfig.d.ts +4 -2
  135. package/lib/node/userMap/userMapConfig.d.ts.map +1 -1
  136. package/lib/node/userMap/userStatsMap.d.ts +5 -3
  137. package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
  138. package/lib/node/userMap/userStatsMap.js +15 -11
  139. package/lib/node/userStats.d.ts +3 -1
  140. package/lib/node/userStats.d.ts.map +1 -1
  141. package/lib/node/userStats.js +21 -15
  142. package/lib/node/userStatsConfig.d.ts +4 -2
  143. package/lib/node/userStatsConfig.d.ts.map +1 -1
  144. package/lib/node/util/deprecatedAlias.d.ts +27 -0
  145. package/lib/node/util/deprecatedAlias.d.ts.map +1 -0
  146. package/lib/node/util/deprecatedAlias.js +10 -0
  147. package/lib/node/velocityClient.d.ts +6 -6
  148. package/lib/node/velocityClient.d.ts.map +1 -1
  149. package/lib/node/velocityClient.js +6 -6
  150. package/lib/node/velocityClientConfig.d.ts +7 -4
  151. package/lib/node/velocityClientConfig.d.ts.map +1 -1
  152. package/package.json +1 -1
  153. package/src/auctionSubscriber/auctionSubscriber.ts +12 -6
  154. package/src/auctionSubscriber/auctionSubscriberGrpc.ts +12 -6
  155. package/src/auctionSubscriber/types.ts +5 -2
  156. package/src/config.ts +38 -27
  157. package/src/constituentMap/constituentMap.ts +17 -9
  158. package/src/core/VelocityCore.ts +6 -0
  159. package/src/decode/user.ts +5 -5
  160. package/src/dlob/DLOB.ts +1 -1
  161. package/src/dlob/DLOBNode.ts +1 -1
  162. package/src/dlob/DLOBSubscriber.ts +21 -11
  163. package/src/dlob/types.ts +3 -1
  164. package/src/idl/drift.json +23940 -18697
  165. package/src/idl/drift.ts +59 -6
  166. package/src/math/auction.ts +3 -10
  167. package/src/math/orders.ts +3 -6
  168. package/src/orderSubscriber/OrderSubscriber.ts +17 -7
  169. package/src/orderSubscriber/types.ts +3 -1
  170. package/src/priorityFee/priorityFeeSubscriber.ts +13 -9
  171. package/src/priorityFee/priorityFeeSubscriberMap.ts +23 -25
  172. package/src/priorityFee/types.ts +19 -9
  173. package/src/swift/grpcSignedMsgUserAccountSubscriber.ts +10 -23
  174. package/src/swift/signedMsgUserAccountSubscriber.ts +22 -14
  175. package/src/swift/swiftOrderSubscriber.ts +24 -16
  176. package/src/types.ts +2 -2
  177. package/src/user.ts +93 -82
  178. package/src/userConfig.ts +5 -2
  179. package/src/userMap/referrerMap.ts +19 -15
  180. package/src/userMap/revenueShareEscrowMap.ts +20 -16
  181. package/src/userMap/userMap.ts +20 -15
  182. package/src/userMap/userMapConfig.ts +6 -3
  183. package/src/userMap/userStatsMap.ts +19 -15
  184. package/src/userStats.ts +13 -7
  185. package/src/userStatsConfig.ts +5 -2
  186. package/src/util/deprecatedAlias.ts +21 -0
  187. package/src/velocityClient.ts +12 -12
  188. package/src/velocityClientConfig.ts +27 -42
  189. package/tests/auctions/test.ts +4 -4
  190. package/tests/decode/test.ts +1 -1
  191. package/tests/dlob/test.ts +5 -5
  192. 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
- export type SwiftOrderSubscriberConfig = {
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 driftClient: VelocityClient;
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
- this.driftClient = config.driftClient;
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 markets =
101
- this.config.driftEnv === 'devnet'
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 || this.config.driftEnv === 'devnet'
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.driftClient.decodeSignedMsgOrderParamsMessage(
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.driftClient.decodeSignedMsgOrderParamsMessage(
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.driftClient.program.programId,
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.driftClient.getPlaceAndMakeSignedMsgPerpOrderIxs(
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.driftClient.program.programId,
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: number;
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: number | null;
1181
+ oraclePriceOffset: BN | null;
1182
1182
  auctionDuration: number | null;
1183
1183
  maxTs: BN | null;
1184
1184
  auctionStartPrice: BN | null;