@drift-labs/sdk 2.107.0-beta.4 → 2.107.0-beta.6

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/VERSION CHANGED
@@ -1 +1 @@
1
- 2.107.0-beta.4
1
+ 2.107.0-beta.6
@@ -10,18 +10,18 @@ export type SwiftOrderSubscriberConfig = {
10
10
  };
11
11
  export declare class SwiftOrderSubscriber {
12
12
  private config;
13
- private onOrder;
14
13
  private heartbeatTimeout;
15
14
  private readonly heartbeatIntervalMs;
16
15
  private ws;
17
16
  private driftClient;
18
- private userMap;
17
+ userMap: UserMap;
18
+ onOrder: (orderMessageRaw: any, swiftOrderParamsMessage: SwiftOrderParamsMessage) => Promise<void>;
19
19
  subscribed: boolean;
20
- constructor(config: SwiftOrderSubscriberConfig, onOrder: (orderMessageRaw: any, swiftOrderParamsMessage: SwiftOrderParamsMessage) => Promise<void>);
20
+ constructor(config: SwiftOrderSubscriberConfig);
21
21
  getSymbolForMarketIndex(marketIndex: number): string;
22
22
  generateChallengeResponse(nonce: string): string;
23
23
  handleAuthMessage(message: any): void;
24
- subscribe(): Promise<void>;
24
+ subscribe(onOrder: (orderMessageRaw: any, swiftOrderParamsMessage: SwiftOrderParamsMessage) => Promise<void>): Promise<void>;
25
25
  getPlaceAndMakeSwiftOrderIxs(orderMessageRaw: any, swiftOrderParamsMessage: SwiftOrderParamsMessage, makerOrderParams: OptionalOrderParams): Promise<TransactionInstruction[]>;
26
26
  private startHeartbeatTimer;
27
27
  private reconnect;
@@ -10,9 +10,8 @@ const tweetnacl_1 = __importDefault(require("tweetnacl"));
10
10
  const tweetnacl_util_1 = require("tweetnacl-util");
11
11
  const ws_1 = __importDefault(require("ws"));
12
12
  class SwiftOrderSubscriber {
13
- constructor(config, onOrder) {
13
+ constructor(config) {
14
14
  this.config = config;
15
- this.onOrder = onOrder;
16
15
  this.heartbeatTimeout = null;
17
16
  this.heartbeatIntervalMs = 60000;
18
17
  this.ws = null;
@@ -55,7 +54,8 @@ class SwiftOrderSubscriber {
55
54
  });
56
55
  }
57
56
  }
58
- async subscribe() {
57
+ async subscribe(onOrder) {
58
+ this.onOrder = onOrder;
59
59
  const endpoint = this.config.endpoint || this.config.driftEnv === 'devnet'
60
60
  ? 'wss://master.swift.drift.trade/ws'
61
61
  : 'wss://swift.drift.trade/ws';
@@ -77,7 +77,7 @@ class SwiftOrderSubscriber {
77
77
  console.error(`order has no price: ${JSON.stringify(swiftOrderParamsMessage.swiftOrderParams)}`);
78
78
  return;
79
79
  }
80
- this.onOrder(order, swiftOrderParamsMessage);
80
+ onOrder(order, swiftOrderParamsMessage);
81
81
  }
82
82
  });
83
83
  ws.on('close', () => {
@@ -113,6 +113,9 @@ class SwiftOrderSubscriber {
113
113
  if (this.heartbeatTimeout) {
114
114
  clearTimeout(this.heartbeatTimeout);
115
115
  }
116
+ if (!this.onOrder) {
117
+ throw new Error('onOrder callback function must be set');
118
+ }
116
119
  this.heartbeatTimeout = setTimeout(() => {
117
120
  console.warn('No heartbeat received within 30 seconds, reconnecting...');
118
121
  this.reconnect();
@@ -125,7 +128,7 @@ class SwiftOrderSubscriber {
125
128
  }
126
129
  console.log('Reconnecting to WebSocket...');
127
130
  setTimeout(() => {
128
- this.subscribe();
131
+ this.subscribe(this.onOrder);
129
132
  }, 1000);
130
133
  }
131
134
  }
@@ -10,18 +10,18 @@ export type SwiftOrderSubscriberConfig = {
10
10
  };
11
11
  export declare class SwiftOrderSubscriber {
12
12
  private config;
13
- private onOrder;
14
13
  private heartbeatTimeout;
15
14
  private readonly heartbeatIntervalMs;
16
15
  private ws;
17
16
  private driftClient;
18
- private userMap;
17
+ userMap: UserMap;
18
+ onOrder: (orderMessageRaw: any, swiftOrderParamsMessage: SwiftOrderParamsMessage) => Promise<void>;
19
19
  subscribed: boolean;
20
- constructor(config: SwiftOrderSubscriberConfig, onOrder: (orderMessageRaw: any, swiftOrderParamsMessage: SwiftOrderParamsMessage) => Promise<void>);
20
+ constructor(config: SwiftOrderSubscriberConfig);
21
21
  getSymbolForMarketIndex(marketIndex: number): string;
22
22
  generateChallengeResponse(nonce: string): string;
23
23
  handleAuthMessage(message: any): void;
24
- subscribe(): Promise<void>;
24
+ subscribe(onOrder: (orderMessageRaw: any, swiftOrderParamsMessage: SwiftOrderParamsMessage) => Promise<void>): Promise<void>;
25
25
  getPlaceAndMakeSwiftOrderIxs(orderMessageRaw: any, swiftOrderParamsMessage: SwiftOrderParamsMessage, makerOrderParams: OptionalOrderParams): Promise<TransactionInstruction[]>;
26
26
  private startHeartbeatTimer;
27
27
  private reconnect;
@@ -10,9 +10,8 @@ const tweetnacl_1 = __importDefault(require("tweetnacl"));
10
10
  const tweetnacl_util_1 = require("tweetnacl-util");
11
11
  const ws_1 = __importDefault(require("ws"));
12
12
  class SwiftOrderSubscriber {
13
- constructor(config, onOrder) {
13
+ constructor(config) {
14
14
  this.config = config;
15
- this.onOrder = onOrder;
16
15
  this.heartbeatTimeout = null;
17
16
  this.heartbeatIntervalMs = 60000;
18
17
  this.ws = null;
@@ -55,7 +54,8 @@ class SwiftOrderSubscriber {
55
54
  });
56
55
  }
57
56
  }
58
- async subscribe() {
57
+ async subscribe(onOrder) {
58
+ this.onOrder = onOrder;
59
59
  const endpoint = this.config.endpoint || this.config.driftEnv === 'devnet'
60
60
  ? 'wss://master.swift.drift.trade/ws'
61
61
  : 'wss://swift.drift.trade/ws';
@@ -77,7 +77,7 @@ class SwiftOrderSubscriber {
77
77
  console.error(`order has no price: ${JSON.stringify(swiftOrderParamsMessage.swiftOrderParams)}`);
78
78
  return;
79
79
  }
80
- this.onOrder(order, swiftOrderParamsMessage);
80
+ onOrder(order, swiftOrderParamsMessage);
81
81
  }
82
82
  });
83
83
  ws.on('close', () => {
@@ -113,6 +113,9 @@ class SwiftOrderSubscriber {
113
113
  if (this.heartbeatTimeout) {
114
114
  clearTimeout(this.heartbeatTimeout);
115
115
  }
116
+ if (!this.onOrder) {
117
+ throw new Error('onOrder callback function must be set');
118
+ }
116
119
  this.heartbeatTimeout = setTimeout(() => {
117
120
  console.warn('No heartbeat received within 30 seconds, reconnecting...');
118
121
  this.reconnect();
@@ -125,7 +128,7 @@ class SwiftOrderSubscriber {
125
128
  }
126
129
  console.log('Reconnecting to WebSocket...');
127
130
  setTimeout(() => {
128
- this.subscribe();
131
+ this.subscribe(this.onOrder);
129
132
  }, 1000);
130
133
  }
131
134
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drift-labs/sdk",
3
- "version": "2.107.0-beta.4",
3
+ "version": "2.107.0-beta.6",
4
4
  "main": "lib/node/index.js",
5
5
  "types": "lib/node/index.d.ts",
6
6
  "browser": "./lib/browser/index.js",
@@ -30,16 +30,15 @@ export class SwiftOrderSubscriber {
30
30
  private readonly heartbeatIntervalMs = 60000;
31
31
  private ws: WebSocket | null = null;
32
32
  private driftClient: DriftClient;
33
- private userMap: UserMap;
33
+ public userMap: UserMap;
34
+ public onOrder: (
35
+ orderMessageRaw: any,
36
+ swiftOrderParamsMessage: SwiftOrderParamsMessage
37
+ ) => Promise<void>;
38
+
34
39
  subscribed = false;
35
40
 
36
- constructor(
37
- private config: SwiftOrderSubscriberConfig,
38
- private onOrder: (
39
- orderMessageRaw: any,
40
- swiftOrderParamsMessage: SwiftOrderParamsMessage
41
- ) => Promise<void>
42
- ) {
41
+ constructor(private config: SwiftOrderSubscriberConfig) {
43
42
  this.driftClient = config.driftClient;
44
43
  this.userMap = config.userMap;
45
44
  }
@@ -91,7 +90,14 @@ export class SwiftOrderSubscriber {
91
90
  }
92
91
  }
93
92
 
94
- async subscribe(): Promise<void> {
93
+ async subscribe(
94
+ onOrder: (
95
+ orderMessageRaw: any,
96
+ swiftOrderParamsMessage: SwiftOrderParamsMessage
97
+ ) => Promise<void>
98
+ ): Promise<void> {
99
+ this.onOrder = onOrder;
100
+
95
101
  const endpoint =
96
102
  this.config.endpoint || this.config.driftEnv === 'devnet'
97
103
  ? 'wss://master.swift.drift.trade/ws'
@@ -132,7 +138,7 @@ export class SwiftOrderSubscriber {
132
138
  return;
133
139
  }
134
140
 
135
- this.onOrder(order, swiftOrderParamsMessage);
141
+ onOrder(order, swiftOrderParamsMessage);
136
142
  }
137
143
  });
138
144
 
@@ -193,6 +199,9 @@ export class SwiftOrderSubscriber {
193
199
  if (this.heartbeatTimeout) {
194
200
  clearTimeout(this.heartbeatTimeout);
195
201
  }
202
+ if (!this.onOrder) {
203
+ throw new Error('onOrder callback function must be set');
204
+ }
196
205
  this.heartbeatTimeout = setTimeout(() => {
197
206
  console.warn('No heartbeat received within 30 seconds, reconnecting...');
198
207
  this.reconnect();
@@ -207,7 +216,7 @@ export class SwiftOrderSubscriber {
207
216
 
208
217
  console.log('Reconnecting to WebSocket...');
209
218
  setTimeout(() => {
210
- this.subscribe();
219
+ this.subscribe(this.onOrder);
211
220
  }, 1000);
212
221
  }
213
222
  }