@paraswap/dex-lib 3.10.3 → 3.11.0-bebop

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 (193) hide show
  1. package/build/abi/Aave_GSM.json +751 -0
  2. package/build/abi/USDM.json +807 -0
  3. package/build/abi/{integral/pool.json → cables/CablesMainnetRFQ.json} +563 -521
  4. package/build/abi/inception/inception-ineth-pool.json +1062 -0
  5. package/build/abi/inception/inception-ineth.json +609 -0
  6. package/build/abi/inception/inception-ratio-feed.json +329 -0
  7. package/build/abi/inception/inception-vault.json +991 -0
  8. package/build/config.js +1 -0
  9. package/build/config.js.map +1 -1
  10. package/build/dex/aave-v1/aave-v1.d.ts +2 -1
  11. package/build/dex/aave-v1/aave-v1.js +22 -0
  12. package/build/dex/aave-v1/aave-v1.js.map +1 -1
  13. package/build/dex/balancer-v2/config.js +1 -1
  14. package/build/dex/bebop/bebop.js +1 -1
  15. package/build/dex/bebop/bebop.js.map +1 -1
  16. package/build/dex/bebop/config.js +5 -0
  17. package/build/dex/bebop/config.js.map +1 -1
  18. package/build/dex/bebop/rate-fetcher.d.ts +3 -1
  19. package/build/dex/bebop/rate-fetcher.js +42 -2
  20. package/build/dex/bebop/rate-fetcher.js.map +1 -1
  21. package/build/dex/bebop/validators.d.ts +2 -0
  22. package/build/dex/bebop/validators.js +4 -1
  23. package/build/dex/bebop/validators.js.map +1 -1
  24. package/build/dex/bebop/websocket-fetcher.d.ts +35 -0
  25. package/build/dex/bebop/websocket-fetcher.js +87 -0
  26. package/build/dex/bebop/websocket-fetcher.js.map +1 -0
  27. package/build/dex/cables/cables.d.ts +57 -0
  28. package/build/dex/cables/cables.js +471 -0
  29. package/build/dex/cables/cables.js.map +1 -0
  30. package/build/dex/cables/config.d.ts +4 -0
  31. package/build/dex/cables/config.js +15 -0
  32. package/build/dex/cables/config.js.map +1 -0
  33. package/build/dex/cables/constants.d.ts +19 -0
  34. package/build/dex/cables/constants.js +26 -0
  35. package/build/dex/cables/constants.js.map +1 -0
  36. package/build/dex/cables/rate-fetcher.d.ts +34 -0
  37. package/build/dex/cables/rate-fetcher.js +106 -0
  38. package/build/dex/cables/rate-fetcher.js.map +1 -0
  39. package/build/dex/cables/types.d.ts +106 -0
  40. package/build/dex/cables/types.js +12 -0
  41. package/build/dex/cables/types.js.map +1 -0
  42. package/build/dex/cables/validators.d.ts +5 -0
  43. package/build/dex/cables/validators.js +49 -0
  44. package/build/dex/cables/validators.js.map +1 -0
  45. package/build/dex/idle-dao/idle-dao-pool.d.ts +56 -0
  46. package/build/dex/idle-dao/idle-dao-pool.js +176 -0
  47. package/build/dex/idle-dao/idle-dao-pool.js.map +1 -0
  48. package/build/dex/idle-dao/idle-dao-pooling-pool.d.ts +16 -0
  49. package/build/dex/idle-dao/idle-dao-pooling-pool.js +57 -0
  50. package/build/dex/idle-dao/idle-dao-pooling-pool.js.map +1 -0
  51. package/build/dex/idle-dao/scripts.d.ts +9 -0
  52. package/build/dex/idle-dao/scripts.js +552 -0
  53. package/build/dex/idle-dao/scripts.js.map +1 -0
  54. package/build/dex/inception/config.d.ts +4 -0
  55. package/build/dex/inception/config.js +109 -0
  56. package/build/dex/inception/config.js.map +1 -0
  57. package/build/dex/inception/inception-event-pool.d.ts +16 -0
  58. package/build/dex/inception/inception-event-pool.js +51 -0
  59. package/build/dex/inception/inception-event-pool.js.map +1 -0
  60. package/build/dex/{integral/integral.d.ts → inception/inception-native.d.ts} +21 -19
  61. package/build/dex/inception/inception-native.js +131 -0
  62. package/build/dex/inception/inception-native.js.map +1 -0
  63. package/build/dex/inception/inception-pool.d.ts +18 -0
  64. package/build/dex/inception/inception-pool.js +32 -0
  65. package/build/dex/inception/inception-pool.js.map +1 -0
  66. package/build/dex/inception/inception-price-feed.d.ts +19 -0
  67. package/build/dex/inception/inception-price-feed.js +51 -0
  68. package/build/dex/inception/inception-price-feed.js.map +1 -0
  69. package/build/dex/inception/inception.d.ts +43 -0
  70. package/build/dex/inception/inception.js +204 -0
  71. package/build/dex/inception/inception.js.map +1 -0
  72. package/build/dex/inception/tokens.d.ts +9 -0
  73. package/build/dex/inception/tokens.js +28 -0
  74. package/build/dex/inception/tokens.js.map +1 -0
  75. package/build/dex/inception/types.d.ts +22 -0
  76. package/build/dex/inception/types.js +3 -0
  77. package/build/dex/inception/types.js.map +1 -0
  78. package/build/dex/inception/utils.d.ts +6 -0
  79. package/build/dex/inception/utils.js +37 -0
  80. package/build/dex/inception/utils.js.map +1 -0
  81. package/build/dex/jarvis.d.ts +2 -1
  82. package/build/dex/jarvis.js +58 -0
  83. package/build/dex/jarvis.js.map +1 -1
  84. package/build/dex/platypus/platypus.d.ts +2 -1
  85. package/build/dex/platypus/platypus.js +31 -0
  86. package/build/dex/platypus/platypus.js.map +1 -1
  87. package/build/dex/swaap-v1/swaap-v1.d.ts +2 -1
  88. package/build/dex/swaap-v1/swaap-v1.js +10 -0
  89. package/build/dex/swaap-v1/swaap-v1.js.map +1 -1
  90. package/build/dex/zerox/index.d.ts +4 -26
  91. package/build/dex/zerox/index.js +50 -42
  92. package/build/dex/zerox/index.js.map +1 -1
  93. package/build/dex/zerox/types.d.ts +29 -0
  94. package/build/dex/zerox/types.js +8 -1
  95. package/build/dex/zerox/types.js.map +1 -1
  96. package/build/lib/fetcher/wsFetcher.d.ts +7 -3
  97. package/build/lib/fetcher/wsFetcher.js +64 -51
  98. package/build/lib/fetcher/wsFetcher.js.map +1 -1
  99. package/package.json +4 -2
  100. package/src/config.ts +1 -0
  101. package/src/dex/balancer-v2/config.ts +1 -1
  102. package/src/dex/bebop/bebop-e2e.test.ts +21 -0
  103. package/src/dex/bebop/bebop.proto +15 -0
  104. package/src/dex/bebop/bebop.ts +1 -1
  105. package/src/dex/bebop/config.ts +5 -0
  106. package/src/dex/bebop/rate-fetcher.ts +51 -6
  107. package/src/dex/bebop/validators.ts +4 -0
  108. package/src/lib/fetcher/wsFetcher.ts +79 -66
  109. package/.idea/aws.xml +0 -17
  110. package/.idea/codeStyles/Project.xml +0 -19
  111. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  112. package/.idea/misc.xml +0 -6
  113. package/.idea/modules.xml +0 -8
  114. package/.idea/paraswap-dex-lib.iml +0 -9
  115. package/.idea/prettier.xml +0 -7
  116. package/.idea/vcs.xml +0 -6
  117. package/build/abi/integral/factory.json +0 -333
  118. package/build/abi/integral/oracle.json +0 -501
  119. package/build/abi/integral/relayer.json +0 -1536
  120. package/build/dex/bProtocol.d.ts +0 -18
  121. package/build/dex/bProtocol.js +0 -39
  122. package/build/dex/bProtocol.js.map +0 -1
  123. package/build/dex/bancor.d.ts +0 -26
  124. package/build/dex/bancor.js +0 -58
  125. package/build/dex/bancor.js.map +0 -1
  126. package/build/dex/compound.d.ts +0 -18
  127. package/build/dex/compound.js +0 -46
  128. package/build/dex/compound.js.map +0 -1
  129. package/build/dex/curve-v2.d.ts +0 -58
  130. package/build/dex/curve-v2.js +0 -180
  131. package/build/dex/curve-v2.js.map +0 -1
  132. package/build/dex/dodo-v1.d.ts +0 -33
  133. package/build/dex/dodo-v1.js +0 -63
  134. package/build/dex/dodo-v1.js.map +0 -1
  135. package/build/dex/fluid-dex/fluid-dex-generate-pool.d.ts +0 -49
  136. package/build/dex/fluid-dex/fluid-dex-generate-pool.js +0 -104
  137. package/build/dex/fluid-dex/fluid-dex-generate-pool.js.map +0 -1
  138. package/build/dex/fluid-dex/fluid-dex-pool.d.ts +0 -47
  139. package/build/dex/fluid-dex/fluid-dex-pool.js +0 -119
  140. package/build/dex/fluid-dex/fluid-dex-pool.js.map +0 -1
  141. package/build/dex/integral/config.d.ts +0 -4
  142. package/build/dex/integral/config.js +0 -20
  143. package/build/dex/integral/config.js.map +0 -1
  144. package/build/dex/integral/context.d.ts +0 -40
  145. package/build/dex/integral/context.js +0 -158
  146. package/build/dex/integral/context.js.map +0 -1
  147. package/build/dex/integral/integral-factory.d.ts +0 -24
  148. package/build/dex/integral/integral-factory.js +0 -95
  149. package/build/dex/integral/integral-factory.js.map +0 -1
  150. package/build/dex/integral/integral-pool.d.ts +0 -50
  151. package/build/dex/integral/integral-pool.js +0 -149
  152. package/build/dex/integral/integral-pool.js.map +0 -1
  153. package/build/dex/integral/integral-pricing.d.ts +0 -18
  154. package/build/dex/integral/integral-pricing.js +0 -114
  155. package/build/dex/integral/integral-pricing.js.map +0 -1
  156. package/build/dex/integral/integral-relayer.d.ts +0 -42
  157. package/build/dex/integral/integral-relayer.js +0 -192
  158. package/build/dex/integral/integral-relayer.js.map +0 -1
  159. package/build/dex/integral/integral-token.d.ts +0 -27
  160. package/build/dex/integral/integral-token.js +0 -59
  161. package/build/dex/integral/integral-token.js.map +0 -1
  162. package/build/dex/integral/integral.js +0 -376
  163. package/build/dex/integral/integral.js.map +0 -1
  164. package/build/dex/integral/types.d.ts +0 -85
  165. package/build/dex/integral/types.js +0 -9
  166. package/build/dex/integral/types.js.map +0 -1
  167. package/build/dex/integral/utils-e2e.d.ts +0 -9
  168. package/build/dex/integral/utils-e2e.js +0 -131
  169. package/build/dex/integral/utils-e2e.js.map +0 -1
  170. package/build/dex/integral/utils.d.ts +0 -17
  171. package/build/dex/integral/utils.js +0 -94
  172. package/build/dex/integral/utils.js.map +0 -1
  173. package/build/dex/lido.d.ts +0 -19
  174. package/build/dex/lido.js +0 -42
  175. package/build/dex/lido.js.map +0 -1
  176. package/build/dex/onebit.d.ts +0 -25
  177. package/build/dex/onebit.js +0 -42
  178. package/build/dex/onebit.js.map +0 -1
  179. package/build/dex/smoothy.d.ts +0 -26
  180. package/build/dex/smoothy.js +0 -48
  181. package/build/dex/smoothy.js.map +0 -1
  182. package/build/dex/stable-pool.d.ts +0 -28
  183. package/build/dex/stable-pool.js +0 -62
  184. package/build/dex/stable-pool.js.map +0 -1
  185. package/build/dex/trader-joe-v2.1/optimizer.d.ts +0 -2
  186. package/build/dex/trader-joe-v2.1/optimizer.js +0 -47
  187. package/build/dex/trader-joe-v2.1/optimizer.js.map +0 -1
  188. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.d.ts +0 -7
  189. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js +0 -20
  190. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js.map +0 -1
  191. package/build/dex/trader-joe-v2.1.d.ts +0 -43
  192. package/build/dex/trader-joe-v2.1.js +0 -79
  193. package/build/dex/trader-joe-v2.1.js.map +0 -1
@@ -120,7 +120,7 @@ export class Bebop extends SimpleExchange implements IDex<BebopData> {
120
120
  pricesReqParams: {
121
121
  url:
122
122
  BEBOP_WS_API_URL +
123
- `/pmm/${BebopConfig['Bebop'][network].chainName}/v3/pricing`,
123
+ `/pmm/${BebopConfig['Bebop'][network].chainName}/v3/pricing?format=protobuf`,
124
124
  headers: {
125
125
  name: BEBOP_AUTH_NAME,
126
126
  authorization: this.bebopAuthToken,
@@ -33,5 +33,10 @@ export const BebopConfig: DexConfigMap<DexParams> = {
33
33
  chainName: 'optimism',
34
34
  middleTokens: ['0x7F5c764cBc14f9669B88837ca1490cCa17c31607'],
35
35
  },
36
+ [Network.BSC]: {
37
+ settlementAddress: '0xbbbbbBB520d69a9775E85b458C58c648259FAD5F',
38
+ chainName: 'bsc',
39
+ middleTokens: ['0x55d398326f99059fF775485246999027B3197955'],
40
+ },
36
41
  },
37
42
  };
@@ -1,15 +1,30 @@
1
1
  import { ETHER_ADDRESS, Network } from '../../constants';
2
2
  import { IDexHelper } from '../../dex-helper';
3
3
  import { Fetcher } from '../../lib/fetcher/fetcher';
4
- import { validateAndCast } from '../../lib/validators';
4
+ import { validateAndCast, ValidationError } from '../../lib/validators';
5
5
  import { Logger, Token } from '../../types';
6
6
  import {
7
+ BebopLevel,
8
+ BebopPair,
7
9
  BebopPricingResponse,
8
10
  BebopRateFetcherConfig,
9
11
  BebopTokensResponse,
10
12
  } from './types';
11
- import { pricesResponseValidator, tokensResponseValidator } from './validators';
13
+ import {
14
+ BebopPricingUpdate,
15
+ pricesResponseValidator,
16
+ tokensResponseValidator,
17
+ } from './validators';
12
18
  import { WebSocketFetcher } from '../../lib/fetcher/wsFetcher';
19
+ import { utils } from 'ethers';
20
+
21
+ export function levels_from_flat_array(values: number[]): BebopLevel[] {
22
+ const levels: BebopLevel[] = [];
23
+ for (let i = 0; i < values.length; i += 2) {
24
+ levels.push([values[i], values[i + 1]]);
25
+ }
26
+ return levels;
27
+ }
13
28
 
14
29
  export class RateFetcher {
15
30
  private pricesFetcher: WebSocketFetcher<BebopPricingResponse>;
@@ -35,10 +50,16 @@ export class RateFetcher {
35
50
  info: {
36
51
  requestOptions: config.rateConfig.pricesReqParams,
37
52
  caster: (data: unknown) => {
38
- return validateAndCast<BebopPricingResponse>(
39
- data,
40
- pricesResponseValidator,
41
- );
53
+ const dataBuffer = data as any;
54
+ const invalid = BebopPricingUpdate.verify(dataBuffer);
55
+ if (invalid) {
56
+ throw new ValidationError(invalid);
57
+ }
58
+ const update = BebopPricingUpdate.decode(dataBuffer);
59
+ const updateObject = BebopPricingUpdate.toObject(update, {
60
+ longs: Number,
61
+ });
62
+ return this.parsePricingUpdate(updateObject);
42
63
  },
43
64
  },
44
65
  handler: this.handlePricesResponse.bind(this),
@@ -68,6 +89,30 @@ export class RateFetcher {
68
89
  );
69
90
  }
70
91
 
92
+ parsePricingUpdate(updateObject: any): BebopPricingResponse {
93
+ const pricingResponse: BebopPricingResponse = {};
94
+ if (!updateObject.pairs || !updateObject.pairs.length) {
95
+ this.logger.warn('Update message did not include pairs', updateObject);
96
+ return pricingResponse;
97
+ }
98
+ for (const pairBook of updateObject.pairs) {
99
+ const pair =
100
+ utils.getAddress('0x' + pairBook.base.toString('hex')) +
101
+ '/' +
102
+ utils.getAddress('0x' + pairBook.quote.toString('hex'));
103
+ const lastUpdateTs = pairBook.lastUpdateTs;
104
+ const bids = pairBook.bids ? levels_from_flat_array(pairBook.bids) : [];
105
+ const asks = pairBook.asks ? levels_from_flat_array(pairBook.asks) : [];
106
+ const bebopPair: BebopPair = {
107
+ bids,
108
+ asks,
109
+ last_update_ts: lastUpdateTs,
110
+ };
111
+ pricingResponse[pair] = bebopPair;
112
+ }
113
+ return pricingResponse;
114
+ }
115
+
71
116
  start() {
72
117
  this.pricesFetcher.startPolling();
73
118
  this.tokensFetcher.startPolling();
@@ -1,4 +1,5 @@
1
1
  import joi from 'joi';
2
+ import protobuf from 'protobufjs';
2
3
 
3
4
  const levelValidator = joi.array().items(joi.number()).length(2);
4
5
 
@@ -27,3 +28,6 @@ export const tokensResponseValidator = joi.object({
27
28
  export const blacklistResponseValidator = joi.object({
28
29
  blacklist: joi.array().items(joi.string().min(1)).required(),
29
30
  });
31
+
32
+ const root = protobuf.loadSync('src/dex/bebop/bebop.proto');
33
+ export const BebopPricingUpdate = root.lookupType('bebop.BebopPricingUpdate');
@@ -1,10 +1,6 @@
1
1
  import { Logger } from 'log4js';
2
2
  import { RequestConfig, Response } from '../../dex-helper/irequest-wrapper';
3
- import {
4
- connection as WebSocketConnection,
5
- client as WebSocketClient,
6
- } from 'websocket';
7
-
3
+ import WebSocket from 'ws';
8
4
  export class SkippingRequest {
9
5
  constructor(public message = '') {}
10
6
  }
@@ -26,74 +22,77 @@ export type RequestInfoWithHandler<T> = {
26
22
 
27
23
  export class WebSocketFetcher<T> {
28
24
  private requests: RequestInfoWithHandler<T>;
25
+ // Time to wait before declaring connection as broken and restarting it
26
+ private timeoutInterval: number;
27
+ // Time to wait after disconnection before reconnecting
28
+ private reconnectDelay: number;
29
+ private pingTimeout: NodeJS.Timeout | undefined = undefined;
29
30
  public lastFetchSucceeded: boolean = false;
30
31
  private stop: boolean = true;
31
- private ws: WebSocketClient = new WebSocketClient();
32
- private connection: WebSocketConnection | null = null;
33
-
34
- constructor(requestsInfo: RequestInfoWithHandler<T>, private logger: Logger) {
32
+ private connection: WebSocket | null = null;
33
+
34
+ constructor(
35
+ requestsInfo: RequestInfoWithHandler<T>,
36
+ private logger: Logger,
37
+ timeoutInterval: number = 10000,
38
+ reconnectDelay: number = 5000,
39
+ ) {
35
40
  this.requests = requestsInfo;
36
- this.ws.on('connect', this.connected.bind(this));
37
- this.ws.on('connectFailed', this.connectFailed.bind(this));
41
+ this.timeoutInterval = timeoutInterval;
42
+ this.reconnectDelay = reconnectDelay;
38
43
  }
39
44
 
40
- private connected(connection: WebSocketConnection) {
41
- this.connection = connection;
45
+ private connected() {
42
46
  this.logger.info(`Connected to ${this.requests.info.requestOptions.url}`);
43
- this.connection.on('error', this.onError.bind(this));
44
- this.connection.on('close', this.onClose.bind(this));
45
- this.connection.on('message', this.onMessage.bind(this));
47
+ this.heartbeat();
46
48
  }
47
49
 
48
- private connectFailed(error: any) {
49
- this.logger.error(`Connect Error: ${error.toString()}. Reconnecting...`);
50
- // reconnect on errors / failures
51
- setTimeout(() => {
52
- this.startPolling();
53
- }, 3000);
50
+ private heartbeat() {
51
+ clearTimeout(this.pingTimeout);
52
+ this.pingTimeout = setTimeout(() => {
53
+ this.logger.warn('No heartbeat. Terminating Connection...');
54
+ this?.connection?.terminate();
55
+ }, this.timeoutInterval);
54
56
  }
55
57
 
56
58
  private onClose() {
57
- this.logger.info(`Connection closed. Reconnecting...`);
58
- // reconnect on errors / failures
59
- setTimeout(() => {
60
- this.startPolling();
61
- }, 3000);
59
+ this.logger.info(`Connection closed.`);
60
+ // Do not reconnect if polling is stopped
61
+ if (this.stop) {
62
+ clearTimeout(this.pingTimeout);
63
+ return;
64
+ }
65
+
66
+ this.logger.info(`Unexpected closure, Reconnecting...`);
67
+ this.reconnectWithDelay();
62
68
  }
63
69
 
64
70
  private onError(error: any) {
65
71
  this.logger.error(
66
- `Connection Error: ${error.toString()}. Stopping & Reconnecting...`,
72
+ `Websocket Error: ${error.toString()}. Stopping & Reconnecting...`,
67
73
  );
68
- this.stopPolling();
69
-
70
- // reconnect on errors / failures
71
- setTimeout(() => {
72
- this.startPolling();
73
- }, 3000);
74
+ this?.connection?.terminate();
74
75
  }
75
76
 
76
- private onMessage(message: any) {
77
- if (message.type === 'utf8') {
78
- const response = JSON.parse(message.utf8Data) as Response<T>;
79
- const reqInfo = this.requests;
80
- const info = reqInfo.info;
81
- const options = reqInfo.info.requestOptions;
82
- this.logger.debug(`(${options.url}) received new data`);
83
-
84
- try {
85
- const parsedData = info.caster(response);
86
- reqInfo.handler(parsedData);
87
- } catch (e) {
88
- this.logger.info(e);
89
- this.logger.info(
90
- `(${options.url}) received incorrect data ${JSON.stringify(
91
- response,
92
- ).replace(/(?:\r\n|\r|\n)/g, ' ')}`,
93
- e,
94
- );
95
- return;
96
- }
77
+ private onMessage(data: WebSocket.RawData) {
78
+ this.heartbeat();
79
+ const reqInfo = this.requests;
80
+ const info = reqInfo.info;
81
+ const options = reqInfo.info.requestOptions;
82
+ this.logger.debug(`(${options.url}) received new data`);
83
+
84
+ try {
85
+ const parsedData = info.caster(data);
86
+ reqInfo.handler(parsedData);
87
+ } catch (e) {
88
+ this.logger.info(e);
89
+ this.logger.info(
90
+ `(${options.url}) received incorrect data ${JSON.stringify(
91
+ data,
92
+ ).replace(/(?:\r\n|\r|\n)/g, ' ')}`,
93
+ e,
94
+ );
95
+ return;
97
96
  }
98
97
  }
99
98
 
@@ -110,30 +109,44 @@ export class WebSocketFetcher<T> {
110
109
  this.logger.info(
111
110
  `Connecting to ${this.requests.info.requestOptions.url}...`,
112
111
  );
113
- this.ws.connect(
114
- this.requests.info.requestOptions.url!,
115
- undefined,
116
- undefined,
117
- {
112
+ const ws = new WebSocket(this.requests.info.requestOptions.url!, {
113
+ headers: {
118
114
  Authorization: authorization,
119
115
  name: name,
120
116
  },
121
- );
117
+ });
118
+
119
+ ws.on('open', this.connected.bind(this));
120
+ ws.on('message', this.onMessage.bind(this));
121
+ ws.on('error', this.onError.bind(this));
122
+ ws.on('close', this.onClose.bind(this));
123
+ this.connection = ws;
122
124
  }
123
125
 
124
- startPolling(): void {
125
- this.stop = false;
126
+ reconnectWithDelay() {
127
+ this.logger.info(`Waiting ${this.reconnectDelay}ms before reconnecting...`);
128
+ clearTimeout(this.pingTimeout);
129
+ setTimeout(() => {
130
+ this.reconnect();
131
+ }, this.reconnectDelay);
132
+ }
133
+
134
+ reconnect() {
135
+ clearTimeout(this.pingTimeout);
126
136
  this.connect();
127
137
  this.logger.info(
128
138
  `Connection started for ${this.requests.info.requestOptions.url}`,
129
139
  );
130
140
  }
131
141
 
142
+ startPolling(): void {
143
+ this.stop = false;
144
+ this.reconnect();
145
+ }
146
+
132
147
  stopPolling() {
133
- if (this.connection) {
134
- this.connection.close();
135
- }
136
148
  this.stop = true;
149
+ this.connection?.terminate();
137
150
  this.logger.info(
138
151
  `Connection stopped for ${this.requests.info.requestOptions.url}`,
139
152
  );
package/.idea/aws.xml DELETED
@@ -1,17 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="accountSettings">
4
- <option name="activeProfile" value="profile:default" />
5
- <option name="activeRegion" value="us-east-1" />
6
- <option name="recentlyUsedProfiles">
7
- <list>
8
- <option value="profile:default" />
9
- </list>
10
- </option>
11
- <option name="recentlyUsedRegions">
12
- <list>
13
- <option value="us-east-1" />
14
- </list>
15
- </option>
16
- </component>
17
- </project>
@@ -1,19 +0,0 @@
1
- <component name="ProjectCodeStyleConfiguration">
2
- <code_scheme name="Project" version="173">
3
- <ScalaCodeStyleSettings>
4
- <option name="MULTILINE_STRING_CLOSING_QUOTES_ON_NEW_LINE" value="true" />
5
- </ScalaCodeStyleSettings>
6
- <TypeScriptCodeStyleSettings version="0">
7
- <option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACKETS" value="true" />
8
- <option name="USE_DOUBLE_QUOTES" value="false" />
9
- <option name="SPACES_WITHIN_IMPORTS" value="true" />
10
- </TypeScriptCodeStyleSettings>
11
- <codeStyleSettings language="TypeScript">
12
- <indentOptions>
13
- <option name="INDENT_SIZE" value="2" />
14
- <option name="CONTINUATION_INDENT_SIZE" value="2" />
15
- <option name="TAB_SIZE" value="2" />
16
- </indentOptions>
17
- </codeStyleSettings>
18
- </code_scheme>
19
- </component>
@@ -1,5 +0,0 @@
1
- <component name="ProjectCodeStyleConfiguration">
2
- <state>
3
- <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
4
- </state>
5
- </component>
package/.idea/misc.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectRootManager">
4
- <output url="file://$PROJECT_DIR$/out" />
5
- </component>
6
- </project>
package/.idea/modules.xml DELETED
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectModuleManager">
4
- <modules>
5
- <module fileurl="file://$PROJECT_DIR$/.idea/paraswap-dex-lib.iml" filepath="$PROJECT_DIR$/.idea/paraswap-dex-lib.iml" />
6
- </modules>
7
- </component>
8
- </project>
@@ -1,9 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="JAVA_MODULE" version="4">
3
- <component name="NewModuleRootManager" inherit-compiler-output="true">
4
- <exclude-output />
5
- <content url="file://$MODULE_DIR$" />
6
- <orderEntry type="inheritedJdk" />
7
- <orderEntry type="sourceFolder" forTests="false" />
8
- </component>
9
- </module>
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="PrettierConfiguration">
4
- <option name="myRunOnSave" value="true" />
5
- <option name="myRunOnReformat" value="true" />
6
- </component>
7
- </project>
package/.idea/vcs.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="" vcs="Git" />
5
- </component>
6
- </project>