@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,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,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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/addressAggregator/types.ts"],"names":[],"mappings":";;;AAOa,QAAA,eAAe,GAAG,EAAE,CAAC"}
|
package/dist/cjs/index.d.ts
CHANGED
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"));
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -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
|
|
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":";;;;
|
|
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
|
+
}
|