@across-protocol/sdk 4.2.2-alpha.0 → 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 +15 -0
- package/dist/cjs/arch/svm/BlockUtils.js +180 -0
- package/dist/cjs/arch/svm/BlockUtils.js.map +1 -0
- package/dist/cjs/arch/svm/index.d.ts +1 -0
- package/dist/cjs/arch/svm/index.js +1 -0
- package/dist/cjs/arch/svm/index.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +1 -1
- package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js +2 -1
- package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +3 -3
- package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js +19 -18
- package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.d.ts +3 -4
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js +13 -5
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/index.d.ts +3 -3
- package/dist/cjs/clients/SpokePoolClient/index.js +5 -5
- package/dist/cjs/clients/index.d.ts +1 -1
- package/dist/cjs/clients/index.js +4 -2
- package/dist/cjs/clients/index.js.map +1 -1
- package/dist/cjs/clients/mocks/MockSpokePoolClient.d.ts +11 -5
- package/dist/cjs/clients/mocks/MockSpokePoolClient.js +35 -18
- package/dist/cjs/clients/mocks/MockSpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.d.ts +2 -2
- package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.js +1 -1
- package/dist/cjs/constants.d.ts +1 -1
- package/dist/cjs/constants.js +3 -1
- package/dist/cjs/constants.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/interfaces/SpokePool.d.ts +3 -1
- package/dist/cjs/interfaces/SpokePool.js.map +1 -1
- package/dist/cjs/providers/infura.js +1 -0
- package/dist/cjs/providers/infura.js.map +1 -1
- package/dist/cjs/utils/BlockFinder.d.ts +0 -1
- package/dist/cjs/utils/BlockFinder.js.map +1 -1
- package/dist/cjs/utils/NetworkUtils.d.ts +0 -2
- package/dist/cjs/utils/NetworkUtils.js +18 -26
- package/dist/cjs/utils/NetworkUtils.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 +25 -0
- package/dist/esm/arch/svm/BlockUtils.js +207 -0
- package/dist/esm/arch/svm/BlockUtils.js.map +1 -0
- package/dist/esm/arch/svm/index.d.ts +1 -0
- package/dist/esm/arch/svm/index.js +1 -0
- package/dist/esm/arch/svm/index.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/BundleDataClient.js +2 -2
- package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js +3 -2
- package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +3 -3
- package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js +19 -18
- package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/SpokePoolClient.d.ts +3 -4
- package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js +13 -5
- package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/index.d.ts +3 -3
- package/dist/esm/clients/SpokePoolClient/index.js +4 -4
- 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/clients/mocks/MockSpokePoolClient.d.ts +11 -5
- package/dist/esm/clients/mocks/MockSpokePoolClient.js +38 -21
- package/dist/esm/clients/mocks/MockSpokePoolClient.js.map +1 -1
- package/dist/esm/clients/mocks/MockSvmSpokePoolClient.d.ts +2 -2
- package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js +2 -2
- package/dist/esm/constants.d.ts +1 -1
- package/dist/esm/constants.js +1 -1
- package/dist/esm/constants.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/interfaces/SpokePool.d.ts +3 -1
- package/dist/esm/interfaces/SpokePool.js.map +1 -1
- package/dist/esm/providers/infura.js +1 -0
- package/dist/esm/providers/infura.js.map +1 -1
- package/dist/esm/utils/BlockFinder.d.ts +0 -1
- package/dist/esm/utils/BlockFinder.js.map +1 -1
- package/dist/esm/utils/NetworkUtils.d.ts +0 -12
- package/dist/esm/utils/NetworkUtils.js +5 -19
- package/dist/esm/utils/NetworkUtils.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 +26 -0
- package/dist/types/arch/svm/BlockUtils.d.ts.map +1 -0
- package/dist/types/arch/svm/index.d.ts +1 -0
- package/dist/types/arch/svm/index.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +3 -3
- package/dist/types/clients/SpokePoolClient/SVMSpokePoolClient.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts +3 -4
- package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient/index.d.ts +3 -3
- package/dist/types/clients/index.d.ts +1 -1
- package/dist/types/clients/index.d.ts.map +1 -1
- package/dist/types/clients/mocks/MockSpokePoolClient.d.ts +11 -5
- package/dist/types/clients/mocks/MockSpokePoolClient.d.ts.map +1 -1
- package/dist/types/clients/mocks/MockSvmSpokePoolClient.d.ts +2 -2
- package/dist/types/constants.d.ts +1 -1
- package/dist/types/constants.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/interfaces/SpokePool.d.ts +3 -1
- package/dist/types/interfaces/SpokePool.d.ts.map +1 -1
- package/dist/types/providers/infura.d.ts.map +1 -1
- package/dist/types/utils/BlockFinder.d.ts +0 -1
- package/dist/types/utils/BlockFinder.d.ts.map +1 -1
- package/dist/types/utils/NetworkUtils.d.ts +0 -12
- package/dist/types/utils/NetworkUtils.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 +166 -0
- package/src/arch/svm/index.ts +1 -0
- package/src/clients/BundleDataClient/BundleDataClient.ts +2 -2
- package/src/clients/SpokePoolClient/EVMSpokePoolClient.ts +3 -1
- package/src/clients/SpokePoolClient/SVMSpokePoolClient.ts +6 -4
- package/src/clients/SpokePoolClient/SpokePoolClient.ts +18 -8
- package/src/clients/SpokePoolClient/index.ts +4 -4
- package/src/clients/index.ts +8 -1
- package/src/clients/mocks/MockSpokePoolClient.ts +66 -36
- package/src/clients/mocks/MockSvmSpokePoolClient.ts +2 -2
- package/src/constants.ts +2 -0
- package/src/gasPriceOracle/adapters/solana.ts +2 -2
- package/src/gasPriceOracle/oracle.ts +16 -5
- package/src/gasPriceOracle/types.ts +11 -1
- package/src/interfaces/SpokePool.ts +4 -1
- package/src/providers/infura.ts +1 -0
- package/src/utils/BlockFinder.ts +0 -1
- package/src/utils/NetworkUtils.ts +13 -21
- package/src/utils/TypeGuards.ts +7 -0
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getOriginFromURL = exports.chainRequiresL1ToL2Finalization = exports.chainIsCCTPEnabled = exports.chainIsSvm = exports.chainIsEvm = exports.chainIsL1 = exports.chainIsBSC = exports.chainIsLinea = exports.
|
|
4
|
-
var constants_1 = require("
|
|
5
|
-
var constants_2 = require("../constants");
|
|
3
|
+
exports.getOriginFromURL = exports.chainRequiresL1ToL2Finalization = exports.chainIsCCTPEnabled = exports.chainIsSvm = exports.chainIsEvm = exports.chainIsL1 = exports.chainIsBSC = exports.chainIsLinea = exports.chainIsArbitrum = exports.chainIsOrbit = exports.chainIsZkStack = exports.chainIsOPStack = exports.chainIsMatic = exports.chainIsTestnet = exports.chainIsProd = exports.getNativeTokenSymbol = exports.getNetworkName = exports.hreNetworks = void 0;
|
|
4
|
+
var constants_1 = require("../constants");
|
|
6
5
|
exports.hreNetworks = {
|
|
7
6
|
666: "Hardhat1",
|
|
8
7
|
1337: "Hardhat2",
|
|
@@ -11,78 +10,71 @@ exports.hreNetworks = {
|
|
|
11
10
|
function getNetworkName(networkId) {
|
|
12
11
|
var _a, _b, _c;
|
|
13
12
|
networkId = Number(networkId);
|
|
14
|
-
return (_c = (_b = (_a =
|
|
13
|
+
return (_c = (_b = (_a = constants_1.PUBLIC_NETWORKS[networkId]) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : exports.hreNetworks[networkId]) !== null && _c !== void 0 ? _c : "unknown";
|
|
15
14
|
}
|
|
16
15
|
exports.getNetworkName = getNetworkName;
|
|
17
16
|
function getNativeTokenSymbol(chainId) {
|
|
18
17
|
var _a, _b;
|
|
19
|
-
return (_b = (_a =
|
|
18
|
+
return (_b = (_a = constants_1.PUBLIC_NETWORKS[Number(chainId)]) === null || _a === void 0 ? void 0 : _a.nativeToken) !== null && _b !== void 0 ? _b : "ETH";
|
|
20
19
|
}
|
|
21
20
|
exports.getNativeTokenSymbol = getNativeTokenSymbol;
|
|
22
21
|
function chainIsProd(chainId) {
|
|
23
|
-
return Object.values(
|
|
22
|
+
return Object.values(constants_1.MAINNET_CHAIN_IDs).includes(chainId);
|
|
24
23
|
}
|
|
25
24
|
exports.chainIsProd = chainIsProd;
|
|
26
25
|
function chainIsTestnet(chainId) {
|
|
27
|
-
return Object.values(
|
|
26
|
+
return Object.values(constants_1.TESTNET_CHAIN_IDs).includes(chainId);
|
|
28
27
|
}
|
|
29
28
|
exports.chainIsTestnet = chainIsTestnet;
|
|
30
29
|
function chainIsMatic(chainId) {
|
|
31
|
-
return [
|
|
30
|
+
return [constants_1.CHAIN_IDs.POLYGON, constants_1.CHAIN_IDs.POLYGON_AMOY].includes(chainId);
|
|
32
31
|
}
|
|
33
32
|
exports.chainIsMatic = chainIsMatic;
|
|
34
33
|
function chainIsOPStack(chainId) {
|
|
35
34
|
var _a;
|
|
36
|
-
return ((_a =
|
|
35
|
+
return ((_a = constants_1.PUBLIC_NETWORKS[chainId]) === null || _a === void 0 ? void 0 : _a.family) === constants_1.ChainFamily.OP_STACK;
|
|
37
36
|
}
|
|
38
37
|
exports.chainIsOPStack = chainIsOPStack;
|
|
39
38
|
function chainIsZkStack(chainId) {
|
|
40
39
|
var _a;
|
|
41
|
-
return ((_a =
|
|
40
|
+
return ((_a = constants_1.PUBLIC_NETWORKS[chainId]) === null || _a === void 0 ? void 0 : _a.family) === constants_1.ChainFamily.ZK_STACK;
|
|
42
41
|
}
|
|
43
42
|
exports.chainIsZkStack = chainIsZkStack;
|
|
44
43
|
function chainIsOrbit(chainId) {
|
|
45
44
|
var _a;
|
|
46
|
-
return ((_a =
|
|
45
|
+
return ((_a = constants_1.PUBLIC_NETWORKS[chainId]) === null || _a === void 0 ? void 0 : _a.family) === constants_1.ChainFamily.ORBIT;
|
|
47
46
|
}
|
|
48
47
|
exports.chainIsOrbit = chainIsOrbit;
|
|
49
48
|
function chainIsArbitrum(chainId) {
|
|
50
|
-
return [
|
|
49
|
+
return [constants_1.CHAIN_IDs.ARBITRUM, constants_1.CHAIN_IDs.ARBITRUM_SEPOLIA].includes(chainId);
|
|
51
50
|
}
|
|
52
51
|
exports.chainIsArbitrum = chainIsArbitrum;
|
|
53
|
-
function chainIsAlephZero(chainId) {
|
|
54
|
-
return [constants_2.CHAIN_IDs.ALEPH_ZERO].includes(chainId);
|
|
55
|
-
}
|
|
56
|
-
exports.chainIsAlephZero = chainIsAlephZero;
|
|
57
|
-
function chainIsLens(chainId) {
|
|
58
|
-
return [constants_2.CHAIN_IDs.LENS_SEPOLIA].includes(chainId);
|
|
59
|
-
}
|
|
60
|
-
exports.chainIsLens = chainIsLens;
|
|
61
52
|
function chainIsLinea(chainId) {
|
|
62
|
-
return [
|
|
53
|
+
return [constants_1.CHAIN_IDs.LINEA].includes(chainId);
|
|
63
54
|
}
|
|
64
55
|
exports.chainIsLinea = chainIsLinea;
|
|
65
56
|
function chainIsBSC(chainId) {
|
|
66
|
-
return [
|
|
57
|
+
return [constants_1.CHAIN_IDs.BSC].includes(chainId);
|
|
67
58
|
}
|
|
68
59
|
exports.chainIsBSC = chainIsBSC;
|
|
69
60
|
function chainIsL1(chainId) {
|
|
70
|
-
return [
|
|
61
|
+
return [constants_1.CHAIN_IDs.MAINNET, constants_1.CHAIN_IDs.SEPOLIA].includes(chainId);
|
|
71
62
|
}
|
|
72
63
|
exports.chainIsL1 = chainIsL1;
|
|
73
64
|
function chainIsEvm(chainId) {
|
|
74
65
|
var _a;
|
|
75
|
-
return ((_a =
|
|
66
|
+
return ((_a = constants_1.PUBLIC_NETWORKS[chainId]) === null || _a === void 0 ? void 0 : _a.family) !== constants_1.ChainFamily.SVM;
|
|
76
67
|
}
|
|
77
68
|
exports.chainIsEvm = chainIsEvm;
|
|
78
69
|
function chainIsSvm(chainId) {
|
|
79
70
|
var _a;
|
|
80
|
-
return ((_a =
|
|
71
|
+
return ((_a = constants_1.PUBLIC_NETWORKS[chainId]) === null || _a === void 0 ? void 0 : _a.family) === constants_1.ChainFamily.SVM;
|
|
81
72
|
}
|
|
82
73
|
exports.chainIsSvm = chainIsSvm;
|
|
83
74
|
function chainIsCCTPEnabled(chainId) {
|
|
84
75
|
var _a;
|
|
85
|
-
|
|
76
|
+
var cctpExceptions = [];
|
|
77
|
+
return ((_a = constants_1.PRODUCTION_NETWORKS[chainId]) === null || _a === void 0 ? void 0 : _a.cctpDomain) !== constants_1.CCTP_NO_DOMAIN && !cctpExceptions.includes(chainId);
|
|
86
78
|
}
|
|
87
79
|
exports.chainIsCCTPEnabled = chainIsCCTPEnabled;
|
|
88
80
|
function chainRequiresL1ToL2Finalization(chainId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkUtils.js","sourceRoot":"","sources":["../../../src/utils/NetworkUtils.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"NetworkUtils.js","sourceRoot":"","sources":["../../../src/utils/NetworkUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { BlockFinder, type Block, type BlockTimeAverage, type BlockFinderHints } from "../../utils/BlockFinder";
|
|
2
|
+
import { SVMProvider } from "./";
|
|
3
|
+
interface SVMBlock extends Block {
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* @description Compute the average slot time over a slot range.
|
|
7
|
+
* @dev Solana slots are all defined to be ~400ms away from each other += a small deviation, so we can hardcode this.
|
|
8
|
+
* @returns Average number of seconds per slot
|
|
9
|
+
*/
|
|
10
|
+
export declare function averageBlockTime(): Pick<BlockTimeAverage, "average" | "blockRange">;
|
|
11
|
+
export declare class SVMBlockFinder extends BlockFinder<SVMBlock> {
|
|
12
|
+
private readonly provider;
|
|
13
|
+
private readonly blocks;
|
|
14
|
+
constructor(provider: SVMProvider, blocks?: SVMBlock[]);
|
|
15
|
+
/**
|
|
16
|
+
* @notice Gets the latest slot whose timestamp is <= the provided timestamp.
|
|
17
|
+
* @param number Timestamp timestamp to search.
|
|
18
|
+
* @param hints Optional low and high slot to bound the search space.
|
|
19
|
+
*/
|
|
20
|
+
getBlockForTimestamp(timestamp: number | string, hints?: BlockFinderHints): Promise<SVMBlock>;
|
|
21
|
+
private getLatestBlock;
|
|
22
|
+
private getBlock;
|
|
23
|
+
private findBlock;
|
|
24
|
+
}
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
import { __awaiter, __extends, __generator } from "tslib";
|
|
3
|
+
import assert from "assert";
|
|
4
|
+
import { clamp, sortedIndexBy } from "lodash";
|
|
5
|
+
import { BlockFinder } from "../../utils/BlockFinder";
|
|
6
|
+
import { isDefined } from "../../utils/TypeGuards";
|
|
7
|
+
import { getCurrentTime } from "../../utils/TimeUtils";
|
|
8
|
+
import { CHAIN_IDs } from "../../constants";
|
|
9
|
+
var now = getCurrentTime();
|
|
10
|
+
var averageBlockTimes = (_a = {},
|
|
11
|
+
_a[CHAIN_IDs.SOLANA] = { average: 0.4, timestamp: now, blockRange: 1 },
|
|
12
|
+
_a);
|
|
13
|
+
/**
|
|
14
|
+
* @description Compute the average slot time over a slot range.
|
|
15
|
+
* @dev Solana slots are all defined to be ~400ms away from each other += a small deviation, so we can hardcode this.
|
|
16
|
+
* @returns Average number of seconds per slot
|
|
17
|
+
*/
|
|
18
|
+
export function averageBlockTime() {
|
|
19
|
+
// @todo This may need to be expanded to work without assuming that chainId = CHAIN_IDs.SOLANA.
|
|
20
|
+
return averageBlockTimes[CHAIN_IDs.SOLANA];
|
|
21
|
+
}
|
|
22
|
+
function estimateBlocksElapsed(seconds, cushionPercentage, _provider) {
|
|
23
|
+
if (cushionPercentage === void 0) { cushionPercentage = 0.0; }
|
|
24
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
25
|
+
var cushionMultiplier, average;
|
|
26
|
+
return __generator(this, function (_a) {
|
|
27
|
+
switch (_a.label) {
|
|
28
|
+
case 0:
|
|
29
|
+
cushionMultiplier = cushionPercentage + 1.0;
|
|
30
|
+
return [4 /*yield*/, averageBlockTime()];
|
|
31
|
+
case 1:
|
|
32
|
+
average = (_a.sent()).average;
|
|
33
|
+
return [2 /*return*/, Math.floor((seconds * cushionMultiplier) / average)];
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
var SVMBlockFinder = /** @class */ (function (_super) {
|
|
39
|
+
__extends(SVMBlockFinder, _super);
|
|
40
|
+
function SVMBlockFinder(provider, blocks) {
|
|
41
|
+
if (blocks === void 0) { blocks = []; }
|
|
42
|
+
var _this = _super.call(this) || this;
|
|
43
|
+
_this.provider = provider;
|
|
44
|
+
_this.blocks = blocks;
|
|
45
|
+
return _this;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @notice Gets the latest slot whose timestamp is <= the provided timestamp.
|
|
49
|
+
* @param number Timestamp timestamp to search.
|
|
50
|
+
* @param hints Optional low and high slot to bound the search space.
|
|
51
|
+
*/
|
|
52
|
+
SVMBlockFinder.prototype.getBlockForTimestamp = function (timestamp, hints) {
|
|
53
|
+
if (hints === void 0) { hints = {}; }
|
|
54
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
55
|
+
var block, initialBlock, cushion, incrementDistance, _a, _b, multiplier, distance, blockNumber, block, index;
|
|
56
|
+
var _this = this;
|
|
57
|
+
return __generator(this, function (_c) {
|
|
58
|
+
switch (_c.label) {
|
|
59
|
+
case 0:
|
|
60
|
+
timestamp = Number(timestamp);
|
|
61
|
+
assert(timestamp !== undefined && timestamp !== null, "timestamp must be provided");
|
|
62
|
+
if (!(this.blocks.length === 0 || this.blocks[this.blocks.length - 1].timestamp < timestamp)) return [3 /*break*/, 2];
|
|
63
|
+
return [4 /*yield*/, this.getLatestBlock()];
|
|
64
|
+
case 1:
|
|
65
|
+
block = _c.sent();
|
|
66
|
+
if (timestamp >= block.timestamp)
|
|
67
|
+
return [2 /*return*/, block];
|
|
68
|
+
_c.label = 2;
|
|
69
|
+
case 2:
|
|
70
|
+
// Prime the BlockFinder cache with any supplied hints.
|
|
71
|
+
// If the hint is accurate, then this will bypass the subsequent estimation.
|
|
72
|
+
return [4 /*yield*/, Promise.all(Object.values(hints)
|
|
73
|
+
.filter(isDefined)
|
|
74
|
+
.map(function (blockNumber) { return _this.getBlock(blockNumber); }))];
|
|
75
|
+
case 3:
|
|
76
|
+
// Prime the BlockFinder cache with any supplied hints.
|
|
77
|
+
// If the hint is accurate, then this will bypass the subsequent estimation.
|
|
78
|
+
_c.sent();
|
|
79
|
+
if (!(this.blocks[0].timestamp > timestamp)) return [3 /*break*/, 8];
|
|
80
|
+
initialBlock = this.blocks[0];
|
|
81
|
+
cushion = 1;
|
|
82
|
+
_b = (_a = Math).max;
|
|
83
|
+
// Ensure the increment slot distance is _at least_ a single slot to prevent an infinite loop.
|
|
84
|
+
return [4 /*yield*/, estimateBlocksElapsed(initialBlock.timestamp - timestamp, cushion, this.provider)];
|
|
85
|
+
case 4:
|
|
86
|
+
incrementDistance = _b.apply(_a, [
|
|
87
|
+
// Ensure the increment slot distance is _at least_ a single slot to prevent an infinite loop.
|
|
88
|
+
_c.sent(), 1]);
|
|
89
|
+
multiplier = 1;
|
|
90
|
+
_c.label = 5;
|
|
91
|
+
case 5:
|
|
92
|
+
distance = multiplier * incrementDistance;
|
|
93
|
+
blockNumber = Math.max(0, initialBlock.number - distance);
|
|
94
|
+
return [4 /*yield*/, this.getBlock(blockNumber)];
|
|
95
|
+
case 6:
|
|
96
|
+
block = _c.sent();
|
|
97
|
+
if (block.timestamp <= timestamp)
|
|
98
|
+
return [3 /*break*/, 8]; // Found an earlier block.
|
|
99
|
+
assert(blockNumber > 0, "timestamp is before block 0");
|
|
100
|
+
_c.label = 7;
|
|
101
|
+
case 7:
|
|
102
|
+
multiplier++;
|
|
103
|
+
return [3 /*break*/, 5];
|
|
104
|
+
case 8:
|
|
105
|
+
index = sortedIndexBy(this.blocks, { timestamp: timestamp }, "timestamp");
|
|
106
|
+
return [2 /*return*/, this.findBlock(this.blocks[index - 1], this.blocks[index], timestamp)];
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
};
|
|
111
|
+
// Grabs the most recent slot and caches it.
|
|
112
|
+
SVMBlockFinder.prototype.getLatestBlock = function () {
|
|
113
|
+
var _a;
|
|
114
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
115
|
+
var latestSlot, estimatedSlotTime, block, index;
|
|
116
|
+
return __generator(this, function (_b) {
|
|
117
|
+
switch (_b.label) {
|
|
118
|
+
case 0: return [4 /*yield*/, this.provider.getSlot().send()];
|
|
119
|
+
case 1:
|
|
120
|
+
latestSlot = _b.sent();
|
|
121
|
+
return [4 /*yield*/, this.provider.getBlockTime(latestSlot).send()];
|
|
122
|
+
case 2:
|
|
123
|
+
estimatedSlotTime = _b.sent();
|
|
124
|
+
block = {
|
|
125
|
+
timestamp: Number(estimatedSlotTime),
|
|
126
|
+
number: Number(latestSlot),
|
|
127
|
+
};
|
|
128
|
+
index = sortedIndexBy(this.blocks, block, "number");
|
|
129
|
+
if (((_a = this.blocks[index]) === null || _a === void 0 ? void 0 : _a.number) !== block.number)
|
|
130
|
+
this.blocks.splice(index, 0, block);
|
|
131
|
+
return [2 /*return*/, this.blocks[index]];
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
};
|
|
136
|
+
// Grabs the slot for a particular number and caches it.
|
|
137
|
+
SVMBlockFinder.prototype.getBlock = function (number) {
|
|
138
|
+
var _a, _b;
|
|
139
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
140
|
+
var index, estimatedSlotTime, block;
|
|
141
|
+
return __generator(this, function (_c) {
|
|
142
|
+
switch (_c.label) {
|
|
143
|
+
case 0:
|
|
144
|
+
index = sortedIndexBy(this.blocks, { number: number }, "number");
|
|
145
|
+
if (((_a = this.blocks[index]) === null || _a === void 0 ? void 0 : _a.number) === number)
|
|
146
|
+
return [2 /*return*/, this.blocks[index]]; // Return early if block already exists.
|
|
147
|
+
return [4 /*yield*/, this.provider.getBlockTime(BigInt(number)).send()];
|
|
148
|
+
case 1:
|
|
149
|
+
estimatedSlotTime = _c.sent();
|
|
150
|
+
block = {
|
|
151
|
+
timestamp: Number(estimatedSlotTime),
|
|
152
|
+
number: number,
|
|
153
|
+
};
|
|
154
|
+
// Recompute the index after the async call since the state of this.blocks could have changed!
|
|
155
|
+
index = sortedIndexBy(this.blocks, { number: number }, "number");
|
|
156
|
+
// Rerun this check to avoid duplicate insertion.
|
|
157
|
+
if (((_b = this.blocks[index]) === null || _b === void 0 ? void 0 : _b.number) === number)
|
|
158
|
+
return [2 /*return*/, this.blocks[index]];
|
|
159
|
+
this.blocks.splice(index, 0, block); // A simple insert at index.
|
|
160
|
+
return [2 /*return*/, block];
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
};
|
|
165
|
+
// Return the latest slot, between startSlot and endSlot, whose timestamp is <= timestamp.
|
|
166
|
+
// Effectively, this is an interpolation search algorithm to minimize slot requests.
|
|
167
|
+
// Note: startSlot and endSlot _must_ be different slots.
|
|
168
|
+
SVMBlockFinder.prototype.findBlock = function (_startSlot, _endSlot, timestamp) {
|
|
169
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
170
|
+
var _a, startBlock, endBlock, totalTimeDifference, totalBlockDistance, blockPercentile, estimatedBlock, newBlock;
|
|
171
|
+
return __generator(this, function (_b) {
|
|
172
|
+
switch (_b.label) {
|
|
173
|
+
case 0:
|
|
174
|
+
_a = [_startSlot, _endSlot], startBlock = _a[0], endBlock = _a[1];
|
|
175
|
+
// In the case of equality, the endBlock is expected to be passed as the one whose timestamp === the requested
|
|
176
|
+
// timestamp.
|
|
177
|
+
if (endBlock.timestamp === timestamp)
|
|
178
|
+
return [2 /*return*/, endBlock];
|
|
179
|
+
// If there's no equality, but the blocks are adjacent, return the startBlock, since we want the returned slot's
|
|
180
|
+
// timestamp to be <= the requested timestamp.
|
|
181
|
+
if (endBlock.number === startBlock.number + 1)
|
|
182
|
+
return [2 /*return*/, startBlock];
|
|
183
|
+
assert(endBlock.number !== startBlock.number, "startBlock cannot equal endBlock");
|
|
184
|
+
assert(timestamp < endBlock.timestamp && timestamp > startBlock.timestamp, "timestamp not in between start and end blocks");
|
|
185
|
+
totalTimeDifference = endBlock.timestamp - startBlock.timestamp;
|
|
186
|
+
totalBlockDistance = endBlock.number - startBlock.number;
|
|
187
|
+
blockPercentile = (timestamp - startBlock.timestamp) / totalTimeDifference;
|
|
188
|
+
estimatedBlock = startBlock.number + Math.round(blockPercentile * totalBlockDistance);
|
|
189
|
+
return [4 /*yield*/, this.getBlock(clamp(estimatedBlock, startBlock.number + 1, endBlock.number - 1))];
|
|
190
|
+
case 1:
|
|
191
|
+
newBlock = _b.sent();
|
|
192
|
+
// Depending on whether the new slot is below or above the timestamp, narrow the search space accordingly.
|
|
193
|
+
if (newBlock.timestamp < timestamp) {
|
|
194
|
+
return [2 /*return*/, this.findBlock(newBlock, endBlock, timestamp)];
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
return [2 /*return*/, this.findBlock(startBlock, newBlock, timestamp)];
|
|
198
|
+
}
|
|
199
|
+
return [2 /*return*/];
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
});
|
|
203
|
+
};
|
|
204
|
+
return SVMBlockFinder;
|
|
205
|
+
}(BlockFinder));
|
|
206
|
+
export { SVMBlockFinder };
|
|
207
|
+
//# sourceMappingURL=BlockUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockUtils.js","sourceRoot":"","sources":["../../../../src/arch/svm/BlockUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/arch/svm/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/arch/svm/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
|
@@ -6,7 +6,7 @@ import { findFillEvent as findEvmFillEvent } from "../../arch/evm";
|
|
|
6
6
|
import { findFillEvent as findSvmFillEvent } from "../../arch/svm";
|
|
7
7
|
import { BigNumber, bnZero, queryHistoricalDepositForFill, assign, fixedPointAdjustment, isDefined, toBN, forEachAsync, getBlockRangeForChain, getImpliedBundleBlockRanges, getRelayEventKey, isSlowFill, mapAsync, bnUint32Max, isZeroValueDeposit, isZeroValueFillOrSlowFillRequest, chainIsEvm, isValidEvmAddress, duplicateEvent, invalidOutputToken, } from "../../utils";
|
|
8
8
|
import { BundleDataSS, getEndBlockBuffers, getRefundInformationFromFill, getRefundsFromBundle, getWidestPossibleExpectedBlockRange, isChainDisabled, prettyPrintV3SpokePoolEvents, verifyFillRepayment, } from "./utils";
|
|
9
|
-
import { isEVMSpokePoolClient,
|
|
9
|
+
import { isEVMSpokePoolClient, isSVMSpokePoolClient } from "../SpokePoolClient";
|
|
10
10
|
// max(uint256) - 1
|
|
11
11
|
export var INFINITE_FILL_DEADLINE = bnUint32Max;
|
|
12
12
|
// V3 dictionary helper functions
|
|
@@ -1396,7 +1396,7 @@ var BundleDataClient = /** @class */ (function () {
|
|
|
1396
1396
|
return __generator(this, function (_a) {
|
|
1397
1397
|
switch (_a.label) {
|
|
1398
1398
|
case 0:
|
|
1399
|
-
if (!
|
|
1399
|
+
if (!isSVMSpokePoolClient(spokePoolClient)) return [3 /*break*/, 2];
|
|
1400
1400
|
return [4 /*yield*/, findSvmFillEvent(deposit, spokePoolClient.chainId, spokePoolClient.svmEventsClient, spokePoolClient.deploymentBlock, spokePoolClient.latestHeightSearched)];
|
|
1401
1401
|
case 1: return [2 /*return*/, _a.sent()];
|
|
1402
1402
|
case 2:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __assign, __awaiter, __extends, __generator, __spreadArray } from "tslib";
|
|
2
2
|
import { fillStatusArray, findDepositBlock, getMaxFillDeadlineInRange as getMaxFillDeadline, getTimeAt as _getTimeAt, relayFillStatus, getTimestampForBlock as _getTimestampForBlock, } from "../../arch/evm";
|
|
3
|
-
import { BigNumber, getNetworkName, InvalidFill, isZeroAddress, toBN, } from "../../utils";
|
|
3
|
+
import { BigNumber, getNetworkName, InvalidFill, isZeroAddress, toBN, EvmAddress, } from "../../utils";
|
|
4
4
|
import { logToSortableEvent, paginatedEventQuery, sortEventsAscendingInPlace, spreadEventWithBlockNumber, } from "../../utils/EventUtils";
|
|
5
5
|
import { isUpdateFailureReason } from "../BaseAbstractClient";
|
|
6
6
|
import { knownEventNames, SpokePoolClient } from "./SpokePoolClient";
|
|
@@ -13,6 +13,7 @@ var EVMSpokePoolClient = /** @class */ (function (_super) {
|
|
|
13
13
|
if (eventSearchConfig === void 0) { eventSearchConfig = { from: 0, maxLookBack: 0 }; }
|
|
14
14
|
var _this = _super.call(this, logger, hubPoolClient, chainId, deploymentBlock, eventSearchConfig) || this;
|
|
15
15
|
_this.spokePool = spokePool;
|
|
16
|
+
_this.spokePoolAddress = EvmAddress.from(spokePool.address);
|
|
16
17
|
return _this;
|
|
17
18
|
}
|
|
18
19
|
EVMSpokePoolClient.prototype.relayFillStatus = function (relayData, atHeight) {
|
|
@@ -162,7 +163,7 @@ var EVMSpokePoolClient = /** @class */ (function (_super) {
|
|
|
162
163
|
deposit.toLiteChain = this.isDestinationLiteChain(deposit);
|
|
163
164
|
this.logger.debug({
|
|
164
165
|
at: "SpokePoolClient#findDeposit",
|
|
165
|
-
message: "Located deposit outside of SpokePoolClient's search range",
|
|
166
|
+
message: "Located V3 deposit outside of SpokePoolClient's search range",
|
|
166
167
|
deposit: deposit,
|
|
167
168
|
elapsedMs: tStop - tStart,
|
|
168
169
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EVMSpokePoolClient.js","sourceRoot":"","sources":["../../../../src/clients/SpokePoolClient/EVMSpokePoolClient.ts"],"names":[],"mappings":";AACA,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,yBAAyB,IAAI,kBAAkB,EAC/C,SAAS,IAAI,UAAU,EACvB,eAAe,EACf,oBAAoB,IAAI,qBAAqB,GAC9C,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,SAAS,EAET,cAAc,EACd,WAAW,EACX,aAAa,EAEb,IAAI,
|
|
1
|
+
{"version":3,"file":"EVMSpokePoolClient.js","sourceRoot":"","sources":["../../../../src/clients/SpokePoolClient/EVMSpokePoolClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { SpokePoolClient, SpokePoolUpdate } from "./SpokePoolClient";
|
|
|
9
9
|
* SvmSpokePoolClient is a client for the SVM SpokePool program. It extends the base SpokePoolClient
|
|
10
10
|
* and implements the abstract methods required for interacting with an SVM Spoke Pool.
|
|
11
11
|
*/
|
|
12
|
-
export declare class
|
|
12
|
+
export declare class SVMSpokePoolClient extends SpokePoolClient {
|
|
13
13
|
svmEventsClient: SvmCpiEventsClient;
|
|
14
14
|
protected programId: Address;
|
|
15
15
|
protected statePda: Address;
|
|
@@ -22,12 +22,12 @@ export declare class SvmSpokePoolClient extends SpokePoolClient {
|
|
|
22
22
|
* Factory method to asynchronously create an instance of SvmSpokePoolClient.
|
|
23
23
|
*/
|
|
24
24
|
static create(logger: winston.Logger, hubPoolClient: HubPoolClient | null, chainId: number, deploymentSlot: bigint, eventSearchConfig: MakeOptional<EventSearchConfig, "to"> | undefined, // Provide default
|
|
25
|
-
rpc: Rpc<SolanaRpcApiFromTransport<RpcTransport>>): Promise<
|
|
25
|
+
rpc: Rpc<SolanaRpcApiFromTransport<RpcTransport>>): Promise<SVMSpokePoolClient>;
|
|
26
26
|
/**
|
|
27
27
|
* Factory method to asynchronously create an instance of SvmSpokePoolClient with an existing event client.
|
|
28
28
|
*/
|
|
29
29
|
static createWithExistingEventClient(logger: winston.Logger, hubPoolClient: HubPoolClient | null, chainId: number, deploymentSlot: bigint, eventSearchConfig: MakeOptional<EventSearchConfig, "to"> | undefined, // Provide default
|
|
30
|
-
eventClient: SvmCpiEventsClient): Promise<
|
|
30
|
+
eventClient: SvmCpiEventsClient): Promise<SVMSpokePoolClient>;
|
|
31
31
|
_queryableEventNames(): string[];
|
|
32
32
|
/**
|
|
33
33
|
* Performs an update to refresh the state of this client by querying SVM events.
|