@across-protocol/sdk 4.1.43 → 4.1.44

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 (85) hide show
  1. package/dist/cjs/addressAggregator/adapters/abstract.d.ts +15 -0
  2. package/dist/cjs/addressAggregator/adapters/abstract.js +83 -0
  3. package/dist/cjs/addressAggregator/adapters/abstract.js.map +1 -0
  4. package/dist/cjs/addressAggregator/adapters/bybit.d.ts +5 -9
  5. package/dist/cjs/addressAggregator/adapters/bybit.js +11 -12
  6. package/dist/cjs/addressAggregator/adapters/bybit.js.map +1 -1
  7. package/dist/cjs/addressAggregator/adapters/env.d.ts +5 -7
  8. package/dist/cjs/addressAggregator/adapters/env.js +12 -11
  9. package/dist/cjs/addressAggregator/adapters/env.js.map +1 -1
  10. package/dist/cjs/addressAggregator/adapters/file.d.ts +5 -7
  11. package/dist/cjs/addressAggregator/adapters/file.js +13 -12
  12. package/dist/cjs/addressAggregator/adapters/file.js.map +1 -1
  13. package/dist/cjs/addressAggregator/adapters/risklabs.d.ts +5 -9
  14. package/dist/cjs/addressAggregator/adapters/risklabs.js +18 -14
  15. package/dist/cjs/addressAggregator/adapters/risklabs.js.map +1 -1
  16. package/dist/cjs/addressAggregator/index.js +2 -2
  17. package/dist/cjs/addressAggregator/index.js.map +1 -1
  18. package/dist/cjs/addressAggregator/types.d.ts +9 -1
  19. package/dist/cjs/addressAggregator/types.js.map +1 -1
  20. package/dist/cjs/constants.d.ts +1 -0
  21. package/dist/cjs/constants.js +13 -1
  22. package/dist/cjs/constants.js.map +1 -1
  23. package/dist/cjs/utils/TokenUtils.d.ts +1 -0
  24. package/dist/cjs/utils/TokenUtils.js +5 -1
  25. package/dist/cjs/utils/TokenUtils.js.map +1 -1
  26. package/dist/esm/addressAggregator/adapters/abstract.d.ts +15 -0
  27. package/dist/esm/addressAggregator/adapters/abstract.js +80 -0
  28. package/dist/esm/addressAggregator/adapters/abstract.js.map +1 -0
  29. package/dist/esm/addressAggregator/adapters/bybit.d.ts +5 -9
  30. package/dist/esm/addressAggregator/adapters/bybit.js +12 -13
  31. package/dist/esm/addressAggregator/adapters/bybit.js.map +1 -1
  32. package/dist/esm/addressAggregator/adapters/env.d.ts +5 -7
  33. package/dist/esm/addressAggregator/adapters/env.js +12 -11
  34. package/dist/esm/addressAggregator/adapters/env.js.map +1 -1
  35. package/dist/esm/addressAggregator/adapters/file.d.ts +5 -7
  36. package/dist/esm/addressAggregator/adapters/file.js +14 -13
  37. package/dist/esm/addressAggregator/adapters/file.js.map +1 -1
  38. package/dist/esm/addressAggregator/adapters/risklabs.d.ts +5 -9
  39. package/dist/esm/addressAggregator/adapters/risklabs.js +19 -15
  40. package/dist/esm/addressAggregator/adapters/risklabs.js.map +1 -1
  41. package/dist/esm/addressAggregator/index.js +2 -2
  42. package/dist/esm/addressAggregator/index.js.map +1 -1
  43. package/dist/esm/addressAggregator/types.d.ts +9 -1
  44. package/dist/esm/addressAggregator/types.js.map +1 -1
  45. package/dist/esm/constants.d.ts +1 -0
  46. package/dist/esm/constants.js +12 -0
  47. package/dist/esm/constants.js.map +1 -1
  48. package/dist/esm/utils/TokenUtils.d.ts +1 -0
  49. package/dist/esm/utils/TokenUtils.js +3 -0
  50. package/dist/esm/utils/TokenUtils.js.map +1 -1
  51. package/dist/types/addressAggregator/adapters/abstract.d.ts +16 -0
  52. package/dist/types/addressAggregator/adapters/abstract.d.ts.map +1 -0
  53. package/dist/types/addressAggregator/adapters/bybit.d.ts +5 -9
  54. package/dist/types/addressAggregator/adapters/bybit.d.ts.map +1 -1
  55. package/dist/types/addressAggregator/adapters/env.d.ts +5 -7
  56. package/dist/types/addressAggregator/adapters/env.d.ts.map +1 -1
  57. package/dist/types/addressAggregator/adapters/file.d.ts +5 -7
  58. package/dist/types/addressAggregator/adapters/file.d.ts.map +1 -1
  59. package/dist/types/addressAggregator/adapters/risklabs.d.ts +5 -9
  60. package/dist/types/addressAggregator/adapters/risklabs.d.ts.map +1 -1
  61. package/dist/types/addressAggregator/types.d.ts +9 -1
  62. package/dist/types/addressAggregator/types.d.ts.map +1 -1
  63. package/dist/types/constants.d.ts +1 -0
  64. package/dist/types/constants.d.ts.map +1 -1
  65. package/dist/types/utils/TokenUtils.d.ts +1 -0
  66. package/dist/types/utils/TokenUtils.d.ts.map +1 -1
  67. package/package.json +1 -1
  68. package/src/addressAggregator/adapters/abstract.ts +74 -0
  69. package/src/addressAggregator/adapters/bybit.ts +10 -11
  70. package/src/addressAggregator/adapters/env.ts +10 -10
  71. package/src/addressAggregator/adapters/file.ts +11 -12
  72. package/src/addressAggregator/adapters/risklabs.ts +14 -13
  73. package/src/addressAggregator/index.ts +2 -2
  74. package/src/addressAggregator/types.ts +10 -1
  75. package/src/constants.ts +13 -0
  76. package/src/utils/TokenUtils.ts +6 -0
  77. package/dist/cjs/addressAggregator/adapters/util.d.ts +0 -4
  78. package/dist/cjs/addressAggregator/adapters/util.js +0 -66
  79. package/dist/cjs/addressAggregator/adapters/util.js.map +0 -1
  80. package/dist/esm/addressAggregator/adapters/util.d.ts +0 -4
  81. package/dist/esm/addressAggregator/adapters/util.js +0 -60
  82. package/dist/esm/addressAggregator/adapters/util.js.map +0 -1
  83. package/dist/types/addressAggregator/adapters/util.d.ts +0 -5
  84. package/dist/types/addressAggregator/adapters/util.d.ts.map +0 -1
  85. package/src/addressAggregator/adapters/util.ts +0 -47
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../../src/addressAggregator/adapters/env.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAY,MAAM,QAAQ,CAAC;AAI1C,qBAAa,WAAY,YAAW,kBAAkB;IAGxC,QAAQ,CAAC,MAAM;IAF3B,QAAQ,CAAC,IAAI,iBAAiB;gBAET,MAAM,SAA6B;IAExD,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAkB3C"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../../src/addressAggregator/adapters/env.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAI7C,qBAAa,WAAY,SAAQ,eAAe;gBAClC,IAAI,CAAC,EAAE,cAAc;IAIjC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAkB5B"}
@@ -1,9 +1,7 @@
1
- import { AddressListAdapter } from "../types";
2
- import { Logger } from "./util";
3
- export declare class AddressList implements AddressListAdapter {
4
- readonly path: string;
5
- readonly name: string;
6
- constructor(path?: string);
7
- update(logger?: Logger): Promise<string[]>;
1
+ import { AdapterOptions } from "../types";
2
+ import { AbstractAdapter } from "./abstract";
3
+ export declare class AddressList extends AbstractAdapter {
4
+ constructor(opts?: AdapterOptions);
5
+ update(): Promise<string[]>;
8
6
  }
9
7
  //# sourceMappingURL=file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../../src/addressAggregator/adapters/file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAY,MAAM,QAAQ,CAAC;AAI1C,qBAAa,WAAY,YAAW,kBAAkB;IAGxC,QAAQ,CAAC,IAAI;IAFzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAED,IAAI,SAAqB;IAIxC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAwBjD"}
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../../src/addressAggregator/adapters/file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAI7C,qBAAa,WAAY,SAAQ,eAAe;gBAClC,IAAI,CAAC,EAAE,cAAc;IAK3B,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAwBlC"}
@@ -1,11 +1,7 @@
1
- import { AddressListAdapter } from "../types";
2
- import { Logger } from "./util";
3
- export declare class AddressList implements AddressListAdapter {
4
- readonly name: string;
5
- readonly url: string;
6
- readonly timeout = 2000;
7
- readonly retries = 1;
8
- constructor(name?: string, url?: string);
9
- update(logger?: Logger): Promise<string[]>;
1
+ import { AdapterOptions } from "../types";
2
+ import { AbstractAdapter } from "./abstract";
3
+ export declare class AddressList extends AbstractAdapter {
4
+ constructor(opts?: AdapterOptions);
5
+ update(): Promise<string[]>;
10
6
  }
11
7
  //# sourceMappingURL=risklabs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"risklabs.d.ts","sourceRoot":"","sources":["../../../../src/addressAggregator/adapters/risklabs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAY,MAAM,EAAS,MAAM,QAAQ,CAAC;AAMjD,qBAAa,WAAY,YAAW,kBAAkB;IAKlD,QAAQ,CAAC,IAAI;IACb,QAAQ,CAAC,GAAG;IALd,QAAQ,CAAC,OAAO,QAAQ;IACxB,QAAQ,CAAC,OAAO,KAAK;gBAGV,IAAI,SAAe,EACnB,GAAG,SAAc;IAGtB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CASjD"}
1
+ {"version":3,"file":"risklabs.d.ts","sourceRoot":"","sources":["../../../../src/addressAggregator/adapters/risklabs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAM7C,qBAAa,WAAY,SAAQ,eAAe;gBAClC,IAAI,CAAC,EAAE,cAAc;IAI3B,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAclC"}
@@ -1,7 +1,15 @@
1
1
  import { Logger } from "../utils";
2
+ export type AdapterOptions = {
3
+ name?: string;
4
+ path?: string;
5
+ retries?: number;
6
+ timeout?: number;
7
+ throwOnError?: boolean;
8
+ logger?: Logger;
9
+ };
2
10
  export interface AddressListAdapter {
3
11
  readonly name: string;
4
- update(logger?: Logger): Promise<string[]>;
12
+ update(): Promise<string[]>;
5
13
  }
6
14
  export declare const INVALID_ADDRESS = "";
7
15
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/addressAggregator/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/addressAggregator/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC7B;AAED,eAAO,MAAM,eAAe,KAAK,CAAC"}
@@ -27,6 +27,7 @@ export declare const DEFAULT_ARWEAVE_STORAGE_ADDRESS = "Z6hjBM8FHu90lYWB8o5jR1df
27
27
  export declare const EMPTY_MESSAGE = "0x";
28
28
  export declare const UNDEFINED_MESSAGE_HASH = "";
29
29
  export declare const BRIDGED_USDC_SYMBOLS: string[];
30
+ export declare const STABLE_COIN_SYMBOLS: string[];
30
31
  export declare const CUSTOM_GAS_TOKENS: {
31
32
  [x: number]: string;
32
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAqB,YAAY,UAAY,UAAU,QAAoB,CAAC;AAGnF,eAAO,MAAM,kBAAkB,kCAAkC,CAAC;AAIlE,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAGlC,eAAO,MAAM,2CAA2C,IAAI,CAAC;AAG7D,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAOtD,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC;;;;;;;GAOG;AACH,eAAO,MAAM,iCAAiC,UAA2B,CAAC;AAE1E,eAAO,MAAM,mBAAmB,QAAuB,CAAC;AACxD,eAAO,MAAM,wBAAwB,QAAU,CAAC;AAEhD,eAAO,MAAM,iCAAiC,+CAA+C,CAAC;AAC9F,eAAO,MAAM,sCAAsC,+CAA+C,CAAC;AAEnG,eAAO,MAAM,+BAA+B,gDAAgD,CAAC;AAE7F,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,eAAO,MAAM,oBAAoB,UAIhC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;CAM7B,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAqB,YAAY,UAAY,UAAU,QAAoB,CAAC;AAGnF,eAAO,MAAM,kBAAkB,kCAAkC,CAAC;AAIlE,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAGlC,eAAO,MAAM,2CAA2C,IAAI,CAAC;AAG7D,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAOtD,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC;;;;;;;GAOG;AACH,eAAO,MAAM,iCAAiC,UAA2B,CAAC;AAE1E,eAAO,MAAM,mBAAmB,QAAuB,CAAC;AACxD,eAAO,MAAM,wBAAwB,QAAU,CAAC;AAEhD,eAAO,MAAM,iCAAiC,+CAA+C,CAAC;AAC9F,eAAO,MAAM,sCAAsC,+CAA+C,CAAC;AAEnG,eAAO,MAAM,+BAA+B,gDAAgD,CAAC;AAE7F,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,eAAO,MAAM,oBAAoB,UAIhC,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAW/B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;CAM7B,CAAC"}
@@ -673,6 +673,7 @@ export declare function getCoingeckoTokenIdByAddress(contractAddress: string): s
673
673
  */
674
674
  export declare function getTokenBalance(address: string, tokenAddress: string, signerOrProvider: SignerOrProvider, blockTag?: BlockTag): Promise<BigNumber>;
675
675
  export declare function isBridgedUsdc(tokenSymbol: string): boolean;
676
+ export declare function isStablecoin(tokenSymbol: string): boolean;
676
677
  export declare function getTokenInfo(l2TokenAddress: string, chainId: number): L1Token;
677
678
  /**
678
679
  * Get the USDC symbol for the given token address and chain ID.
@@ -1 +1 @@
1
- {"version":3,"file":"TokenUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/TokenUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAY,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAM7C,KAAK,gBAAgB,GAAG,SAAS,CAAC,QAAQ,GAAG,MAAM,CAAC;AAEpD,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAI1G;AAED,eAAO,MAAM,mBAAmB,mBACd,MAAM;;aAMvB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAY7E;AAED;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,WAC5B,MAAM,WACL,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAEd,MAAM,GAAG,SAIX,CAAC;AAEF,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoB,GAAG,OAAO,GAAG,SAAS,CAWrH;AAED,wBAAgB,4BAA4B,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAM5E;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,GAAE,QAAmB,GAC5B,OAAO,CAAC,SAAS,CAAC,CAGpB;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAI1D;AAED,wBAAgB,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAc7E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOlF;AAED,wBAAgB,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAa/E"}
1
+ {"version":3,"file":"TokenUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/TokenUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAY,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAM7C,KAAK,gBAAgB,GAAG,SAAS,CAAC,QAAQ,GAAG,MAAM,CAAC;AAEpD,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAI1G;AAED,eAAO,MAAM,mBAAmB,mBACd,MAAM;;aAMvB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAY7E;AAED;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,WAC5B,MAAM,WACL,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAEd,MAAM,GAAG,SAIX,CAAC;AAEF,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoB,GAAG,OAAO,GAAG,SAAS,CAWrH;AAED,wBAAgB,4BAA4B,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAM5E;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,GAAE,QAAmB,GAC5B,OAAO,CAAC,SAAS,CAAC,CAGpB;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAI1D;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAIzD;AAED,wBAAgB,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAc7E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOlF;AAED,wBAAgB,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAa/E"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@across-protocol/sdk",
3
3
  "author": "UMA Team",
4
- "version": "4.1.43",
4
+ "version": "4.1.44",
5
5
  "license": "AGPL-3.0",
6
6
  "homepage": "https://docs.across.to/reference/sdk",
7
7
  "files": [
@@ -0,0 +1,74 @@
1
+ import axios from "axios";
2
+ import { AdapterOptions, AddressListAdapter } from "../types";
3
+ import { Logger } from "../../utils";
4
+
5
+ const { ACROSS_USER_AGENT = "across-protocol" } = process.env;
6
+
7
+ export abstract class AbstractAdapter implements AddressListAdapter {
8
+ readonly timeout: number;
9
+ readonly retries: number;
10
+ readonly throw: boolean;
11
+ readonly logger?: Logger;
12
+
13
+ constructor(
14
+ readonly name: string,
15
+ readonly path: string,
16
+ opts?: Omit<AdapterOptions, "name" | "path">
17
+ ) {
18
+ this.timeout = opts?.timeout ?? 2000;
19
+ this.retries = opts?.retries ?? 1;
20
+ this.throw = opts?.throwOnError ?? true;
21
+ this.logger = opts?.logger;
22
+ }
23
+
24
+ abstract update(logger?: Logger): Promise<string[]>;
25
+
26
+ protected sleep(ms: number): Promise<void> {
27
+ return new Promise((r) => setTimeout(r, ms));
28
+ }
29
+
30
+ protected async fetch(name: string, url: string, timeout = 2000, retries = 1): Promise<unknown> {
31
+ const args = {
32
+ headers: { "User-Agent": ACROSS_USER_AGENT },
33
+ timeout,
34
+ };
35
+
36
+ const errs: string[] = [];
37
+ let tries = 0;
38
+ do {
39
+ try {
40
+ return (await axios(url, args)).data;
41
+ } catch (err) {
42
+ const errMsg = axios.isAxiosError(err) || err instanceof Error ? err.message : "unknown error";
43
+ errs.push(errMsg);
44
+ if (++tries <= retries) await this.sleep(Math.pow(1.5, tries) * 1000); // simple backoff
45
+ }
46
+ } while (tries <= retries);
47
+
48
+ throw new Error(`${name} retrieval failure (${errs.join(", ")})`);
49
+ }
50
+
51
+ protected error(error: unknown): Promise<string[]> {
52
+ if (this.throw) {
53
+ throw error;
54
+ }
55
+
56
+ let reason: string;
57
+ if (error instanceof Error) {
58
+ reason = error.message;
59
+ } else {
60
+ reason = typeof error === "string" ? error : "unknown error";
61
+ }
62
+
63
+ const { name, path, timeout, retries } = this;
64
+ this.logger?.warn({
65
+ at: `${name}::update`,
66
+ message: `Failed to read addresses from ${name}.`,
67
+ reason,
68
+ path,
69
+ retries,
70
+ timeout,
71
+ });
72
+ return Promise.resolve([]);
73
+ }
74
+ }
@@ -1,7 +1,8 @@
1
1
  import { array, defaulted, string, type } from "superstruct";
2
- import { AddressListAdapter } from "../types";
3
- import { logError, Logger, fetch } from "./util";
2
+ import { AdapterOptions } from "../types";
3
+ import { AbstractAdapter } from "./abstract";
4
4
 
5
+ const DEFAULT_NAME = "bybit";
5
6
  const DEFAULT_URL = "https://hackscan.hackbounty.io/public/hack-address.json";
6
7
 
7
8
  // This type is a bit message and unweildy. Additional fields representing new chains may be added without notification.
@@ -13,18 +14,16 @@ const bybitResponse = type({
13
14
  }),
14
15
  });
15
16
 
16
- export class AddressList implements AddressListAdapter {
17
- readonly timeout = 2000; // ms
18
- readonly retries = 1;
19
- readonly name = "bybit";
20
-
21
- constructor(readonly url = DEFAULT_URL) {}
17
+ export class AddressList extends AbstractAdapter {
18
+ constructor(opts?: AdapterOptions) {
19
+ super(opts?.name ?? DEFAULT_NAME, opts?.path ?? DEFAULT_URL, opts);
20
+ }
22
21
 
23
- async update(logger?: Logger): Promise<string[]> {
24
- const response = await fetch(this.name, this.url, this.timeout, this.retries);
22
+ async update(): Promise<string[]> {
23
+ const response = await this.fetch(this.name, this.path, this.timeout, this.retries);
25
24
  if (!bybitResponse.is(response)) {
26
25
  // nb. don't log the response because it might be very large.
27
- return logError(this.name, "Failed to validate response", logger);
26
+ return this.error("Failed to validate response");
28
27
  }
29
28
 
30
29
  return [...response["0221"].eth, ...response["0221"].bsc, ...response["0221"].arbi];
@@ -1,16 +1,16 @@
1
1
  import { array, defaulted, string } from "superstruct";
2
- import { AddressListAdapter } from "../types";
3
- import { Logger, logError } from "./util";
2
+ import { AdapterOptions } from "../types";
3
+ import { AbstractAdapter } from "./abstract";
4
4
 
5
5
  const envConfig = defaulted(array(string()), []);
6
6
 
7
- export class AddressList implements AddressListAdapter {
8
- readonly name = "process.env";
9
-
10
- constructor(readonly envVar = "ACROSS_IGNORED_ADDRESSES") {}
7
+ export class AddressList extends AbstractAdapter {
8
+ constructor(opts?: AdapterOptions) {
9
+ super(opts?.name ?? "process.env", opts?.path ?? "ACROSS_IGNORED_ADDRESSES", opts);
10
+ }
11
11
 
12
- update(logger?: Logger): Promise<string[]> {
13
- const config = process.env[this.envVar];
12
+ update(): Promise<string[]> {
13
+ const config = process.env[this.path];
14
14
  if (!config) {
15
15
  return Promise.resolve([]);
16
16
  }
@@ -19,10 +19,10 @@ export class AddressList implements AddressListAdapter {
19
19
  try {
20
20
  addresses = JSON.parse(config);
21
21
  if (!envConfig.is(addresses)) {
22
- return logError(this.name, "Address format validation failure.", logger);
22
+ return this.error("Address format validation failure.");
23
23
  }
24
24
  } catch (err) {
25
- return logError(this.name, err, logger);
25
+ return this.error(err);
26
26
  }
27
27
 
28
28
  return Promise.resolve(addresses);
@@ -1,37 +1,36 @@
1
1
  import { readFile } from "node:fs/promises";
2
2
  import { array, defaulted, string } from "superstruct";
3
- import { AddressListAdapter } from "../types";
4
- import { Logger, logError } from "./util";
3
+ import { AdapterOptions } from "../types";
4
+ import { AbstractAdapter } from "./abstract";
5
5
 
6
6
  const fileConfig = defaulted(array(string()), []);
7
7
 
8
- export class AddressList implements AddressListAdapter {
9
- readonly name: string;
10
-
11
- constructor(readonly path = "./addresses.json") {
12
- this.name = `fs:${path}`;
8
+ export class AddressList extends AbstractAdapter {
9
+ constructor(opts?: AdapterOptions) {
10
+ const { path = "addresses.json" } = opts ?? {};
11
+ super(opts?.name ?? `fs:${path}`, path, opts);
13
12
  }
14
13
 
15
- async update(logger?: Logger): Promise<string[]> {
14
+ async update(): Promise<string[]> {
16
15
  let data: string;
17
16
  try {
18
17
  data = await readFile(this.path, { encoding: "utf8" });
19
18
  } catch (err) {
20
- return logError(this.name, err, logger);
19
+ return this.error(err);
21
20
  }
22
21
 
23
22
  if (!data) {
24
- return logError(this.name, `No addresses found in "${this.path}"`, logger);
23
+ return this.error("No addresses found");
25
24
  }
26
25
 
27
26
  let addresses: unknown;
28
27
  try {
29
28
  addresses = JSON.parse(data);
30
29
  if (!fileConfig.is(addresses)) {
31
- return logError(this.name, "Address format validation failure.", logger);
30
+ return this.error("Address format validation failure.");
32
31
  }
33
32
  } catch (err) {
34
- return logError(this.name, err, logger);
33
+ return this.error(err);
35
34
  }
36
35
 
37
36
  return Promise.resolve(addresses);
@@ -1,25 +1,26 @@
1
1
  import { array, string } from "superstruct";
2
- import { AddressListAdapter } from "../types";
3
- import { logError, Logger, fetch } from "./util";
2
+ import { AdapterOptions } from "../types";
3
+ import { AbstractAdapter } from "./abstract";
4
4
 
5
5
  const RESPONSE_TYPE = array(string());
6
6
  const DEFAULT_NAME = "Risk Labs";
7
7
  const DEFAULT_URL = "https://blacklist.risklabs.foundation/api/blacklist";
8
8
 
9
- export class AddressList implements AddressListAdapter {
10
- readonly timeout = 2000; // ms
11
- readonly retries = 1;
12
-
13
- constructor(
14
- readonly name = DEFAULT_NAME,
15
- readonly url = DEFAULT_URL
16
- ) {}
9
+ export class AddressList extends AbstractAdapter {
10
+ constructor(opts?: AdapterOptions) {
11
+ super(opts?.name ?? DEFAULT_NAME, opts?.path ?? DEFAULT_URL, opts);
12
+ }
17
13
 
18
- async update(logger?: Logger): Promise<string[]> {
19
- const response = await fetch(this.name, this.url, this.timeout, this.retries);
14
+ async update(): Promise<string[]> {
15
+ let response: unknown;
16
+ try {
17
+ response = await this.fetch(this.name, this.path, this.timeout, this.retries);
18
+ } catch (err) {
19
+ return this.error(err);
20
+ }
20
21
 
21
22
  if (!RESPONSE_TYPE.is(response)) {
22
- return logError(this.name, "Failed to validate response", logger);
23
+ return this.error("Failed to validate response");
23
24
  }
24
25
 
25
26
  return response;
@@ -25,7 +25,7 @@ export class AddressAggregator {
25
25
 
26
26
  const allAddresses = await mapAsync(this.adapters, async (adapter) => {
27
27
  const invalidAddresses: string[] = [];
28
- const addresses = (await adapter.update(this.logger))
28
+ const addresses = (await adapter.update())
29
29
  .map((address) => {
30
30
  try {
31
31
  return ethersUtils.getAddress(address.toLowerCase());
@@ -66,7 +66,7 @@ export class AddressAggregator {
66
66
  }
67
67
 
68
68
  async function run(): Promise<number> {
69
- const addressList = new AddressAggregator([new adapters.risklabs.AddressList()]);
69
+ const addressList = new AddressAggregator([new adapters.risklabs.AddressList({ throwOnError: true })]);
70
70
 
71
71
  const addresses = await addressList.update();
72
72
  console.log(`Retrieved ${addresses.size} addresses: ${JSON.stringify(Array.from(addresses), null, 2)}`);
@@ -1,8 +1,17 @@
1
1
  import { Logger } from "../utils";
2
2
 
3
+ export type AdapterOptions = {
4
+ name?: string;
5
+ path?: string;
6
+ retries?: number;
7
+ timeout?: number;
8
+ throwOnError?: boolean;
9
+ logger?: Logger;
10
+ };
11
+
3
12
  export interface AddressListAdapter {
4
13
  readonly name: string;
5
- update(logger?: Logger): Promise<string[]>;
14
+ update(): Promise<string[]>;
6
15
  }
7
16
 
8
17
  export const INVALID_ADDRESS = "";
package/src/constants.ts CHANGED
@@ -66,6 +66,19 @@ export const BRIDGED_USDC_SYMBOLS = [
66
66
  TOKEN_SYMBOLS_MAP.USDzC.symbol,
67
67
  ];
68
68
 
69
+ export const STABLE_COIN_SYMBOLS = [
70
+ ...BRIDGED_USDC_SYMBOLS,
71
+ TOKEN_SYMBOLS_MAP.USDB.symbol,
72
+ TOKEN_SYMBOLS_MAP.USDC.symbol,
73
+ TOKEN_SYMBOLS_MAP.USDT.symbol,
74
+ TOKEN_SYMBOLS_MAP.DAI.symbol,
75
+ TOKEN_SYMBOLS_MAP["TATARA-USDC"].symbol,
76
+ TOKEN_SYMBOLS_MAP["TATARA-USDT"].symbol,
77
+ TOKEN_SYMBOLS_MAP["TATARA-USDS"].symbol,
78
+ TOKEN_SYMBOLS_MAP.GHO.symbol,
79
+ TOKEN_SYMBOLS_MAP.WGHO.symbol,
80
+ ];
81
+
69
82
  export const CUSTOM_GAS_TOKENS = {
70
83
  [CHAIN_IDs.POLYGON]: "MATIC",
71
84
  [CHAIN_IDs.POLYGON_AMOY]: "MATIC",
@@ -109,6 +109,12 @@ export function isBridgedUsdc(tokenSymbol: string): boolean {
109
109
  );
110
110
  }
111
111
 
112
+ export function isStablecoin(tokenSymbol: string): boolean {
113
+ return constants.STABLE_COIN_SYMBOLS.some(
114
+ (stablecoinSymbol) => stablecoinSymbol.toLowerCase() === tokenSymbol.toLowerCase()
115
+ );
116
+ }
117
+
112
118
  export function getTokenInfo(l2TokenAddress: string, chainId: number): L1Token {
113
119
  // @dev This might give false positives if tokens on different networks have the same address. I'm not sure how
114
120
  // to get around this...
@@ -1,4 +0,0 @@
1
- import { Logger } from "../../utils";
2
- export { Logger } from "../../utils";
3
- export declare function logError(name: string, error: unknown, logger?: Logger): Promise<string[]>;
4
- export declare function fetch(name: string, url: string, timeout?: number, retries?: number): Promise<unknown>;
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fetch = exports.logError = exports.Logger = void 0;
4
- var tslib_1 = require("tslib");
5
- var axios_1 = tslib_1.__importDefault(require("axios"));
6
- var utils_1 = require("../../utils");
7
- Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return utils_1.Logger; } });
8
- var _a = process.env.ACROSS_USER_AGENT, ACROSS_USER_AGENT = _a === void 0 ? "across-protocol" : _a;
9
- function sleep(ms) {
10
- return new Promise(function (r) { return setTimeout(r, ms); });
11
- }
12
- function logError(name, error, logger) {
13
- var reason;
14
- if (error instanceof Error) {
15
- reason = error.message;
16
- }
17
- else {
18
- reason = typeof error === "string" ? error : "unknown error";
19
- }
20
- logger === null || logger === void 0 ? void 0 : logger.warn({
21
- at: "".concat(name, "::update"),
22
- message: "Failed to read addresses from ".concat(name, "."),
23
- reason: reason,
24
- });
25
- return Promise.resolve([]);
26
- }
27
- exports.logError = logError;
28
- function fetch(name, url, timeout, retries) {
29
- if (timeout === void 0) { timeout = 2000; }
30
- if (retries === void 0) { retries = 1; }
31
- return tslib_1.__awaiter(this, void 0, void 0, function () {
32
- var args, errs, tries, err_1, errMsg;
33
- return tslib_1.__generator(this, function (_a) {
34
- switch (_a.label) {
35
- case 0:
36
- args = {
37
- headers: { "User-Agent": ACROSS_USER_AGENT },
38
- timeout: timeout,
39
- };
40
- errs = [];
41
- tries = 0;
42
- _a.label = 1;
43
- case 1:
44
- _a.trys.push([1, 3, , 6]);
45
- return [4, (0, axios_1.default)(url, args)];
46
- case 2: return [2, (_a.sent()).data];
47
- case 3:
48
- err_1 = _a.sent();
49
- errMsg = axios_1.default.isAxiosError(err_1) || err_1 instanceof Error ? err_1.message : "unknown error";
50
- errs.push(errMsg);
51
- if (!(++tries <= retries)) return [3, 5];
52
- return [4, sleep(Math.pow(1.5, tries) * 1000)];
53
- case 4:
54
- _a.sent();
55
- _a.label = 5;
56
- case 5: return [3, 6];
57
- case 6:
58
- if (tries <= retries) return [3, 1];
59
- _a.label = 7;
60
- case 7: throw new Error("".concat(name, " retrieval failure (").concat(errs.join(", "), ")"));
61
- }
62
- });
63
- });
64
- }
65
- exports.fetch = fetch;
66
- //# sourceMappingURL=util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../src/addressAggregator/adapters/util.ts"],"names":[],"mappings":";;;;AAAA,wDAA0B;AAG1B,qCAAqC;AAA5B,+FAAA,MAAM,OAAA;AAEP,IAAA,KAA0C,OAAO,CAAC,GAAG,kBAAhB,EAArC,iBAAiB,mBAAG,iBAAiB,KAAA,CAAiB;AAE9D,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,EAAjB,CAAiB,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAY,EAAE,KAAc,EAAE,MAAe;IACpE,IAAI,MAAc,CAAC;IACnB,IAAI,KAAK,YAAY,KAAK,EAAE;QAC1B,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;KACxB;SAAM;QACL,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;KAC9D;IAED,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC;QACX,EAAE,EAAE,UAAG,IAAI,aAAU;QACrB,OAAO,EAAE,wCAAiC,IAAI,MAAG;QACjD,MAAM,QAAA;KACP,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC;AAdD,4BAcC;AAED,SAAsB,KAAK,CAAC,IAAY,EAAE,GAAW,EAAE,OAAc,EAAE,OAAW;IAA3B,wBAAA,EAAA,cAAc;IAAE,wBAAA,EAAA,WAAW;;;;;;oBAC1E,IAAI,GAAG;wBACX,OAAO,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE;wBAC5C,OAAO,SAAA;qBACR,CAAC;oBAEI,IAAI,GAAa,EAAE,CAAC;oBACtB,KAAK,GAAG,CAAC,CAAC;;;;oBAGF,WAAM,IAAA,eAAK,EAAC,GAAG,EAAE,IAAI,CAAC,EAAA;wBAA9B,WAAO,CAAC,SAAsB,CAAC,CAAC,IAAI,EAAC;;;oBAE/B,MAAM,GAAG,eAAK,CAAC,YAAY,CAAC,KAAG,CAAC,IAAI,KAAG,YAAY,KAAK,CAAC,CAAC,CAAC,KAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;oBAC/F,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;yBACd,CAAA,EAAE,KAAK,IAAI,OAAO,CAAA,EAAlB,cAAkB;oBAAE,WAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,EAAA;;oBAAxC,SAAwC,CAAC;;;;wBAE5D,KAAK,IAAI,OAAO;;wBAEzB,MAAM,IAAI,KAAK,CAAC,UAAG,IAAI,iCAAuB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAG,CAAC,CAAC;;;;CACnE;AAnBD,sBAmBC"}
@@ -1,4 +0,0 @@
1
- import { Logger } from "../../utils";
2
- export { Logger } from "../../utils";
3
- export declare function logError(name: string, error: unknown, logger?: Logger): Promise<string[]>;
4
- export declare function fetch(name: string, url: string, timeout?: number, retries?: number): Promise<unknown>;
@@ -1,60 +0,0 @@
1
- import { __awaiter, __generator } from "tslib";
2
- import axios from "axios";
3
- export { Logger } from "../../utils";
4
- var _a = process.env.ACROSS_USER_AGENT, ACROSS_USER_AGENT = _a === void 0 ? "across-protocol" : _a;
5
- function sleep(ms) {
6
- return new Promise(function (r) { return setTimeout(r, ms); });
7
- }
8
- export function logError(name, error, logger) {
9
- var reason;
10
- if (error instanceof Error) {
11
- reason = error.message;
12
- }
13
- else {
14
- reason = typeof error === "string" ? error : "unknown error";
15
- }
16
- logger === null || logger === void 0 ? void 0 : logger.warn({
17
- at: "".concat(name, "::update"),
18
- message: "Failed to read addresses from ".concat(name, "."),
19
- reason: reason,
20
- });
21
- return Promise.resolve([]);
22
- }
23
- export function fetch(name, url, timeout, retries) {
24
- if (timeout === void 0) { timeout = 2000; }
25
- if (retries === void 0) { retries = 1; }
26
- return __awaiter(this, void 0, void 0, function () {
27
- var args, errs, tries, err_1, errMsg;
28
- return __generator(this, function (_a) {
29
- switch (_a.label) {
30
- case 0:
31
- args = {
32
- headers: { "User-Agent": ACROSS_USER_AGENT },
33
- timeout: timeout,
34
- };
35
- errs = [];
36
- tries = 0;
37
- _a.label = 1;
38
- case 1:
39
- _a.trys.push([1, 3, , 6]);
40
- return [4 /*yield*/, axios(url, args)];
41
- case 2: return [2 /*return*/, (_a.sent()).data];
42
- case 3:
43
- err_1 = _a.sent();
44
- errMsg = axios.isAxiosError(err_1) || err_1 instanceof Error ? err_1.message : "unknown error";
45
- errs.push(errMsg);
46
- if (!(++tries <= retries)) return [3 /*break*/, 5];
47
- return [4 /*yield*/, sleep(Math.pow(1.5, tries) * 1000)];
48
- case 4:
49
- _a.sent(); // simple backoff
50
- _a.label = 5;
51
- case 5: return [3 /*break*/, 6];
52
- case 6:
53
- if (tries <= retries) return [3 /*break*/, 1];
54
- _a.label = 7;
55
- case 7: throw new Error("".concat(name, " retrieval failure (").concat(errs.join(", "), ")"));
56
- }
57
- });
58
- });
59
- }
60
- //# sourceMappingURL=util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../src/addressAggregator/adapters/util.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE7B,IAAA,KAA0C,OAAO,CAAC,GAAG,kBAAhB,EAArC,iBAAiB,mBAAG,iBAAiB,KAAA,CAAiB;AAE9D,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,EAAjB,CAAiB,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,KAAc,EAAE,MAAe;IACpE,IAAI,MAAc,CAAC;IACnB,IAAI,KAAK,YAAY,KAAK,EAAE;QAC1B,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;KACxB;SAAM;QACL,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;KAC9D;IAED,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC;QACX,EAAE,EAAE,UAAG,IAAI,aAAU;QACrB,OAAO,EAAE,wCAAiC,IAAI,MAAG;QACjD,MAAM,QAAA;KACP,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAgB,KAAK,CAAC,IAAY,EAAE,GAAW,EAAE,OAAc,EAAE,OAAW;IAA3B,wBAAA,EAAA,cAAc;IAAE,wBAAA,EAAA,WAAW;;;;;;oBAC1E,IAAI,GAAG;wBACX,OAAO,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE;wBAC5C,OAAO,SAAA;qBACR,CAAC;oBAEI,IAAI,GAAa,EAAE,CAAC;oBACtB,KAAK,GAAG,CAAC,CAAC;;;;oBAGF,qBAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAA;wBAA9B,sBAAO,CAAC,SAAsB,CAAC,CAAC,IAAI,EAAC;;;oBAE/B,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,KAAG,CAAC,IAAI,KAAG,YAAY,KAAK,CAAC,CAAC,CAAC,KAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;oBAC/F,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;yBACd,CAAA,EAAE,KAAK,IAAI,OAAO,CAAA,EAAlB,wBAAkB;oBAAE,qBAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,EAAA;;oBAAxC,SAAwC,CAAC,CAAC,iBAAiB;;;;wBAE9E,KAAK,IAAI,OAAO;;wBAEzB,MAAM,IAAI,KAAK,CAAC,UAAG,IAAI,iCAAuB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAG,CAAC,CAAC;;;;CACnE"}
@@ -1,5 +0,0 @@
1
- import { Logger } from "../../utils";
2
- export { Logger } from "../../utils";
3
- export declare function logError(name: string, error: unknown, logger?: Logger): Promise<string[]>;
4
- export declare function fetch(name: string, url: string, timeout?: number, retries?: number): Promise<unknown>;
5
- //# sourceMappingURL=util.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/addressAggregator/adapters/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQrC,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAczF;AAED,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,SAAO,EAAE,OAAO,SAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBpG"}