@across-protocol/sdk 3.1.35 → 3.1.36
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/gasPriceOracle/adapters/polygon.js +30 -7
- package/dist/cjs/gasPriceOracle/adapters/polygon.js.map +1 -1
- package/dist/cjs/priceClient/adapters/baseAdapter.js +11 -9
- package/dist/cjs/priceClient/adapters/baseAdapter.js.map +1 -1
- package/dist/cjs/utils/JSONUtils.js +1 -1
- package/dist/cjs/utils/JSONUtils.js.map +1 -1
- package/dist/esm/gasPriceOracle/adapters/polygon.js +31 -10
- package/dist/esm/gasPriceOracle/adapters/polygon.js.map +1 -1
- package/dist/esm/priceClient/adapters/baseAdapter.js +11 -9
- package/dist/esm/priceClient/adapters/baseAdapter.js.map +1 -1
- package/dist/esm/utils/JSONUtils.js +1 -1
- package/dist/esm/utils/JSONUtils.js.map +1 -1
- package/dist/types/gasPriceOracle/adapters/polygon.d.ts.map +1 -1
- package/dist/types/priceClient/adapters/baseAdapter.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/gasPriceOracle/adapters/polygon.ts +19 -8
- package/src/priceClient/adapters/baseAdapter.ts +1 -0
- package/src/utils/JSONUtils.ts +1 -1
|
@@ -54,13 +54,36 @@ var PolygonGasStation = (function (_super) {
|
|
|
54
54
|
return PolygonGasStation;
|
|
55
55
|
}(baseAdapter_1.BaseHTTPAdapter));
|
|
56
56
|
function gasStation(provider, chainId) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
57
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
58
|
+
var gasStation, maxPriorityFeePerGas, maxFeePerGas, err_1, minPriorityFee, priorityDelta;
|
|
59
|
+
var _a, _b;
|
|
60
|
+
return tslib_1.__generator(this, function (_c) {
|
|
61
|
+
switch (_c.label) {
|
|
62
|
+
case 0:
|
|
63
|
+
gasStation = new PolygonGasStation({ chainId: chainId, timeout: 2000, retries: 0 });
|
|
64
|
+
_c.label = 1;
|
|
65
|
+
case 1:
|
|
66
|
+
_c.trys.push([1, 3, , 5]);
|
|
67
|
+
return [4, gasStation.getFeeData()];
|
|
68
|
+
case 2:
|
|
69
|
+
(_a = _c.sent(), maxPriorityFeePerGas = _a.maxPriorityFeePerGas, maxFeePerGas = _a.maxFeePerGas);
|
|
70
|
+
return [3, 5];
|
|
71
|
+
case 3:
|
|
72
|
+
err_1 = _c.sent();
|
|
73
|
+
return [4, (0, ethereum_1.eip1559)(provider, chainId)];
|
|
74
|
+
case 4:
|
|
75
|
+
(_b = _c.sent(), maxPriorityFeePerGas = _b.maxPriorityFeePerGas, maxFeePerGas = _b.maxFeePerGas);
|
|
76
|
+
minPriorityFee = (0, utils_1.parseUnits)("30", 9);
|
|
77
|
+
if (maxPriorityFeePerGas.lt(minPriorityFee)) {
|
|
78
|
+
priorityDelta = minPriorityFee.sub(maxPriorityFeePerGas);
|
|
79
|
+
maxPriorityFeePerGas = minPriorityFee;
|
|
80
|
+
maxFeePerGas = maxFeePerGas.add(priorityDelta);
|
|
81
|
+
}
|
|
82
|
+
return [3, 5];
|
|
83
|
+
case 5: return [2, { maxPriorityFeePerGas: maxPriorityFeePerGas, maxFeePerGas: maxFeePerGas }];
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
});
|
|
64
87
|
}
|
|
65
88
|
exports.gasStation = gasStation;
|
|
66
89
|
//# sourceMappingURL=polygon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon.js","sourceRoot":"","sources":["../../../../src/gasPriceOracle/adapters/polygon.ts"],"names":[],"mappings":";;;;AACA,sEAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"polygon.js","sourceRoot":"","sources":["../../../../src/gasPriceOracle/adapters/polygon.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,36 +37,38 @@ var BaseHTTPAdapter = (function () {
|
|
|
37
37
|
configurable: true
|
|
38
38
|
});
|
|
39
39
|
BaseHTTPAdapter.prototype.query = function (path, urlArgs) {
|
|
40
|
+
var _a;
|
|
40
41
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
41
42
|
var url, args, errs, tries, err_1, errMsg;
|
|
42
|
-
return tslib_1.__generator(this, function (
|
|
43
|
-
switch (
|
|
43
|
+
return tslib_1.__generator(this, function (_b) {
|
|
44
|
+
switch (_b.label) {
|
|
44
45
|
case 0:
|
|
45
46
|
url = "https://".concat(this.host, "/").concat(path !== null && path !== void 0 ? path : "");
|
|
46
47
|
args = {
|
|
48
|
+
headers: { "User-Agent": (_a = process.env.ACROSS_USER_AGENT) !== null && _a !== void 0 ? _a : "across-protocol" },
|
|
47
49
|
timeout: this.timeout,
|
|
48
50
|
params: urlArgs !== null && urlArgs !== void 0 ? urlArgs : {},
|
|
49
51
|
};
|
|
50
52
|
errs = [];
|
|
51
53
|
tries = 0;
|
|
52
|
-
|
|
54
|
+
_b.label = 1;
|
|
53
55
|
case 1:
|
|
54
|
-
|
|
56
|
+
_b.trys.push([1, 3, , 6]);
|
|
55
57
|
return [4, (0, axios_1.default)(url, args)];
|
|
56
|
-
case 2: return [2, (
|
|
58
|
+
case 2: return [2, (_b.sent()).data];
|
|
57
59
|
case 3:
|
|
58
|
-
err_1 =
|
|
60
|
+
err_1 = _b.sent();
|
|
59
61
|
errMsg = axios_1.default.isAxiosError(err_1) || err_1 instanceof Error ? err_1.message : "unknown error";
|
|
60
62
|
errs.push(errMsg);
|
|
61
63
|
if (!(++tries <= this.retries)) return [3, 5];
|
|
62
64
|
return [4, this.sleep(Math.pow(1.5, tries) * 1000)];
|
|
63
65
|
case 4:
|
|
64
|
-
|
|
65
|
-
|
|
66
|
+
_b.sent();
|
|
67
|
+
_b.label = 5;
|
|
66
68
|
case 5: return [3, 6];
|
|
67
69
|
case 6:
|
|
68
70
|
if (tries <= this.retries) return [3, 1];
|
|
69
|
-
|
|
71
|
+
_b.label = 7;
|
|
70
72
|
case 7: throw new Error("".concat(this.name, " price lookup failure (").concat(errs.join(", "), ")"));
|
|
71
73
|
}
|
|
72
74
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseAdapter.js","sourceRoot":"","sources":["../../../../src/priceClient/adapters/baseAdapter.ts"],"names":[],"mappings":";;;;AAAA,0DAA4B;AAC5B,wDAA0B;AAO1B;IAsBE,yBACkB,IAAY,EACZ,IAAY,EAC5B,EAAoD;YAAlD,eAAc,EAAd,OAAO,mBAAG,IAAI,KAAA,EAAE,eAAW,EAAX,OAAO,mBAAG,CAAC,KAAA;QAFb,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAQ;QAvBtB,aAAQ,GAAG,CAAC,CAAC;QACb,aAAQ,GAAG,CAAC,CAAC;QAyBnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAzBD,sBAAI,oCAAO;aAAX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;aAED,UAAY,OAAe;YACzB,IAAA,gBAAM,EAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC1B,CAAC;;;OALA;IAOD,sBAAI,oCAAO;aAAX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;aAED,UAAY,OAAe;YACzB,IAAA,gBAAM,EAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC1B,CAAC;;;OALA;IAgBe,+BAAK,GAArB,UAAsB,IAAY,EAAE,OAAgB
|
|
1
|
+
{"version":3,"file":"baseAdapter.js","sourceRoot":"","sources":["../../../../src/priceClient/adapters/baseAdapter.ts"],"names":[],"mappings":";;;;AAAA,0DAA4B;AAC5B,wDAA0B;AAO1B;IAsBE,yBACkB,IAAY,EACZ,IAAY,EAC5B,EAAoD;YAAlD,eAAc,EAAd,OAAO,mBAAG,IAAI,KAAA,EAAE,eAAW,EAAX,OAAO,mBAAG,CAAC,KAAA;QAFb,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAQ;QAvBtB,aAAQ,GAAG,CAAC,CAAC;QACb,aAAQ,GAAG,CAAC,CAAC;QAyBnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAzBD,sBAAI,oCAAO;aAAX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;aAED,UAAY,OAAe;YACzB,IAAA,gBAAM,EAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC1B,CAAC;;;OALA;IAOD,sBAAI,oCAAO;aAAX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;aAED,UAAY,OAAe;YACzB,IAAA,gBAAM,EAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC1B,CAAC;;;OALA;IAgBe,+BAAK,GAArB,UAAsB,IAAY,EAAE,OAAgB;;;;;;;wBAC5C,GAAG,GAAG,kBAAW,IAAI,CAAC,IAAI,cAAI,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAE,CAAC;wBAC3C,IAAI,GAAG;4BACX,OAAO,EAAE,EAAE,YAAY,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,iBAAiB,mCAAI,iBAAiB,EAAE;4BAC7E,OAAO,EAAE,IAAI,CAAC,OAAO;4BACrB,MAAM,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE;yBACtB,CAAC;wBAEI,IAAI,GAAa,EAAE,CAAC;wBACtB,KAAK,GAAG,CAAC,CAAC;;;;wBAGF,WAAM,IAAA,eAAK,EAAC,GAAG,EAAE,IAAI,CAAC,EAAA;4BAA9B,WAAO,CAAC,SAAsB,CAAC,CAAC,IAAI,EAAC;;;wBAE/B,MAAM,GAAG,eAAK,CAAC,YAAY,CAAC,KAAG,CAAC,IAAI,KAAG,YAAY,KAAK,CAAC,CAAC,CAAC,KAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;wBAC/F,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;6BACd,CAAA,EAAE,KAAK,IAAI,IAAI,CAAC,OAAO,CAAA,EAAvB,cAAuB;wBAAE,WAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,EAAA;;wBAA7C,SAA6C,CAAC;;;;4BAEtE,KAAK,IAAI,IAAI,CAAC,OAAO;;4BAE9B,MAAM,IAAI,KAAK,CAAC,UAAG,IAAI,CAAC,IAAI,oCAA0B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAG,CAAC,CAAC;;;;KAC3E;IAES,+BAAK,GAAf,UAAgB,EAAU;QACxB,OAAO,IAAI,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,EAAjB,CAAiB,CAAC,CAAC;IAC/C,CAAC;IACH,sBAAC;AAAD,CAAC,AAzDD,IAyDC;AAzDY,0CAAe"}
|
|
@@ -30,7 +30,7 @@ function jsonReplacerWithBigNumbers(_key, value) {
|
|
|
30
30
|
if (!(0, TypeGuards_1.isDefined)(value)) {
|
|
31
31
|
return value;
|
|
32
32
|
}
|
|
33
|
-
if (BigNumberUtils_1.BigNumber.isBigNumber(value)) {
|
|
33
|
+
if (BigNumberUtils_1.BigNumber.isBigNumber(value) || typeof value === "bigint") {
|
|
34
34
|
return value.toString();
|
|
35
35
|
}
|
|
36
36
|
var recordValue = value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSONUtils.js","sourceRoot":"","sources":["../../../src/utils/JSONUtils.ts"],"names":[],"mappings":";;;AAAA,mDAA6C;AAC7C,2CAAyC;AAUzC,SAAgB,0BAA0B,CAAC,UAAkB;IAC3D,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,UAAC,IAAI,EAAE,KAAK;YACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;aAClC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;KACJ;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAXD,gEAWC;AASD,SAAgB,8BAA8B,CAAC,GAAY;IACzD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,UAAC,IAAI,EAAE,KAAK;QACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;YAC7E,OAAO,0BAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;SACzC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAPD,wEAOC;AAQD,SAAgB,0BAA0B,CAAC,IAAY,EAAE,KAAc;IAErE,IAAI,CAAC,IAAA,sBAAS,EAAC,KAAK,CAAC,EAAE;QACrB,OAAO,KAAK,CAAC;KACd;IAKD,IAAI,0BAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"JSONUtils.js","sourceRoot":"","sources":["../../../src/utils/JSONUtils.ts"],"names":[],"mappings":";;;AAAA,mDAA6C;AAC7C,2CAAyC;AAUzC,SAAgB,0BAA0B,CAAC,UAAkB;IAC3D,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,UAAC,IAAI,EAAE,KAAK;YACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;aAClC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;KACJ;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAXD,gEAWC;AASD,SAAgB,8BAA8B,CAAC,GAAY;IACzD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,UAAC,IAAI,EAAE,KAAK;QACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;YAC7E,OAAO,0BAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;SACzC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAPD,wEAOC;AAQD,SAAgB,0BAA0B,CAAC,IAAY,EAAE,KAAc;IAErE,IAAI,CAAC,IAAA,sBAAS,EAAC,KAAK,CAAC,EAAE;QACrB,OAAO,KAAK,CAAC;KACd;IAKD,IAAI,0BAAS,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7D,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;KACzB;IAGD,IAAM,WAAW,GAAG,KAAsC,CAAC;IAC3D,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,IAAI,IAAA,sBAAS,EAAC,WAAW,CAAC,GAAG,CAAC,EAAE;QAClE,OAAO,0BAAS,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;KACnD;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AApBD,gEAoBC;AAQD,SAAgB,yBAAyB,CAAC,IAAY,EAAE,KAAc;IAGpE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACtD,IAAM,SAAS,GAAG,0BAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,SAAS,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE;YAClC,OAAO,SAAS,CAAC;SAClB;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAVD,8DAUC"}
|
|
@@ -5,8 +5,6 @@ import { CHAIN_IDs } from "../../constants";
|
|
|
5
5
|
import { gasPriceError } from "../util";
|
|
6
6
|
import { eip1559 } from "./ethereum";
|
|
7
7
|
var POLYGON = CHAIN_IDs.POLYGON;
|
|
8
|
-
// @dev toBNWei() is not imported from ../utils because of a circular dependency loop.
|
|
9
|
-
// The fix is probably to relocate the function estimateTotalGasRequiredByUnsignedTransaction().
|
|
10
8
|
var PolygonGasStation = /** @class */ (function (_super) {
|
|
11
9
|
__extends(PolygonGasStation, _super);
|
|
12
10
|
function PolygonGasStation(_a) {
|
|
@@ -54,13 +52,36 @@ var PolygonGasStation = /** @class */ (function (_super) {
|
|
|
54
52
|
return PolygonGasStation;
|
|
55
53
|
}(BaseHTTPAdapter));
|
|
56
54
|
export function gasStation(provider, chainId) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
55
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
56
|
+
var gasStation, maxPriorityFeePerGas, maxFeePerGas, err_1, minPriorityFee, priorityDelta;
|
|
57
|
+
var _a, _b;
|
|
58
|
+
return __generator(this, function (_c) {
|
|
59
|
+
switch (_c.label) {
|
|
60
|
+
case 0:
|
|
61
|
+
gasStation = new PolygonGasStation({ chainId: chainId, timeout: 2000, retries: 0 });
|
|
62
|
+
_c.label = 1;
|
|
63
|
+
case 1:
|
|
64
|
+
_c.trys.push([1, 3, , 5]);
|
|
65
|
+
return [4 /*yield*/, gasStation.getFeeData()];
|
|
66
|
+
case 2:
|
|
67
|
+
(_a = _c.sent(), maxPriorityFeePerGas = _a.maxPriorityFeePerGas, maxFeePerGas = _a.maxFeePerGas);
|
|
68
|
+
return [3 /*break*/, 5];
|
|
69
|
+
case 3:
|
|
70
|
+
err_1 = _c.sent();
|
|
71
|
+
return [4 /*yield*/, eip1559(provider, chainId)];
|
|
72
|
+
case 4:
|
|
73
|
+
// Fall back to the RPC provider. May be less accurate.
|
|
74
|
+
(_b = _c.sent(), maxPriorityFeePerGas = _b.maxPriorityFeePerGas, maxFeePerGas = _b.maxFeePerGas);
|
|
75
|
+
minPriorityFee = parseUnits("30", 9);
|
|
76
|
+
if (maxPriorityFeePerGas.lt(minPriorityFee)) {
|
|
77
|
+
priorityDelta = minPriorityFee.sub(maxPriorityFeePerGas);
|
|
78
|
+
maxPriorityFeePerGas = minPriorityFee;
|
|
79
|
+
maxFeePerGas = maxFeePerGas.add(priorityDelta);
|
|
80
|
+
}
|
|
81
|
+
return [3 /*break*/, 5];
|
|
82
|
+
case 5: return [2 /*return*/, { maxPriorityFeePerGas: maxPriorityFeePerGas, maxFeePerGas: maxFeePerGas }];
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
});
|
|
65
86
|
}
|
|
66
87
|
//# sourceMappingURL=polygon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon.js","sourceRoot":"","sources":["../../../../src/gasPriceOracle/adapters/polygon.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAuB,MAAM,wCAAwC,CAAC;AAC9F,OAAO,
|
|
1
|
+
{"version":3,"file":"polygon.js","sourceRoot":"","sources":["../../../../src/gasPriceOracle/adapters/polygon.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAuB,MAAM,wCAAwC,CAAC;AAC9F,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAqB7B,IAAA,OAAO,GAAK,SAAS,QAAd,CAAe;AAE9B;IAAgC,qCAAe;IAG7C,2BAAY,EAA6E;QAAzF,iBAKC;YALW,qBAA2E,EAAE,KAAA,EAA3E,eAAiB,EAAjB,OAAO,mBAAG,OAAO,KAAA,EAAE,IAAI,UAAA,EAAE,eAAc,EAAd,OAAO,mBAAG,IAAI,KAAA,EAAE,eAAW,EAAX,OAAO,mBAAG,CAAC,KAAA;QAChE,IAAI,GAAG,CAAA,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,OAAO,KAAK,OAAO,EAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,uCAAuC,CAAC;gBAE/G,kBAAM,qBAAqB,EAAE,IAAI,EAAE,EAAE,OAAO,SAAA,EAAE,OAAO,SAAA,EAAE,CAAC;QACxD,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;;IACzB,CAAC;IAEK,sCAAU,GAAhB,UAAiB,QAAkD;QAAlD,yBAAA,EAAA,iBAAkD;;;;;;4BACrD,qBAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,EAAA;;wBAAhC,GAAG,GAAG,SAA0B;wBAEhC,QAAQ,GAAI,GAA4B,aAA5B,GAAG,uBAAH,GAAG,CAA4B,QAAQ,CAAC,CAAC;wBAC3D,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE;4BACzC,8DAA8D;4BAC9D,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;yBACrD;wBAED,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAC,QAAQ;4BAC1D,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gCACxB,aAAa,CAAC,cAAc,EAAE,KAAI,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;6BACjF;wBACH,CAAC,CAAC,CAAC;wBAEG,oBAAoB,GAAG,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;wBACzE,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;wBAE/D,sBAAO,EAAE,oBAAoB,sBAAA,EAAE,YAAY,cAAA,EAAE,EAAC;;;;KAC/C;IAES,iDAAqB,GAA/B,UAAgC,QAAiB;QAC/C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC;SACd;QACD,IAAM,SAAS,GAAG,QAA+B,CAAC;QAClD,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAC,KAAK,IAAK,OAAA,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,EAA3C,CAA2C,CAAC,CAAC;IACpH,CAAC;IACH,wBAAC;AAAD,CAAC,AAtCD,CAAgC,eAAe,GAsC9C;AAED,MAAM,UAAgB,UAAU,CAAC,QAA4B,EAAE,OAAe;;;;;;;oBACtE,UAAU,GAAG,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;;;;oBAI9C,qBAAM,UAAU,CAAC,UAAU,EAAE,EAAA;;oBAAvE,CAAC,KAAyC,SAA6B,EAApE,oBAAoB,0BAAA,EAAE,YAAY,kBAAA,CAAmC,CAAC;;;;oBAG/B,qBAAM,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAA;;oBAD1E,uDAAuD;oBACvD,CAAC,KAAyC,SAAgC,EAAvE,oBAAoB,0BAAA,EAAE,YAAY,kBAAA,CAAsC,CAAC;oBAItE,cAAc,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC3C,IAAI,oBAAoB,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE;wBACrC,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;wBAC/D,oBAAoB,GAAG,cAAc,CAAC;wBACtC,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;qBAChD;;wBAGH,sBAAO,EAAE,oBAAoB,sBAAA,EAAE,YAAY,cAAA,EAAE,EAAC;;;;CAC/C"}
|
|
@@ -34,36 +34,38 @@ var BaseHTTPAdapter = /** @class */ (function () {
|
|
|
34
34
|
configurable: true
|
|
35
35
|
});
|
|
36
36
|
BaseHTTPAdapter.prototype.query = function (path, urlArgs) {
|
|
37
|
+
var _a;
|
|
37
38
|
return __awaiter(this, void 0, void 0, function () {
|
|
38
39
|
var url, args, errs, tries, err_1, errMsg;
|
|
39
|
-
return __generator(this, function (
|
|
40
|
-
switch (
|
|
40
|
+
return __generator(this, function (_b) {
|
|
41
|
+
switch (_b.label) {
|
|
41
42
|
case 0:
|
|
42
43
|
url = "https://".concat(this.host, "/").concat(path !== null && path !== void 0 ? path : "");
|
|
43
44
|
args = {
|
|
45
|
+
headers: { "User-Agent": (_a = process.env.ACROSS_USER_AGENT) !== null && _a !== void 0 ? _a : "across-protocol" },
|
|
44
46
|
timeout: this.timeout,
|
|
45
47
|
params: urlArgs !== null && urlArgs !== void 0 ? urlArgs : {},
|
|
46
48
|
};
|
|
47
49
|
errs = [];
|
|
48
50
|
tries = 0;
|
|
49
|
-
|
|
51
|
+
_b.label = 1;
|
|
50
52
|
case 1:
|
|
51
|
-
|
|
53
|
+
_b.trys.push([1, 3, , 6]);
|
|
52
54
|
return [4 /*yield*/, axios(url, args)];
|
|
53
|
-
case 2: return [2 /*return*/, (
|
|
55
|
+
case 2: return [2 /*return*/, (_b.sent()).data];
|
|
54
56
|
case 3:
|
|
55
|
-
err_1 =
|
|
57
|
+
err_1 = _b.sent();
|
|
56
58
|
errMsg = axios.isAxiosError(err_1) || err_1 instanceof Error ? err_1.message : "unknown error";
|
|
57
59
|
errs.push(errMsg);
|
|
58
60
|
if (!(++tries <= this.retries)) return [3 /*break*/, 5];
|
|
59
61
|
return [4 /*yield*/, this.sleep(Math.pow(1.5, tries) * 1000)];
|
|
60
62
|
case 4:
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
_b.sent(); // simple backoff
|
|
64
|
+
_b.label = 5;
|
|
63
65
|
case 5: return [3 /*break*/, 6];
|
|
64
66
|
case 6:
|
|
65
67
|
if (tries <= this.retries) return [3 /*break*/, 1];
|
|
66
|
-
|
|
68
|
+
_b.label = 7;
|
|
67
69
|
case 7: throw new Error("".concat(this.name, " price lookup failure (").concat(errs.join(", "), ")"));
|
|
68
70
|
}
|
|
69
71
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseAdapter.js","sourceRoot":"","sources":["../../../../src/priceClient/adapters/baseAdapter.ts"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B;IAsBE,yBACkB,IAAY,EACZ,IAAY,EAC5B,EAAoD;YAAlD,eAAc,EAAd,OAAO,mBAAG,IAAI,KAAA,EAAE,eAAW,EAAX,OAAO,mBAAG,CAAC,KAAA;QAFb,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAQ;QAvBtB,aAAQ,GAAG,CAAC,CAAC;QACb,aAAQ,GAAG,CAAC,CAAC;QAyBnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,KAAK;IAC/B,CAAC;IAzBD,sBAAI,oCAAO;aAAX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;aAED,UAAY,OAAe;YACzB,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC1B,CAAC;;;OALA;IAOD,sBAAI,oCAAO;aAAX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;aAED,UAAY,OAAe;YACzB,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC1B,CAAC;;;OALA;IAgBe,+BAAK,GAArB,UAAsB,IAAY,EAAE,OAAgB
|
|
1
|
+
{"version":3,"file":"baseAdapter.js","sourceRoot":"","sources":["../../../../src/priceClient/adapters/baseAdapter.ts"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B;IAsBE,yBACkB,IAAY,EACZ,IAAY,EAC5B,EAAoD;YAAlD,eAAc,EAAd,OAAO,mBAAG,IAAI,KAAA,EAAE,eAAW,EAAX,OAAO,mBAAG,CAAC,KAAA;QAFb,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAQ;QAvBtB,aAAQ,GAAG,CAAC,CAAC;QACb,aAAQ,GAAG,CAAC,CAAC;QAyBnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,KAAK;IAC/B,CAAC;IAzBD,sBAAI,oCAAO;aAAX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;aAED,UAAY,OAAe;YACzB,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC1B,CAAC;;;OALA;IAOD,sBAAI,oCAAO;aAAX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;aAED,UAAY,OAAe;YACzB,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC1B,CAAC;;;OALA;IAgBe,+BAAK,GAArB,UAAsB,IAAY,EAAE,OAAgB;;;;;;;wBAC5C,GAAG,GAAG,kBAAW,IAAI,CAAC,IAAI,cAAI,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAE,CAAC;wBAC3C,IAAI,GAAG;4BACX,OAAO,EAAE,EAAE,YAAY,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,iBAAiB,mCAAI,iBAAiB,EAAE;4BAC7E,OAAO,EAAE,IAAI,CAAC,OAAO;4BACrB,MAAM,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE;yBACtB,CAAC;wBAEI,IAAI,GAAa,EAAE,CAAC;wBACtB,KAAK,GAAG,CAAC,CAAC;;;;wBAGF,qBAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAA;4BAA9B,sBAAO,CAAC,SAAsB,CAAC,CAAC,IAAI,EAAC;;;wBAE/B,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,KAAG,CAAC,IAAI,KAAG,YAAY,KAAK,CAAC,CAAC,CAAC,KAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;wBAC/F,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;6BACd,CAAA,EAAE,KAAK,IAAI,IAAI,CAAC,OAAO,CAAA,EAAvB,wBAAuB;wBAAE,qBAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,EAAA;;wBAA7C,SAA6C,CAAC,CAAC,iBAAiB;;;;4BAExF,KAAK,IAAI,IAAI,CAAC,OAAO;;4BAE9B,MAAM,IAAI,KAAK,CAAC,UAAG,IAAI,CAAC,IAAI,oCAA0B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAG,CAAC,CAAC;;;;KAC3E;IAES,+BAAK,GAAf,UAAgB,EAAU;QACxB,OAAO,IAAI,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,EAAjB,CAAiB,CAAC,CAAC;IAC/C,CAAC;IACH,sBAAC;AAAD,CAAC,AAzDD,IAyDC"}
|
|
@@ -50,7 +50,7 @@ export function jsonReplacerWithBigNumbers(_key, value) {
|
|
|
50
50
|
// We need to check if this is a big number, because the JSON parser
|
|
51
51
|
// is not aware of BigNumbers and will convert them to the string representation
|
|
52
52
|
// of the object itself which is not what we want.
|
|
53
|
-
if (BigNumber.isBigNumber(value)) {
|
|
53
|
+
if (BigNumber.isBigNumber(value) || typeof value === "bigint") {
|
|
54
54
|
return value.toString();
|
|
55
55
|
}
|
|
56
56
|
// There's a legacy issues that returns BigNumbers as { type: "BigNumber", hex: "0x..." }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSONUtils.js","sourceRoot":"","sources":["../../../src/utils/JSONUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CAAC,UAAkB;IAC3D,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,UAAC,IAAI,EAAE,KAAK;YACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;aAClC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;KACJ;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAAC,GAAY;IACzD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,UAAC,IAAI,EAAE,KAAK;QACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;YAC7E,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;SACzC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAAY,EAAE,KAAc;IACrE,mEAAmE;IACnE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;QACrB,OAAO,KAAK,CAAC;KACd;IAED,oEAAoE;IACpE,gFAAgF;IAChF,kDAAkD;IAClD,IAAI,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"JSONUtils.js","sourceRoot":"","sources":["../../../src/utils/JSONUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CAAC,UAAkB;IAC3D,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,UAAC,IAAI,EAAE,KAAK;YACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;aAClC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;KACJ;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAAC,GAAY;IACzD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,UAAC,IAAI,EAAE,KAAK;QACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;YAC7E,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;SACzC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAAY,EAAE,KAAc;IACrE,mEAAmE;IACnE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;QACrB,OAAO,KAAK,CAAC;KACd;IAED,oEAAoE;IACpE,gFAAgF;IAChF,kDAAkD;IAClD,IAAI,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7D,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;KACzB;IACD,yFAAyF;IACzF,wCAAwC;IACxC,IAAM,WAAW,GAAG,KAAsC,CAAC;IAC3D,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,IAAI,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;QAClE,OAAO,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;KACnD;IACD,yBAAyB;IACzB,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,KAAc;IACpE,6EAA6E;IAC7E,8BAA8B;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACtD,IAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,SAAS,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE;YAClC,OAAO,SAAS,CAAC;SAClB;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon.d.ts","sourceRoot":"","sources":["../../../../src/gasPriceOracle/adapters/polygon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAInC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"polygon.d.ts","sourceRoot":"","sources":["../../../../src/gasPriceOracle/adapters/polygon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAInC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAiE5C,wBAAsB,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAqBzG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseAdapter.d.ts","sourceRoot":"","sources":["../../../../src/priceClient/adapters/baseAdapter.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,eAAe;aAuBR,IAAI,EAAE,MAAM;aACZ,IAAI,EAAE,MAAM;IAvB9B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAK;IAErB,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,MAAM,EAG1B;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,MAAM,EAG1B;gBAGiB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAC5B,EAAE,OAAc,EAAE,OAAW,EAAE,EAAE,mBAAmB;cAMtC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"baseAdapter.d.ts","sourceRoot":"","sources":["../../../../src/priceClient/adapters/baseAdapter.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,eAAe;aAuBR,IAAI,EAAE,MAAM;aACZ,IAAI,EAAE,MAAM;IAvB9B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAK;IAErB,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,MAAM,EAG1B;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,MAAM,EAG1B;gBAGiB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAC5B,EAAE,OAAc,EAAE,OAAW,EAAE,EAAE,mBAAmB;cAMtC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuBvE,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { providers } from "ethers";
|
|
2
2
|
import { BaseHTTPAdapter, BaseHTTPAdapterArgs } from "../../priceClient/adapters/baseAdapter";
|
|
3
|
-
import { bnZero, isDefined, parseUnits } from "../../utils";
|
|
3
|
+
import { BigNumber, bnZero, isDefined, parseUnits } from "../../utils";
|
|
4
4
|
import { CHAIN_IDs } from "../../constants";
|
|
5
5
|
import { GasPriceEstimate } from "../types";
|
|
6
6
|
import { gasPriceError } from "../util";
|
|
@@ -27,8 +27,6 @@ type GasStationArgs = BaseHTTPAdapterArgs & {
|
|
|
27
27
|
|
|
28
28
|
const { POLYGON } = CHAIN_IDs;
|
|
29
29
|
|
|
30
|
-
// @dev toBNWei() is not imported from ../utils because of a circular dependency loop.
|
|
31
|
-
// The fix is probably to relocate the function estimateTotalGasRequiredByUnsignedTransaction().
|
|
32
30
|
class PolygonGasStation extends BaseHTTPAdapter {
|
|
33
31
|
readonly chainId: number;
|
|
34
32
|
|
|
@@ -42,7 +40,7 @@ class PolygonGasStation extends BaseHTTPAdapter {
|
|
|
42
40
|
async getFeeData(strategy: "safeLow" | "standard" | "fast" = "fast"): Promise<GasPriceEstimate> {
|
|
43
41
|
const gas = await this.query("v2", {});
|
|
44
42
|
|
|
45
|
-
const gasPrice
|
|
43
|
+
const gasPrice = (gas as GasStationV2Response)?.[strategy];
|
|
46
44
|
if (!this.isPolygon1559GasPrice(gasPrice)) {
|
|
47
45
|
// @todo: generalise gasPriceError() to accept a reason/cause?
|
|
48
46
|
gasPriceError("getFeeData()", this.chainId, bnZero);
|
|
@@ -69,12 +67,25 @@ class PolygonGasStation extends BaseHTTPAdapter {
|
|
|
69
67
|
}
|
|
70
68
|
}
|
|
71
69
|
|
|
72
|
-
export function gasStation(provider: providers.Provider, chainId: number): Promise<GasPriceEstimate> {
|
|
73
|
-
const gasStation = new PolygonGasStation({ chainId: chainId });
|
|
70
|
+
export async function gasStation(provider: providers.Provider, chainId: number): Promise<GasPriceEstimate> {
|
|
71
|
+
const gasStation = new PolygonGasStation({ chainId: chainId, timeout: 2000, retries: 0 });
|
|
72
|
+
let maxPriorityFeePerGas: BigNumber;
|
|
73
|
+
let maxFeePerGas: BigNumber;
|
|
74
74
|
try {
|
|
75
|
-
|
|
75
|
+
({ maxPriorityFeePerGas, maxFeePerGas } = await gasStation.getFeeData());
|
|
76
76
|
} catch (err) {
|
|
77
77
|
// Fall back to the RPC provider. May be less accurate.
|
|
78
|
-
|
|
78
|
+
({ maxPriorityFeePerGas, maxFeePerGas } = await eip1559(provider, chainId));
|
|
79
|
+
|
|
80
|
+
// Per the GasStation docs, the minimum priority fee on Polygon is 30 Gwei.
|
|
81
|
+
// https://docs.polygon.technology/tools/gas/polygon-gas-station/#interpretation
|
|
82
|
+
const minPriorityFee = parseUnits("30", 9);
|
|
83
|
+
if (maxPriorityFeePerGas.lt(minPriorityFee)) {
|
|
84
|
+
const priorityDelta = minPriorityFee.sub(maxPriorityFeePerGas);
|
|
85
|
+
maxPriorityFeePerGas = minPriorityFee;
|
|
86
|
+
maxFeePerGas = maxFeePerGas.add(priorityDelta);
|
|
87
|
+
}
|
|
79
88
|
}
|
|
89
|
+
|
|
90
|
+
return { maxPriorityFeePerGas, maxFeePerGas };
|
|
80
91
|
}
|
|
@@ -40,6 +40,7 @@ export class BaseHTTPAdapter {
|
|
|
40
40
|
protected async query(path: string, urlArgs?: object): Promise<unknown> {
|
|
41
41
|
const url = `https://${this.host}/${path ?? ""}`;
|
|
42
42
|
const args = {
|
|
43
|
+
headers: { "User-Agent": process.env.ACROSS_USER_AGENT ?? "across-protocol" },
|
|
43
44
|
timeout: this.timeout,
|
|
44
45
|
params: urlArgs ?? {},
|
|
45
46
|
};
|
package/src/utils/JSONUtils.ts
CHANGED
|
@@ -53,7 +53,7 @@ export function jsonReplacerWithBigNumbers(_key: string, value: unknown): unknow
|
|
|
53
53
|
// We need to check if this is a big number, because the JSON parser
|
|
54
54
|
// is not aware of BigNumbers and will convert them to the string representation
|
|
55
55
|
// of the object itself which is not what we want.
|
|
56
|
-
if (BigNumber.isBigNumber(value)) {
|
|
56
|
+
if (BigNumber.isBigNumber(value) || typeof value === "bigint") {
|
|
57
57
|
return value.toString();
|
|
58
58
|
}
|
|
59
59
|
// There's a legacy issues that returns BigNumbers as { type: "BigNumber", hex: "0x..." }
|