@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.
- package/dist/cjs/addressAggregator/adapters/bybit.d.ts +10 -0
- package/dist/cjs/addressAggregator/adapters/bybit.js +42 -0
- package/dist/cjs/addressAggregator/adapters/bybit.js.map +1 -0
- package/dist/cjs/addressAggregator/adapters/env.d.ts +8 -0
- package/dist/cjs/addressAggregator/adapters/env.js +33 -0
- package/dist/cjs/addressAggregator/adapters/env.js.map +1 -0
- package/dist/cjs/addressAggregator/adapters/file.d.ts +8 -0
- package/dist/cjs/addressAggregator/adapters/file.js +50 -0
- package/dist/cjs/addressAggregator/adapters/file.js.map +1 -0
- package/dist/cjs/addressAggregator/adapters/index.d.ts +3 -0
- package/dist/cjs/addressAggregator/adapters/index.js +8 -0
- package/dist/cjs/addressAggregator/adapters/index.js.map +1 -0
- package/dist/cjs/addressAggregator/adapters/util.d.ts +4 -0
- package/dist/cjs/addressAggregator/adapters/util.js +66 -0
- package/dist/cjs/addressAggregator/adapters/util.js.map +1 -0
- package/dist/cjs/addressAggregator/index.d.ts +10 -0
- package/dist/cjs/addressAggregator/index.js +109 -0
- package/dist/cjs/addressAggregator/index.js.map +1 -0
- package/dist/cjs/addressAggregator/types.d.ts +6 -0
- package/dist/cjs/addressAggregator/types.js +5 -0
- package/dist/cjs/addressAggregator/types.js.map +1 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/LogUtils.d.ts +4 -2
- package/dist/cjs/utils/LogUtils.js +10 -1
- package/dist/cjs/utils/LogUtils.js.map +1 -1
- package/dist/esm/addressAggregator/adapters/bybit.d.ts +10 -0
- package/dist/esm/addressAggregator/adapters/bybit.js +41 -0
- package/dist/esm/addressAggregator/adapters/bybit.js.map +1 -0
- package/dist/esm/addressAggregator/adapters/env.d.ts +8 -0
- package/dist/esm/addressAggregator/adapters/env.js +30 -0
- package/dist/esm/addressAggregator/adapters/env.js.map +1 -0
- package/dist/esm/addressAggregator/adapters/file.d.ts +8 -0
- package/dist/esm/addressAggregator/adapters/file.js +47 -0
- package/dist/esm/addressAggregator/adapters/file.js.map +1 -0
- package/dist/esm/addressAggregator/adapters/index.d.ts +3 -0
- package/dist/esm/addressAggregator/adapters/index.js +7 -0
- package/dist/esm/addressAggregator/adapters/index.js.map +1 -0
- package/dist/esm/addressAggregator/adapters/util.d.ts +4 -0
- package/dist/esm/addressAggregator/adapters/util.js +60 -0
- package/dist/esm/addressAggregator/adapters/util.js.map +1 -0
- package/dist/esm/addressAggregator/index.d.ts +10 -0
- package/dist/esm/addressAggregator/index.js +107 -0
- package/dist/esm/addressAggregator/index.js.map +1 -0
- package/dist/esm/addressAggregator/types.d.ts +6 -0
- package/dist/esm/addressAggregator/types.js +2 -0
- package/dist/esm/addressAggregator/types.js.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/LogUtils.d.ts +4 -2
- package/dist/esm/utils/LogUtils.js +10 -1
- package/dist/esm/utils/LogUtils.js.map +1 -1
- package/dist/types/addressAggregator/adapters/bybit.d.ts +11 -0
- package/dist/types/addressAggregator/adapters/bybit.d.ts.map +1 -0
- package/dist/types/addressAggregator/adapters/env.d.ts +9 -0
- package/dist/types/addressAggregator/adapters/env.d.ts.map +1 -0
- package/dist/types/addressAggregator/adapters/file.d.ts +9 -0
- package/dist/types/addressAggregator/adapters/file.d.ts.map +1 -0
- package/dist/types/addressAggregator/adapters/index.d.ts +4 -0
- package/dist/types/addressAggregator/adapters/index.d.ts.map +1 -0
- package/dist/types/addressAggregator/adapters/util.d.ts +5 -0
- package/dist/types/addressAggregator/adapters/util.d.ts.map +1 -0
- package/dist/types/addressAggregator/index.d.ts +11 -0
- package/dist/types/addressAggregator/index.d.ts.map +1 -0
- package/dist/types/addressAggregator/types.d.ts +7 -0
- package/dist/types/addressAggregator/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/utils/LogUtils.d.ts +4 -2
- package/dist/types/utils/LogUtils.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/addressAggregator/adapters/bybit.ts +32 -0
- package/src/addressAggregator/adapters/env.ts +30 -0
- package/src/addressAggregator/adapters/file.ts +39 -0
- package/src/addressAggregator/adapters/index.ts +3 -0
- package/src/addressAggregator/adapters/util.ts +47 -0
- package/src/addressAggregator/index.ts +86 -0
- package/src/addressAggregator/types.ts +8 -0
- package/src/index.ts +1 -0
- package/src/utils/LogUtils.ts +3 -2
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { __awaiter, __generator } from "tslib";
|
|
2
|
+
import { readFile } from "node:fs/promises";
|
|
3
|
+
import { array, defaulted, string } from "superstruct";
|
|
4
|
+
import { logError } from "./util";
|
|
5
|
+
var fileConfig = defaulted(array(string()), []);
|
|
6
|
+
var AddressList = /** @class */ (function () {
|
|
7
|
+
function AddressList(path) {
|
|
8
|
+
if (path === void 0) { path = "./addresses.json"; }
|
|
9
|
+
this.path = path;
|
|
10
|
+
this.name = "fs:".concat(path);
|
|
11
|
+
}
|
|
12
|
+
AddressList.prototype.update = function (logger) {
|
|
13
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
14
|
+
var data, err_1, addresses;
|
|
15
|
+
return __generator(this, function (_a) {
|
|
16
|
+
switch (_a.label) {
|
|
17
|
+
case 0:
|
|
18
|
+
_a.trys.push([0, 2, , 3]);
|
|
19
|
+
return [4 /*yield*/, readFile(this.path, { encoding: "utf8" })];
|
|
20
|
+
case 1:
|
|
21
|
+
data = _a.sent();
|
|
22
|
+
return [3 /*break*/, 3];
|
|
23
|
+
case 2:
|
|
24
|
+
err_1 = _a.sent();
|
|
25
|
+
return [2 /*return*/, logError(this.name, err_1, logger)];
|
|
26
|
+
case 3:
|
|
27
|
+
if (!data) {
|
|
28
|
+
return [2 /*return*/, logError(this.name, "No addresses found in \"".concat(this.path, "\""), logger)];
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
addresses = JSON.parse(data);
|
|
32
|
+
if (!fileConfig.is(addresses)) {
|
|
33
|
+
return [2 /*return*/, logError(this.name, "Address format validation failure.", logger)];
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
return [2 /*return*/, logError(this.name, err, logger)];
|
|
38
|
+
}
|
|
39
|
+
return [2 /*return*/, Promise.resolve(addresses)];
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
return AddressList;
|
|
45
|
+
}());
|
|
46
|
+
export { AddressList };
|
|
47
|
+
//# sourceMappingURL=file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../src/addressAggregator/adapters/file.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAU,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAE1C,IAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,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,qBAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAA;;wBAAtD,IAAI,GAAG,SAA+C,CAAC;;;;wBAEvD,sBAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAG,EAAE,MAAM,CAAC,EAAC;;wBAG1C,IAAI,CAAC,IAAI,EAAE;4BACT,sBAAO,QAAQ,CAAC,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,sBAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,oCAAoC,EAAE,MAAM,CAAC,EAAC;6BAC1E;yBACF;wBAAC,OAAO,GAAG,EAAE;4BACZ,sBAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAC;yBACzC;wBAED,sBAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAC;;;;KACnC;IACH,kBAAC;AAAD,CAAC,AA/BD,IA+BC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/addressAggregator/adapters/index.ts"],"names":[],"mappings":"yBAAuB,SAAS;oBAApB,KAAK;8BACW,OAAO;yBAAvB,UAAU;sBACF,QAAQ;iBAAhB,EAAE"}
|
|
@@ -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,60 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -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,107 @@
|
|
|
1
|
+
import { __awaiter, __generator } from "tslib";
|
|
2
|
+
import { utils as ethersUtils } from "ethers";
|
|
3
|
+
import { mapAsync } from "../utils";
|
|
4
|
+
import { INVALID_ADDRESS } from "./types";
|
|
5
|
+
import * as adapters from "./adapters";
|
|
6
|
+
import * as adapters_1 from "./adapters";
|
|
7
|
+
export { adapters_1 as adapters };
|
|
8
|
+
var AddressAggregator = /** @class */ (function () {
|
|
9
|
+
function AddressAggregator(adapters, logger) {
|
|
10
|
+
this.adapters = adapters;
|
|
11
|
+
this.logger = logger;
|
|
12
|
+
}
|
|
13
|
+
AddressAggregator.sources = function () {
|
|
14
|
+
return Object.keys(adapters);
|
|
15
|
+
};
|
|
16
|
+
AddressAggregator.prototype.update = function () {
|
|
17
|
+
var _a, _b;
|
|
18
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
19
|
+
var allAddresses, addresses;
|
|
20
|
+
var _this = this;
|
|
21
|
+
return __generator(this, function (_c) {
|
|
22
|
+
switch (_c.label) {
|
|
23
|
+
case 0:
|
|
24
|
+
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.debug({
|
|
25
|
+
at: "AddressAggregator::update",
|
|
26
|
+
message: "Updating addresses.",
|
|
27
|
+
sources: this.adapters.map(function (adapter) { return adapter.name; }),
|
|
28
|
+
supportedSources: AddressAggregator.sources(),
|
|
29
|
+
});
|
|
30
|
+
return [4 /*yield*/, mapAsync(this.adapters, function (adapter) { return __awaiter(_this, void 0, void 0, function () {
|
|
31
|
+
var invalidAddresses, addresses;
|
|
32
|
+
var _a, _b;
|
|
33
|
+
return __generator(this, function (_c) {
|
|
34
|
+
switch (_c.label) {
|
|
35
|
+
case 0:
|
|
36
|
+
invalidAddresses = [];
|
|
37
|
+
return [4 /*yield*/, adapter.update(this.logger)];
|
|
38
|
+
case 1:
|
|
39
|
+
addresses = (_c.sent())
|
|
40
|
+
.map(function (address) {
|
|
41
|
+
try {
|
|
42
|
+
return ethersUtils.getAddress(address.toLowerCase());
|
|
43
|
+
}
|
|
44
|
+
catch (_a) {
|
|
45
|
+
invalidAddresses.push(address);
|
|
46
|
+
return INVALID_ADDRESS;
|
|
47
|
+
}
|
|
48
|
+
})
|
|
49
|
+
.filter(function (address) { return address !== INVALID_ADDRESS; });
|
|
50
|
+
if (invalidAddresses.length > 0) {
|
|
51
|
+
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.warn({
|
|
52
|
+
at: "AddressAggregator::update()",
|
|
53
|
+
message: "Read ".concat(invalidAddresses.length, " malformed addresses on ").concat(adapter.name, "."),
|
|
54
|
+
invalidAddresses: invalidAddresses,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
(_b = this.logger) === null || _b === void 0 ? void 0 : _b.debug({
|
|
58
|
+
at: "AddressAggregator::update",
|
|
59
|
+
message: "Loaded ".concat(addresses.length, " addresses from ").concat(adapter.name, "."),
|
|
60
|
+
});
|
|
61
|
+
return [2 /*return*/, addresses];
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}); })];
|
|
65
|
+
case 1:
|
|
66
|
+
allAddresses = _c.sent();
|
|
67
|
+
addresses = new Set(allAddresses.flat());
|
|
68
|
+
(_b = this.logger) === null || _b === void 0 ? void 0 : _b.debug({
|
|
69
|
+
at: "AddressAggregator::update",
|
|
70
|
+
message: "Loaded ".concat(addresses.size, " addresses."),
|
|
71
|
+
sources: this.adapters.map(function (adapter) { return adapter.name; }),
|
|
72
|
+
});
|
|
73
|
+
return [2 /*return*/, addresses];
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
return AddressAggregator;
|
|
79
|
+
}());
|
|
80
|
+
export { AddressAggregator };
|
|
81
|
+
function run() {
|
|
82
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
83
|
+
var addressList, addresses;
|
|
84
|
+
return __generator(this, function (_a) {
|
|
85
|
+
switch (_a.label) {
|
|
86
|
+
case 0:
|
|
87
|
+
addressList = new AddressAggregator([new adapters.bybit.AddressList(), new adapters.processEnv.AddressList()]);
|
|
88
|
+
return [4 /*yield*/, addressList.update()];
|
|
89
|
+
case 1:
|
|
90
|
+
addresses = _a.sent();
|
|
91
|
+
console.log("Retrieved ".concat(addresses.size, " addresses: ").concat(JSON.stringify(Array.from(addresses), null, 2)));
|
|
92
|
+
return [2 /*return*/, 0];
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
if (require.main === module) {
|
|
98
|
+
run()
|
|
99
|
+
.then(function (result) {
|
|
100
|
+
process.exitCode = result;
|
|
101
|
+
})
|
|
102
|
+
.catch(function (error) {
|
|
103
|
+
console.error("Process exited with", error);
|
|
104
|
+
process.exitCode = 127;
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
//# 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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/addressAggregator/types.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,IAAM,eAAe,GAAG,EAAE,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"qCAAmC,qBAAqB;gCAA5C,iBAAiB;mCACI,mBAAmB;8BAAxC,eAAe;wBACL,QAAQ;mBAAlB,IAAI;sCACoB,sBAAsB;iCAA9C,kBAAkB;yBACP,SAAS;oBAApB,KAAK;6BACU,aAAa;wBAA5B,SAAS;6BACM,aAAa;wBAA5B,SAAS;kCACW,kBAAkB;6BAAtC,cAAc;+BACG,eAAe;0BAAhC,WAAW;qCACY,qBAAqB;gCAA5C,iBAAiB;6BACF,aAAa;wBAA5B,SAAS;8BACO,cAAc;yBAA9B,UAAU;8BACM,cAAc;yBAA9B,UAAU;2BACG,WAAW;sBAAxB,OAAO;6BACQ,aAAa;wBAA5B,SAAS;2BACI,WAAW;sBAAxB,OAAO;6BACQ,aAAa;wBAA5B,SAAS;uBACA,OAAO;kBAAhB,GAAG"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import
|
|
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,4 +1,13 @@
|
|
|
1
|
-
import { __assign } from "tslib";
|
|
1
|
+
import { __assign, __extends } from "tslib";
|
|
2
|
+
import winston from "winston";
|
|
3
|
+
var Logger = /** @class */ (function (_super) {
|
|
4
|
+
__extends(Logger, _super);
|
|
5
|
+
function Logger() {
|
|
6
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
7
|
+
}
|
|
8
|
+
return Logger;
|
|
9
|
+
}(winston.Logger));
|
|
10
|
+
export { Logger };
|
|
2
11
|
export function formattedLog(logger, _a) {
|
|
3
12
|
var level = _a.level, message = _a.message, _b = _a.at, location = _b.location, fnName = _b.function, data = _a.data;
|
|
4
13
|
if (logger) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogUtils.js","sourceRoot":"","sources":["../../../src/utils/LogUtils.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"LogUtils.js","sourceRoot":"","sources":["../../../src/utils/LogUtils.ts"],"names":[],"mappings":";AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B;IAA4B,0BAAc;IAA1C;;IAA4C,CAAC;IAAD,aAAC;AAAD,CAAC,AAA7C,CAA4B,OAAO,CAAC,MAAM,GAAG;;AAa7C,MAAM,UAAU,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,YACX,EAAE,EAAE,UAAG,QAAQ,cAAI,MAAM,CAAE,EAC3B,OAAO,SAAA,IACJ,IAAI,EACP,CAAC;KACJ;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
+
}
|
|
11
|
+
//# sourceMappingURL=bybit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bybit.d.ts","sourceRoot":"","sources":["../../../../src/addressAggregator/adapters/bybit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAY,MAAM,EAAS,MAAM,QAAQ,CAAC;AAajD,qBAAa,WAAY,YAAW,kBAAkB;IAKxC,QAAQ,CAAC,GAAG;IAJxB,QAAQ,CAAC,OAAO,QAAQ;IACxB,QAAQ,CAAC,OAAO,KAAK;IACrB,QAAQ,CAAC,IAAI,WAAW;gBAEH,GAAG,SAAc;IAEhC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CASjD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
+
}
|
|
9
|
+
//# sourceMappingURL=env.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
+
}
|
|
9
|
+
//# sourceMappingURL=file.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/addressAggregator/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,UAAU,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
+
}
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/addressAggregator/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAY,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAmB,MAAM,SAAS,CAAC;AAG9D,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAEvC,qBAAa,iBAAiB;IAE1B,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,EAAE;IACvC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;gBADjB,QAAQ,EAAE,kBAAkB,EAAE,EACpB,MAAM,CAAC,oBAAQ;IAGpC,MAAM,CAAC,OAAO,IAAI,MAAM,EAAE;IAIpB,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;CAgDrC"}
|
|
@@ -0,0 +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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,kBAAkB,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,iBAAiB,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,iBAAiB,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,kBAAkB,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,iBAAiB,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import
|
|
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,6 +11,6 @@ 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 {};
|
|
14
16
|
//# sourceMappingURL=LogUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/LogUtils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"LogUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/LogUtils.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,qBAAa,MAAO,SAAQ,OAAO,CAAC,MAAM;CAAG;AAC7C,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnE,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE;QACF,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC,CAAC;AAEF,wBAAgB,YAAY,CAC1B,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,SAAS,EAClC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,GACzE,IAAI,CAQN"}
|
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.
|
|
4
|
+
"version": "4.1.22",
|
|
5
5
|
"license": "AGPL-3.0",
|
|
6
6
|
"homepage": "https://docs.across.to/reference/sdk",
|
|
7
7
|
"files": [
|
|
@@ -166,4 +166,4 @@
|
|
|
166
166
|
"secp256k1@4.0.3": "4.0.4",
|
|
167
167
|
"secp256k1@5.0.0": "5.0.1"
|
|
168
168
|
}
|
|
169
|
-
}
|
|
169
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { array, defaulted, string, type } from "superstruct";
|
|
2
|
+
import { AddressListAdapter } from "../types";
|
|
3
|
+
import { logError, Logger, fetch } from "./util";
|
|
4
|
+
|
|
5
|
+
const DEFAULT_URL = "https://hackscan.hackbounty.io/public/hack-address.json";
|
|
6
|
+
|
|
7
|
+
// This type is a bit message and unweildy. Additional fields representing new chains may be added without notification.
|
|
8
|
+
const bybitResponse = type({
|
|
9
|
+
"0221": type({
|
|
10
|
+
eth: defaulted(array(string()), []),
|
|
11
|
+
bsc: defaulted(array(string()), []),
|
|
12
|
+
arbi: defaulted(array(string()), []),
|
|
13
|
+
}),
|
|
14
|
+
});
|
|
15
|
+
|
|
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) {}
|
|
22
|
+
|
|
23
|
+
async update(logger?: Logger): Promise<string[]> {
|
|
24
|
+
const response = await fetch(this.name, this.url, this.timeout, this.retries);
|
|
25
|
+
if (!bybitResponse.is(response)) {
|
|
26
|
+
// nb. don't log the response because it might be very large.
|
|
27
|
+
return logError(this.name, "Failed to validate response", logger);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return [...response["0221"].eth, ...response["0221"].bsc, ...response["0221"].arbi];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { array, defaulted, string } from "superstruct";
|
|
2
|
+
import { AddressListAdapter } from "../types";
|
|
3
|
+
import { Logger, logError } from "./util";
|
|
4
|
+
|
|
5
|
+
const envConfig = defaulted(array(string()), []);
|
|
6
|
+
|
|
7
|
+
export class AddressList implements AddressListAdapter {
|
|
8
|
+
readonly name = "process.env";
|
|
9
|
+
|
|
10
|
+
constructor(readonly envVar = "ACROSS_IGNORED_ADDRESSES") {}
|
|
11
|
+
|
|
12
|
+
update(logger?: Logger): Promise<string[]> {
|
|
13
|
+
const config = process.env[this.envVar];
|
|
14
|
+
if (!config) {
|
|
15
|
+
return Promise.resolve([]);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
let addresses: unknown;
|
|
19
|
+
try {
|
|
20
|
+
addresses = JSON.parse(config);
|
|
21
|
+
if (!envConfig.is(addresses)) {
|
|
22
|
+
return logError(this.name, "Address format validation failure.", logger);
|
|
23
|
+
}
|
|
24
|
+
} catch (err) {
|
|
25
|
+
return logError(this.name, err, logger);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return Promise.resolve(addresses);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { array, defaulted, string } from "superstruct";
|
|
3
|
+
import { AddressListAdapter } from "../types";
|
|
4
|
+
import { Logger, logError } from "./util";
|
|
5
|
+
|
|
6
|
+
const fileConfig = defaulted(array(string()), []);
|
|
7
|
+
|
|
8
|
+
export class AddressList implements AddressListAdapter {
|
|
9
|
+
readonly name: string;
|
|
10
|
+
|
|
11
|
+
constructor(readonly path = "./addresses.json") {
|
|
12
|
+
this.name = `fs:${path}`;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
async update(logger?: Logger): Promise<string[]> {
|
|
16
|
+
let data: string;
|
|
17
|
+
try {
|
|
18
|
+
data = await readFile(this.path, { encoding: "utf8" });
|
|
19
|
+
} catch (err) {
|
|
20
|
+
return logError(this.name, err, logger);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (!data) {
|
|
24
|
+
return logError(this.name, `No addresses found in "${this.path}"`, logger);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
let addresses: unknown;
|
|
28
|
+
try {
|
|
29
|
+
addresses = JSON.parse(data);
|
|
30
|
+
if (!fileConfig.is(addresses)) {
|
|
31
|
+
return logError(this.name, "Address format validation failure.", logger);
|
|
32
|
+
}
|
|
33
|
+
} catch (err) {
|
|
34
|
+
return logError(this.name, err, logger);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return Promise.resolve(addresses);
|
|
38
|
+
}
|
|
39
|
+
}
|