@across-protocol/sdk 3.3.31 → 3.4.0
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/clients/BundleDataClient/BundleDataClient.js +8 -2
- package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.d.ts +10 -10
- package/dist/cjs/gasPriceOracle/adapters/arbitrum.d.ts +2 -1
- package/dist/cjs/gasPriceOracle/adapters/arbitrum.js +2 -2
- package/dist/cjs/gasPriceOracle/adapters/arbitrum.js.map +1 -1
- package/dist/cjs/gasPriceOracle/adapters/ethereum.d.ts +6 -4
- package/dist/cjs/gasPriceOracle/adapters/ethereum.js +21 -13
- package/dist/cjs/gasPriceOracle/adapters/ethereum.js.map +1 -1
- package/dist/cjs/gasPriceOracle/adapters/linea-viem.d.ts +2 -1
- package/dist/cjs/gasPriceOracle/adapters/linea-viem.js +16 -10
- package/dist/cjs/gasPriceOracle/adapters/linea-viem.js.map +1 -1
- package/dist/cjs/gasPriceOracle/adapters/linea.d.ts +2 -1
- package/dist/cjs/gasPriceOracle/adapters/linea.js +2 -2
- package/dist/cjs/gasPriceOracle/adapters/linea.js.map +1 -1
- package/dist/cjs/gasPriceOracle/adapters/polygon.d.ts +21 -1
- package/dist/cjs/gasPriceOracle/adapters/polygon.js +45 -5
- package/dist/cjs/gasPriceOracle/adapters/polygon.js.map +1 -1
- package/dist/cjs/gasPriceOracle/oracle.d.ts +11 -3
- package/dist/cjs/gasPriceOracle/oracle.js +29 -27
- package/dist/cjs/gasPriceOracle/oracle.js.map +1 -1
- package/dist/cjs/providers/types.d.ts +3 -3
- package/dist/cjs/relayFeeCalculator/chain-queries/alephZero.d.ts +0 -229
- package/dist/cjs/relayFeeCalculator/chain-queries/alephZero.js +2 -12
- package/dist/cjs/relayFeeCalculator/chain-queries/alephZero.js.map +1 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.d.ts +10 -5
- package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +55 -11
- package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/factory.d.ts +1 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/factory.js +4 -5
- package/dist/cjs/relayFeeCalculator/chain-queries/factory.js.map +1 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/polygon.d.ts +0 -229
- package/dist/cjs/relayFeeCalculator/chain-queries/polygon.js +2 -12
- package/dist/cjs/relayFeeCalculator/chain-queries/polygon.js.map +1 -1
- package/dist/cjs/relayFeeCalculator/relayFeeCalculator.d.ts +1 -1
- package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
- package/dist/cjs/utils/DepositUtils.d.ts +1 -0
- package/dist/cjs/utils/DepositUtils.js +5 -1
- package/dist/cjs/utils/DepositUtils.js.map +1 -1
- package/dist/cjs/utils/Multicall.js +0 -5
- package/dist/cjs/utils/Multicall.js.map +1 -1
- package/dist/cjs/utils/common.d.ts +1 -8
- package/dist/cjs/utils/common.js +1 -83
- package/dist/cjs/utils/common.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/BundleDataClient.js +16 -3
- package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.d.ts +10 -10
- package/dist/esm/gasPriceOracle/adapters/arbitrum.d.ts +10 -1
- package/dist/esm/gasPriceOracle/adapters/arbitrum.js +10 -4
- package/dist/esm/gasPriceOracle/adapters/arbitrum.js.map +1 -1
- package/dist/esm/gasPriceOracle/adapters/ethereum.d.ts +19 -6
- package/dist/esm/gasPriceOracle/adapters/ethereum.js +38 -16
- package/dist/esm/gasPriceOracle/adapters/ethereum.js.map +1 -1
- package/dist/esm/gasPriceOracle/adapters/linea-viem.d.ts +19 -1
- package/dist/esm/gasPriceOracle/adapters/linea-viem.js +33 -10
- package/dist/esm/gasPriceOracle/adapters/linea-viem.js.map +1 -1
- package/dist/esm/gasPriceOracle/adapters/linea.d.ts +2 -1
- package/dist/esm/gasPriceOracle/adapters/linea.js +6 -2
- package/dist/esm/gasPriceOracle/adapters/linea.js.map +1 -1
- package/dist/esm/gasPriceOracle/adapters/polygon.d.ts +27 -1
- package/dist/esm/gasPriceOracle/adapters/polygon.js +49 -5
- package/dist/esm/gasPriceOracle/adapters/polygon.js.map +1 -1
- package/dist/esm/gasPriceOracle/oracle.d.ts +16 -8
- package/dist/esm/gasPriceOracle/oracle.js +35 -33
- package/dist/esm/gasPriceOracle/oracle.js.map +1 -1
- package/dist/esm/providers/types.d.ts +3 -3
- package/dist/esm/relayFeeCalculator/chain-queries/alephZero.d.ts +0 -229
- package/dist/esm/relayFeeCalculator/chain-queries/alephZero.js +3 -13
- package/dist/esm/relayFeeCalculator/chain-queries/alephZero.js.map +1 -1
- package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.d.ts +21 -7
- package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +68 -15
- package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
- package/dist/esm/relayFeeCalculator/chain-queries/factory.d.ts +1 -1
- package/dist/esm/relayFeeCalculator/chain-queries/factory.js +4 -5
- package/dist/esm/relayFeeCalculator/chain-queries/factory.js.map +1 -1
- package/dist/esm/relayFeeCalculator/chain-queries/polygon.d.ts +0 -229
- package/dist/esm/relayFeeCalculator/chain-queries/polygon.js +3 -13
- package/dist/esm/relayFeeCalculator/chain-queries/polygon.js.map +1 -1
- package/dist/esm/relayFeeCalculator/relayFeeCalculator.d.ts +1 -1
- package/dist/esm/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
- package/dist/esm/utils/DepositUtils.d.ts +9 -0
- package/dist/esm/utils/DepositUtils.js +11 -0
- package/dist/esm/utils/DepositUtils.js.map +1 -1
- package/dist/esm/utils/Multicall.js +1 -6
- package/dist/esm/utils/Multicall.js.map +1 -1
- package/dist/esm/utils/common.d.ts +1 -19
- package/dist/esm/utils/common.js +3 -95
- package/dist/esm/utils/common.js.map +1 -1
- package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts.map +1 -1
- package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts +10 -10
- package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts +10 -1
- package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts.map +1 -1
- package/dist/types/gasPriceOracle/adapters/ethereum.d.ts +19 -6
- package/dist/types/gasPriceOracle/adapters/ethereum.d.ts.map +1 -1
- package/dist/types/gasPriceOracle/adapters/linea-viem.d.ts +19 -1
- package/dist/types/gasPriceOracle/adapters/linea-viem.d.ts.map +1 -1
- package/dist/types/gasPriceOracle/adapters/linea.d.ts +2 -1
- package/dist/types/gasPriceOracle/adapters/linea.d.ts.map +1 -1
- package/dist/types/gasPriceOracle/adapters/polygon.d.ts +27 -1
- package/dist/types/gasPriceOracle/adapters/polygon.d.ts.map +1 -1
- package/dist/types/gasPriceOracle/oracle.d.ts +16 -8
- package/dist/types/gasPriceOracle/oracle.d.ts.map +1 -1
- package/dist/types/providers/types.d.ts +3 -3
- package/dist/types/relayFeeCalculator/chain-queries/alephZero.d.ts +0 -229
- package/dist/types/relayFeeCalculator/chain-queries/alephZero.d.ts.map +1 -1
- package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts +21 -7
- package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts.map +1 -1
- package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts +1 -1
- package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts.map +1 -1
- package/dist/types/relayFeeCalculator/chain-queries/polygon.d.ts +0 -229
- package/dist/types/relayFeeCalculator/chain-queries/polygon.d.ts.map +1 -1
- package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts +1 -1
- package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts.map +1 -1
- package/dist/types/utils/DepositUtils.d.ts +9 -0
- package/dist/types/utils/DepositUtils.d.ts.map +1 -1
- package/dist/types/utils/Multicall.d.ts.map +1 -1
- package/dist/types/utils/common.d.ts +1 -19
- package/dist/types/utils/common.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/clients/BundleDataClient/BundleDataClient.ts +17 -2
- package/src/gasPriceOracle/adapters/arbitrum.ts +13 -6
- package/src/gasPriceOracle/adapters/ethereum.ts +43 -12
- package/src/gasPriceOracle/adapters/linea-viem.ts +32 -6
- package/src/gasPriceOracle/adapters/linea.ts +7 -2
- package/src/gasPriceOracle/adapters/polygon.ts +46 -5
- package/src/gasPriceOracle/oracle.ts +53 -28
- package/src/relayFeeCalculator/chain-queries/alephZero.ts +1 -29
- package/src/relayFeeCalculator/chain-queries/baseQuery.ts +73 -20
- package/src/relayFeeCalculator/chain-queries/factory.ts +6 -6
- package/src/relayFeeCalculator/chain-queries/polygon.ts +1 -29
- package/src/relayFeeCalculator/relayFeeCalculator.ts +6 -1
- package/src/utils/DepositUtils.ts +12 -0
- package/src/utils/Multicall.ts +1 -6
- package/src/utils/common.ts +2 -92
- package/dist/cjs/gasPriceOracle/adapters/arbitrum-viem.d.ts +0 -3
- package/dist/cjs/gasPriceOracle/adapters/arbitrum-viem.js +0 -21
- package/dist/cjs/gasPriceOracle/adapters/arbitrum-viem.js.map +0 -1
- package/dist/cjs/gasPriceOracle/adapters/ethereum-viem.d.ts +0 -4
- package/dist/cjs/gasPriceOracle/adapters/ethereum-viem.js +0 -26
- package/dist/cjs/gasPriceOracle/adapters/ethereum-viem.js.map +0 -1
- package/dist/cjs/gasPriceOracle/adapters/polygon-viem.d.ts +0 -3
- package/dist/cjs/gasPriceOracle/adapters/polygon-viem.js +0 -84
- package/dist/cjs/gasPriceOracle/adapters/polygon-viem.js.map +0 -1
- package/dist/cjs/package.json +0 -1
- package/dist/esm/gasPriceOracle/adapters/arbitrum-viem.d.ts +0 -3
- package/dist/esm/gasPriceOracle/adapters/arbitrum-viem.js +0 -20
- package/dist/esm/gasPriceOracle/adapters/arbitrum-viem.js.map +0 -1
- package/dist/esm/gasPriceOracle/adapters/ethereum-viem.d.ts +0 -4
- package/dist/esm/gasPriceOracle/adapters/ethereum-viem.js +0 -21
- package/dist/esm/gasPriceOracle/adapters/ethereum-viem.js.map +0 -1
- package/dist/esm/gasPriceOracle/adapters/polygon-viem.d.ts +0 -3
- package/dist/esm/gasPriceOracle/adapters/polygon-viem.js +0 -82
- package/dist/esm/gasPriceOracle/adapters/polygon-viem.js.map +0 -1
- package/dist/esm/package.json +0 -1
- package/dist/types/gasPriceOracle/adapters/arbitrum-viem.d.ts +0 -4
- package/dist/types/gasPriceOracle/adapters/arbitrum-viem.d.ts.map +0 -1
- package/dist/types/gasPriceOracle/adapters/ethereum-viem.d.ts +0 -5
- package/dist/types/gasPriceOracle/adapters/ethereum-viem.d.ts.map +0 -1
- package/dist/types/gasPriceOracle/adapters/polygon-viem.d.ts +0 -4
- package/dist/types/gasPriceOracle/adapters/polygon-viem.d.ts.map +0 -1
- package/src/gasPriceOracle/adapters/arbitrum-viem.ts +0 -13
- package/src/gasPriceOracle/adapters/ethereum-viem.ts +0 -19
- package/src/gasPriceOracle/adapters/polygon-viem.ts +0 -86
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { __awaiter, __extends, __generator } from "tslib";
|
|
2
|
-
import { BaseHTTPAdapter } from "../../priceClient/adapters/baseAdapter";
|
|
3
|
-
import { isDefined } from "../../utils";
|
|
4
|
-
import { CHAIN_IDs } from "../../constants";
|
|
5
|
-
import { gasPriceError } from "../util";
|
|
6
|
-
import { eip1559 } from "./ethereum-viem";
|
|
7
|
-
var POLYGON = CHAIN_IDs.POLYGON;
|
|
8
|
-
var GWEI = BigInt(1000000000);
|
|
9
|
-
var PolygonGasStation = /** @class */ (function (_super) {
|
|
10
|
-
__extends(PolygonGasStation, _super);
|
|
11
|
-
function PolygonGasStation(_a) {
|
|
12
|
-
var _this = this;
|
|
13
|
-
var _b = _a === void 0 ? {} : _a, _c = _b.chainId, chainId = _c === void 0 ? POLYGON : _c, host = _b.host, _d = _b.timeout, timeout = _d === void 0 ? 1500 : _d, _e = _b.retries, retries = _e === void 0 ? 1 : _e;
|
|
14
|
-
host = (host !== null && host !== void 0 ? host : chainId === POLYGON) ? "gasstation.polygon.technology" : "gasstation-testnet.polygon.technology";
|
|
15
|
-
_this = _super.call(this, "Polygon Gas Station", host, { timeout: timeout, retries: retries }) || this;
|
|
16
|
-
_this.chainId = chainId;
|
|
17
|
-
return _this;
|
|
18
|
-
}
|
|
19
|
-
PolygonGasStation.prototype.getFeeData = function (strategy) {
|
|
20
|
-
if (strategy === void 0) { strategy = "fast"; }
|
|
21
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
22
|
-
var gas, gasPrice, maxPriorityFeePerGas, maxFeePerGas;
|
|
23
|
-
return __generator(this, function (_a) {
|
|
24
|
-
switch (_a.label) {
|
|
25
|
-
case 0: return [4 /*yield*/, this.query("v2", {})];
|
|
26
|
-
case 1:
|
|
27
|
-
gas = _a.sent();
|
|
28
|
-
gasPrice = gas === null || gas === void 0 ? void 0 : gas[strategy];
|
|
29
|
-
if (!this.isPolygon1559GasPrice(gasPrice)) {
|
|
30
|
-
// @todo: generalise gasPriceError() to accept a reason/cause?
|
|
31
|
-
gasPriceError("getFeeData()", this.chainId, gasPrice);
|
|
32
|
-
}
|
|
33
|
-
maxPriorityFeePerGas = BigInt(gasPrice.maxPriorityFee) * GWEI;
|
|
34
|
-
maxFeePerGas = BigInt(gasPrice.maxFee) * GWEI;
|
|
35
|
-
return [2 /*return*/, { maxPriorityFeePerGas: maxPriorityFeePerGas, maxFeePerGas: maxFeePerGas }];
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
};
|
|
40
|
-
PolygonGasStation.prototype.isPolygon1559GasPrice = function (gasPrice) {
|
|
41
|
-
if (!isDefined(gasPrice)) {
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
var _gasPrice = gasPrice;
|
|
45
|
-
return [_gasPrice.maxPriorityFee, _gasPrice.maxFee].every(function (field) { return ["number", "string"].includes(typeof field); });
|
|
46
|
-
};
|
|
47
|
-
return PolygonGasStation;
|
|
48
|
-
}(BaseHTTPAdapter));
|
|
49
|
-
export function gasStation(provider, chainId) {
|
|
50
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
51
|
-
var gasStation, maxPriorityFeePerGas, maxFeePerGas, err_1, minPriorityFee, priorityDelta;
|
|
52
|
-
var _a, _b;
|
|
53
|
-
return __generator(this, function (_c) {
|
|
54
|
-
switch (_c.label) {
|
|
55
|
-
case 0:
|
|
56
|
-
gasStation = new PolygonGasStation({ chainId: chainId, timeout: 2000, retries: 0 });
|
|
57
|
-
_c.label = 1;
|
|
58
|
-
case 1:
|
|
59
|
-
_c.trys.push([1, 3, , 5]);
|
|
60
|
-
return [4 /*yield*/, gasStation.getFeeData()];
|
|
61
|
-
case 2:
|
|
62
|
-
(_a = _c.sent(), maxPriorityFeePerGas = _a.maxPriorityFeePerGas, maxFeePerGas = _a.maxFeePerGas);
|
|
63
|
-
return [3 /*break*/, 5];
|
|
64
|
-
case 3:
|
|
65
|
-
err_1 = _c.sent();
|
|
66
|
-
return [4 /*yield*/, eip1559(provider, chainId)];
|
|
67
|
-
case 4:
|
|
68
|
-
// Fall back to the RPC provider. May be less accurate.
|
|
69
|
-
(_b = _c.sent(), maxPriorityFeePerGas = _b.maxPriorityFeePerGas, maxFeePerGas = _b.maxFeePerGas);
|
|
70
|
-
minPriorityFee = BigInt(30) * GWEI;
|
|
71
|
-
if (minPriorityFee > maxPriorityFeePerGas) {
|
|
72
|
-
priorityDelta = minPriorityFee - maxPriorityFeePerGas;
|
|
73
|
-
maxPriorityFeePerGas = minPriorityFee;
|
|
74
|
-
maxFeePerGas = maxFeePerGas + priorityDelta;
|
|
75
|
-
}
|
|
76
|
-
return [3 /*break*/, 5];
|
|
77
|
-
case 5: return [2 /*return*/, { maxPriorityFeePerGas: maxPriorityFeePerGas, maxFeePerGas: maxFeePerGas }];
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
//# sourceMappingURL=polygon-viem.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"polygon-viem.js","sourceRoot":"","sources":["../../../../src/gasPriceOracle/adapters/polygon-viem.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAuB,MAAM,wCAAwC,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAqBlC,IAAA,OAAO,GAAK,SAAS,QAAd,CAAe;AAE9B,IAAM,IAAI,GAAG,MAAM,CAAC,UAAa,CAAC,CAAC;AACnC;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,QAAQ,CAAC,CAAC;yBACvD;wBAEK,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;wBAC9D,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;wBAEpD,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,AAhCD,CAAgC,eAAe,GAgC9C;AAED,MAAM,UAAgB,UAAU,CAAC,QAAsB,EAAE,OAAe;;;;;;;oBAChE,UAAU,GAAG,IAAI,iBAAiB,CAAC,EAAE,OAAO,SAAA,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;;;;oBAIrC,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,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;oBACzC,IAAI,cAAc,GAAG,oBAAoB,EAAE;wBACnC,aAAa,GAAG,cAAc,GAAG,oBAAoB,CAAC;wBAC5D,oBAAoB,GAAG,cAAc,CAAC;wBACtC,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC;qBAC7C;;wBAGH,sBAAO,EAAE,oBAAoB,sBAAA,EAAE,YAAY,cAAA,EAAE,EAAC;;;;CAC/C"}
|
package/dist/esm/package.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"type":"module","sideEffects":false}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"arbitrum-viem.d.ts","sourceRoot":"","sources":["../../../../src/gasPriceOracle/adapters/arbitrum-viem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAOpD,wBAAsB,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAIzG"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { PublicClient } from "viem";
|
|
2
|
-
import { InternalGasPriceEstimate } from "../types";
|
|
3
|
-
export declare function eip1559(provider: PublicClient, _chainId: number): Promise<InternalGasPriceEstimate>;
|
|
4
|
-
export declare function legacy(provider: PublicClient, _chainId: number, _test?: number): Promise<InternalGasPriceEstimate>;
|
|
5
|
-
//# sourceMappingURL=ethereum-viem.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ethereum-viem.d.ts","sourceRoot":"","sources":["../../../../src/gasPriceOracle/adapters/ethereum-viem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAEpD,wBAAgB,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAEnG;AAED,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,wBAAwB,CAAC,CAOnC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"polygon-viem.d.ts","sourceRoot":"","sources":["../../../../src/gasPriceOracle/adapters/polygon-viem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAIpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AA4DpD,wBAAsB,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAqB3G"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { PublicClient } from "viem";
|
|
2
|
-
import { InternalGasPriceEstimate } from "../types";
|
|
3
|
-
|
|
4
|
-
const MAX_PRIORITY_FEE_PER_GAS = BigInt(1);
|
|
5
|
-
|
|
6
|
-
// Arbitrum Nitro implements EIP-1559 pricing, but the priority fee is always refunded to the caller.
|
|
7
|
-
// Swap it for 1 Wei to avoid inaccurate transaction cost estimates.
|
|
8
|
-
// Reference: https://developer.arbitrum.io/faqs/gas-faqs#q-priority
|
|
9
|
-
export async function eip1559(provider: PublicClient, _chainId: number): Promise<InternalGasPriceEstimate> {
|
|
10
|
-
const { maxFeePerGas: _maxFeePerGas, maxPriorityFeePerGas } = await provider.estimateFeesPerGas();
|
|
11
|
-
const maxFeePerGas = BigInt(_maxFeePerGas) - maxPriorityFeePerGas + MAX_PRIORITY_FEE_PER_GAS;
|
|
12
|
-
return { maxFeePerGas, maxPriorityFeePerGas: MAX_PRIORITY_FEE_PER_GAS };
|
|
13
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { PublicClient } from "viem";
|
|
2
|
-
import { InternalGasPriceEstimate } from "../types";
|
|
3
|
-
|
|
4
|
-
export function eip1559(provider: PublicClient, _chainId: number): Promise<InternalGasPriceEstimate> {
|
|
5
|
-
return provider.estimateFeesPerGas();
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export async function legacy(
|
|
9
|
-
provider: PublicClient,
|
|
10
|
-
_chainId: number,
|
|
11
|
-
_test?: number
|
|
12
|
-
): Promise<InternalGasPriceEstimate> {
|
|
13
|
-
const gasPrice = await provider.getGasPrice();
|
|
14
|
-
|
|
15
|
-
return {
|
|
16
|
-
maxFeePerGas: gasPrice,
|
|
17
|
-
maxPriorityFeePerGas: BigInt(0),
|
|
18
|
-
};
|
|
19
|
-
}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { PublicClient } from "viem";
|
|
2
|
-
import { BaseHTTPAdapter, BaseHTTPAdapterArgs } from "../../priceClient/adapters/baseAdapter";
|
|
3
|
-
import { isDefined } from "../../utils";
|
|
4
|
-
import { CHAIN_IDs } from "../../constants";
|
|
5
|
-
import { InternalGasPriceEstimate } from "../types";
|
|
6
|
-
import { gasPriceError } from "../util";
|
|
7
|
-
import { eip1559 } from "./ethereum-viem";
|
|
8
|
-
|
|
9
|
-
type Polygon1559GasPrice = {
|
|
10
|
-
maxPriorityFee: number | string;
|
|
11
|
-
maxFee: number | string;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
type GasStationV2Response = {
|
|
15
|
-
safeLow: Polygon1559GasPrice;
|
|
16
|
-
standard: Polygon1559GasPrice;
|
|
17
|
-
fast: Polygon1559GasPrice;
|
|
18
|
-
estimatedBaseFee: number | string;
|
|
19
|
-
blockTime: number | string;
|
|
20
|
-
blockNumber: number | string;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
type GasStationArgs = BaseHTTPAdapterArgs & {
|
|
24
|
-
chainId?: number;
|
|
25
|
-
host?: string;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
const { POLYGON } = CHAIN_IDs;
|
|
29
|
-
|
|
30
|
-
const GWEI = BigInt(1_000_000_000);
|
|
31
|
-
class PolygonGasStation extends BaseHTTPAdapter {
|
|
32
|
-
readonly chainId: number;
|
|
33
|
-
|
|
34
|
-
constructor({ chainId = POLYGON, host, timeout = 1500, retries = 1 }: GasStationArgs = {}) {
|
|
35
|
-
host = host ?? chainId === POLYGON ? "gasstation.polygon.technology" : "gasstation-testnet.polygon.technology";
|
|
36
|
-
|
|
37
|
-
super("Polygon Gas Station", host, { timeout, retries });
|
|
38
|
-
this.chainId = chainId;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
async getFeeData(strategy: "safeLow" | "standard" | "fast" = "fast"): Promise<InternalGasPriceEstimate> {
|
|
42
|
-
const gas = await this.query("v2", {});
|
|
43
|
-
|
|
44
|
-
const gasPrice = (gas as GasStationV2Response)?.[strategy];
|
|
45
|
-
if (!this.isPolygon1559GasPrice(gasPrice)) {
|
|
46
|
-
// @todo: generalise gasPriceError() to accept a reason/cause?
|
|
47
|
-
gasPriceError("getFeeData()", this.chainId, gasPrice);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
const maxPriorityFeePerGas = BigInt(gasPrice.maxPriorityFee) * GWEI;
|
|
51
|
-
const maxFeePerGas = BigInt(gasPrice.maxFee) * GWEI;
|
|
52
|
-
|
|
53
|
-
return { maxPriorityFeePerGas, maxFeePerGas };
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
protected isPolygon1559GasPrice(gasPrice: unknown): gasPrice is Polygon1559GasPrice {
|
|
57
|
-
if (!isDefined(gasPrice)) {
|
|
58
|
-
return false;
|
|
59
|
-
}
|
|
60
|
-
const _gasPrice = gasPrice as Polygon1559GasPrice;
|
|
61
|
-
return [_gasPrice.maxPriorityFee, _gasPrice.maxFee].every((field) => ["number", "string"].includes(typeof field));
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export async function gasStation(provider: PublicClient, chainId: number): Promise<InternalGasPriceEstimate> {
|
|
66
|
-
const gasStation = new PolygonGasStation({ chainId, timeout: 2000, retries: 0 });
|
|
67
|
-
let maxPriorityFeePerGas: bigint;
|
|
68
|
-
let maxFeePerGas: bigint;
|
|
69
|
-
try {
|
|
70
|
-
({ maxPriorityFeePerGas, maxFeePerGas } = await gasStation.getFeeData());
|
|
71
|
-
} catch (err) {
|
|
72
|
-
// Fall back to the RPC provider. May be less accurate.
|
|
73
|
-
({ maxPriorityFeePerGas, maxFeePerGas } = await eip1559(provider, chainId));
|
|
74
|
-
|
|
75
|
-
// Per the GasStation docs, the minimum priority fee on Polygon is 30 Gwei.
|
|
76
|
-
// https://docs.polygon.technology/tools/gas/polygon-gas-station/#interpretation
|
|
77
|
-
const minPriorityFee = BigInt(30) * GWEI;
|
|
78
|
-
if (minPriorityFee > maxPriorityFeePerGas) {
|
|
79
|
-
const priorityDelta = minPriorityFee - maxPriorityFeePerGas;
|
|
80
|
-
maxPriorityFeePerGas = minPriorityFee;
|
|
81
|
-
maxFeePerGas = maxFeePerGas + priorityDelta;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
return { maxPriorityFeePerGas, maxFeePerGas };
|
|
86
|
-
}
|