@paraswap/dex-lib 3.8.37 → 3.8.39-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 (107) hide show
  1. package/build/abi/USDM.json +807 -0
  2. package/build/abi/bebop/BebopSettlement.abi.json +2137 -0
  3. package/build/abi/cables/CablesMainnetRFQ.json +1073 -0
  4. package/build/abi/wUSDM.json +757 -0
  5. package/build/config.js +7 -0
  6. package/build/config.js.map +1 -1
  7. package/build/dex/bebop/bebop.d.ts +55 -0
  8. package/build/dex/bebop/bebop.js +524 -0
  9. package/build/dex/bebop/bebop.js.map +1 -0
  10. package/build/dex/bebop/config.d.ts +3 -0
  11. package/build/dex/bebop/config.js +38 -0
  12. package/build/dex/bebop/config.js.map +1 -0
  13. package/build/dex/bebop/constants.d.ts +9 -0
  14. package/build/dex/bebop/constants.js +13 -0
  15. package/build/dex/bebop/constants.js.map +1 -0
  16. package/build/dex/bebop/rate-fetcher.d.ts +22 -0
  17. package/build/dex/bebop/rate-fetcher.js +80 -0
  18. package/build/dex/bebop/rate-fetcher.js.map +1 -0
  19. package/build/dex/bebop/types.d.ts +76 -0
  20. package/build/dex/bebop/types.js +3 -0
  21. package/build/dex/bebop/types.js.map +1 -0
  22. package/build/dex/bebop/validators.d.ts +4 -0
  23. package/build/dex/bebop/validators.js +42 -0
  24. package/build/dex/bebop/validators.js.map +1 -0
  25. package/build/dex/bebop/websocket-fetcher.d.ts +35 -0
  26. package/build/dex/bebop/websocket-fetcher.js +87 -0
  27. package/build/dex/bebop/websocket-fetcher.js.map +1 -0
  28. package/build/dex/cables/cables.d.ts +64 -0
  29. package/build/dex/cables/cables.js +445 -0
  30. package/build/dex/cables/cables.js.map +1 -0
  31. package/build/dex/cables/config.d.ts +4 -0
  32. package/build/dex/cables/config.js +15 -0
  33. package/build/dex/cables/config.js.map +1 -0
  34. package/build/dex/cables/constants.d.ts +19 -0
  35. package/build/dex/cables/constants.js +26 -0
  36. package/build/dex/cables/constants.js.map +1 -0
  37. package/build/dex/cables/rate-fetcher.d.ts +34 -0
  38. package/build/dex/cables/rate-fetcher.js +117 -0
  39. package/build/dex/cables/rate-fetcher.js.map +1 -0
  40. package/build/dex/cables/types.d.ts +106 -0
  41. package/build/dex/cables/types.js +12 -0
  42. package/build/dex/cables/types.js.map +1 -0
  43. package/build/dex/cables/validators.d.ts +5 -0
  44. package/build/dex/cables/validators.js +49 -0
  45. package/build/dex/cables/validators.js.map +1 -0
  46. package/build/dex/index.js +2 -0
  47. package/build/dex/index.js.map +1 -1
  48. package/build/dex/spark/config.js +25 -0
  49. package/build/dex/spark/config.js.map +1 -1
  50. package/build/dex/spark/scripts/validate-state.js +1 -1
  51. package/build/dex/spark/scripts/validate-state.js.map +1 -1
  52. package/build/dex/spark/spark-sdai-pool.d.ts +7 -3
  53. package/build/dex/spark/spark-sdai-pool.js +24 -28
  54. package/build/dex/spark/spark-sdai-pool.js.map +1 -1
  55. package/build/dex/spark/spark.d.ts +10 -5
  56. package/build/dex/spark/spark.js +46 -31
  57. package/build/dex/spark/spark.js.map +1 -1
  58. package/build/dex/spark/types.d.ts +6 -0
  59. package/build/dex/spark/types.js.map +1 -1
  60. package/build/dex/spark/utils.d.ts +3 -1
  61. package/build/dex/spark/utils.js +43 -7
  62. package/build/dex/spark/utils.js.map +1 -1
  63. package/build/dex/woo-fi-v2/woo-fi-v2-pool.d.ts +2 -2
  64. package/build/dex/woo-fi-v2/woo-fi-v2-pool.js +30 -9
  65. package/build/dex/woo-fi-v2/woo-fi-v2-pool.js.map +1 -1
  66. package/build/dex/woo-fi-v2/woo-fi-v2.js +1 -1
  67. package/build/dex/woo-fi-v2/woo-fi-v2.js.map +1 -1
  68. package/build/dex/wusdm/config.d.ts +3 -0
  69. package/build/dex/wusdm/config.js +29 -0
  70. package/build/dex/wusdm/config.js.map +1 -0
  71. package/build/dex/wusdm/types.d.ts +10 -0
  72. package/build/dex/wusdm/types.js +3 -0
  73. package/build/dex/wusdm/types.js.map +1 -0
  74. package/build/dex/wusdm/wusdm.d.ts +39 -0
  75. package/build/dex/wusdm/wusdm.js +212 -0
  76. package/build/dex/wusdm/wusdm.js.map +1 -0
  77. package/build/lib/fetcher/wsFetcher.d.ts +35 -0
  78. package/build/lib/fetcher/wsFetcher.js +87 -0
  79. package/build/lib/fetcher/wsFetcher.js.map +1 -0
  80. package/build/types.d.ts +1 -0
  81. package/package.json +4 -2
  82. package/src/abi/bebop/BebopSettlement.abi.json +2137 -0
  83. package/src/abi/sdai/SavingsUSDS.abi.json +720 -0
  84. package/src/config.ts +8 -0
  85. package/src/dex/bebop/bebop-e2e.test.ts +195 -0
  86. package/src/dex/bebop/bebop-integration.test.ts +170 -0
  87. package/src/dex/bebop/bebop.ts +732 -0
  88. package/src/dex/bebop/config.ts +37 -0
  89. package/src/dex/bebop/constants.ts +9 -0
  90. package/src/dex/bebop/rate-fetcher.ts +138 -0
  91. package/src/dex/bebop/types.ts +81 -0
  92. package/src/dex/bebop/validators.ts +43 -0
  93. package/src/dex/index.ts +2 -0
  94. package/src/dex/spark/config.ts +24 -0
  95. package/src/dex/spark/scripts/validate-state.ts +1 -0
  96. package/src/dex/spark/spark-e2e.test.ts +25 -21
  97. package/src/dex/spark/spark-events.test.ts +77 -62
  98. package/src/dex/spark/spark-integration.test.ts +290 -7
  99. package/src/dex/spark/spark-sdai-pool.ts +22 -19
  100. package/src/dex/spark/spark.ts +62 -36
  101. package/src/dex/spark/types.ts +6 -0
  102. package/src/dex/spark/utils.ts +83 -19
  103. package/src/dex/woo-fi-v2/woo-fi-v2-pool.ts +58 -27
  104. package/src/dex/woo-fi-v2/woo-fi-v2.ts +1 -2
  105. package/src/lib/fetcher/wsFetcher.ts +126 -0
  106. package/src/types.ts +1 -0
  107. package/tests/constants-e2e.ts +5 -0
package/src/config.ts CHANGED
@@ -34,6 +34,7 @@ type BaseConfig = {
34
34
  idleDaoAuthToken?: string;
35
35
  swaapV2AuthToken?: string;
36
36
  dexalotAuthToken?: string;
37
+ bebopAuthToken?: string;
37
38
  forceRpcFallbackDexs: string[];
38
39
  };
39
40
 
@@ -73,6 +74,7 @@ const baseConfigs: { [network: number]: BaseConfig } = {
73
74
  rpcPollingBlocksBackToTriggerUpdate: 0,
74
75
  swaapV2AuthToken: process.env.API_KEY_SWAAP_V2_AUTH_TOKEN || '',
75
76
  hashFlowAuthToken: process.env.API_KEY_HASHFLOW_AUTH_TOKEN || '',
77
+ bebopAuthToken: process.env.API_KEY_BEBOP_AUTH_TOKEN || '',
76
78
  idleDaoAuthToken: process.env.API_KEY_IDLEDAO_AUTH_TOKEN || '',
77
79
  hashFlowDisabledMMs:
78
80
  process.env[`HASHFLOW_DISABLED_MMS_1`]?.split(',') || [],
@@ -151,6 +153,7 @@ const baseConfigs: { [network: number]: BaseConfig } = {
151
153
  Executor03: '0x20004f017a0bC0050bc004d9C500a7A089800000',
152
154
  },
153
155
  hashFlowAuthToken: process.env.API_KEY_HASHFLOW_AUTH_TOKEN || '',
156
+ bebopAuthToken: process.env.API_KEY_BEBOP_AUTH_TOKEN || '',
154
157
  swaapV2AuthToken: process.env.API_KEY_SWAAP_V2_AUTH_TOKEN || '',
155
158
  hashFlowDisabledMMs:
156
159
  process.env[`HASHFLOW_DISABLED_MMS_56`]?.split(',') || [],
@@ -220,6 +223,7 @@ const baseConfigs: { [network: number]: BaseConfig } = {
220
223
  hashFlowDisabledMMs:
221
224
  process.env[`HASHFLOW_DISABLED_MMS_43114`]?.split(',') || [],
222
225
  dexalotAuthToken: process.env.API_KEY_DEXALOT_AUTH_TOKEN || '',
226
+ bebopAuthToken: process.env.API_KEY_BEBOP_AUTH_TOKEN || '',
223
227
  augustusV6Address: '0x6a000f20005980200259b80c5102003040001068',
224
228
  executorsAddresses: {
225
229
  Executor01: '0xa600910B670804230E00A100000D28000AE005C0',
@@ -296,6 +300,7 @@ const baseConfigs: { [network: number]: BaseConfig } = {
296
300
  Executor03: '0x20004f017a0bC0050bc004d9C500a7A089800000',
297
301
  },
298
302
  dexalotAuthToken: process.env.API_KEY_DEXALOT_AUTH_TOKEN || '',
303
+ bebopAuthToken: process.env.API_KEY_BEBOP_AUTH_TOKEN || '',
299
304
  adapterAddresses: {
300
305
  ArbitrumAdapter01: '0x369A2FDb910d432f0a07381a5E3d27572c876713',
301
306
  ArbitrumAdapter02: '0x58a5f0b73969800FAFf8556cD2187E3FCE71A6cb',
@@ -341,6 +346,7 @@ const baseConfigs: { [network: number]: BaseConfig } = {
341
346
  uniswapV2ExchangeRouterAddress:
342
347
  '0xB41dD984730dAf82f5C41489E21ac79D5e3B61bC',
343
348
  uniswapV3EventLoggingSampleRate: 0,
349
+ bebopAuthToken: process.env.API_KEY_BEBOP_AUTH_TOKEN || '',
344
350
  rfqConfigs: {},
345
351
  rpcPollingMaxAllowedStateDelayInBlocks: 5,
346
352
  rpcPollingBlocksBackToTriggerUpdate: 3,
@@ -395,6 +401,7 @@ const baseConfigs: { [network: number]: BaseConfig } = {
395
401
  multicallV2Address: '0xeDF6D2a16e8081F777eB623EeB4411466556aF3d',
396
402
  privateHttpProvider: process.env.HTTP_PROVIDER_8453,
397
403
  dexalotAuthToken: process.env.API_KEY_DEXALOT_AUTH_TOKEN || '',
404
+ bebopAuthToken: process.env.API_KEY_BEBOP_AUTH_TOKEN || '',
398
405
  hashFlowAuthToken: process.env.API_KEY_HASHFLOW_AUTH_TOKEN || '',
399
406
  swaapV2AuthToken: process.env.API_KEY_SWAAP_V2_AUTH_TOKEN || '',
400
407
  hashFlowDisabledMMs: [],
@@ -462,6 +469,7 @@ export function generateConfig(network: number): Config {
462
469
  idleDaoAuthToken: baseConfig.idleDaoAuthToken,
463
470
  swaapV2AuthToken: baseConfig.swaapV2AuthToken,
464
471
  dexalotAuthToken: baseConfig.dexalotAuthToken,
472
+ bebopAuthToken: baseConfig.bebopAuthToken,
465
473
  hashFlowDisabledMMs: baseConfig.hashFlowDisabledMMs,
466
474
  forceRpcFallbackDexs: baseConfig.forceRpcFallbackDexs,
467
475
  apiKeyTheGraph: process.env.API_KEY_THE_GRAPH || '',
@@ -0,0 +1,195 @@
1
+ /* eslint-disable no-console */
2
+ import dotenv from 'dotenv';
3
+ dotenv.config();
4
+
5
+ import { testE2E } from '../../../tests/utils-e2e';
6
+ import {
7
+ Tokens,
8
+ Holders,
9
+ NativeTokenSymbols,
10
+ } from '../../../tests/constants-e2e';
11
+ import { Network, ContractMethod, SwapSide } from '../../constants';
12
+ import { StaticJsonRpcProvider } from '@ethersproject/providers';
13
+ import { generateConfig } from '../../config';
14
+
15
+ function testForNetwork(
16
+ network: Network,
17
+ dexKey: string,
18
+ tokenASymbol: string,
19
+ tokenBSymbol: string,
20
+ tokenAAmount: string,
21
+ tokenBAmount: string,
22
+ nativeTokenAmount: string,
23
+ ) {
24
+ const provider = new StaticJsonRpcProvider(
25
+ generateConfig(network).privateHttpProvider,
26
+ network,
27
+ );
28
+ const tokens = Tokens[network];
29
+ const holders = Holders[network];
30
+ const nativeTokenSymbol = NativeTokenSymbols[network];
31
+
32
+ const sideToContractMethods = new Map([
33
+ [SwapSide.SELL, [ContractMethod.swapExactAmountIn]],
34
+ [SwapSide.BUY, [ContractMethod.swapExactAmountOut]],
35
+ ]);
36
+
37
+ describe(`${network}`, () => {
38
+ sideToContractMethods.forEach((contractMethods, side) =>
39
+ describe(`${side}`, () => {
40
+ contractMethods.forEach((contractMethod: ContractMethod) => {
41
+ describe(`${contractMethod}`, () => {
42
+ it(`${nativeTokenSymbol} -> ${tokenASymbol}`, async () => {
43
+ await testE2E(
44
+ tokens[nativeTokenSymbol],
45
+ tokens[tokenASymbol],
46
+ holders[nativeTokenSymbol],
47
+ side === SwapSide.SELL ? nativeTokenAmount : tokenAAmount,
48
+ side,
49
+ dexKey,
50
+ contractMethod,
51
+ network,
52
+ provider,
53
+ );
54
+ });
55
+ it(`${tokenASymbol} -> ${nativeTokenSymbol}`, async () => {
56
+ await testE2E(
57
+ tokens[tokenASymbol],
58
+ tokens[nativeTokenSymbol],
59
+ holders[tokenASymbol],
60
+ side === SwapSide.SELL ? tokenAAmount : nativeTokenAmount,
61
+ side,
62
+ dexKey,
63
+ contractMethod,
64
+ network,
65
+ provider,
66
+ );
67
+ });
68
+ it(`${tokenASymbol} -> ${tokenBSymbol}`, async () => {
69
+ await testE2E(
70
+ tokens[tokenASymbol],
71
+ tokens[tokenBSymbol],
72
+ holders[tokenASymbol],
73
+ side === SwapSide.SELL ? tokenAAmount : tokenBAmount,
74
+ side,
75
+ dexKey,
76
+ contractMethod,
77
+ network,
78
+ provider,
79
+ );
80
+ });
81
+ });
82
+ });
83
+ }),
84
+ );
85
+ });
86
+ }
87
+
88
+ describe('Bebop E2E', () => {
89
+ const dexKey = 'Bebop';
90
+
91
+ describe('Mainnet', () => {
92
+ const network = Network.MAINNET;
93
+
94
+ const tokenASymbol: string = 'USDC';
95
+ const tokenBSymbol: string = 'WETH';
96
+
97
+ const tokenAAmount: string = '1000000000';
98
+ const tokenBAmount: string = '1000000000000000000';
99
+ const nativeTokenAmount = '1000000000000000000';
100
+
101
+ testForNetwork(
102
+ network,
103
+ dexKey,
104
+ tokenASymbol,
105
+ tokenBSymbol,
106
+ tokenAAmount,
107
+ tokenBAmount,
108
+ nativeTokenAmount,
109
+ );
110
+ });
111
+
112
+ describe('Mainnet Alt Pair', () => {
113
+ const network = Network.MAINNET;
114
+
115
+ const tokenASymbol: string = 'WBTC';
116
+ const tokenBSymbol: string = 'WETH';
117
+
118
+ const tokenAAmount: string = '10000000';
119
+ const tokenBAmount: string = '1000000000000000000';
120
+ const nativeTokenAmount = '1000000000000000000';
121
+
122
+ testForNetwork(
123
+ network,
124
+ dexKey,
125
+ tokenASymbol,
126
+ tokenBSymbol,
127
+ tokenAAmount,
128
+ tokenBAmount,
129
+ nativeTokenAmount,
130
+ );
131
+ });
132
+
133
+ describe('Arbitrum', () => {
134
+ const network = Network.ARBITRUM;
135
+
136
+ const tokenASymbol: string = 'USDC';
137
+ const tokenBSymbol: string = 'WETH';
138
+
139
+ const tokenAAmount: string = '1000000000';
140
+ const tokenBAmount: string = '1000000000000000000';
141
+ const nativeTokenAmount = '1000000000000000000';
142
+
143
+ testForNetwork(
144
+ network,
145
+ dexKey,
146
+ tokenASymbol,
147
+ tokenBSymbol,
148
+ tokenAAmount,
149
+ tokenBAmount,
150
+ nativeTokenAmount,
151
+ );
152
+ });
153
+
154
+ describe('Base', () => {
155
+ const network = Network.BASE;
156
+
157
+ const tokenASymbol: string = 'USDbC';
158
+ const tokenBSymbol: string = 'WETH';
159
+
160
+ const tokenAAmount: string = '1000000000';
161
+ const tokenBAmount: string = '1000000000000000000';
162
+ const nativeTokenAmount = '1000000000000000000';
163
+
164
+ testForNetwork(
165
+ network,
166
+ dexKey,
167
+ tokenASymbol,
168
+ tokenBSymbol,
169
+ tokenAAmount,
170
+ tokenBAmount,
171
+ nativeTokenAmount,
172
+ );
173
+ });
174
+
175
+ describe('Optimism', () => {
176
+ const network = Network.OPTIMISM;
177
+
178
+ const tokenASymbol: string = 'USDT';
179
+ const tokenBSymbol: string = 'WETH';
180
+
181
+ const tokenAAmount: string = '1000000000';
182
+ const tokenBAmount: string = '1000000000000000000';
183
+ const nativeTokenAmount = '1000000000000000000';
184
+
185
+ testForNetwork(
186
+ network,
187
+ dexKey,
188
+ tokenASymbol,
189
+ tokenBSymbol,
190
+ tokenAAmount,
191
+ tokenBAmount,
192
+ nativeTokenAmount,
193
+ );
194
+ });
195
+ });
@@ -0,0 +1,170 @@
1
+ /* eslint-disable no-console */
2
+ import dotenv from 'dotenv';
3
+ dotenv.config();
4
+
5
+ import { Interface, Result } from '@ethersproject/abi';
6
+ import { DummyDexHelper } from '../../dex-helper/index';
7
+ import { Network, SwapSide } from '../../constants';
8
+ import { BI_POWS } from '../../bigint-constants';
9
+ import { Bebop } from './bebop';
10
+ import {
11
+ checkPoolPrices,
12
+ checkPoolsLiquidity,
13
+ checkConstantPoolPrices,
14
+ } from '../../../tests/utils';
15
+ import { Tokens } from '../../../tests/constants-e2e';
16
+
17
+ async function testPricingOnNetwork(
18
+ bebop: Bebop,
19
+ network: Network,
20
+ dexKey: string,
21
+ blockNumber: number,
22
+ srcTokenSymbol: string,
23
+ destTokenSymbol: string,
24
+ side: SwapSide,
25
+ amounts: bigint[],
26
+ ) {
27
+ const networkTokens = Tokens[network];
28
+
29
+ const pools = await bebop.getPoolIdentifiers(
30
+ networkTokens[srcTokenSymbol],
31
+ networkTokens[destTokenSymbol],
32
+ side,
33
+ blockNumber,
34
+ );
35
+ console.log(
36
+ `${srcTokenSymbol} <> ${destTokenSymbol} Pool Identifiers: `,
37
+ pools,
38
+ );
39
+
40
+ expect(pools.length).toBeGreaterThan(0);
41
+
42
+ const poolPrices = await bebop.getPricesVolume(
43
+ networkTokens[srcTokenSymbol],
44
+ networkTokens[destTokenSymbol],
45
+ amounts,
46
+ side,
47
+ blockNumber,
48
+ pools,
49
+ );
50
+ console.log(
51
+ `${srcTokenSymbol} <> ${destTokenSymbol} Pool Prices: `,
52
+ poolPrices,
53
+ );
54
+
55
+ expect(poolPrices).not.toBeNull();
56
+ if (bebop.hasConstantPriceLargeAmounts) {
57
+ checkConstantPoolPrices(poolPrices!, amounts, dexKey);
58
+ } else {
59
+ checkPoolPrices(poolPrices!, amounts, side, dexKey, false);
60
+ }
61
+ }
62
+
63
+ describe('Bebop', function () {
64
+ const dexKey = 'Bebop';
65
+ let blockNumber: number;
66
+ let bebop: Bebop;
67
+
68
+ describe('Mainnet', () => {
69
+ const network = Network.MAINNET;
70
+ const dexHelper = new DummyDexHelper(network);
71
+
72
+ const tokens = Tokens[network];
73
+
74
+ const srcTokenSymbol = 'ETH';
75
+ const destTokenSymbol = 'USDC';
76
+
77
+ const amountsForSell = [
78
+ 0n,
79
+ 1n * BI_POWS[tokens[srcTokenSymbol].decimals],
80
+ 2n * BI_POWS[tokens[srcTokenSymbol].decimals],
81
+ 3n * BI_POWS[tokens[srcTokenSymbol].decimals],
82
+ 4n * BI_POWS[tokens[srcTokenSymbol].decimals],
83
+ 5n * BI_POWS[tokens[srcTokenSymbol].decimals],
84
+ 6n * BI_POWS[tokens[srcTokenSymbol].decimals],
85
+ 7n * BI_POWS[tokens[srcTokenSymbol].decimals],
86
+ 8n * BI_POWS[tokens[srcTokenSymbol].decimals],
87
+ 9n * BI_POWS[tokens[srcTokenSymbol].decimals],
88
+ 10n * BI_POWS[tokens[srcTokenSymbol].decimals],
89
+ ];
90
+
91
+ const amountsForBuy = [
92
+ 0n,
93
+ 1000n * BI_POWS[tokens[destTokenSymbol].decimals],
94
+ 2000n * BI_POWS[tokens[destTokenSymbol].decimals],
95
+ 3000n * BI_POWS[tokens[destTokenSymbol].decimals],
96
+ 4000n * BI_POWS[tokens[destTokenSymbol].decimals],
97
+ 5000n * BI_POWS[tokens[destTokenSymbol].decimals],
98
+ 6000n * BI_POWS[tokens[destTokenSymbol].decimals],
99
+ 7000n * BI_POWS[tokens[destTokenSymbol].decimals],
100
+ 8000n * BI_POWS[tokens[destTokenSymbol].decimals],
101
+ 9000n * BI_POWS[tokens[destTokenSymbol].decimals],
102
+ 10000n * BI_POWS[tokens[destTokenSymbol].decimals],
103
+ ];
104
+
105
+ beforeAll(async () => {
106
+ blockNumber = await dexHelper.web3Provider.eth.getBlockNumber();
107
+ bebop = new Bebop(network, dexKey, dexHelper);
108
+ if (bebop.initializePricing) {
109
+ await bebop.initializePricing(blockNumber);
110
+ }
111
+ });
112
+
113
+ afterAll(async () => {
114
+ if (bebop.releaseResources) {
115
+ await bebop.releaseResources();
116
+ }
117
+ });
118
+
119
+ it('getPoolIdentifiers and getPricesVolume SELL', async function () {
120
+ await testPricingOnNetwork(
121
+ bebop,
122
+ network,
123
+ dexKey,
124
+ blockNumber,
125
+ srcTokenSymbol,
126
+ destTokenSymbol,
127
+ SwapSide.SELL,
128
+ amountsForSell,
129
+ );
130
+ });
131
+
132
+ it('getPoolIdentifiers and getPricesVolume BUY', async function () {
133
+ await testPricingOnNetwork(
134
+ bebop,
135
+ network,
136
+ dexKey,
137
+ blockNumber,
138
+ srcTokenSymbol,
139
+ destTokenSymbol,
140
+ SwapSide.BUY,
141
+ amountsForBuy,
142
+ );
143
+ });
144
+
145
+ it('getTopPoolsForToken', async function () {
146
+ // We have to check without calling initializePricing, because
147
+ // pool-tracker is not calling that function
148
+ const newBebop = new Bebop(network, dexKey, dexHelper);
149
+ if (newBebop.updatePoolState) {
150
+ await newBebop.updatePoolState();
151
+ }
152
+ const poolLiquidity = await newBebop.getTopPoolsForToken(
153
+ tokens[srcTokenSymbol].address,
154
+ 10,
155
+ );
156
+ console.log(
157
+ `${srcTokenSymbol} Top Pools:`,
158
+ JSON.stringify(poolLiquidity),
159
+ );
160
+
161
+ if (!newBebop.hasConstantPriceLargeAmounts) {
162
+ checkPoolsLiquidity(
163
+ poolLiquidity,
164
+ Tokens[network][srcTokenSymbol].address,
165
+ dexKey,
166
+ );
167
+ }
168
+ });
169
+ });
170
+ });