@across-protocol/sdk 4.2.2 → 4.2.3
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/arch/svm/BlockUtils.d.ts +2 -2
- package/dist/cjs/arch/svm/BlockUtils.js +3 -4
- package/dist/cjs/arch/svm/BlockUtils.js.map +1 -1
- package/dist/cjs/clients/index.d.ts +1 -1
- package/dist/cjs/clients/index.js +3 -1
- package/dist/cjs/clients/index.js.map +1 -1
- package/dist/cjs/gasPriceOracle/adapters/solana.d.ts +2 -2
- package/dist/cjs/gasPriceOracle/oracle.d.ts +3 -2
- package/dist/cjs/gasPriceOracle/oracle.js +1 -3
- package/dist/cjs/gasPriceOracle/oracle.js.map +1 -1
- package/dist/cjs/gasPriceOracle/types.d.ts +2 -0
- package/dist/cjs/gasPriceOracle/types.js +12 -0
- package/dist/cjs/gasPriceOracle/types.js.map +1 -1
- package/dist/cjs/utils/TypeGuards.d.ts +3 -0
- package/dist/cjs/utils/TypeGuards.js +6 -1
- package/dist/cjs/utils/TypeGuards.js.map +1 -1
- package/dist/esm/arch/svm/BlockUtils.d.ts +2 -2
- package/dist/esm/arch/svm/BlockUtils.js +4 -5
- package/dist/esm/arch/svm/BlockUtils.js.map +1 -1
- package/dist/esm/clients/index.d.ts +1 -1
- package/dist/esm/clients/index.js +1 -1
- package/dist/esm/clients/index.js.map +1 -1
- package/dist/esm/gasPriceOracle/adapters/solana.d.ts +2 -2
- package/dist/esm/gasPriceOracle/oracle.d.ts +3 -8
- package/dist/esm/gasPriceOracle/oracle.js +3 -6
- package/dist/esm/gasPriceOracle/oracle.js.map +1 -1
- package/dist/esm/gasPriceOracle/types.d.ts +2 -0
- package/dist/esm/gasPriceOracle/types.js +9 -1
- package/dist/esm/gasPriceOracle/types.js.map +1 -1
- package/dist/esm/utils/TypeGuards.d.ts +3 -0
- package/dist/esm/utils/TypeGuards.js +4 -0
- package/dist/esm/utils/TypeGuards.js.map +1 -1
- package/dist/types/arch/svm/BlockUtils.d.ts +2 -2
- package/dist/types/arch/svm/BlockUtils.d.ts.map +1 -1
- package/dist/types/clients/index.d.ts +1 -1
- package/dist/types/clients/index.d.ts.map +1 -1
- package/dist/types/gasPriceOracle/adapters/solana.d.ts +2 -2
- package/dist/types/gasPriceOracle/adapters/solana.d.ts.map +1 -1
- package/dist/types/gasPriceOracle/oracle.d.ts +3 -8
- package/dist/types/gasPriceOracle/oracle.d.ts.map +1 -1
- package/dist/types/gasPriceOracle/types.d.ts +2 -0
- package/dist/types/gasPriceOracle/types.d.ts.map +1 -1
- package/dist/types/utils/TypeGuards.d.ts +3 -0
- package/dist/types/utils/TypeGuards.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/arch/svm/BlockUtils.ts +8 -13
- package/src/clients/index.ts +8 -1
- package/src/gasPriceOracle/adapters/solana.ts +2 -2
- package/src/gasPriceOracle/oracle.ts +16 -5
- package/src/gasPriceOracle/types.ts +11 -1
- package/src/utils/TypeGuards.ts +7 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { BlockFinder, type Block, type
|
|
1
|
+
import { BlockFinder, type Block, type BlockTimeAverage, type BlockFinderHints } from "../../utils/BlockFinder";
|
|
2
2
|
import { SVMProvider } from "./";
|
|
3
3
|
interface SVMBlock extends Block {
|
|
4
4
|
}
|
|
5
|
-
export declare function averageBlockTime(
|
|
5
|
+
export declare function averageBlockTime(): Pick<BlockTimeAverage, "average" | "blockRange">;
|
|
6
6
|
export declare class SVMBlockFinder extends BlockFinder<SVMBlock> {
|
|
7
7
|
private readonly provider;
|
|
8
8
|
private readonly blocks;
|
|
@@ -13,12 +13,11 @@ var now = (0, TimeUtils_1.getCurrentTime)();
|
|
|
13
13
|
var averageBlockTimes = (_a = {},
|
|
14
14
|
_a[constants_1.CHAIN_IDs.SOLANA] = { average: 0.4, timestamp: now, blockRange: 1 },
|
|
15
15
|
_a);
|
|
16
|
-
function averageBlockTime(
|
|
17
|
-
if (_opts === void 0) { _opts = {}; }
|
|
16
|
+
function averageBlockTime() {
|
|
18
17
|
return averageBlockTimes[constants_1.CHAIN_IDs.SOLANA];
|
|
19
18
|
}
|
|
20
19
|
exports.averageBlockTime = averageBlockTime;
|
|
21
|
-
function estimateBlocksElapsed(seconds, cushionPercentage,
|
|
20
|
+
function estimateBlocksElapsed(seconds, cushionPercentage, _provider) {
|
|
22
21
|
if (cushionPercentage === void 0) { cushionPercentage = 0.0; }
|
|
23
22
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
24
23
|
var cushionMultiplier, average;
|
|
@@ -26,7 +25,7 @@ function estimateBlocksElapsed(seconds, cushionPercentage, provider) {
|
|
|
26
25
|
switch (_a.label) {
|
|
27
26
|
case 0:
|
|
28
27
|
cushionMultiplier = cushionPercentage + 1.0;
|
|
29
|
-
return [4, averageBlockTime(
|
|
28
|
+
return [4, averageBlockTime()];
|
|
30
29
|
case 1:
|
|
31
30
|
average = (_a.sent()).average;
|
|
32
31
|
return [2, Math.floor((seconds * cushionMultiplier) / average)];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockUtils.js","sourceRoot":"","sources":["../../../../src/arch/svm/BlockUtils.ts"],"names":[],"mappings":";;;;;AAAA,0DAA4B;AAC5B,iCAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"BlockUtils.js","sourceRoot":"","sources":["../../../../src/arch/svm/BlockUtils.ts"],"names":[],"mappings":";;;;;AAAA,0DAA4B;AAC5B,iCAA8C;AAC9C,uDAAgH;AAChH,qDAAmD;AACnD,mDAAuD;AACvD,6CAA4C;AAK5C,IAAM,GAAG,GAAG,IAAA,0BAAc,GAAE,CAAC;AAC7B,IAAM,iBAAiB;IACrB,GAAC,qBAAS,CAAC,MAAM,IAAG,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE;OACpE,CAAC;AAOF,SAAgB,gBAAgB;IAE9B,OAAO,iBAAiB,CAAC,qBAAS,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC;AAHD,4CAGC;AAED,SAAe,qBAAqB,CAClC,OAAe,EACf,iBAAuB,EACvB,SAAsB;IADtB,kCAAA,EAAA,uBAAuB;;;;;;oBAGjB,iBAAiB,GAAG,iBAAiB,GAAG,GAAG,CAAC;oBAC9B,WAAM,gBAAgB,EAAE,EAAA;;oBAApC,OAAO,GAAK,CAAA,SAAwB,CAAA,QAA7B;oBACf,WAAO,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,iBAAiB,CAAC,GAAG,OAAO,CAAC,EAAC;;;;CAC5D;AAED;IAAoC,0CAAqB;IACvD,wBACmB,QAAqB,EACrB,MAAuB;QAAvB,uBAAA,EAAA,WAAuB;QAF1C,YAIE,iBAAO,SACR;QAJkB,cAAQ,GAAR,QAAQ,CAAa;QACrB,YAAM,GAAN,MAAM,CAAiB;;IAG1C,CAAC;IAOY,6CAAoB,GAAjC,UAAkC,SAA0B,EAAE,KAA4B;QAA5B,sBAAA,EAAA,UAA4B;;;;;;;wBACxF,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;wBAC9B,IAAA,gBAAM,EAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE,4BAA4B,CAAC,CAAC;6BAEhF,CAAA,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAA,EAArF,cAAqF;wBACzE,WAAM,IAAI,CAAC,cAAc,EAAE,EAAA;;wBAAnC,KAAK,GAAG,SAA2B;wBACzC,IAAI,SAAS,IAAI,KAAK,CAAC,SAAS;4BAAE,WAAO,KAAK,EAAC;;4BAKjD,WAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;6BACjB,MAAM,CAAC,sBAAS,CAAC;6BACjB,GAAG,CAAC,UAAC,WAAW,IAAK,OAAA,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAA1B,CAA0B,CAAC,CACpD,EAAA;;wBAJD,SAIC,CAAC;6BAGE,CAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAA,EAApC,cAAoC;wBAChC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBAK9B,OAAO,GAAG,CAAC,CAAC;wBACQ,KAAA,CAAA,KAAA,IAAI,CAAA,CAAC,GAAG,CAAA;wBAEhC,WAAM,qBAAqB,CAAC,YAAY,CAAC,SAAS,GAAG,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAA;;wBAFnF,iBAAiB,GAAG,cAExB,SAAuF,EACvF,CAAC,EACF;wBAGQ,UAAU,GAAG,CAAC;;;wBACf,QAAQ,GAAG,UAAU,GAAG,iBAAiB,CAAC;wBAC1C,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;wBAClD,WAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAA;;wBAAxC,KAAK,GAAG,SAAgC;wBAC9C,IAAI,KAAK,CAAC,SAAS,IAAI,SAAS;4BAAE,cAAM;wBACxC,IAAA,gBAAM,EAAC,WAAW,GAAG,CAAC,EAAE,6BAA6B,CAAC,CAAC;;;wBAL9B,UAAU,EAAE,CAAA;;;wBAUnC,KAAK,GAAG,IAAA,sBAAa,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,WAAA,EAAW,EAAE,WAAW,CAAC,CAAC;wBAC9E,WAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,EAAC;;;;KAC9E;IAGa,uCAAc,GAA5B;;;;;;4BACqB,WAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAA;;wBAAjD,UAAU,GAAG,SAAoC;wBAC7B,WAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAA;;wBAAvE,iBAAiB,GAAG,SAAmD;wBAGvE,KAAK,GAAa;4BACtB,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC;4BACpC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC;yBAC3B,CAAC;wBACI,KAAK,GAAG,IAAA,sBAAa,EAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;wBAC1D,IAAI,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAAE,MAAM,MAAK,KAAK,CAAC,MAAM;4BAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;wBACrF,WAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC;;;;KAC3B;IAGa,iCAAQ,GAAtB,UAAuB,MAAc;;;;;;;wBAC/B,KAAK,GAAG,IAAA,sBAAa,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,QAAA,EAAW,EAAE,QAAQ,CAAC,CAAC;wBACtE,IAAI,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAAE,MAAM,MAAK,MAAM;4BAAE,WAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC;wBAE3C,WAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAA;;wBAA3E,iBAAiB,GAAG,SAAuD;wBAE3E,KAAK,GAAa;4BACtB,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC;4BACpC,MAAM,QAAA;yBACP,CAAC;wBAGF,KAAK,GAAG,IAAA,sBAAa,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,QAAA,EAAW,EAAE,QAAQ,CAAC,CAAC;wBAGlE,IAAI,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAAE,MAAM,MAAK,MAAM;4BAAE,WAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC;wBACrE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;wBACpC,WAAO,KAAK,EAAC;;;;KACd;IAKa,kCAAS,GAAvB,UAAwB,UAAoB,EAAE,QAAkB,EAAE,SAAiB;;;;;;wBAC3E,KAAyB,CAAC,UAAU,EAAE,QAAQ,CAAC,EAA9C,UAAU,QAAA,EAAE,QAAQ,QAAA,CAA2B;wBAGtD,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS;4BAAE,WAAO,QAAQ,EAAC;wBAItD,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC;4BAAE,WAAO,UAAU,EAAC;wBAEjE,IAAA,gBAAM,EAAC,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;wBAClF,IAAA,gBAAM,EACJ,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,SAAS,GAAG,UAAU,CAAC,SAAS,EAClE,+CAA+C,CAChD,CAAC;wBAGI,mBAAmB,GAAG,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;wBAChE,kBAAkB,GAAG,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;wBACzD,eAAe,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,mBAAmB,CAAC;wBAC3E,cAAc,GAAG,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,kBAAkB,CAAC,CAAC;wBAG3E,WAAM,IAAI,CAAC,QAAQ,CAAC,IAAA,cAAK,EAAC,cAAc,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAA;;wBAAjG,QAAQ,GAAG,SAAsF;wBAGvG,IAAI,QAAQ,CAAC,SAAS,GAAG,SAAS,EAAE;4BAClC,WAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAC;yBACtD;6BAAM;4BACL,WAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAC;yBACxD;;;;;KACF;IACH,qBAAC;AAAD,CAAC,AAlID,CAAoC,yBAAW,GAkI9C;AAlIY,wCAAc"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { DEFAULT_CONFIG_STORE_VERSION, GLOBAL_CONFIG_STORE_KEYS, AcrossConfigStoreClient, ConfigStoreUpdate, } from "./AcrossConfigStoreClient";
|
|
2
2
|
export { UpdateFailureReason } from "./BaseAbstractClient";
|
|
3
3
|
export { HubPoolClient, LpFeeRequest } from "./HubPoolClient";
|
|
4
|
-
export { SpokePoolClient, SpokePoolUpdate, EVMSpokePoolClient, SVMSpokePoolClient } from "./SpokePoolClient";
|
|
4
|
+
export { SpokePoolClient, SpokePoolUpdate, EVMSpokePoolClient, SVMSpokePoolClient, isEVMSpokePoolClient, isSVMSpokePoolClient, } from "./SpokePoolClient";
|
|
5
5
|
export * as BundleDataClient from "./BundleDataClient";
|
|
6
6
|
export * as mocks from "./mocks";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mocks = exports.BundleDataClient = exports.SVMSpokePoolClient = exports.EVMSpokePoolClient = exports.SpokePoolClient = exports.HubPoolClient = exports.UpdateFailureReason = exports.AcrossConfigStoreClient = exports.GLOBAL_CONFIG_STORE_KEYS = exports.DEFAULT_CONFIG_STORE_VERSION = void 0;
|
|
3
|
+
exports.mocks = exports.BundleDataClient = exports.isSVMSpokePoolClient = exports.isEVMSpokePoolClient = exports.SVMSpokePoolClient = exports.EVMSpokePoolClient = exports.SpokePoolClient = exports.HubPoolClient = exports.UpdateFailureReason = exports.AcrossConfigStoreClient = exports.GLOBAL_CONFIG_STORE_KEYS = exports.DEFAULT_CONFIG_STORE_VERSION = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var AcrossConfigStoreClient_1 = require("./AcrossConfigStoreClient");
|
|
6
6
|
Object.defineProperty(exports, "DEFAULT_CONFIG_STORE_VERSION", { enumerable: true, get: function () { return AcrossConfigStoreClient_1.DEFAULT_CONFIG_STORE_VERSION; } });
|
|
@@ -14,6 +14,8 @@ var SpokePoolClient_1 = require("./SpokePoolClient");
|
|
|
14
14
|
Object.defineProperty(exports, "SpokePoolClient", { enumerable: true, get: function () { return SpokePoolClient_1.SpokePoolClient; } });
|
|
15
15
|
Object.defineProperty(exports, "EVMSpokePoolClient", { enumerable: true, get: function () { return SpokePoolClient_1.EVMSpokePoolClient; } });
|
|
16
16
|
Object.defineProperty(exports, "SVMSpokePoolClient", { enumerable: true, get: function () { return SpokePoolClient_1.SVMSpokePoolClient; } });
|
|
17
|
+
Object.defineProperty(exports, "isEVMSpokePoolClient", { enumerable: true, get: function () { return SpokePoolClient_1.isEVMSpokePoolClient; } });
|
|
18
|
+
Object.defineProperty(exports, "isSVMSpokePoolClient", { enumerable: true, get: function () { return SpokePoolClient_1.isSVMSpokePoolClient; } });
|
|
17
19
|
exports.BundleDataClient = tslib_1.__importStar(require("./BundleDataClient"));
|
|
18
20
|
exports.mocks = tslib_1.__importStar(require("./mocks"));
|
|
19
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/clients/index.ts"],"names":[],"mappings":";;;;AAAA,qEAKmC;AAJjC,uIAAA,4BAA4B,OAAA;AAC5B,mIAAA,wBAAwB,OAAA;AACxB,kIAAA,uBAAuB,OAAA;AAGzB,2DAA2D;AAAlD,yHAAA,mBAAmB,OAAA;AAC5B,iDAA8D;AAArD,8GAAA,aAAa,OAAA;AACtB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/clients/index.ts"],"names":[],"mappings":";;;;AAAA,qEAKmC;AAJjC,uIAAA,4BAA4B,OAAA;AAC5B,mIAAA,wBAAwB,OAAA;AACxB,kIAAA,uBAAuB,OAAA;AAGzB,2DAA2D;AAAlD,yHAAA,mBAAmB,OAAA;AAC5B,iDAA8D;AAArD,8GAAA,aAAa,OAAA;AACtB,qDAO2B;AANzB,kHAAA,eAAe,OAAA;AAEf,qHAAA,kBAAkB,OAAA;AAClB,qHAAA,kBAAkB,OAAA;AAClB,uHAAA,oBAAoB,OAAA;AACpB,uHAAA,oBAAoB,OAAA;AAEtB,+EAAuD;AACvD,yDAAiC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { SVMProvider } from "../../arch/svm";
|
|
2
|
-
import {
|
|
2
|
+
import { SvmGasPriceEstimate } from "../types";
|
|
3
3
|
import { GasPriceEstimateOptions } from "../oracle";
|
|
4
|
-
export declare function messageFee(provider: SVMProvider, opts: GasPriceEstimateOptions): Promise<
|
|
4
|
+
export declare function messageFee(provider: SVMProvider, opts: GasPriceEstimateOptions): Promise<SvmGasPriceEstimate>;
|
|
@@ -2,7 +2,7 @@ import { Transport } from "viem";
|
|
|
2
2
|
import { providers } from "ethers";
|
|
3
3
|
import { BigNumber } from "../utils";
|
|
4
4
|
import { SVMProvider as SolanaProvider } from "../arch/svm";
|
|
5
|
-
import { GasPriceEstimate } from "./types";
|
|
5
|
+
import { EvmGasPriceEstimate, GasPriceEstimate, SvmGasPriceEstimate } from "./types";
|
|
6
6
|
export interface GasPriceEstimateOptions {
|
|
7
7
|
baseFeeMultiplier: BigNumber;
|
|
8
8
|
priorityFeeMultiplier: BigNumber;
|
|
@@ -11,5 +11,6 @@ export interface GasPriceEstimateOptions {
|
|
|
11
11
|
unsignedTx?: unknown;
|
|
12
12
|
transport?: Transport;
|
|
13
13
|
}
|
|
14
|
-
export declare function getGasPriceEstimate(provider: providers.Provider
|
|
14
|
+
export declare function getGasPriceEstimate(provider: providers.Provider, opts?: Partial<GasPriceEstimateOptions>): Promise<EvmGasPriceEstimate>;
|
|
15
|
+
export declare function getGasPriceEstimate(provider: SolanaProvider, opts?: Partial<GasPriceEstimateOptions>): Promise<SvmGasPriceEstimate>;
|
|
15
16
|
export declare function _getViemGasPriceEstimate(providerOrChainId: providers.Provider | number, opts: GasPriceEstimateOptions): Promise<GasPriceEstimate>;
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports._getViemGasPriceEstimate = exports.getGasPriceEstimate = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var assert_1 = tslib_1.__importDefault(require("assert"));
|
|
6
|
-
var ethers_1 = require("ethers");
|
|
7
6
|
var constants_1 = require("../constants");
|
|
8
7
|
var utils_1 = require("../utils");
|
|
9
8
|
var util_1 = require("./util");
|
|
@@ -28,11 +27,10 @@ function getGasPriceEstimate(provider, opts) {
|
|
|
28
27
|
(0, assert_1.default)(baseFeeMultiplier.gte((0, utils_1.toBNWei)("1.0")) && baseFeeMultiplier.lte((0, utils_1.toBNWei)("5")), "Require 1.0 < base fee multiplier (".concat(baseFeeMultiplier, ") <= 5.0 for a total gas multiplier within [+1.0, +5.0]"));
|
|
29
28
|
priorityFeeMultiplier = (_b = opts.priorityFeeMultiplier) !== null && _b !== void 0 ? _b : (0, utils_1.toBNWei)("1");
|
|
30
29
|
(0, assert_1.default)(priorityFeeMultiplier.gte((0, utils_1.toBNWei)("1.0")) && priorityFeeMultiplier.lte((0, utils_1.toBNWei)("5")), "Require 1.0 < priority fee multiplier (".concat(priorityFeeMultiplier, ") <= 5.0 for a total gas multiplier within [+1.0, +5.0]"));
|
|
31
|
-
if (!(
|
|
30
|
+
if (!(0, utils_1.isEvmProvider)(provider)) {
|
|
32
31
|
optsWithDefaults_1 = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, GAS_PRICE_ESTIMATE_DEFAULTS), { baseFeeMultiplier: baseFeeMultiplier, priorityFeeMultiplier: priorityFeeMultiplier }), opts), { chainId: (_c = opts.chainId) !== null && _c !== void 0 ? _c : constants_1.CHAIN_IDs.SOLANA });
|
|
33
32
|
return [2, solana.messageFee(provider, optsWithDefaults_1)];
|
|
34
33
|
}
|
|
35
|
-
provider = provider;
|
|
36
34
|
if (!((_d = opts.chainId) !== null && _d !== void 0)) return [3, 1];
|
|
37
35
|
_e = _d;
|
|
38
36
|
return [3, 3];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oracle.js","sourceRoot":"","sources":["../../../src/gasPriceOracle/oracle.ts"],"names":[],"mappings":";;;;AAAA,0DAA4B;
|
|
1
|
+
{"version":3,"file":"oracle.js","sourceRoot":"","sources":["../../../src/gasPriceOracle/oracle.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,3 +13,5 @@ export type SvmGasPriceEstimate = {
|
|
|
13
13
|
export interface GasPriceFeed {
|
|
14
14
|
(provider: PublicClient<Transport, Chain>, chainId: number): Promise<InternalGasPriceEstimate>;
|
|
15
15
|
}
|
|
16
|
+
export declare function isEVMGasPrice(gasPrice: GasPriceEstimate): gasPrice is EvmGasPriceEstimate;
|
|
17
|
+
export declare function isSVMGasPrice(gasPrice: GasPriceEstimate): gasPrice is SvmGasPriceEstimate;
|
|
@@ -1,3 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isSVMGasPrice = exports.isEVMGasPrice = void 0;
|
|
4
|
+
var utils_1 = require("../utils");
|
|
5
|
+
function isEVMGasPrice(gasPrice) {
|
|
6
|
+
var _a = gasPrice, maxFeePerGas = _a.maxFeePerGas, maxPriorityFeePerGas = _a.maxPriorityFeePerGas;
|
|
7
|
+
return (0, utils_1.isDefined)(maxFeePerGas) && (0, utils_1.isDefined)(maxPriorityFeePerGas);
|
|
8
|
+
}
|
|
9
|
+
exports.isEVMGasPrice = isEVMGasPrice;
|
|
10
|
+
function isSVMGasPrice(gasPrice) {
|
|
11
|
+
var _a = gasPrice, baseFee = _a.baseFee, microLamportsPerComputeUnit = _a.microLamportsPerComputeUnit;
|
|
12
|
+
return (0, utils_1.isDefined)(baseFee) && (0, utils_1.isDefined)(microLamportsPerComputeUnit);
|
|
13
|
+
}
|
|
14
|
+
exports.isSVMGasPrice = isSVMGasPrice;
|
|
3
15
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/gasPriceOracle/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/gasPriceOracle/types.ts"],"names":[],"mappings":";;;AACA,kCAAgD;AAmBhD,SAAgB,aAAa,CAAC,QAA0B;IAChD,IAAA,KAAyC,QAA+B,EAAtE,YAAY,kBAAA,EAAE,oBAAoB,0BAAoC,CAAC;IAC/E,OAAO,IAAA,iBAAS,EAAC,YAAY,CAAC,IAAI,IAAA,iBAAS,EAAC,oBAAoB,CAAC,CAAC;AACpE,CAAC;AAHD,sCAGC;AAED,SAAgB,aAAa,CAAC,QAA0B;IAChD,IAAA,KAA2C,QAA+B,EAAxE,OAAO,aAAA,EAAE,2BAA2B,iCAAoC,CAAC;IACjF,OAAO,IAAA,iBAAS,EAAC,OAAO,CAAC,IAAI,IAAA,iBAAS,EAAC,2BAA2B,CAAC,CAAC;AACtE,CAAC;AAHD,sCAGC"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { providers } from "ethers";
|
|
2
|
+
import { SVMProvider } from "../arch/svm/types";
|
|
1
3
|
export declare function isPromiseFulfilled<T>(promiseSettledResult: PromiseSettledResult<T>): promiseSettledResult is PromiseFulfilledResult<T>;
|
|
2
4
|
export declare function isPromiseRejected<T>(promiseSettledResult: PromiseSettledResult<T>): promiseSettledResult is PromiseRejectedResult;
|
|
3
5
|
export declare function isDefined<T>(input: T | null | undefined): input is T;
|
|
6
|
+
export declare function isEvmProvider(provider: providers.Provider | SVMProvider): provider is providers.Provider;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isDefined = exports.isPromiseRejected = exports.isPromiseFulfilled = void 0;
|
|
3
|
+
exports.isEvmProvider = exports.isDefined = exports.isPromiseRejected = exports.isPromiseFulfilled = void 0;
|
|
4
|
+
var ethers_1 = require("ethers");
|
|
4
5
|
function isPromiseFulfilled(promiseSettledResult) {
|
|
5
6
|
return promiseSettledResult.status === "fulfilled";
|
|
6
7
|
}
|
|
@@ -13,4 +14,8 @@ function isDefined(input) {
|
|
|
13
14
|
return input !== null && input !== undefined;
|
|
14
15
|
}
|
|
15
16
|
exports.isDefined = isDefined;
|
|
17
|
+
function isEvmProvider(provider) {
|
|
18
|
+
return provider instanceof ethers_1.providers.Provider;
|
|
19
|
+
}
|
|
20
|
+
exports.isEvmProvider = isEvmProvider;
|
|
16
21
|
//# sourceMappingURL=TypeGuards.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeGuards.js","sourceRoot":"","sources":["../../../src/utils/TypeGuards.ts"],"names":[],"mappings":";;;AAAA,SAAgB,kBAAkB,CAChC,oBAA6C;IAE7C,OAAO,oBAAoB,CAAC,MAAM,KAAK,WAAW,CAAC;AACrD,CAAC;AAJD,gDAIC;AAED,SAAgB,iBAAiB,CAC/B,oBAA6C;IAE7C,OAAO,oBAAoB,CAAC,MAAM,KAAK,UAAU,CAAC;AACpD,CAAC;AAJD,8CAIC;AAED,SAAgB,SAAS,CAAI,KAA2B;IACtD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC;AAFD,8BAEC"}
|
|
1
|
+
{"version":3,"file":"TypeGuards.js","sourceRoot":"","sources":["../../../src/utils/TypeGuards.ts"],"names":[],"mappings":";;;AAAA,iCAAmC;AAGnC,SAAgB,kBAAkB,CAChC,oBAA6C;IAE7C,OAAO,oBAAoB,CAAC,MAAM,KAAK,WAAW,CAAC;AACrD,CAAC;AAJD,gDAIC;AAED,SAAgB,iBAAiB,CAC/B,oBAA6C;IAE7C,OAAO,oBAAoB,CAAC,MAAM,KAAK,UAAU,CAAC;AACpD,CAAC;AAJD,8CAIC;AAED,SAAgB,SAAS,CAAI,KAA2B;IACtD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC;AAFD,8BAEC;AAED,SAAgB,aAAa,CAAC,QAA0C;IACtE,OAAO,QAAQ,YAAY,kBAAS,CAAC,QAAQ,CAAC;AAChD,CAAC;AAFD,sCAEC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BlockFinder, type Block, type
|
|
1
|
+
import { BlockFinder, type Block, type BlockTimeAverage, type BlockFinderHints } from "../../utils/BlockFinder";
|
|
2
2
|
import { SVMProvider } from "./";
|
|
3
3
|
interface SVMBlock extends Block {
|
|
4
4
|
}
|
|
@@ -7,7 +7,7 @@ interface SVMBlock extends Block {
|
|
|
7
7
|
* @dev Solana slots are all defined to be ~400ms away from each other += a small deviation, so we can hardcode this.
|
|
8
8
|
* @returns Average number of seconds per slot
|
|
9
9
|
*/
|
|
10
|
-
export declare function averageBlockTime(
|
|
10
|
+
export declare function averageBlockTime(): Pick<BlockTimeAverage, "average" | "blockRange">;
|
|
11
11
|
export declare class SVMBlockFinder extends BlockFinder<SVMBlock> {
|
|
12
12
|
private readonly provider;
|
|
13
13
|
private readonly blocks;
|
|
@@ -2,7 +2,7 @@ var _a;
|
|
|
2
2
|
import { __awaiter, __extends, __generator } from "tslib";
|
|
3
3
|
import assert from "assert";
|
|
4
4
|
import { clamp, sortedIndexBy } from "lodash";
|
|
5
|
-
import { BlockFinder
|
|
5
|
+
import { BlockFinder } from "../../utils/BlockFinder";
|
|
6
6
|
import { isDefined } from "../../utils/TypeGuards";
|
|
7
7
|
import { getCurrentTime } from "../../utils/TimeUtils";
|
|
8
8
|
import { CHAIN_IDs } from "../../constants";
|
|
@@ -15,12 +15,11 @@ var averageBlockTimes = (_a = {},
|
|
|
15
15
|
* @dev Solana slots are all defined to be ~400ms away from each other += a small deviation, so we can hardcode this.
|
|
16
16
|
* @returns Average number of seconds per slot
|
|
17
17
|
*/
|
|
18
|
-
export function averageBlockTime(
|
|
19
|
-
if (_opts === void 0) { _opts = {}; }
|
|
18
|
+
export function averageBlockTime() {
|
|
20
19
|
// @todo This may need to be expanded to work without assuming that chainId = CHAIN_IDs.SOLANA.
|
|
21
20
|
return averageBlockTimes[CHAIN_IDs.SOLANA];
|
|
22
21
|
}
|
|
23
|
-
function estimateBlocksElapsed(seconds, cushionPercentage,
|
|
22
|
+
function estimateBlocksElapsed(seconds, cushionPercentage, _provider) {
|
|
24
23
|
if (cushionPercentage === void 0) { cushionPercentage = 0.0; }
|
|
25
24
|
return __awaiter(this, void 0, void 0, function () {
|
|
26
25
|
var cushionMultiplier, average;
|
|
@@ -28,7 +27,7 @@ function estimateBlocksElapsed(seconds, cushionPercentage, provider) {
|
|
|
28
27
|
switch (_a.label) {
|
|
29
28
|
case 0:
|
|
30
29
|
cushionMultiplier = cushionPercentage + 1.0;
|
|
31
|
-
return [4 /*yield*/, averageBlockTime(
|
|
30
|
+
return [4 /*yield*/, averageBlockTime()];
|
|
32
31
|
case 1:
|
|
33
32
|
average = (_a.sent()).average;
|
|
34
33
|
return [2 /*return*/, Math.floor((seconds * cushionMultiplier) / average)];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockUtils.js","sourceRoot":"","sources":["../../../../src/arch/svm/BlockUtils.ts"],"names":[],"mappings":";;AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"BlockUtils.js","sourceRoot":"","sources":["../../../../src/arch/svm/BlockUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { DEFAULT_CONFIG_STORE_VERSION, GLOBAL_CONFIG_STORE_KEYS, AcrossConfigStoreClient, ConfigStoreUpdate, } from "./AcrossConfigStoreClient";
|
|
2
2
|
export { UpdateFailureReason } from "./BaseAbstractClient";
|
|
3
3
|
export { HubPoolClient, LpFeeRequest } from "./HubPoolClient";
|
|
4
|
-
export { SpokePoolClient, SpokePoolUpdate, EVMSpokePoolClient, SVMSpokePoolClient } from "./SpokePoolClient";
|
|
4
|
+
export { SpokePoolClient, SpokePoolUpdate, EVMSpokePoolClient, SVMSpokePoolClient, isEVMSpokePoolClient, isSVMSpokePoolClient, } from "./SpokePoolClient";
|
|
5
5
|
export * as BundleDataClient from "./BundleDataClient";
|
|
6
6
|
export * as mocks from "./mocks";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { DEFAULT_CONFIG_STORE_VERSION, GLOBAL_CONFIG_STORE_KEYS, AcrossConfigStoreClient, } from "./AcrossConfigStoreClient";
|
|
2
2
|
export { UpdateFailureReason } from "./BaseAbstractClient";
|
|
3
3
|
export { HubPoolClient } from "./HubPoolClient";
|
|
4
|
-
export { SpokePoolClient, EVMSpokePoolClient, SVMSpokePoolClient } from "./SpokePoolClient";
|
|
4
|
+
export { SpokePoolClient, EVMSpokePoolClient, SVMSpokePoolClient, isEVMSpokePoolClient, isSVMSpokePoolClient, } from "./SpokePoolClient";
|
|
5
5
|
import * as BundleDataClient_1 from "./BundleDataClient";
|
|
6
6
|
export { BundleDataClient_1 as BundleDataClient };
|
|
7
7
|
import * as mocks_1 from "./mocks";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,uBAAuB,GAExB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAgB,MAAM,iBAAiB,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,uBAAuB,GAExB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAgB,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,eAAe,EAEf,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;oCACO,oBAAoB;+BAA1C,gBAAgB;yBACL,SAAS;oBAApB,KAAK"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { SVMProvider } from "../../arch/svm";
|
|
2
|
-
import {
|
|
2
|
+
import { SvmGasPriceEstimate } from "../types";
|
|
3
3
|
import { GasPriceEstimateOptions } from "../oracle";
|
|
4
4
|
/**
|
|
5
5
|
* @notice Returns result of getFeeForMessage and getRecentPrioritizationFees RPC calls.
|
|
6
6
|
* @returns GasPriceEstimate
|
|
7
7
|
*/
|
|
8
|
-
export declare function messageFee(provider: SVMProvider, opts: GasPriceEstimateOptions): Promise<
|
|
8
|
+
export declare function messageFee(provider: SVMProvider, opts: GasPriceEstimateOptions): Promise<SvmGasPriceEstimate>;
|
|
@@ -2,7 +2,7 @@ import { Transport } from "viem";
|
|
|
2
2
|
import { providers } from "ethers";
|
|
3
3
|
import { BigNumber } from "../utils";
|
|
4
4
|
import { SVMProvider as SolanaProvider } from "../arch/svm";
|
|
5
|
-
import { GasPriceEstimate } from "./types";
|
|
5
|
+
import { EvmGasPriceEstimate, GasPriceEstimate, SvmGasPriceEstimate } from "./types";
|
|
6
6
|
export interface GasPriceEstimateOptions {
|
|
7
7
|
baseFeeMultiplier: BigNumber;
|
|
8
8
|
priorityFeeMultiplier: BigNumber;
|
|
@@ -11,13 +11,8 @@ export interface GasPriceEstimateOptions {
|
|
|
11
11
|
unsignedTx?: unknown;
|
|
12
12
|
transport?: Transport;
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
* @param provider A valid ethers provider.
|
|
17
|
-
* @param {opts} GasPriceEstimateOptions optional parameters.
|
|
18
|
-
* @returns An object of type GasPriceEstimate.
|
|
19
|
-
*/
|
|
20
|
-
export declare function getGasPriceEstimate(provider: providers.Provider | SolanaProvider, opts?: Partial<GasPriceEstimateOptions>): Promise<GasPriceEstimate>;
|
|
14
|
+
export declare function getGasPriceEstimate(provider: providers.Provider, opts?: Partial<GasPriceEstimateOptions>): Promise<EvmGasPriceEstimate>;
|
|
15
|
+
export declare function getGasPriceEstimate(provider: SolanaProvider, opts?: Partial<GasPriceEstimateOptions>): Promise<SvmGasPriceEstimate>;
|
|
21
16
|
/**
|
|
22
17
|
* Provide an estimate for the current gas price for a particular chain.
|
|
23
18
|
* @param providerOrChainId A valid ethers provider or a chain ID.
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { __assign, __awaiter, __generator } from "tslib";
|
|
2
2
|
import assert from "assert";
|
|
3
|
-
import { providers } from "ethers";
|
|
4
3
|
import { CHAIN_IDs } from "../constants";
|
|
5
|
-
import { BigNumber, chainIsOPStack, fixedPointAdjustment, toBNWei } from "../utils";
|
|
4
|
+
import { BigNumber, chainIsOPStack, fixedPointAdjustment, isEvmProvider, toBNWei } from "../utils";
|
|
6
5
|
import { getPublicClient } from "./util";
|
|
7
6
|
import * as arbitrum from "./adapters/arbitrum";
|
|
8
7
|
import * as ethereum from "./adapters/ethereum";
|
|
@@ -17,7 +16,7 @@ var VIEM_CHAINS = [CHAIN_IDs.LINEA];
|
|
|
17
16
|
/**
|
|
18
17
|
* Provide an estimate for the current gas price for a particular chain.
|
|
19
18
|
* @param provider A valid ethers provider.
|
|
20
|
-
* @param {
|
|
19
|
+
* @param {GasPriceEstimateOptions} opts optional parameters.
|
|
21
20
|
* @returns An object of type GasPriceEstimate.
|
|
22
21
|
*/
|
|
23
22
|
export function getGasPriceEstimate(provider, opts) {
|
|
@@ -33,12 +32,10 @@ export function getGasPriceEstimate(provider, opts) {
|
|
|
33
32
|
priorityFeeMultiplier = (_b = opts.priorityFeeMultiplier) !== null && _b !== void 0 ? _b : toBNWei("1");
|
|
34
33
|
assert(priorityFeeMultiplier.gte(toBNWei("1.0")) && priorityFeeMultiplier.lte(toBNWei("5")), "Require 1.0 < priority fee multiplier (".concat(priorityFeeMultiplier, ") <= 5.0 for a total gas multiplier within [+1.0, +5.0]"));
|
|
35
34
|
// Exit here if we need to estimate on Solana.
|
|
36
|
-
if (!(provider
|
|
35
|
+
if (!isEvmProvider(provider)) {
|
|
37
36
|
optsWithDefaults_1 = __assign(__assign(__assign(__assign({}, GAS_PRICE_ESTIMATE_DEFAULTS), { baseFeeMultiplier: baseFeeMultiplier, priorityFeeMultiplier: priorityFeeMultiplier }), opts), { chainId: (_c = opts.chainId) !== null && _c !== void 0 ? _c : CHAIN_IDs.SOLANA });
|
|
38
37
|
return [2 /*return*/, solana.messageFee(provider, optsWithDefaults_1)];
|
|
39
38
|
}
|
|
40
|
-
// Cast the provider to an ethers provider, which should be given to the oracle when querying an EVM network.
|
|
41
|
-
provider = provider;
|
|
42
39
|
if (!((_d = opts.chainId) !== null && _d !== void 0)) return [3 /*break*/, 1];
|
|
43
40
|
_e = _d;
|
|
44
41
|
return [3 /*break*/, 3];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oracle.js","sourceRoot":"","sources":["../../../src/gasPriceOracle/oracle.ts"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"oracle.js","sourceRoot":"","sources":["../../../src/gasPriceOracle/oracle.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,3 +13,5 @@ export type SvmGasPriceEstimate = {
|
|
|
13
13
|
export interface GasPriceFeed {
|
|
14
14
|
(provider: PublicClient<Transport, Chain>, chainId: number): Promise<InternalGasPriceEstimate>;
|
|
15
15
|
}
|
|
16
|
+
export declare function isEVMGasPrice(gasPrice: GasPriceEstimate): gasPrice is EvmGasPriceEstimate;
|
|
17
|
+
export declare function isSVMGasPrice(gasPrice: GasPriceEstimate): gasPrice is SvmGasPriceEstimate;
|
|
@@ -1,2 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
import { isDefined } from "../utils";
|
|
2
|
+
export function isEVMGasPrice(gasPrice) {
|
|
3
|
+
var _a = gasPrice, maxFeePerGas = _a.maxFeePerGas, maxPriorityFeePerGas = _a.maxPriorityFeePerGas;
|
|
4
|
+
return isDefined(maxFeePerGas) && isDefined(maxPriorityFeePerGas);
|
|
5
|
+
}
|
|
6
|
+
export function isSVMGasPrice(gasPrice) {
|
|
7
|
+
var _a = gasPrice, baseFee = _a.baseFee, microLamportsPerComputeUnit = _a.microLamportsPerComputeUnit;
|
|
8
|
+
return isDefined(baseFee) && isDefined(microLamportsPerComputeUnit);
|
|
9
|
+
}
|
|
2
10
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/gasPriceOracle/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/gasPriceOracle/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,SAAS,EAAE,MAAM,UAAU,CAAC;AAmBhD,MAAM,UAAU,aAAa,CAAC,QAA0B;IAChD,IAAA,KAAyC,QAA+B,EAAtE,YAAY,kBAAA,EAAE,oBAAoB,0BAAoC,CAAC;IAC/E,OAAO,SAAS,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,oBAAoB,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAA0B;IAChD,IAAA,KAA2C,QAA+B,EAAxE,OAAO,aAAA,EAAE,2BAA2B,iCAAoC,CAAC;IACjF,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,2BAA2B,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { providers } from "ethers";
|
|
2
|
+
import { SVMProvider } from "../arch/svm/types";
|
|
1
3
|
export declare function isPromiseFulfilled<T>(promiseSettledResult: PromiseSettledResult<T>): promiseSettledResult is PromiseFulfilledResult<T>;
|
|
2
4
|
export declare function isPromiseRejected<T>(promiseSettledResult: PromiseSettledResult<T>): promiseSettledResult is PromiseRejectedResult;
|
|
3
5
|
export declare function isDefined<T>(input: T | null | undefined): input is T;
|
|
6
|
+
export declare function isEvmProvider(provider: providers.Provider | SVMProvider): provider is providers.Provider;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { providers } from "ethers";
|
|
1
2
|
export function isPromiseFulfilled(promiseSettledResult) {
|
|
2
3
|
return promiseSettledResult.status === "fulfilled";
|
|
3
4
|
}
|
|
@@ -7,4 +8,7 @@ export function isPromiseRejected(promiseSettledResult) {
|
|
|
7
8
|
export function isDefined(input) {
|
|
8
9
|
return input !== null && input !== undefined;
|
|
9
10
|
}
|
|
11
|
+
export function isEvmProvider(provider) {
|
|
12
|
+
return provider instanceof providers.Provider;
|
|
13
|
+
}
|
|
10
14
|
//# sourceMappingURL=TypeGuards.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeGuards.js","sourceRoot":"","sources":["../../../src/utils/TypeGuards.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAChC,oBAA6C;IAE7C,OAAO,oBAAoB,CAAC,MAAM,KAAK,WAAW,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,oBAA6C;IAE7C,OAAO,oBAAoB,CAAC,MAAM,KAAK,UAAU,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,SAAS,CAAI,KAA2B;IACtD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC"}
|
|
1
|
+
{"version":3,"file":"TypeGuards.js","sourceRoot":"","sources":["../../../src/utils/TypeGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC,MAAM,UAAU,kBAAkB,CAChC,oBAA6C;IAE7C,OAAO,oBAAoB,CAAC,MAAM,KAAK,WAAW,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,oBAA6C;IAE7C,OAAO,oBAAoB,CAAC,MAAM,KAAK,UAAU,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,SAAS,CAAI,KAA2B;IACtD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAA0C;IACtE,OAAO,QAAQ,YAAY,SAAS,CAAC,QAAQ,CAAC;AAChD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BlockFinder, type Block, type
|
|
1
|
+
import { BlockFinder, type Block, type BlockTimeAverage, type BlockFinderHints } from "../../utils/BlockFinder";
|
|
2
2
|
import { SVMProvider } from "./";
|
|
3
3
|
interface SVMBlock extends Block {
|
|
4
4
|
}
|
|
@@ -7,7 +7,7 @@ interface SVMBlock extends Block {
|
|
|
7
7
|
* @dev Solana slots are all defined to be ~400ms away from each other += a small deviation, so we can hardcode this.
|
|
8
8
|
* @returns Average number of seconds per slot
|
|
9
9
|
*/
|
|
10
|
-
export declare function averageBlockTime(
|
|
10
|
+
export declare function averageBlockTime(): Pick<BlockTimeAverage, "average" | "blockRange">;
|
|
11
11
|
export declare class SVMBlockFinder extends BlockFinder<SVMBlock> {
|
|
12
12
|
private readonly provider;
|
|
13
13
|
private readonly blocks;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockUtils.d.ts","sourceRoot":"","sources":["../../../../src/arch/svm/BlockUtils.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"BlockUtils.d.ts","sourceRoot":"","sources":["../../../../src/arch/svm/BlockUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAIhH,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAEjC,UAAU,QAAS,SAAQ,KAAK;CAAG;AAOnC;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,YAAY,CAAC,CAGnF;AAYD,qBAAa,cAAe,SAAQ,WAAW,CAAC,QAAQ,CAAC;IAErD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,QAAQ,EAAE,WAAW,EACrB,MAAM,GAAE,QAAQ,EAAO;IAK1C;;;;OAIG;IACU,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,GAAE,gBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;YA+ChG,cAAc;YAed,QAAQ;YAuBR,SAAS;CAgCxB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { DEFAULT_CONFIG_STORE_VERSION, GLOBAL_CONFIG_STORE_KEYS, AcrossConfigStoreClient, ConfigStoreUpdate, } from "./AcrossConfigStoreClient";
|
|
2
2
|
export { UpdateFailureReason } from "./BaseAbstractClient";
|
|
3
3
|
export { HubPoolClient, LpFeeRequest } from "./HubPoolClient";
|
|
4
|
-
export { SpokePoolClient, SpokePoolUpdate, EVMSpokePoolClient, SVMSpokePoolClient } from "./SpokePoolClient";
|
|
4
|
+
export { SpokePoolClient, SpokePoolUpdate, EVMSpokePoolClient, SVMSpokePoolClient, isEVMSpokePoolClient, isSVMSpokePoolClient, } from "./SpokePoolClient";
|
|
5
5
|
export * as BundleDataClient from "./BundleDataClient";
|
|
6
6
|
export * as mocks from "./mocks";
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,gBAAgB,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { SVMProvider } from "../../arch/svm";
|
|
2
|
-
import {
|
|
2
|
+
import { SvmGasPriceEstimate } from "../types";
|
|
3
3
|
import { GasPriceEstimateOptions } from "../oracle";
|
|
4
4
|
/**
|
|
5
5
|
* @notice Returns result of getFeeForMessage and getRecentPrioritizationFees RPC calls.
|
|
6
6
|
* @returns GasPriceEstimate
|
|
7
7
|
*/
|
|
8
|
-
export declare function messageFee(provider: SVMProvider, opts: GasPriceEstimateOptions): Promise<
|
|
8
|
+
export declare function messageFee(provider: SVMProvider, opts: GasPriceEstimateOptions): Promise<SvmGasPriceEstimate>;
|
|
9
9
|
//# sourceMappingURL=solana.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../../../src/gasPriceOracle/adapters/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../../../src/gasPriceOracle/adapters/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAGpD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAoCnH"}
|
|
@@ -2,7 +2,7 @@ import { Transport } from "viem";
|
|
|
2
2
|
import { providers } from "ethers";
|
|
3
3
|
import { BigNumber } from "../utils";
|
|
4
4
|
import { SVMProvider as SolanaProvider } from "../arch/svm";
|
|
5
|
-
import { GasPriceEstimate } from "./types";
|
|
5
|
+
import { EvmGasPriceEstimate, GasPriceEstimate, SvmGasPriceEstimate } from "./types";
|
|
6
6
|
export interface GasPriceEstimateOptions {
|
|
7
7
|
baseFeeMultiplier: BigNumber;
|
|
8
8
|
priorityFeeMultiplier: BigNumber;
|
|
@@ -11,13 +11,8 @@ export interface GasPriceEstimateOptions {
|
|
|
11
11
|
unsignedTx?: unknown;
|
|
12
12
|
transport?: Transport;
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
* @param provider A valid ethers provider.
|
|
17
|
-
* @param {opts} GasPriceEstimateOptions optional parameters.
|
|
18
|
-
* @returns An object of type GasPriceEstimate.
|
|
19
|
-
*/
|
|
20
|
-
export declare function getGasPriceEstimate(provider: providers.Provider | SolanaProvider, opts?: Partial<GasPriceEstimateOptions>): Promise<GasPriceEstimate>;
|
|
14
|
+
export declare function getGasPriceEstimate(provider: providers.Provider, opts?: Partial<GasPriceEstimateOptions>): Promise<EvmGasPriceEstimate>;
|
|
15
|
+
export declare function getGasPriceEstimate(provider: SolanaProvider, opts?: Partial<GasPriceEstimateOptions>): Promise<SvmGasPriceEstimate>;
|
|
21
16
|
/**
|
|
22
17
|
* Provide an estimate for the current gas price for a particular chain.
|
|
23
18
|
* @param providerOrChainId A valid ethers provider or a chain ID.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../../../src/gasPriceOracle/oracle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../../../src/gasPriceOracle/oracle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAgE,MAAM,UAAU,CAAC;AACnG,OAAO,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAQrF,MAAM,WAAW,uBAAuB;IAEtC,iBAAiB,EAAE,SAAS,CAAC;IAE7B,qBAAqB,EAAE,SAAS,CAAC;IAEjC,cAAc,EAAE,OAAO,CAAC;IAExB,OAAO,EAAE,MAAM,CAAC;IAEhB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAUD,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAC5B,IAAI,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GACtC,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAGhC,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,cAAc,EACxB,IAAI,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GACtC,OAAO,CAAC,mBAAmB,CAAC,CAAC;AA0FhC;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,iBAAiB,EAAE,SAAS,CAAC,QAAQ,GAAG,MAAM,EAC9C,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CA2B3B"}
|
|
@@ -13,4 +13,6 @@ export type SvmGasPriceEstimate = {
|
|
|
13
13
|
export interface GasPriceFeed {
|
|
14
14
|
(provider: PublicClient<Transport, Chain>, chainId: number): Promise<InternalGasPriceEstimate>;
|
|
15
15
|
}
|
|
16
|
+
export declare function isEVMGasPrice(gasPrice: GasPriceEstimate): gasPrice is EvmGasPriceEstimate;
|
|
17
|
+
export declare function isSVMGasPrice(gasPrice: GasPriceEstimate): gasPrice is SvmGasPriceEstimate;
|
|
16
18
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/gasPriceOracle/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAClF,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/gasPriceOracle/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAClF,OAAO,EAAE,SAAS,EAAa,MAAM,UAAU,CAAC;AAEhD,MAAM,MAAM,wBAAwB,GAAG,gBAAgB,CAAC;AACxD,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAEzE,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,SAAS,CAAC;IACxB,oBAAoB,EAAE,SAAS,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,SAAS,CAAC;IACnB,2BAA2B,EAAE,SAAS,CAAC;CACxC,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,CAAC,QAAQ,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;CAChG;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,gBAAgB,GAAG,QAAQ,IAAI,mBAAmB,CAGzF;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,gBAAgB,GAAG,QAAQ,IAAI,mBAAmB,CAGzF"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { providers } from "ethers";
|
|
2
|
+
import { SVMProvider } from "../arch/svm/types";
|
|
1
3
|
export declare function isPromiseFulfilled<T>(promiseSettledResult: PromiseSettledResult<T>): promiseSettledResult is PromiseFulfilledResult<T>;
|
|
2
4
|
export declare function isPromiseRejected<T>(promiseSettledResult: PromiseSettledResult<T>): promiseSettledResult is PromiseRejectedResult;
|
|
3
5
|
export declare function isDefined<T>(input: T | null | undefined): input is T;
|
|
6
|
+
export declare function isEvmProvider(provider: providers.Provider | SVMProvider): provider is providers.Provider;
|
|
4
7
|
//# sourceMappingURL=TypeGuards.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeGuards.d.ts","sourceRoot":"","sources":["../../../src/utils/TypeGuards.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC5C,oBAAoB,IAAI,sBAAsB,CAAC,CAAC,CAAC,CAEnD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC5C,oBAAoB,IAAI,qBAAqB,CAE/C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,CAAC,CAEpE"}
|
|
1
|
+
{"version":3,"file":"TypeGuards.d.ts","sourceRoot":"","sources":["../../../src/utils/TypeGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC5C,oBAAoB,IAAI,sBAAsB,CAAC,CAAC,CAAC,CAEnD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC5C,oBAAoB,IAAI,qBAAqB,CAE/C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,CAAC,CAEpE;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,WAAW,GAAG,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAExG"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
import assert from "assert";
|
|
2
2
|
import { clamp, sortedIndexBy } from "lodash";
|
|
3
|
-
import {
|
|
4
|
-
BlockFinder,
|
|
5
|
-
type Block,
|
|
6
|
-
type BlockFinderOpts as Opts,
|
|
7
|
-
type BlockTimeAverage,
|
|
8
|
-
type BlockFinderHints,
|
|
9
|
-
} from "../../utils/BlockFinder";
|
|
3
|
+
import { BlockFinder, type Block, type BlockTimeAverage, type BlockFinderHints } from "../../utils/BlockFinder";
|
|
10
4
|
import { isDefined } from "../../utils/TypeGuards";
|
|
11
5
|
import { getCurrentTime } from "../../utils/TimeUtils";
|
|
12
6
|
import { CHAIN_IDs } from "../../constants";
|
|
@@ -24,17 +18,18 @@ const averageBlockTimes: { [chainId: number]: BlockTimeAverage } = {
|
|
|
24
18
|
* @dev Solana slots are all defined to be ~400ms away from each other += a small deviation, so we can hardcode this.
|
|
25
19
|
* @returns Average number of seconds per slot
|
|
26
20
|
*/
|
|
27
|
-
export function averageBlockTime(
|
|
28
|
-
_provider: SVMProvider,
|
|
29
|
-
_opts: Opts = {}
|
|
30
|
-
): Pick<BlockTimeAverage, "average" | "blockRange"> {
|
|
21
|
+
export function averageBlockTime(): Pick<BlockTimeAverage, "average" | "blockRange"> {
|
|
31
22
|
// @todo This may need to be expanded to work without assuming that chainId = CHAIN_IDs.SOLANA.
|
|
32
23
|
return averageBlockTimes[CHAIN_IDs.SOLANA];
|
|
33
24
|
}
|
|
34
25
|
|
|
35
|
-
async function estimateBlocksElapsed(
|
|
26
|
+
async function estimateBlocksElapsed(
|
|
27
|
+
seconds: number,
|
|
28
|
+
cushionPercentage = 0.0,
|
|
29
|
+
_provider: SVMProvider
|
|
30
|
+
): Promise<number> {
|
|
36
31
|
const cushionMultiplier = cushionPercentage + 1.0;
|
|
37
|
-
const { average } = await averageBlockTime(
|
|
32
|
+
const { average } = await averageBlockTime();
|
|
38
33
|
return Math.floor((seconds * cushionMultiplier) / average);
|
|
39
34
|
}
|
|
40
35
|
|
package/src/clients/index.ts
CHANGED
|
@@ -6,6 +6,13 @@ export {
|
|
|
6
6
|
} from "./AcrossConfigStoreClient";
|
|
7
7
|
export { UpdateFailureReason } from "./BaseAbstractClient";
|
|
8
8
|
export { HubPoolClient, LpFeeRequest } from "./HubPoolClient";
|
|
9
|
-
export {
|
|
9
|
+
export {
|
|
10
|
+
SpokePoolClient,
|
|
11
|
+
SpokePoolUpdate,
|
|
12
|
+
EVMSpokePoolClient,
|
|
13
|
+
SVMSpokePoolClient,
|
|
14
|
+
isEVMSpokePoolClient,
|
|
15
|
+
isSVMSpokePoolClient,
|
|
16
|
+
} from "./SpokePoolClient";
|
|
10
17
|
export * as BundleDataClient from "./BundleDataClient";
|
|
11
18
|
export * as mocks from "./mocks";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SVMProvider } from "../../arch/svm";
|
|
2
2
|
import { toBN, dedupArray, parseUnits } from "../../utils";
|
|
3
|
-
import {
|
|
3
|
+
import { SvmGasPriceEstimate } from "../types";
|
|
4
4
|
import { GasPriceEstimateOptions } from "../oracle";
|
|
5
5
|
import { CompilableTransactionMessage, TransactionMessageBytesBase64, compileTransaction } from "@solana/kit";
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@ import { CompilableTransactionMessage, TransactionMessageBytesBase64, compileTra
|
|
|
8
8
|
* @notice Returns result of getFeeForMessage and getRecentPrioritizationFees RPC calls.
|
|
9
9
|
* @returns GasPriceEstimate
|
|
10
10
|
*/
|
|
11
|
-
export async function messageFee(provider: SVMProvider, opts: GasPriceEstimateOptions): Promise<
|
|
11
|
+
export async function messageFee(provider: SVMProvider, opts: GasPriceEstimateOptions): Promise<SvmGasPriceEstimate> {
|
|
12
12
|
const { unsignedTx: _unsignedTx } = opts;
|
|
13
13
|
|
|
14
14
|
// Cast the opaque unsignedTx type to a solana-kit CompilableTransactionMessage.
|
|
@@ -2,9 +2,9 @@ import assert from "assert";
|
|
|
2
2
|
import { Transport } from "viem";
|
|
3
3
|
import { providers } from "ethers";
|
|
4
4
|
import { CHAIN_IDs } from "../constants";
|
|
5
|
-
import { BigNumber, chainIsOPStack, fixedPointAdjustment, toBNWei } from "../utils";
|
|
5
|
+
import { BigNumber, chainIsOPStack, fixedPointAdjustment, isEvmProvider, toBNWei } from "../utils";
|
|
6
6
|
import { SVMProvider as SolanaProvider } from "../arch/svm";
|
|
7
|
-
import { GasPriceEstimate } from "./types";
|
|
7
|
+
import { EvmGasPriceEstimate, GasPriceEstimate, SvmGasPriceEstimate } from "./types";
|
|
8
8
|
import { getPublicClient } from "./util";
|
|
9
9
|
import * as arbitrum from "./adapters/arbitrum";
|
|
10
10
|
import * as ethereum from "./adapters/ethereum";
|
|
@@ -34,10 +34,22 @@ const GAS_PRICE_ESTIMATE_DEFAULTS = {
|
|
|
34
34
|
// Chains that use the Viem gas price oracle.
|
|
35
35
|
const VIEM_CHAINS = [CHAIN_IDs.LINEA];
|
|
36
36
|
|
|
37
|
+
// Overload For EVM providers
|
|
38
|
+
export async function getGasPriceEstimate(
|
|
39
|
+
provider: providers.Provider,
|
|
40
|
+
opts?: Partial<GasPriceEstimateOptions>
|
|
41
|
+
): Promise<EvmGasPriceEstimate>;
|
|
42
|
+
|
|
43
|
+
// Overload For SVM providers
|
|
44
|
+
export async function getGasPriceEstimate(
|
|
45
|
+
provider: SolanaProvider,
|
|
46
|
+
opts?: Partial<GasPriceEstimateOptions>
|
|
47
|
+
): Promise<SvmGasPriceEstimate>;
|
|
48
|
+
|
|
37
49
|
/**
|
|
38
50
|
* Provide an estimate for the current gas price for a particular chain.
|
|
39
51
|
* @param provider A valid ethers provider.
|
|
40
|
-
* @param {
|
|
52
|
+
* @param {GasPriceEstimateOptions} opts optional parameters.
|
|
41
53
|
* @returns An object of type GasPriceEstimate.
|
|
42
54
|
*/
|
|
43
55
|
export async function getGasPriceEstimate(
|
|
@@ -56,7 +68,7 @@ export async function getGasPriceEstimate(
|
|
|
56
68
|
);
|
|
57
69
|
|
|
58
70
|
// Exit here if we need to estimate on Solana.
|
|
59
|
-
if (!(provider
|
|
71
|
+
if (!isEvmProvider(provider)) {
|
|
60
72
|
const optsWithDefaults: GasPriceEstimateOptions = {
|
|
61
73
|
...GAS_PRICE_ESTIMATE_DEFAULTS,
|
|
62
74
|
baseFeeMultiplier,
|
|
@@ -68,7 +80,6 @@ export async function getGasPriceEstimate(
|
|
|
68
80
|
}
|
|
69
81
|
|
|
70
82
|
// Cast the provider to an ethers provider, which should be given to the oracle when querying an EVM network.
|
|
71
|
-
provider = provider as providers.Provider;
|
|
72
83
|
const chainId = opts.chainId ?? (await provider.getNetwork()).chainId;
|
|
73
84
|
const optsWithDefaults: GasPriceEstimateOptions = {
|
|
74
85
|
...GAS_PRICE_ESTIMATE_DEFAULTS,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Chain, type Transport, PublicClient, FeeValuesEIP1559 } from "viem";
|
|
2
|
-
import { BigNumber } from "../utils";
|
|
2
|
+
import { BigNumber, isDefined } from "../utils";
|
|
3
3
|
|
|
4
4
|
export type InternalGasPriceEstimate = FeeValuesEIP1559;
|
|
5
5
|
export type GasPriceEstimate = EvmGasPriceEstimate | SvmGasPriceEstimate;
|
|
@@ -17,3 +17,13 @@ export type SvmGasPriceEstimate = {
|
|
|
17
17
|
export interface GasPriceFeed {
|
|
18
18
|
(provider: PublicClient<Transport, Chain>, chainId: number): Promise<InternalGasPriceEstimate>;
|
|
19
19
|
}
|
|
20
|
+
|
|
21
|
+
export function isEVMGasPrice(gasPrice: GasPriceEstimate): gasPrice is EvmGasPriceEstimate {
|
|
22
|
+
const { maxFeePerGas, maxPriorityFeePerGas } = gasPrice as EvmGasPriceEstimate;
|
|
23
|
+
return isDefined(maxFeePerGas) && isDefined(maxPriorityFeePerGas);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function isSVMGasPrice(gasPrice: GasPriceEstimate): gasPrice is SvmGasPriceEstimate {
|
|
27
|
+
const { baseFee, microLamportsPerComputeUnit } = gasPrice as SvmGasPriceEstimate;
|
|
28
|
+
return isDefined(baseFee) && isDefined(microLamportsPerComputeUnit);
|
|
29
|
+
}
|
package/src/utils/TypeGuards.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { providers } from "ethers";
|
|
2
|
+
import { SVMProvider } from "../arch/svm/types";
|
|
3
|
+
|
|
1
4
|
export function isPromiseFulfilled<T>(
|
|
2
5
|
promiseSettledResult: PromiseSettledResult<T>
|
|
3
6
|
): promiseSettledResult is PromiseFulfilledResult<T> {
|
|
@@ -13,3 +16,7 @@ export function isPromiseRejected<T>(
|
|
|
13
16
|
export function isDefined<T>(input: T | null | undefined): input is T {
|
|
14
17
|
return input !== null && input !== undefined;
|
|
15
18
|
}
|
|
19
|
+
|
|
20
|
+
export function isEvmProvider(provider: providers.Provider | SVMProvider): provider is providers.Provider {
|
|
21
|
+
return provider instanceof providers.Provider;
|
|
22
|
+
}
|