@across-protocol/sdk 4.1.21 → 4.1.22

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 (82) hide show
  1. package/dist/cjs/addressAggregator/adapters/bybit.d.ts +10 -0
  2. package/dist/cjs/addressAggregator/adapters/bybit.js +42 -0
  3. package/dist/cjs/addressAggregator/adapters/bybit.js.map +1 -0
  4. package/dist/cjs/addressAggregator/adapters/env.d.ts +8 -0
  5. package/dist/cjs/addressAggregator/adapters/env.js +33 -0
  6. package/dist/cjs/addressAggregator/adapters/env.js.map +1 -0
  7. package/dist/cjs/addressAggregator/adapters/file.d.ts +8 -0
  8. package/dist/cjs/addressAggregator/adapters/file.js +50 -0
  9. package/dist/cjs/addressAggregator/adapters/file.js.map +1 -0
  10. package/dist/cjs/addressAggregator/adapters/index.d.ts +3 -0
  11. package/dist/cjs/addressAggregator/adapters/index.js +8 -0
  12. package/dist/cjs/addressAggregator/adapters/index.js.map +1 -0
  13. package/dist/cjs/addressAggregator/adapters/util.d.ts +4 -0
  14. package/dist/cjs/addressAggregator/adapters/util.js +66 -0
  15. package/dist/cjs/addressAggregator/adapters/util.js.map +1 -0
  16. package/dist/cjs/addressAggregator/index.d.ts +10 -0
  17. package/dist/cjs/addressAggregator/index.js +109 -0
  18. package/dist/cjs/addressAggregator/index.js.map +1 -0
  19. package/dist/cjs/addressAggregator/types.d.ts +6 -0
  20. package/dist/cjs/addressAggregator/types.js +5 -0
  21. package/dist/cjs/addressAggregator/types.js.map +1 -0
  22. package/dist/cjs/index.d.ts +1 -0
  23. package/dist/cjs/index.js +2 -1
  24. package/dist/cjs/index.js.map +1 -1
  25. package/dist/cjs/utils/LogUtils.d.ts +4 -2
  26. package/dist/cjs/utils/LogUtils.js +10 -1
  27. package/dist/cjs/utils/LogUtils.js.map +1 -1
  28. package/dist/esm/addressAggregator/adapters/bybit.d.ts +10 -0
  29. package/dist/esm/addressAggregator/adapters/bybit.js +41 -0
  30. package/dist/esm/addressAggregator/adapters/bybit.js.map +1 -0
  31. package/dist/esm/addressAggregator/adapters/env.d.ts +8 -0
  32. package/dist/esm/addressAggregator/adapters/env.js +30 -0
  33. package/dist/esm/addressAggregator/adapters/env.js.map +1 -0
  34. package/dist/esm/addressAggregator/adapters/file.d.ts +8 -0
  35. package/dist/esm/addressAggregator/adapters/file.js +47 -0
  36. package/dist/esm/addressAggregator/adapters/file.js.map +1 -0
  37. package/dist/esm/addressAggregator/adapters/index.d.ts +3 -0
  38. package/dist/esm/addressAggregator/adapters/index.js +7 -0
  39. package/dist/esm/addressAggregator/adapters/index.js.map +1 -0
  40. package/dist/esm/addressAggregator/adapters/util.d.ts +4 -0
  41. package/dist/esm/addressAggregator/adapters/util.js +60 -0
  42. package/dist/esm/addressAggregator/adapters/util.js.map +1 -0
  43. package/dist/esm/addressAggregator/index.d.ts +10 -0
  44. package/dist/esm/addressAggregator/index.js +107 -0
  45. package/dist/esm/addressAggregator/index.js.map +1 -0
  46. package/dist/esm/addressAggregator/types.d.ts +6 -0
  47. package/dist/esm/addressAggregator/types.js +2 -0
  48. package/dist/esm/addressAggregator/types.js.map +1 -0
  49. package/dist/esm/index.d.ts +1 -0
  50. package/dist/esm/index.js +2 -0
  51. package/dist/esm/index.js.map +1 -1
  52. package/dist/esm/utils/LogUtils.d.ts +4 -2
  53. package/dist/esm/utils/LogUtils.js +10 -1
  54. package/dist/esm/utils/LogUtils.js.map +1 -1
  55. package/dist/types/addressAggregator/adapters/bybit.d.ts +11 -0
  56. package/dist/types/addressAggregator/adapters/bybit.d.ts.map +1 -0
  57. package/dist/types/addressAggregator/adapters/env.d.ts +9 -0
  58. package/dist/types/addressAggregator/adapters/env.d.ts.map +1 -0
  59. package/dist/types/addressAggregator/adapters/file.d.ts +9 -0
  60. package/dist/types/addressAggregator/adapters/file.d.ts.map +1 -0
  61. package/dist/types/addressAggregator/adapters/index.d.ts +4 -0
  62. package/dist/types/addressAggregator/adapters/index.d.ts.map +1 -0
  63. package/dist/types/addressAggregator/adapters/util.d.ts +5 -0
  64. package/dist/types/addressAggregator/adapters/util.d.ts.map +1 -0
  65. package/dist/types/addressAggregator/index.d.ts +11 -0
  66. package/dist/types/addressAggregator/index.d.ts.map +1 -0
  67. package/dist/types/addressAggregator/types.d.ts +7 -0
  68. package/dist/types/addressAggregator/types.d.ts.map +1 -0
  69. package/dist/types/index.d.ts +1 -0
  70. package/dist/types/index.d.ts.map +1 -1
  71. package/dist/types/utils/LogUtils.d.ts +4 -2
  72. package/dist/types/utils/LogUtils.d.ts.map +1 -1
  73. package/package.json +2 -2
  74. package/src/addressAggregator/adapters/bybit.ts +32 -0
  75. package/src/addressAggregator/adapters/env.ts +30 -0
  76. package/src/addressAggregator/adapters/file.ts +39 -0
  77. package/src/addressAggregator/adapters/index.ts +3 -0
  78. package/src/addressAggregator/adapters/util.ts +47 -0
  79. package/src/addressAggregator/index.ts +86 -0
  80. package/src/addressAggregator/types.ts +8 -0
  81. package/src/index.ts +1 -0
  82. package/src/utils/LogUtils.ts +3 -2
@@ -0,0 +1,10 @@
1
+ import { AddressListAdapter } from "../types";
2
+ import { Logger } from "./util";
3
+ export declare class AddressList implements AddressListAdapter {
4
+ readonly url: string;
5
+ readonly timeout = 2000;
6
+ readonly retries = 1;
7
+ readonly name = "bybit";
8
+ constructor(url?: string);
9
+ update(logger?: Logger): Promise<string[]>;
10
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AddressList = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var superstruct_1 = require("superstruct");
6
+ var util_1 = require("./util");
7
+ var DEFAULT_URL = "https://hackscan.hackbounty.io/public/hack-address.json";
8
+ var bybitResponse = (0, superstruct_1.type)({
9
+ "0221": (0, superstruct_1.type)({
10
+ eth: (0, superstruct_1.defaulted)((0, superstruct_1.array)((0, superstruct_1.string)()), []),
11
+ bsc: (0, superstruct_1.defaulted)((0, superstruct_1.array)((0, superstruct_1.string)()), []),
12
+ arbi: (0, superstruct_1.defaulted)((0, superstruct_1.array)((0, superstruct_1.string)()), []),
13
+ }),
14
+ });
15
+ var AddressList = (function () {
16
+ function AddressList(url) {
17
+ if (url === void 0) { url = DEFAULT_URL; }
18
+ this.url = url;
19
+ this.timeout = 2000;
20
+ this.retries = 1;
21
+ this.name = "bybit";
22
+ }
23
+ AddressList.prototype.update = function (logger) {
24
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
25
+ var response;
26
+ return tslib_1.__generator(this, function (_a) {
27
+ switch (_a.label) {
28
+ case 0: return [4, (0, util_1.fetch)(this.name, this.url, this.timeout, this.retries)];
29
+ case 1:
30
+ response = _a.sent();
31
+ if (!bybitResponse.is(response)) {
32
+ return [2, (0, util_1.logError)(this.name, "Failed to validate response", logger)];
33
+ }
34
+ return [2, tslib_1.__spreadArray(tslib_1.__spreadArray(tslib_1.__spreadArray([], response["0221"].eth, true), response["0221"].bsc, true), response["0221"].arbi, true)];
35
+ }
36
+ });
37
+ });
38
+ };
39
+ return AddressList;
40
+ }());
41
+ exports.AddressList = AddressList;
42
+ //# sourceMappingURL=bybit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bybit.js","sourceRoot":"","sources":["../../../../src/addressAggregator/adapters/bybit.ts"],"names":[],"mappings":";;;;AAAA,2CAA6D;AAE7D,+BAAiD;AAEjD,IAAM,WAAW,GAAG,yDAAyD,CAAC;AAG9E,IAAM,aAAa,GAAG,IAAA,kBAAI,EAAC;IACzB,MAAM,EAAE,IAAA,kBAAI,EAAC;QACX,GAAG,EAAE,IAAA,uBAAS,EAAC,IAAA,mBAAK,EAAC,IAAA,oBAAM,GAAE,CAAC,EAAE,EAAE,CAAC;QACnC,GAAG,EAAE,IAAA,uBAAS,EAAC,IAAA,mBAAK,EAAC,IAAA,oBAAM,GAAE,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,EAAE,IAAA,uBAAS,EAAC,IAAA,mBAAK,EAAC,IAAA,oBAAM,GAAE,CAAC,EAAE,EAAE,CAAC;KACrC,CAAC;CACH,CAAC,CAAC;AAEH;IAKE,qBAAqB,GAAiB;QAAjB,oBAAA,EAAA,iBAAiB;QAAjB,QAAG,GAAH,GAAG,CAAc;QAJ7B,YAAO,GAAG,IAAI,CAAC;QACf,YAAO,GAAG,CAAC,CAAC;QACZ,SAAI,GAAG,OAAO,CAAC;IAEiB,CAAC;IAEpC,4BAAM,GAAZ,UAAa,MAAe;;;;;4BACT,WAAM,IAAA,YAAK,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAA;;wBAAvE,QAAQ,GAAG,SAA4D;wBAC7E,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;4BAE/B,WAAO,IAAA,eAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,6BAA6B,EAAE,MAAM,CAAC,EAAC;yBACnE;wBAED,iFAAW,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,SAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,SAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,SAAE;;;;KACrF;IACH,kBAAC;AAAD,CAAC,AAhBD,IAgBC;AAhBY,kCAAW"}
@@ -0,0 +1,8 @@
1
+ import { AddressListAdapter } from "../types";
2
+ import { Logger } from "./util";
3
+ export declare class AddressList implements AddressListAdapter {
4
+ readonly envVar: string;
5
+ readonly name = "process.env";
6
+ constructor(envVar?: string);
7
+ update(logger?: Logger): Promise<string[]>;
8
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AddressList = void 0;
4
+ var superstruct_1 = require("superstruct");
5
+ var util_1 = require("./util");
6
+ var envConfig = (0, superstruct_1.defaulted)((0, superstruct_1.array)((0, superstruct_1.string)()), []);
7
+ var AddressList = (function () {
8
+ function AddressList(envVar) {
9
+ if (envVar === void 0) { envVar = "ACROSS_IGNORED_ADDRESSES"; }
10
+ this.envVar = envVar;
11
+ this.name = "process.env";
12
+ }
13
+ AddressList.prototype.update = function (logger) {
14
+ var config = process.env[this.envVar];
15
+ if (!config) {
16
+ return Promise.resolve([]);
17
+ }
18
+ var addresses;
19
+ try {
20
+ addresses = JSON.parse(config);
21
+ if (!envConfig.is(addresses)) {
22
+ return (0, util_1.logError)(this.name, "Address format validation failure.", logger);
23
+ }
24
+ }
25
+ catch (err) {
26
+ return (0, util_1.logError)(this.name, err, logger);
27
+ }
28
+ return Promise.resolve(addresses);
29
+ };
30
+ return AddressList;
31
+ }());
32
+ exports.AddressList = AddressList;
33
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../../../src/addressAggregator/adapters/env.ts"],"names":[],"mappings":";;;AAAA,2CAAuD;AAEvD,+BAA0C;AAE1C,IAAM,SAAS,GAAG,IAAA,uBAAS,EAAC,IAAA,mBAAK,EAAC,IAAA,oBAAM,GAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAEjD;IAGE,qBAAqB,MAAmC;QAAnC,uBAAA,EAAA,mCAAmC;QAAnC,WAAM,GAAN,MAAM,CAA6B;QAF/C,SAAI,GAAG,aAAa,CAAC;IAE6B,CAAC;IAE5D,4BAAM,GAAN,UAAO,MAAe;QACpB,IAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SAC5B;QAED,IAAI,SAAkB,CAAC;QACvB,IAAI;YACF,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE;gBAC5B,OAAO,IAAA,eAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,oCAAoC,EAAE,MAAM,CAAC,CAAC;aAC1E;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,IAAA,eAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;SACzC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IACH,kBAAC;AAAD,CAAC,AAvBD,IAuBC;AAvBY,kCAAW"}
@@ -0,0 +1,8 @@
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[]>;
8
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AddressList = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var promises_1 = require("node:fs/promises");
6
+ var superstruct_1 = require("superstruct");
7
+ var util_1 = require("./util");
8
+ var fileConfig = (0, superstruct_1.defaulted)((0, superstruct_1.array)((0, superstruct_1.string)()), []);
9
+ var AddressList = (function () {
10
+ function AddressList(path) {
11
+ if (path === void 0) { path = "./addresses.json"; }
12
+ this.path = path;
13
+ this.name = "fs:".concat(path);
14
+ }
15
+ AddressList.prototype.update = function (logger) {
16
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
17
+ var data, err_1, addresses;
18
+ return tslib_1.__generator(this, function (_a) {
19
+ switch (_a.label) {
20
+ case 0:
21
+ _a.trys.push([0, 2, , 3]);
22
+ return [4, (0, promises_1.readFile)(this.path, { encoding: "utf8" })];
23
+ case 1:
24
+ data = _a.sent();
25
+ return [3, 3];
26
+ case 2:
27
+ err_1 = _a.sent();
28
+ return [2, (0, util_1.logError)(this.name, err_1, logger)];
29
+ case 3:
30
+ if (!data) {
31
+ return [2, (0, util_1.logError)(this.name, "No addresses found in \"".concat(this.path, "\""), logger)];
32
+ }
33
+ try {
34
+ addresses = JSON.parse(data);
35
+ if (!fileConfig.is(addresses)) {
36
+ return [2, (0, util_1.logError)(this.name, "Address format validation failure.", logger)];
37
+ }
38
+ }
39
+ catch (err) {
40
+ return [2, (0, util_1.logError)(this.name, err, logger)];
41
+ }
42
+ return [2, Promise.resolve(addresses)];
43
+ }
44
+ });
45
+ });
46
+ };
47
+ return AddressList;
48
+ }());
49
+ exports.AddressList = AddressList;
50
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../src/addressAggregator/adapters/file.ts"],"names":[],"mappings":";;;;AAAA,6CAA4C;AAC5C,2CAAuD;AAEvD,+BAA0C;AAE1C,IAAM,UAAU,GAAG,IAAA,uBAAS,EAAC,IAAA,mBAAK,EAAC,IAAA,oBAAM,GAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAElD;IAGE,qBAAqB,IAAyB;QAAzB,qBAAA,EAAA,yBAAyB;QAAzB,SAAI,GAAJ,IAAI,CAAqB;QAC5C,IAAI,CAAC,IAAI,GAAG,aAAM,IAAI,CAAE,CAAC;IAC3B,CAAC;IAEK,4BAAM,GAAZ,UAAa,MAAe;;;;;;;wBAGjB,WAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAA;;wBAAtD,IAAI,GAAG,SAA+C,CAAC;;;;wBAEvD,WAAO,IAAA,eAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,KAAG,EAAE,MAAM,CAAC,EAAC;;wBAG1C,IAAI,CAAC,IAAI,EAAE;4BACT,WAAO,IAAA,eAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,kCAA0B,IAAI,CAAC,IAAI,OAAG,EAAE,MAAM,CAAC,EAAC;yBAC5E;wBAGD,IAAI;4BACF,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BAC7B,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE;gCAC7B,WAAO,IAAA,eAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,oCAAoC,EAAE,MAAM,CAAC,EAAC;6BAC1E;yBACF;wBAAC,OAAO,GAAG,EAAE;4BACZ,WAAO,IAAA,eAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAC;yBACzC;wBAED,WAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAC;;;;KACnC;IACH,kBAAC;AAAD,CAAC,AA/BD,IA+BC;AA/BY,kCAAW"}
@@ -0,0 +1,3 @@
1
+ export * as bybit from "./bybit";
2
+ export * as processEnv from "./env";
3
+ export * as fs from "./file";
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fs = exports.processEnv = exports.bybit = void 0;
4
+ var tslib_1 = require("tslib");
5
+ exports.bybit = tslib_1.__importStar(require("./bybit"));
6
+ exports.processEnv = tslib_1.__importStar(require("./env"));
7
+ exports.fs = tslib_1.__importStar(require("./file"));
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/addressAggregator/adapters/index.ts"],"names":[],"mappings":";;;;AAAA,yDAAiC;AACjC,4DAAoC;AACpC,qDAA6B"}
@@ -0,0 +1,4 @@
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>;
@@ -0,0 +1,66 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,10 @@
1
+ import { Logger } from "../utils";
2
+ import { AddressListAdapter } from "./types";
3
+ export * as adapters from "./adapters";
4
+ export declare class AddressAggregator {
5
+ readonly adapters: AddressListAdapter[];
6
+ protected readonly logger?: Logger | undefined;
7
+ constructor(adapters: AddressListAdapter[], logger?: Logger | undefined);
8
+ static sources(): string[];
9
+ update(): Promise<Set<string>>;
10
+ }
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AddressAggregator = exports.adapters = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var ethers_1 = require("ethers");
6
+ var utils_1 = require("../utils");
7
+ var types_1 = require("./types");
8
+ var adapters = tslib_1.__importStar(require("./adapters"));
9
+ exports.adapters = tslib_1.__importStar(require("./adapters"));
10
+ var AddressAggregator = (function () {
11
+ function AddressAggregator(adapters, logger) {
12
+ this.adapters = adapters;
13
+ this.logger = logger;
14
+ }
15
+ AddressAggregator.sources = function () {
16
+ return Object.keys(adapters);
17
+ };
18
+ AddressAggregator.prototype.update = function () {
19
+ var _a, _b;
20
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
21
+ var allAddresses, addresses;
22
+ var _this = this;
23
+ return tslib_1.__generator(this, function (_c) {
24
+ switch (_c.label) {
25
+ case 0:
26
+ (_a = this.logger) === null || _a === void 0 ? void 0 : _a.debug({
27
+ at: "AddressAggregator::update",
28
+ message: "Updating addresses.",
29
+ sources: this.adapters.map(function (adapter) { return adapter.name; }),
30
+ supportedSources: AddressAggregator.sources(),
31
+ });
32
+ return [4, (0, utils_1.mapAsync)(this.adapters, function (adapter) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
33
+ var invalidAddresses, addresses;
34
+ var _a, _b;
35
+ return tslib_1.__generator(this, function (_c) {
36
+ switch (_c.label) {
37
+ case 0:
38
+ invalidAddresses = [];
39
+ return [4, adapter.update(this.logger)];
40
+ case 1:
41
+ addresses = (_c.sent())
42
+ .map(function (address) {
43
+ try {
44
+ return ethers_1.utils.getAddress(address.toLowerCase());
45
+ }
46
+ catch (_a) {
47
+ invalidAddresses.push(address);
48
+ return types_1.INVALID_ADDRESS;
49
+ }
50
+ })
51
+ .filter(function (address) { return address !== types_1.INVALID_ADDRESS; });
52
+ if (invalidAddresses.length > 0) {
53
+ (_a = this.logger) === null || _a === void 0 ? void 0 : _a.warn({
54
+ at: "AddressAggregator::update()",
55
+ message: "Read ".concat(invalidAddresses.length, " malformed addresses on ").concat(adapter.name, "."),
56
+ invalidAddresses: invalidAddresses,
57
+ });
58
+ }
59
+ (_b = this.logger) === null || _b === void 0 ? void 0 : _b.debug({
60
+ at: "AddressAggregator::update",
61
+ message: "Loaded ".concat(addresses.length, " addresses from ").concat(adapter.name, "."),
62
+ });
63
+ return [2, addresses];
64
+ }
65
+ });
66
+ }); })];
67
+ case 1:
68
+ allAddresses = _c.sent();
69
+ addresses = new Set(allAddresses.flat());
70
+ (_b = this.logger) === null || _b === void 0 ? void 0 : _b.debug({
71
+ at: "AddressAggregator::update",
72
+ message: "Loaded ".concat(addresses.size, " addresses."),
73
+ sources: this.adapters.map(function (adapter) { return adapter.name; }),
74
+ });
75
+ return [2, addresses];
76
+ }
77
+ });
78
+ });
79
+ };
80
+ return AddressAggregator;
81
+ }());
82
+ exports.AddressAggregator = AddressAggregator;
83
+ function run() {
84
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
85
+ var addressList, addresses;
86
+ return tslib_1.__generator(this, function (_a) {
87
+ switch (_a.label) {
88
+ case 0:
89
+ addressList = new AddressAggregator([new adapters.bybit.AddressList(), new adapters.processEnv.AddressList()]);
90
+ return [4, addressList.update()];
91
+ case 1:
92
+ addresses = _a.sent();
93
+ console.log("Retrieved ".concat(addresses.size, " addresses: ").concat(JSON.stringify(Array.from(addresses), null, 2)));
94
+ return [2, 0];
95
+ }
96
+ });
97
+ });
98
+ }
99
+ if (require.main === module) {
100
+ run()
101
+ .then(function (result) {
102
+ process.exitCode = result;
103
+ })
104
+ .catch(function (error) {
105
+ console.error("Process exited with", error);
106
+ process.exitCode = 127;
107
+ });
108
+ }
109
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/addressAggregator/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Logger } from "../utils";
2
+ export interface AddressListAdapter {
3
+ readonly name: string;
4
+ update(logger?: Logger): Promise<string[]>;
5
+ }
6
+ export declare const INVALID_ADDRESS = "";
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.INVALID_ADDRESS = void 0;
4
+ exports.INVALID_ADDRESS = "";
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/addressAggregator/types.ts"],"names":[],"mappings":";;;AAOa,QAAA,eAAe,GAAG,EAAE,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * as addressAggregator from "./addressAggregator";
1
2
  export * as lpFeeCalculator from "./lpFeeCalculator";
2
3
  export * as pool from "./pool";
3
4
  export * as relayFeeCalculator from "./relayFeeCalculator";
package/dist/cjs/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.svm = exports.providers = exports.caching = exports.typechain = exports.clients = exports.typeguards = exports.interfaces = exports.constants = exports.merkleDistributor = exports.priceClient = exports.gasPriceOracle = exports.coingecko = exports.contracts = exports.utils = exports.relayFeeCalculator = exports.pool = exports.lpFeeCalculator = void 0;
3
+ exports.svm = exports.providers = exports.caching = exports.typechain = exports.clients = exports.typeguards = exports.interfaces = exports.constants = exports.merkleDistributor = exports.priceClient = exports.gasPriceOracle = exports.coingecko = exports.contracts = exports.utils = exports.relayFeeCalculator = exports.pool = exports.lpFeeCalculator = exports.addressAggregator = void 0;
4
4
  var tslib_1 = require("tslib");
5
+ exports.addressAggregator = tslib_1.__importStar(require("./addressAggregator"));
5
6
  exports.lpFeeCalculator = tslib_1.__importStar(require("./lpFeeCalculator"));
6
7
  exports.pool = tslib_1.__importStar(require("./pool"));
7
8
  exports.relayFeeCalculator = tslib_1.__importStar(require("./relayFeeCalculator"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,6EAAqD;AACrD,uDAA+B;AAC/B,mFAA2D;AAC3D,yDAAiC;AACjC,iEAAyC;AACzC,iEAAyC;AACzC,2EAAmD;AACnD,qEAA6C;AAC7C,iFAAyD;AACzD,iEAAyC;AACzC,mEAA2C;AAC3C,mEAA2C;AAC3C,6DAAqC;AACrC,iEAAyC;AACzC,6DAAqC;AACrC,iEAAyC;AACzC,qDAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,iFAAyD;AACzD,6EAAqD;AACrD,uDAA+B;AAC/B,mFAA2D;AAC3D,yDAAiC;AACjC,iEAAyC;AACzC,iEAAyC;AACzC,2EAAmD;AACnD,qEAA6C;AAC7C,iFAAyD;AACzD,iEAAyC;AACzC,mEAA2C;AAC3C,mEAA2C;AAC3C,6DAAqC;AACrC,iEAAyC;AACzC,6DAAqC;AACrC,iEAAyC;AACzC,qDAA6B"}
@@ -1,4 +1,6 @@
1
- import { Logger } from "winston";
1
+ import winston from "winston";
2
+ export declare class Logger extends winston.Logger {
3
+ }
2
4
  export type DefaultLogLevels = "debug" | "info" | "warn" | "error";
3
5
  type LogParamType = {
4
6
  level: DefaultLogLevels;
@@ -9,5 +11,5 @@ type LogParamType = {
9
11
  };
10
12
  data?: Record<string | number, unknown>;
11
13
  };
12
- export declare function formattedLog(logger: Logger | undefined, { level, message, at: { location, function: fnName }, data }: LogParamType): void;
14
+ export declare function formattedLog(logger: winston.Logger | undefined, { level, message, at: { location, function: fnName }, data }: LogParamType): void;
13
15
  export {};
@@ -1,7 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formattedLog = void 0;
3
+ exports.formattedLog = exports.Logger = void 0;
4
4
  var tslib_1 = require("tslib");
5
+ var winston_1 = tslib_1.__importDefault(require("winston"));
6
+ var Logger = (function (_super) {
7
+ tslib_1.__extends(Logger, _super);
8
+ function Logger() {
9
+ return _super !== null && _super.apply(this, arguments) || this;
10
+ }
11
+ return Logger;
12
+ }(winston_1.default.Logger));
13
+ exports.Logger = Logger;
5
14
  function formattedLog(logger, _a) {
6
15
  var level = _a.level, message = _a.message, _b = _a.at, location = _b.location, fnName = _b.function, data = _a.data;
7
16
  if (logger) {
@@ -1 +1 @@
1
- {"version":3,"file":"LogUtils.js","sourceRoot":"","sources":["../../../src/utils/LogUtils.ts"],"names":[],"mappings":";;;;AAcA,SAAgB,YAAY,CAC1B,MAA0B,EAC1B,EAA0E;QAAxE,KAAK,WAAA,EAAE,OAAO,aAAA,EAAE,UAAkC,EAA5B,QAAQ,cAAA,EAAY,MAAM,cAAA,EAAI,IAAI,UAAA;IAE1D,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,KAAK,CAAC,oBACX,EAAE,EAAE,UAAG,QAAQ,cAAI,MAAM,CAAE,EAC3B,OAAO,SAAA,IACJ,IAAI,EACP,CAAC;KACJ;AACH,CAAC;AAXD,oCAWC"}
1
+ {"version":3,"file":"LogUtils.js","sourceRoot":"","sources":["../../../src/utils/LogUtils.ts"],"names":[],"mappings":";;;;AAAA,4DAA8B;AAE9B;IAA4B,kCAAc;IAA1C;;IAA4C,CAAC;IAAD,aAAC;AAAD,CAAC,AAA7C,CAA4B,iBAAO,CAAC,MAAM,GAAG;AAAhC,wBAAM;AAanB,SAAgB,YAAY,CAC1B,MAAkC,EAClC,EAA0E;QAAxE,KAAK,WAAA,EAAE,OAAO,aAAA,EAAE,UAAkC,EAA5B,QAAQ,cAAA,EAAY,MAAM,cAAA,EAAI,IAAI,UAAA;IAE1D,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,KAAK,CAAC,oBACX,EAAE,EAAE,UAAG,QAAQ,cAAI,MAAM,CAAE,EAC3B,OAAO,SAAA,IACJ,IAAI,EACP,CAAC;KACJ;AACH,CAAC;AAXD,oCAWC"}
@@ -0,0 +1,10 @@
1
+ import { AddressListAdapter } from "../types";
2
+ import { Logger } from "./util";
3
+ export declare class AddressList implements AddressListAdapter {
4
+ readonly url: string;
5
+ readonly timeout = 2000;
6
+ readonly retries = 1;
7
+ readonly name = "bybit";
8
+ constructor(url?: string);
9
+ update(logger?: Logger): Promise<string[]>;
10
+ }
@@ -0,0 +1,41 @@
1
+ import { __awaiter, __generator, __spreadArray } from "tslib";
2
+ import { array, defaulted, string, type } from "superstruct";
3
+ import { logError, fetch } from "./util";
4
+ var DEFAULT_URL = "https://hackscan.hackbounty.io/public/hack-address.json";
5
+ // This type is a bit message and unweildy. Additional fields representing new chains may be added without notification.
6
+ var bybitResponse = type({
7
+ "0221": type({
8
+ eth: defaulted(array(string()), []),
9
+ bsc: defaulted(array(string()), []),
10
+ arbi: defaulted(array(string()), []),
11
+ }),
12
+ });
13
+ var AddressList = /** @class */ (function () {
14
+ function AddressList(url) {
15
+ if (url === void 0) { url = DEFAULT_URL; }
16
+ this.url = url;
17
+ this.timeout = 2000; // ms
18
+ this.retries = 1;
19
+ this.name = "bybit";
20
+ }
21
+ AddressList.prototype.update = function (logger) {
22
+ return __awaiter(this, void 0, void 0, function () {
23
+ var response;
24
+ return __generator(this, function (_a) {
25
+ switch (_a.label) {
26
+ case 0: return [4 /*yield*/, fetch(this.name, this.url, this.timeout, this.retries)];
27
+ case 1:
28
+ response = _a.sent();
29
+ if (!bybitResponse.is(response)) {
30
+ // nb. don't log the response because it might be very large.
31
+ return [2 /*return*/, logError(this.name, "Failed to validate response", logger)];
32
+ }
33
+ return [2 /*return*/, __spreadArray(__spreadArray(__spreadArray([], response["0221"].eth, true), response["0221"].bsc, true), response["0221"].arbi, true)];
34
+ }
35
+ });
36
+ });
37
+ };
38
+ return AddressList;
39
+ }());
40
+ export { AddressList };
41
+ //# sourceMappingURL=bybit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bybit.js","sourceRoot":"","sources":["../../../../src/addressAggregator/adapters/bybit.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEjD,IAAM,WAAW,GAAG,yDAAyD,CAAC;AAE9E,wHAAwH;AACxH,IAAM,aAAa,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,IAAI,CAAC;QACX,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;KACrC,CAAC;CACH,CAAC,CAAC;AAEH;IAKE,qBAAqB,GAAiB;QAAjB,oBAAA,EAAA,iBAAiB;QAAjB,QAAG,GAAH,GAAG,CAAc;QAJ7B,YAAO,GAAG,IAAI,CAAC,CAAC,KAAK;QACrB,YAAO,GAAG,CAAC,CAAC;QACZ,SAAI,GAAG,OAAO,CAAC;IAEiB,CAAC;IAEpC,4BAAM,GAAZ,UAAa,MAAe;;;;;4BACT,qBAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAA;;wBAAvE,QAAQ,GAAG,SAA4D;wBAC7E,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;4BAC/B,6DAA6D;4BAC7D,sBAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,6BAA6B,EAAE,MAAM,CAAC,EAAC;yBACnE;wBAED,oEAAW,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,SAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,SAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,SAAE;;;;KACrF;IACH,kBAAC;AAAD,CAAC,AAhBD,IAgBC"}
@@ -0,0 +1,8 @@
1
+ import { AddressListAdapter } from "../types";
2
+ import { Logger } from "./util";
3
+ export declare class AddressList implements AddressListAdapter {
4
+ readonly envVar: string;
5
+ readonly name = "process.env";
6
+ constructor(envVar?: string);
7
+ update(logger?: Logger): Promise<string[]>;
8
+ }
@@ -0,0 +1,30 @@
1
+ import { array, defaulted, string } from "superstruct";
2
+ import { logError } from "./util";
3
+ var envConfig = defaulted(array(string()), []);
4
+ var AddressList = /** @class */ (function () {
5
+ function AddressList(envVar) {
6
+ if (envVar === void 0) { envVar = "ACROSS_IGNORED_ADDRESSES"; }
7
+ this.envVar = envVar;
8
+ this.name = "process.env";
9
+ }
10
+ AddressList.prototype.update = function (logger) {
11
+ var config = process.env[this.envVar];
12
+ if (!config) {
13
+ return Promise.resolve([]);
14
+ }
15
+ var addresses;
16
+ try {
17
+ addresses = JSON.parse(config);
18
+ if (!envConfig.is(addresses)) {
19
+ return logError(this.name, "Address format validation failure.", logger);
20
+ }
21
+ }
22
+ catch (err) {
23
+ return logError(this.name, err, logger);
24
+ }
25
+ return Promise.resolve(addresses);
26
+ };
27
+ return AddressList;
28
+ }());
29
+ export { AddressList };
30
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../../../src/addressAggregator/adapters/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAU,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAE1C,IAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAEjD;IAGE,qBAAqB,MAAmC;QAAnC,uBAAA,EAAA,mCAAmC;QAAnC,WAAM,GAAN,MAAM,CAA6B;QAF/C,SAAI,GAAG,aAAa,CAAC;IAE6B,CAAC;IAE5D,4BAAM,GAAN,UAAO,MAAe;QACpB,IAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SAC5B;QAED,IAAI,SAAkB,CAAC;QACvB,IAAI;YACF,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE;gBAC5B,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,oCAAoC,EAAE,MAAM,CAAC,CAAC;aAC1E;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;SACzC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IACH,kBAAC;AAAD,CAAC,AAvBD,IAuBC"}
@@ -0,0 +1,8 @@
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[]>;
8
+ }