@paraswap/dex-lib 2.15.2-curve-v1-issue → 2.15.2

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 (48) hide show
  1. package/.idea/modules.xml +1 -1
  2. package/.vscode/launch.json +21 -0
  3. package/build/dex/aave-v3/tokens/arbitrum.json +20 -20
  4. package/build/dex/aave-v3/tokens/avalanche.json +20 -44
  5. package/build/dex/aave-v3/tokens/fantom.json +30 -30
  6. package/build/dex/aave-v3/tokens/mainnet.json +44 -0
  7. package/build/dex/aave-v3/tokens/optimism.json +18 -18
  8. package/build/dex/aave-v3/tokens/polygon.json +42 -60
  9. package/build/dex/balancer-v2/VirtualBoostedPool.d.ts +79 -0
  10. package/build/dex/balancer-v2/VirtualBoostedPool.js +382 -0
  11. package/build/dex/balancer-v2/VirtualBoostedPool.js.map +1 -0
  12. package/build/dex/curve-v1/curve-v1.js +1 -1
  13. package/build/dex/curve-v1/curve-v1.js.map +1 -1
  14. package/build/dex/curve-v1/pools/curve-pool.js +2 -3
  15. package/build/dex/curve-v1/pools/curve-pool.js.map +1 -1
  16. package/build/dex/generic-rfq/rate-fetcher.js +2 -2
  17. package/build/dex/generic-rfq/rate-fetcher.js.map +1 -1
  18. package/build/dex/hashflow/hashflow.js.map +1 -1
  19. package/build/dex/hashflow/validators.js.map +1 -1
  20. package/build/dex/test-aave-v3/config.d.ts +4 -0
  21. package/build/dex/test-aave-v3/config.js +15 -0
  22. package/build/dex/test-aave-v3/config.js.map +1 -0
  23. package/build/dex/test-aave-v3/test-aave-v3-pool.d.ts +39 -0
  24. package/build/dex/test-aave-v3/test-aave-v3-pool.js +63 -0
  25. package/build/dex/test-aave-v3/test-aave-v3-pool.js.map +1 -0
  26. package/build/dex/test-aave-v3/test-aave-v3.d.ts +37 -0
  27. package/build/dex/test-aave-v3/test-aave-v3.js +126 -0
  28. package/build/dex/test-aave-v3/test-aave-v3.js.map +1 -0
  29. package/build/dex/test-aave-v3/types.d.ts +6 -0
  30. package/build/dex/test-aave-v3/types.js +3 -0
  31. package/build/dex/test-aave-v3/types.js.map +1 -0
  32. package/build/lib/fetcher/fetcher.js +1 -2
  33. package/build/lib/fetcher/fetcher.js.map +1 -1
  34. package/package.json +1 -1
  35. package/src/dex/curve-v1/curve-v1.ts +1 -1
  36. package/src/dex/curve-v1/pools/curve-pool.ts +2 -2
  37. package/src/dex/generic-rfq/generic-rfq-e2e.test.ts +26 -10
  38. package/src/dex/generic-rfq/rate-fetcher.ts +8 -4
  39. package/src/dex/hashflow/hashflow.ts +1 -1
  40. package/src/dex/hashflow/validators.ts +18 -14
  41. package/src/lib/fetcher/fetcher.ts +40 -35
  42. package/tests/constants-e2e.ts +4 -0
  43. package/tests/utils-e2e.ts +35 -11
  44. package/.idea/aws.xml +0 -17
  45. package/.idea/codeStyles/Project.xml +0 -19
  46. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  47. package/.idea/paraswap-dex-lib.iml +0 -9
  48. package/.idea/runConfigurations.xml +0 -10
@@ -1 +1 @@
1
- {"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../../../src/lib/fetcher/fetcher.ts"],"names":[],"mappings":";;;AAGA,mCAAoC;AAEpC,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC;AACnC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,2BAA2B,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9C,MAAa,eAAe;IAC1B,YACS,UAAU,EAAE;QAAZ,YAAO,GAAP,OAAO,CAAK;IAClB,CAAC;CACL;AAJD,0CAIC;AAAA,CAAC;AAeF,MAAa,OAAO;IAMlB,YACU,cAA+B,EACvC,YAAqE,EAC7D,cAAsB,EACtB,MAAc;QAHd,mBAAc,GAAd,cAAc,CAAiB;QAE/B,mBAAc,GAAd,cAAc,CAAQ;QACtB,WAAM,GAAN,MAAM,CAAQ;QARjB,uBAAkB,GAAY,KAAK,CAAC;QACnC,gBAAW,GAAG,CAAC,CAAC;QAChB,SAAI,GAAY,IAAI,CAAC;QAQ3B,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC/B,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;SAC9B;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,CAAC,YAAY,CAAC,CAAC;SAChC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAiB,KAAK;QAChC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;YAChC,OAAO;SACR;QAED,IAAI,IAAI,CAAC,WAAW,IAAI,sBAAsB,EAAE;YAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;YAEnB,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACvB,CAAC,EAAE,2BAA2B,CAAC,CAAC;YAChC,OAAO;SACR;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAChC,KAAK,EAAE,OAAkC,EAAE,EAAE;YAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAC1B,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;YAElC,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;aAC5B;YAED,IAAI;gBACF,IAAI,MAAM,CAAC;gBACX,IAAI,IAAA,mBAAU,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE;oBAChC,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;wBAC9B,OAAO,EAAE,gBAAgB;wBACzB,GAAG,OAAO;qBACX,CAAC,CAAC;iBACJ;qBAAM;oBACL,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;wBACzC,OAAO,EAAE,gBAAgB;wBACzB,GAAG,OAAO;qBACX,CAAC,CAAC;iBACJ;gBAED,OAAO,MAAM,CAAC;aACf;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAU,CAAC;aACnB;QACH,CAAC,CACF,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,OAAO;aACrB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC;QAE5C,MAAM,OAAO,GAAG,OAAO;aACpB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,eAAe,CAAC,CAAC;QAEtD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACnB,IAAG,CAAC,CAAC,MAAM,YAAY,KAAK,IAAI,MAAM,YAAY,eAAe,CAAC,EAAE;gBAClE,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,eAAe,EACf,IAAI,CAAC,SAAS,CAAE,MAAc,CAAC,IAAI,CAAC;qBACjC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;qBAC/B,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CACtB,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClB,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAoB,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,mBAAmB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,CACpF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,kBAAkB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAC3E,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE;YACtC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAChC;QAED,OAAO;aACJ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,YAAY,eAAe,CAAC,CAAC;aACpF,OAAO,CAAC,CAAC,CAAC,EAAE;YACX,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAgB,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,qBAAqB,CAAC,CAAC;YAExD,IAAI;gBACF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC9C,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;aAC7B;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,OAAO,CAAC,GAAG,6BAA6B,IAAI,CAAC,SAAS,CACxD,QAAQ,CAAC,IAAI,CACd,EAAE,EACH,CAAC,CACF,CAAC;gBACF,OAAO;aACR;QACH,CAAC,CAAC,CAAC;QACL,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAEvD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,OAAO;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAI,CAAC,CAAC;IAC9D,CAAC;IAED,YAAY;QACV,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,WAAW;QACT,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,SAAS;QACP,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IACpB,CAAC;CACF;AArJD,0BAqJC"}
1
+ {"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../../../src/lib/fetcher/fetcher.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paraswap/dex-lib",
3
- "version": "2.15.2-curve-v1-issue",
3
+ "version": "2.15.2",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "repository": "https://github.com/paraswap/paraswap-dex-lib",
@@ -503,7 +503,7 @@ export class CurveV1 extends SimpleExchange implements IDex<CurveV1Data> {
503
503
 
504
504
  let fromIndex = curveIndexes[0];
505
505
  let toIndex = curveIndexes[1];
506
- let isTokenSwap = curveIndexes[2] === 1;
506
+ let isTokenSwap = curveIndexes[2] == 1;
507
507
 
508
508
  let pool = this.getPoolByAddress(exchange);
509
509
  if (!pool) {
@@ -323,7 +323,7 @@ export abstract class CurvePool extends StatefulEventSubscriber<PoolState> {
323
323
  const xp = this._xp(rates, balances);
324
324
  const x = xp[i].plus(dx.times(this.PRECISION_MUL[i]));
325
325
  const y = this.get_y(i, j, x, xp, A);
326
- const dy = xp[j].minus(y).minus(new BigNumber(1)).idiv(this.PRECISION_MUL[j]);
326
+ const dy = xp[j].minus(y).idiv(this.PRECISION_MUL[j]);
327
327
  let _fee = fee.times(dy).idiv(this.FEE_DENOMINATOR);
328
328
  if (!usefee) _fee = BN_0;
329
329
  return dy.minus(_fee);
@@ -360,7 +360,7 @@ export abstract class CurvePool extends StatefulEventSubscriber<PoolState> {
360
360
  const xp = this._xp(rates, balances);
361
361
  const x = xp[i].plus(dx.times(rates[i]).idiv(this.PRECISION));
362
362
  const y = this.get_y(i, j, x, xp, A);
363
- const dy = xp[j].minus(y).minus(new BigNumber(1)).times(this.PRECISION).idiv(rates[j]);
363
+ const dy = xp[j].minus(y).times(this.PRECISION).idiv(rates[j]);
364
364
  let _fee = fee.times(dy).idiv(this.FEE_DENOMINATOR);
365
365
  if (!usefee) _fee = BN_0;
366
366
  return dy.minus(_fee);
@@ -5,9 +5,15 @@ import { ethers } from 'ethers';
5
5
  import { Network, ContractMethod, SwapSide, MAX_UINT } from '../../constants';
6
6
  import { generateConfig } from '../../config';
7
7
  import { newTestE2E, getEnv } from '../../../tests/utils-e2e';
8
- import { SmartTokens, GENERIC_ADDR1 } from '../../../tests/constants-e2e';
8
+ import {
9
+ SmartTokens,
10
+ GENERIC_ADDR1,
11
+ Tokens,
12
+ } from '../../../tests/constants-e2e';
9
13
  import { RFQConfig } from './types';
10
14
  import { testConfig } from './e2e-test-config';
15
+ import { SmartToken } from '../../../tests/smart-tokens';
16
+ import { Token } from '../../types';
11
17
 
12
18
  const PK_KEY = process.env.TEST_PK_KEY;
13
19
 
@@ -85,22 +91,32 @@ const dexKey = 'YOUR_NAME';
85
91
  describe(`GenericRFQ ${dexKey} E2E`, () => {
86
92
  for (const [_network, testCases] of Object.entries(testConfig)) {
87
93
  const network = parseInt(_network, 10);
94
+ const tokens = Tokens[network];
88
95
  const smartTokens = SmartTokens[network];
89
96
  const config = generateConfig(network);
90
97
 
91
98
  config.rfqConfigs[dexKey] = buildConfigForGenericRFQ();
92
99
  describe(`${Network[network]}`, () => {
93
100
  for (const testCase of testCases) {
94
- if (!smartTokens.hasOwnProperty(testCase.srcToken)) {
95
- throw new Error(`Please add "addBalance" and "addAllowance" functions for ${testCase.srcToken} on ${Network[network]} (in constants-e2e.ts).`);
96
- }
97
- if (!smartTokens.hasOwnProperty(testCase.destToken)){
98
- throw new Error(`Please add "addBalance" and "addAllowance" functions for ${testCase.destToken} on ${Network[network]} (in constants-e2e.ts).`);
99
- }
100
- const srcToken = smartTokens[testCase.srcToken];
101
- const destToken = smartTokens[testCase.destToken];
101
+ let srcToken: Token | SmartToken, destToken: Token | SmartToken;
102
+
103
+ if (SKIP_TENDERLY) {
104
+ srcToken = tokens[testCase.srcToken];
105
+ destToken = tokens[testCase.destToken];
106
+ } else {
107
+ if (!smartTokens.hasOwnProperty(testCase.srcToken)) {
108
+ throw new Error(
109
+ `Please add "addBalance" and "addAllowance" functions for ${testCase.srcToken} on ${Network[network]} (in constants-e2e.ts).`,
110
+ );
111
+ }
112
+ if (!smartTokens.hasOwnProperty(testCase.destToken)) {
113
+ throw new Error(
114
+ `Please add "addBalance" and "addAllowance" functions for ${testCase.destToken} on ${Network[network]} (in constants-e2e.ts).`,
115
+ );
116
+ }
117
+ srcToken = smartTokens[testCase.srcToken];
118
+ destToken = smartTokens[testCase.destToken];
102
119
 
103
- if (!SKIP_TENDERLY) {
104
120
  srcToken.addBalance(testAccount.address, MAX_UINT);
105
121
  srcToken.addAllowance(
106
122
  testAccount.address,
@@ -401,13 +401,17 @@ export class RateFetcher {
401
401
  this.firmRateAuth(payload);
402
402
  delete payload.secret;
403
403
  }
404
-
405
- this.logger.info('FirmRate Request:', payload);
404
+ this.logger.info(
405
+ 'FirmRate Request:',
406
+ JSON.stringify(payload).replace(/(?:\r\n|\r|\n)/g, ' '),
407
+ );
406
408
  const { data } = await this.dexHelper.httpRequest.request<unknown>(
407
409
  payload,
408
410
  );
409
- this.logger.info('FirmRate Response: ', data);
410
-
411
+ this.logger.info(
412
+ 'FirmRate Response: ',
413
+ JSON.stringify(data).replace(/(?:\r\n|\r|\n)/g, ' '),
414
+ );
411
415
  const firmRateResp = validateAndCast<RFQFirmRateResponse>(
412
416
  data,
413
417
  firmRateResponseValidator,
@@ -115,7 +115,7 @@ export class Hashflow extends SimpleExchange implements IDex<HashflowData> {
115
115
  rateConfig: {
116
116
  pricesIntervalMs: HASHFLOW_API_PRICES_POLLING_INTERVAL_MS,
117
117
  markerMakersIntervalMs:
118
- HASHFLOW_API_MARKET_MAKERS_POLLING_INTERVAL_MS,
118
+ HASHFLOW_API_MARKET_MAKERS_POLLING_INTERVAL_MS,
119
119
  marketMakersReqParams: {
120
120
  url: `${HASHFLOW_API_URL}/taker/v1/marketMakers`,
121
121
  params: {
@@ -1,20 +1,24 @@
1
1
  import joi from 'joi';
2
2
 
3
- export const levelValidator = joi.array().items(joi.object({
4
- pair: joi.object({
5
- baseTokenName: joi.string().min(1).required(),
6
- quoteTokenName: joi.string().min(1).required(),
7
- baseToken: joi.string().min(1).required(),
8
- quoteToken: joi.string().min(1).required(),
9
- baseTokenDecimals: joi.number().min(1).required(),
10
- quoteTokenDecimals: joi.number().min(1).required(),
3
+ export const levelValidator = joi.array().items(
4
+ joi.object({
5
+ pair: joi.object({
6
+ baseTokenName: joi.string().min(1).required(),
7
+ quoteTokenName: joi.string().min(1).required(),
8
+ baseToken: joi.string().min(1).required(),
9
+ quoteToken: joi.string().min(1).required(),
10
+ baseTokenDecimals: joi.number().min(1).required(),
11
+ quoteTokenDecimals: joi.number().min(1).required(),
12
+ }),
13
+ levels: joi.array().items(
14
+ joi.object({
15
+ level: joi.string().min(1).required(),
16
+ price: joi.string().min(1).required(),
17
+ }),
18
+ ),
19
+ includesFees: joi.boolean().required(),
11
20
  }),
12
- levels: joi.array().items(joi.object({
13
- level: joi.string().min(1).required(),
14
- price: joi.string().min(1).required(),
15
- })),
16
- includesFees: joi.boolean().required(),
17
- }));
21
+ );
18
22
 
19
23
  export const pricesResponseValidator = joi.object({
20
24
  status: joi.string().required(),
@@ -8,13 +8,13 @@ const FETCH_FAIL_MAX_ATTEMPT = 5;
8
8
  const FETCH_FAIL_RETRY_TIMEOUT_MS = 60 * 1000;
9
9
 
10
10
  export class SkippingRequest {
11
- constructor(
12
- public message = '',
13
- ) {}
14
- };
11
+ constructor(public message = '') {}
12
+ }
15
13
 
16
14
  export type RequestInfo<T> = {
17
- requestFunc?: (options: RequestConfig) => Promise<Response<T> | SkippingRequest>;
15
+ requestFunc?: (
16
+ options: RequestConfig,
17
+ ) => Promise<Response<T> | SkippingRequest>;
18
18
  requestOptions: RequestConfig;
19
19
  caster: (data: unknown) => T;
20
20
  authenticate?: (options: RequestConfig) => RequestConfig;
@@ -60,35 +60,35 @@ export class Fetcher<T> {
60
60
  return;
61
61
  }
62
62
 
63
- const promises = this.requests.map<Promise<Error | Response<T> | SkippingRequest>>(
64
- async (reqInfo: RequestInfoWithHandler<T>) => {
65
- const info = reqInfo.info;
66
- let options = info.requestOptions;
63
+ const promises = this.requests.map<
64
+ Promise<Error | Response<T> | SkippingRequest>
65
+ >(async (reqInfo: RequestInfoWithHandler<T>) => {
66
+ const info = reqInfo.info;
67
+ let options = info.requestOptions;
67
68
 
68
- if (info.authenticate) {
69
- info.authenticate(options);
70
- }
69
+ if (info.authenticate) {
70
+ info.authenticate(options);
71
+ }
71
72
 
72
- try {
73
- let result;
74
- if (isFunction(info.requestFunc)) {
75
- result = await info.requestFunc({
76
- timeout: FETCH_TIMEOUT_MS,
77
- ...options,
78
- });
79
- } else {
80
- result = await this.requestWrapper.request({
81
- timeout: FETCH_TIMEOUT_MS,
82
- ...options,
83
- });
84
- }
85
-
86
- return result;
87
- } catch (e) {
88
- return e as Error;
73
+ try {
74
+ let result;
75
+ if (isFunction(info.requestFunc)) {
76
+ result = await info.requestFunc({
77
+ timeout: FETCH_TIMEOUT_MS,
78
+ ...options,
79
+ });
80
+ } else {
81
+ result = await this.requestWrapper.request({
82
+ timeout: FETCH_TIMEOUT_MS,
83
+ ...options,
84
+ });
89
85
  }
90
- },
91
- );
86
+
87
+ return result;
88
+ } catch (e) {
89
+ return e as Error;
90
+ }
91
+ });
92
92
  const results = await Promise.all(promises);
93
93
  const failures = results
94
94
  .map((_, i) => i)
@@ -99,7 +99,7 @@ export class Fetcher<T> {
99
99
  .filter(i => results[i] instanceof SkippingRequest);
100
100
 
101
101
  results.map(result => {
102
- if(!(result instanceof Error || result instanceof SkippingRequest)) {
102
+ if (!(result instanceof Error || result instanceof SkippingRequest)) {
103
103
  this.logger.info(
104
104
  'Results Data:',
105
105
  JSON.stringify((result as any).data)
@@ -131,7 +131,12 @@ export class Fetcher<T> {
131
131
 
132
132
  results
133
133
  .map((_, i) => i)
134
- .filter(i => !(results[i] instanceof Error || results[i] instanceof SkippingRequest))
134
+ .filter(
135
+ i =>
136
+ !(
137
+ results[i] instanceof Error || results[i] instanceof SkippingRequest
138
+ ),
139
+ )
135
140
  .forEach(i => {
136
141
  const response = results[i] as Response<T>;
137
142
  const reqInfo = this.requests[i];
@@ -143,10 +148,10 @@ export class Fetcher<T> {
143
148
  const parsedData = info.caster(response.data);
144
149
  reqInfo.handler(parsedData);
145
150
  } catch (e) {
146
- this.logger.debug(
151
+ this.logger.info(
147
152
  `(${options.url}) received incorrect data ${JSON.stringify(
148
153
  response.data,
149
- )}`,
154
+ ).replace(/(?:\r\n|\r|\n)/g, ' ')}`,
150
155
  e,
151
156
  );
152
157
  return;
@@ -695,6 +695,8 @@ export const Tokens: {
695
695
  WETH: {
696
696
  address: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
697
697
  decimals: 18,
698
+ addBalance: _balancesFn,
699
+ addAllowance: _allowancesFn,
698
700
  },
699
701
  ETH: { address: ETHER_ADDRESS, decimals: 18 },
700
702
  USDC: {
@@ -704,6 +706,8 @@ export const Tokens: {
704
706
  USDT: {
705
707
  address: '0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9',
706
708
  decimals: 6,
709
+ addBalance: _balancesFn,
710
+ addAllowance: _allowancesFn,
707
711
  },
708
712
  FRAX: {
709
713
  address: '0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F',
@@ -30,6 +30,7 @@ import axios from 'axios';
30
30
  import { SmartToken, StateOverrides } from './smart-tokens';
31
31
  import { GIFTER_ADDRESS } from './constants-e2e';
32
32
  import { sleep } from './utils';
33
+ import { assert } from 'ts-essentials';
33
34
 
34
35
  export const testingEndpoint = process.env.E2E_TEST_ENDPOINT;
35
36
 
@@ -282,8 +283,8 @@ export async function testE2E(
282
283
 
283
284
  export type TestParamE2E = {
284
285
  config: Config;
285
- srcToken: SmartToken;
286
- destToken: SmartToken;
286
+ srcToken: Token | SmartToken;
287
+ destToken: Token | SmartToken;
287
288
  senderAddress: Address;
288
289
  thirdPartyAddress?: Address;
289
290
  _amount: string;
@@ -345,7 +346,11 @@ export async function newTestE2E({
345
346
  }
346
347
 
347
348
  if (useTenderly && adapterBytecode) {
348
- const deployTx = await (ts as TenderlySimulation).simulate(
349
+ assert(
350
+ ts instanceof TenderlySimulation,
351
+ '`ts` is not an instance of TenderlySimulation',
352
+ );
353
+ const deployTx = await ts.simulate(
349
354
  deployAdapterParams(adapterBytecode, network),
350
355
  );
351
356
 
@@ -360,13 +365,22 @@ export async function newTestE2E({
360
365
  'gas',
361
366
  );
362
367
 
363
- const whitelistTx = await (ts as TenderlySimulation).simulate(
368
+ const whitelistTx = await ts.simulate(
364
369
  whiteListAdapterParams(adapterAddress, network),
365
370
  );
366
371
  expect(whitelistTx.success).toEqual(true);
367
372
  }
368
373
 
369
374
  if (useTenderly && thirdPartyAddress) {
375
+ assert(
376
+ destToken instanceof SmartToken,
377
+ '`destToken` is not an instance of SmartToken',
378
+ );
379
+ assert(
380
+ ts instanceof TenderlySimulation,
381
+ '`ts` is not an instance of TenderlySimulation',
382
+ );
383
+
370
384
  const stateOverrides: StateOverrides = {
371
385
  networkID: `${network}`,
372
386
  stateOverrides: {},
@@ -383,7 +397,7 @@ export async function newTestE2E({
383
397
  : (BigInt(MAX_UINT) / 4n).toString(),
384
398
  );
385
399
 
386
- await (ts as TenderlySimulation).simulate(giftTx, stateOverrides);
400
+ await ts.simulate(giftTx, stateOverrides);
387
401
  }
388
402
 
389
403
  const useAPI = testingEndpoint && !poolIdentifiers;
@@ -402,8 +416,8 @@ export async function newTestE2E({
402
416
  }
403
417
  try {
404
418
  const priceRoute = await paraswap.getPrices(
405
- srcToken.token,
406
- destToken.token,
419
+ skipTenderly ? (srcToken as Token) : (srcToken as SmartToken).token,
420
+ skipTenderly ? (destToken as Token) : (destToken as SmartToken).token,
407
421
  amount,
408
422
  swapSide,
409
423
  contractMethod,
@@ -428,6 +442,19 @@ export async function newTestE2E({
428
442
  );
429
443
 
430
444
  if (useTenderly) {
445
+ assert(
446
+ srcToken instanceof SmartToken,
447
+ '`srcToken` is not an instance of SmartToken',
448
+ );
449
+ assert(
450
+ destToken instanceof SmartToken,
451
+ '`destToken` is not an instance of SmartToken',
452
+ );
453
+ assert(
454
+ ts instanceof TenderlySimulation,
455
+ '`ts` is not an instance of TenderlySimulation',
456
+ );
457
+
431
458
  const stateOverrides: StateOverrides = {
432
459
  networkID: `${network}`,
433
460
  stateOverrides: {},
@@ -456,10 +483,7 @@ export async function newTestE2E({
456
483
  srcToken.applyOverrides(stateOverrides);
457
484
  destToken.applyOverrides(stateOverrides);
458
485
 
459
- const swapTx = await (ts as TenderlySimulation).simulate(
460
- swapParams,
461
- stateOverrides,
462
- );
486
+ const swapTx = await ts.simulate(swapParams, stateOverrides);
463
487
  console.log(`${srcToken.address}_${destToken.address}_${dexKey!}`);
464
488
  // Only log gas estimate if testing against API
465
489
  if (useAPI)
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,6 +0,0 @@
1
- <component name="InspectionProjectProfileManager">
2
- <profile version="1.0">
3
- <option name="myName" value="Project Default" />
4
- <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
5
- </profile>
6
- </component>
@@ -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,10 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="RunConfigurationProducerService">
4
- <option name="ignoredProducers">
5
- <set>
6
- <option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
7
- </set>
8
- </option>
9
- </component>
10
- </project>