@hyperlane-xyz/sdk 13.2.1 → 13.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/consts/multisigIsm.d.ts.map +1 -1
- package/dist/consts/multisigIsm.js +52 -90
- package/dist/consts/multisigIsm.js.map +1 -1
- package/dist/core/CoreDeployer.hardhat-test.js +5 -0
- package/dist/core/CoreDeployer.hardhat-test.js.map +1 -1
- package/dist/core/CosmosNativeCoreModule.d.ts.map +1 -1
- package/dist/core/CosmosNativeCoreModule.js +0 -1
- package/dist/core/CosmosNativeCoreModule.js.map +1 -1
- package/dist/core/CosmosNativeCoreReader.d.ts +3 -3
- package/dist/core/CosmosNativeCoreReader.d.ts.map +1 -1
- package/dist/core/CosmosNativeCoreReader.js +5 -5
- package/dist/core/CosmosNativeCoreReader.js.map +1 -1
- package/dist/core/EvmCoreModule.d.ts.map +1 -1
- package/dist/core/EvmCoreModule.hardhat-test.js +1 -2
- package/dist/core/EvmCoreModule.hardhat-test.js.map +1 -1
- package/dist/core/EvmCoreModule.js +7 -7
- package/dist/core/EvmCoreModule.js.map +1 -1
- package/dist/core/EvmCoreReader.d.ts.map +1 -1
- package/dist/core/EvmCoreReader.js +1 -1
- package/dist/core/EvmCoreReader.js.map +1 -1
- package/dist/core/EvmIcaModule.d.ts +3 -4
- package/dist/core/EvmIcaModule.d.ts.map +1 -1
- package/dist/core/EvmIcaModule.hardhat-test.js +25 -2
- package/dist/core/EvmIcaModule.hardhat-test.js.map +1 -1
- package/dist/core/EvmIcaModule.js +13 -11
- package/dist/core/EvmIcaModule.js.map +1 -1
- package/dist/core/HyperlaneRelayer.d.ts +40 -5
- package/dist/core/HyperlaneRelayer.d.ts.map +1 -1
- package/dist/core/types.d.ts +1794 -129
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +0 -1
- package/dist/core/types.js.map +1 -1
- package/dist/deploy/HyperlaneDeployer.d.ts +2 -1
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneDeployer.js +11 -8
- package/dist/deploy/HyperlaneDeployer.js.map +1 -1
- package/dist/deploy/HyperlaneProxyFactoryDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneProxyFactoryDeployer.js +10 -4
- package/dist/deploy/HyperlaneProxyFactoryDeployer.js.map +1 -1
- package/dist/deploy/contracts.js +1 -1
- package/dist/deploy/contracts.js.map +1 -1
- package/dist/deploy/proxy.d.ts +1 -1
- package/dist/deploy/proxy.d.ts.map +1 -1
- package/dist/deploy/proxy.js +4 -5
- package/dist/deploy/proxy.js.map +1 -1
- package/dist/deploy/verify/utils.d.ts +1 -0
- package/dist/deploy/verify/utils.d.ts.map +1 -1
- package/dist/deploy/verify/utils.js +8 -1
- package/dist/deploy/verify/utils.js.map +1 -1
- package/dist/fork/types.d.ts +2086 -0
- package/dist/fork/types.d.ts.map +1 -0
- package/dist/fork/types.js +142 -0
- package/dist/fork/types.js.map +1 -0
- package/dist/gas/token-prices.d.ts.map +1 -1
- package/dist/gas/token-prices.js +23 -4
- package/dist/gas/token-prices.js.map +1 -1
- package/dist/hook/CosmosNativeHookReader.d.ts +3 -3
- package/dist/hook/CosmosNativeHookReader.d.ts.map +1 -1
- package/dist/hook/CosmosNativeHookReader.js +4 -4
- package/dist/hook/CosmosNativeHookReader.js.map +1 -1
- package/dist/ica/EvmIcaReader.d.ts +2 -5
- package/dist/ica/EvmIcaReader.d.ts.map +1 -1
- package/dist/ica/EvmIcaReader.hardhat-test.js +2 -7
- package/dist/ica/EvmIcaReader.hardhat-test.js.map +1 -1
- package/dist/ica/EvmIcaReader.js +10 -44
- package/dist/ica/EvmIcaReader.js.map +1 -1
- package/dist/ica/types.d.ts +1005 -47
- package/dist/ica/types.d.ts.map +1 -1
- package/dist/ica/types.js +7 -22
- package/dist/ica/types.js.map +1 -1
- package/dist/index.d.ts +24 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -16
- package/dist/index.js.map +1 -1
- package/dist/ism/CosmosNativeIsmReader.d.ts +3 -3
- package/dist/ism/CosmosNativeIsmReader.d.ts.map +1 -1
- package/dist/ism/CosmosNativeIsmReader.js +4 -4
- package/dist/ism/CosmosNativeIsmReader.js.map +1 -1
- package/dist/ism/EvmIsmModule.hardhat-test.js +0 -5
- package/dist/ism/EvmIsmModule.hardhat-test.js.map +1 -1
- package/dist/ism/EvmIsmReader.d.ts +6 -3
- package/dist/ism/EvmIsmReader.d.ts.map +1 -1
- package/dist/ism/EvmIsmReader.js +87 -43
- package/dist/ism/EvmIsmReader.js.map +1 -1
- package/dist/ism/EvmIsmReader.test.js +36 -1
- package/dist/ism/EvmIsmReader.test.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.d.ts +0 -1
- package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.js +6 -11
- package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
- package/dist/ism/metadata/arbL2ToL1.hardhat-test.js +0 -1
- package/dist/ism/metadata/arbL2ToL1.hardhat-test.js.map +1 -1
- package/dist/ism/metadata/builder.d.ts +4 -4
- package/dist/ism/metadata/builder.d.ts.map +1 -1
- package/dist/ism/metadata/builder.hardhat-test.js +0 -1
- package/dist/ism/metadata/builder.hardhat-test.js.map +1 -1
- package/dist/ism/metadata/builder.js +7 -7
- package/dist/ism/metadata/builder.js.map +1 -1
- package/dist/ism/metadata/ccipread.d.ts +5 -4
- package/dist/ism/metadata/ccipread.d.ts.map +1 -1
- package/dist/ism/metadata/ccipread.hardhat-test.js +7 -13
- package/dist/ism/metadata/ccipread.hardhat-test.js.map +1 -1
- package/dist/ism/metadata/ccipread.js +9 -8
- package/dist/ism/metadata/ccipread.js.map +1 -1
- package/dist/ism/metadata/decode.js +2 -2
- package/dist/ism/metadata/decode.js.map +1 -1
- package/dist/ism/metadata/routing.d.ts +4 -2
- package/dist/ism/metadata/routing.d.ts.map +1 -1
- package/dist/ism/metadata/routing.js +33 -39
- package/dist/ism/metadata/routing.js.map +1 -1
- package/dist/ism/types.d.ts +77 -19
- package/dist/ism/types.d.ts.map +1 -1
- package/dist/ism/types.js +26 -12
- package/dist/ism/types.js.map +1 -1
- package/dist/ism/utils.d.ts.map +1 -1
- package/dist/ism/utils.js +12 -10
- package/dist/ism/utils.js.map +1 -1
- package/dist/middleware/account/InterchainAccount.d.ts +52 -2
- package/dist/middleware/account/InterchainAccount.d.ts.map +1 -1
- package/dist/middleware/account/InterchainAccount.js +53 -10
- package/dist/middleware/account/InterchainAccount.js.map +1 -1
- package/dist/middleware/account/InterchainAccountChecker.d.ts +3 -6
- package/dist/middleware/account/InterchainAccountChecker.d.ts.map +1 -1
- package/dist/middleware/account/InterchainAccountChecker.js +2 -17
- package/dist/middleware/account/InterchainAccountChecker.js.map +1 -1
- package/dist/middleware/account/InterchainAccountDeployer.d.ts +3 -8
- package/dist/middleware/account/InterchainAccountDeployer.d.ts.map +1 -1
- package/dist/middleware/account/InterchainAccountDeployer.js +11 -31
- package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -1
- package/dist/middleware/account/accounts.hardhat-test.js +10 -1
- package/dist/middleware/account/accounts.hardhat-test.js.map +1 -1
- package/dist/middleware/account/contracts.d.ts +1 -4
- package/dist/middleware/account/contracts.d.ts.map +1 -1
- package/dist/middleware/account/contracts.js +1 -4
- package/dist/middleware/account/contracts.js.map +1 -1
- package/dist/middleware/account/types.d.ts +2 -2
- package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.foundry-test.js +6 -0
- package/dist/providers/SmartProvider/SmartProvider.foundry-test.js.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.js +7 -3
- package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
- package/dist/providers/transactions/submitter/builder/types.d.ts +10 -10
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.d.ts +2 -3
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.d.ts.map +1 -1
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.js +20 -16
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.js.map +1 -1
- package/dist/providers/transactions/transformer/ethersV5/types.d.ts +3 -3
- package/dist/providers/transactions/transformer/types.d.ts +3 -3
- package/dist/rebalancer/types.d.ts +875 -0
- package/dist/rebalancer/types.d.ts.map +1 -0
- package/dist/rebalancer/types.js +119 -0
- package/dist/rebalancer/types.js.map +1 -0
- package/dist/router/EvmRouterReader.d.ts +18 -0
- package/dist/router/EvmRouterReader.d.ts.map +1 -0
- package/dist/router/EvmRouterReader.js +60 -0
- package/dist/router/EvmRouterReader.js.map +1 -0
- package/dist/router/HyperlaneRouterChecker.d.ts +3 -0
- package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterChecker.js +14 -4
- package/dist/router/HyperlaneRouterChecker.js.map +1 -1
- package/dist/router/types.d.ts +139 -31
- package/dist/router/types.d.ts.map +1 -1
- package/dist/router/types.js +13 -4
- package/dist/router/types.js.map +1 -1
- package/dist/token/CosmosNativeWarpRouteReader.d.ts +51 -0
- package/dist/token/CosmosNativeWarpRouteReader.d.ts.map +1 -0
- package/dist/token/CosmosNativeWarpRouteReader.js +123 -0
- package/dist/token/CosmosNativeWarpRouteReader.js.map +1 -0
- package/dist/token/EvmERC20WarpModule.d.ts +13 -0
- package/dist/token/EvmERC20WarpModule.d.ts.map +1 -1
- package/dist/token/EvmERC20WarpModule.hardhat-test.js +354 -9
- package/dist/token/EvmERC20WarpModule.hardhat-test.js.map +1 -1
- package/dist/token/EvmERC20WarpModule.js +211 -9
- package/dist/token/EvmERC20WarpModule.js.map +1 -1
- package/dist/token/EvmERC20WarpRouteReader.d.ts +7 -11
- package/dist/token/EvmERC20WarpRouteReader.d.ts.map +1 -1
- package/dist/token/EvmERC20WarpRouteReader.js +97 -45
- package/dist/token/EvmERC20WarpRouteReader.js.map +1 -1
- package/dist/token/TokenMetadataMap.d.ts +1 -2
- package/dist/token/TokenMetadataMap.d.ts.map +1 -1
- package/dist/token/TokenMetadataMap.js +2 -20
- package/dist/token/TokenMetadataMap.js.map +1 -1
- package/dist/token/TokenStandard.d.ts +5 -1
- package/dist/token/TokenStandard.d.ts.map +1 -1
- package/dist/token/TokenStandard.js +29 -1
- package/dist/token/TokenStandard.js.map +1 -1
- package/dist/token/adapters/CosmosModuleTokenAdapter.d.ts +1 -1
- package/dist/token/adapters/CosmosModuleTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/CosmosModuleTokenAdapter.js +7 -4
- package/dist/token/adapters/CosmosModuleTokenAdapter.js.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.d.ts +14 -2
- package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.js +64 -3
- package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
- package/dist/token/adapters/ITokenAdapter.d.ts +9 -1
- package/dist/token/adapters/ITokenAdapter.d.ts.map +1 -1
- package/dist/token/config.d.ts +25 -0
- package/dist/token/config.d.ts.map +1 -1
- package/dist/token/config.js +25 -0
- package/dist/token/config.js.map +1 -1
- package/dist/token/configUtils.d.ts.map +1 -1
- package/dist/token/configUtils.js +13 -3
- package/dist/token/configUtils.js.map +1 -1
- package/dist/token/configUtils.test.js +2 -2
- package/dist/token/configUtils.test.js.map +1 -1
- package/dist/token/contracts.d.ts +37 -31
- package/dist/token/contracts.d.ts.map +1 -1
- package/dist/token/contracts.js +8 -1
- package/dist/token/contracts.js.map +1 -1
- package/dist/token/deploy.d.ts +12 -5
- package/dist/token/deploy.d.ts.map +1 -1
- package/dist/token/deploy.js +140 -5
- package/dist/token/deploy.js.map +1 -1
- package/dist/token/types.d.ts +2812 -83
- package/dist/token/types.d.ts.map +1 -1
- package/dist/token/types.js +76 -5
- package/dist/token/types.js.map +1 -1
- package/dist/utils/decimals.d.ts +3 -0
- package/dist/utils/decimals.d.ts.map +1 -0
- package/dist/utils/decimals.js +34 -0
- package/dist/utils/decimals.js.map +1 -0
- package/dist/utils/decimals.test.d.ts +2 -0
- package/dist/utils/decimals.test.d.ts.map +1 -0
- package/dist/utils/decimals.test.js +173 -0
- package/dist/utils/decimals.test.js.map +1 -0
- package/dist/warp/WarpCore.d.ts.map +1 -1
- package/dist/warp/WarpCore.js +2 -1
- package/dist/warp/WarpCore.js.map +1 -1
- package/package.json +12 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.hardhat-test.js","sourceRoot":"","sources":["../../../src/ism/metadata/builder.hardhat-test.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,SAAS,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"builder.hardhat-test.js","sourceRoot":"","sources":["../../../src/ism/metadata/builder.hardhat-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,11 @@ import { HookType, } from '../../hook/types.js';
|
|
|
3
3
|
import { IsmType } from '../types.js';
|
|
4
4
|
import { AggregationMetadataBuilder } from './aggregation.js';
|
|
5
5
|
import { ArbL2ToL1MetadataBuilder } from './arbL2ToL1.js';
|
|
6
|
-
import {
|
|
6
|
+
import { OffchainLookupMetadataBuilder } from './ccipread.js';
|
|
7
7
|
import { decodeIsmMetadata } from './decode.js';
|
|
8
8
|
import { MultisigMetadataBuilder } from './multisig.js';
|
|
9
9
|
import { NullMetadataBuilder } from './null.js';
|
|
10
|
-
import {
|
|
10
|
+
import { DynamicRoutingMetadataBuilder } from './routing.js';
|
|
11
11
|
export class BaseMetadataBuilder {
|
|
12
12
|
nullMetadataBuilder;
|
|
13
13
|
multisigMetadataBuilder;
|
|
@@ -20,10 +20,10 @@ export class BaseMetadataBuilder {
|
|
|
20
20
|
constructor(core) {
|
|
21
21
|
this.multisigMetadataBuilder = new MultisigMetadataBuilder(core);
|
|
22
22
|
this.aggregationMetadataBuilder = new AggregationMetadataBuilder(this);
|
|
23
|
-
this.routingMetadataBuilder = new
|
|
23
|
+
this.routingMetadataBuilder = new DynamicRoutingMetadataBuilder(this);
|
|
24
24
|
this.nullMetadataBuilder = new NullMetadataBuilder(core.multiProvider);
|
|
25
25
|
this.arbL2ToL1MetadataBuilder = new ArbL2ToL1MetadataBuilder(core);
|
|
26
|
-
this.ccipReadMetadataBuilder = new
|
|
26
|
+
this.ccipReadMetadataBuilder = new OffchainLookupMetadataBuilder(core);
|
|
27
27
|
this.multiProvider = core.multiProvider;
|
|
28
28
|
}
|
|
29
29
|
// assumes that all post dispatch hooks are included in dispatchTx logs
|
|
@@ -52,8 +52,8 @@ export class BaseMetadataBuilder {
|
|
|
52
52
|
});
|
|
53
53
|
case IsmType.ROUTING:
|
|
54
54
|
case IsmType.FALLBACK_ROUTING:
|
|
55
|
-
case IsmType.ICA_ROUTING:
|
|
56
55
|
case IsmType.AMOUNT_ROUTING:
|
|
56
|
+
case IsmType.INTERCHAIN_ACCOUNT_ROUTING:
|
|
57
57
|
return this.routingMetadataBuilder.build({
|
|
58
58
|
...context,
|
|
59
59
|
ism,
|
|
@@ -68,13 +68,13 @@ export class BaseMetadataBuilder {
|
|
|
68
68
|
hook: hookConfig,
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
|
-
case IsmType.
|
|
71
|
+
case IsmType.OFFCHAIN_LOOKUP:
|
|
72
72
|
return this.ccipReadMetadataBuilder.build({
|
|
73
73
|
...context,
|
|
74
74
|
ism,
|
|
75
75
|
});
|
|
76
76
|
default:
|
|
77
|
-
throw new Error(`Unsupported ISM: ${ism}`);
|
|
77
|
+
throw new Error(`Unsupported ISM: ${JSON.stringify(ism)}`);
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
static decode(metadata, context) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/ism/metadata/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,QAAQ,EACR,UAAU,GACX,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAEL,QAAQ,GAET,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/ism/metadata/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,QAAQ,EACR,UAAU,GACX,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAEL,QAAQ,GAET,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAO7D,MAAM,OAAO,mBAAmB;IACvB,mBAAmB,CAAsB;IACzC,uBAAuB,CAA0B;IACjD,0BAA0B,CAA6B;IACvD,sBAAsB,CAAgC;IACtD,wBAAwB,CAA2B;IACnD,uBAAuB,CAAgC;IAEvD,aAAa,CAAgB;IAC1B,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAEvE,YAAY,IAAmB;QAC7B,IAAI,CAAC,uBAAuB,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,0BAA0B,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,sBAAsB,GAAG,IAAI,6BAA6B,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvE,IAAI,CAAC,wBAAwB,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,uBAAuB,GAAG,IAAI,6BAA6B,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IAC1C,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,KAAK,CAAC,OAAwB,EAAE,QAAQ,GAAG,EAAE;QACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,EAAE,OAAO,EAAE,QAAQ,EAAE,EACrB,YAAY,OAAO,CAAC,GAAG,CAAC,IAAI,WAAW,CACxC,CAAC;QACF,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,mBAAmB,CAAC,CAAC;QAE1C,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QAC9B,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,OAAO,CAAC,eAAe,CAAC;YAC7B,KAAK,OAAO,CAAC,QAAQ,CAAC;YACtB,KAAK,OAAO,CAAC,QAAQ,CAAC;YACtB,KAAK,OAAO,CAAC,QAAQ;gBACnB,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAE7D,KAAK,OAAO,CAAC,oBAAoB,CAAC;YAClC,KAAK,OAAO,CAAC,mBAAmB;gBAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBACvE,CAAC;gBACD,gDAAgD;gBAChD,MAAM,cAAc,GAAG,QAAQ,CAC7B,IAAI,EACJ,CAAC,CAAC,EAA0C,EAAE,CAC5C,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CACjD,CAAC;gBACF,MAAM,CAAC,cAAc,EAAE,oCAAoC,CAAC,CAAC;gBAC7D,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;oBACxC,GAAG,OAAO;oBACV,GAAG;oBACH,IAAI,EAAE,cAAc;iBACrB,CAAC,CAAC;YAEL,KAAK,OAAO,CAAC,OAAO,CAAC;YACrB,KAAK,OAAO,CAAC,gBAAgB,CAAC;YAC9B,KAAK,OAAO,CAAC,cAAc,CAAC;YAC5B,KAAK,OAAO,CAAC,0BAA0B;gBACrC,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,CACtC;oBACE,GAAG,OAAO;oBACV,GAAG;iBACJ,EACD,QAAQ,CACT,CAAC;YAEJ,KAAK,OAAO,CAAC,WAAW;gBACtB,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAC1C,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,EACnB,QAAQ,CACT,CAAC;YAEJ,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC1B,MAAM,UAAU,GAAG,IAAwC,CAAC;gBAC5D,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;oBACzC,GAAG,OAAO;oBACV,GAAG;oBACH,IAAI,EAAE,UAAU;iBACjB,CAAC,CAAC;YACL,CAAC;YAED,KAAK,OAAO,CAAC,eAAe;gBAC1B,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;oBACxC,GAAG,OAAO;oBACV,GAAG;iBACJ,CAAC,CAAC;YAEL;gBACE,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,MAAM,CAAC,MAAM,CACX,QAAgB,EAChB,OAAwB;QAExB,OAAO,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;CACF"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { WithAddress } from '@hyperlane-xyz/utils';
|
|
2
2
|
import { HyperlaneCore } from '../../core/HyperlaneCore.js';
|
|
3
|
-
import {
|
|
3
|
+
import { IsmType, OffchainLookupIsmConfig } from '../types.js';
|
|
4
4
|
import type { MetadataBuilder, MetadataContext } from './types.js';
|
|
5
|
-
export declare class
|
|
6
|
-
readonly type = IsmType.
|
|
5
|
+
export declare class OffchainLookupMetadataBuilder implements MetadataBuilder {
|
|
6
|
+
readonly type = IsmType.OFFCHAIN_LOOKUP;
|
|
7
7
|
private core;
|
|
8
8
|
constructor(core: HyperlaneCore);
|
|
9
|
-
build(context: MetadataContext<WithAddress<
|
|
9
|
+
build(context: MetadataContext<WithAddress<OffchainLookupIsmConfig>>): Promise<string>;
|
|
10
10
|
}
|
|
11
|
+
export declare function offchainLookupRequestMessageHash(sender: string, callData: string, urlTemplate: string): string;
|
|
11
12
|
//# sourceMappingURL=ccipread.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ccipread.d.ts","sourceRoot":"","sources":["../../../src/ism/metadata/ccipread.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ccipread.d.ts","sourceRoot":"","sources":["../../../src/ism/metadata/ccipread.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEnE,qBAAa,6BAA8B,YAAW,eAAe;IACnE,QAAQ,CAAC,IAAI,2BAA2B;IACxC,OAAO,CAAC,IAAI,CAAgB;gBAEhB,IAAI,EAAE,aAAa;IAIzB,KAAK,CACT,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,GAC7D,OAAO,CAAC,MAAM,CAAC;CA0EnB;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,MAAM,CAKR"}
|
|
@@ -10,7 +10,9 @@ import { MultiProvider } from '../../providers/MultiProvider.js';
|
|
|
10
10
|
import { EvmIsmReader } from '../EvmIsmReader.js';
|
|
11
11
|
import { HyperlaneIsmFactory } from '../HyperlaneIsmFactory.js';
|
|
12
12
|
import { BaseMetadataBuilder } from './builder.js';
|
|
13
|
-
|
|
13
|
+
import { offchainLookupRequestMessageHash } from './ccipread.js';
|
|
14
|
+
const OFFCHAIN_LOOKUP_SERVER_URL = 'http://example.com/namespace';
|
|
15
|
+
describe('Offchain Lookup ISM Integration', () => {
|
|
14
16
|
let core;
|
|
15
17
|
let multiProvider;
|
|
16
18
|
let testRecipient;
|
|
@@ -18,7 +20,6 @@ describe('CCIP-Read ISM Integration', () => {
|
|
|
18
20
|
let metadataBuilder;
|
|
19
21
|
let ismFactory;
|
|
20
22
|
let fetchStub;
|
|
21
|
-
const CCIP_READ_SERVER_URL = 'http://example.com/namespace';
|
|
22
23
|
beforeEach(async () => {
|
|
23
24
|
// Set up a local test multi-provider and Hyperlane core
|
|
24
25
|
const signers = await hre.ethers.getSigners();
|
|
@@ -38,7 +39,7 @@ describe('CCIP-Read ISM Integration', () => {
|
|
|
38
39
|
const domain = multiProvider.getDomainId('test1');
|
|
39
40
|
ccipReadIsm = await multiProvider.handleDeploy(domain, new TestCcipReadIsm__factory(),
|
|
40
41
|
// Pass in desired offchain URLs for the ISM constructor:
|
|
41
|
-
[[
|
|
42
|
+
[[OFFCHAIN_LOOKUP_SERVER_URL]]);
|
|
42
43
|
// Configure the TestRecipient to use the CCIP-Read ISM
|
|
43
44
|
await testRecipient.setInterchainSecurityModule(ccipReadIsm.address);
|
|
44
45
|
// Prepare the metadata builder
|
|
@@ -54,7 +55,7 @@ describe('CCIP-Read ISM Integration', () => {
|
|
|
54
55
|
// Send a message from test1 to test2
|
|
55
56
|
const { dispatchTx, message } = await core.sendMessage('test1', 'test2', testRecipient.address, '0x1234');
|
|
56
57
|
// Derive the on-chain ISM config for CCIP-Read
|
|
57
|
-
const derivedIsm =
|
|
58
|
+
const derivedIsm = await new EvmIsmReader(multiProvider, 'test2').deriveOffchainLookupConfig(ccipReadIsm.address);
|
|
58
59
|
// Build the metadata using the CCIP-Read builder
|
|
59
60
|
const context = {
|
|
60
61
|
ism: derivedIsm,
|
|
@@ -83,18 +84,11 @@ describe('CCIP-Read ISM Integration', () => {
|
|
|
83
84
|
expect(fetchStub.calledOnce).to.be.true;
|
|
84
85
|
const [url, options] = fetchStub.getCall(0).args;
|
|
85
86
|
const payload = JSON.parse(options.body);
|
|
86
|
-
expect(url).to.equal(
|
|
87
|
+
expect(url).to.equal(OFFCHAIN_LOOKUP_SERVER_URL.replace('{data}', payload.data));
|
|
87
88
|
// Should include sender, data, and signature
|
|
88
89
|
expect(payload).to.include.keys('sender', 'data', 'signature');
|
|
89
90
|
expect(payload.sender).to.equal(ccipReadIsm.address);
|
|
90
|
-
|
|
91
|
-
const messageHash = ethers.utils.solidityKeccak256(['string', 'address', 'bytes', 'string'], [
|
|
92
|
-
'HYPERLANE_OFFCHAINLOOKUP',
|
|
93
|
-
payload.sender,
|
|
94
|
-
payload.data,
|
|
95
|
-
CCIP_READ_SERVER_URL,
|
|
96
|
-
]);
|
|
97
|
-
const recovered = ethers.utils.verifyMessage(ethers.utils.arrayify(messageHash), payload.signature);
|
|
91
|
+
const recovered = ethers.utils.verifyMessage(ethers.utils.arrayify(offchainLookupRequestMessageHash(payload.sender, payload.data, OFFCHAIN_LOOKUP_SERVER_URL)), payload.signature);
|
|
98
92
|
expect(recovered).to.equal((await hre.ethers.getSigners())[0].address);
|
|
99
93
|
});
|
|
100
94
|
afterEach(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ccipread.hardhat-test.js","sourceRoot":"","sources":["../../../src/ism/metadata/ccipread.hardhat-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,GAAG,MAAM,SAAS,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,
|
|
1
|
+
{"version":3,"file":"ccipread.hardhat-test.js","sourceRoot":"","sources":["../../../src/ism/metadata/ccipread.hardhat-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { utils } from 'ethers';
|
|
2
|
-
import {
|
|
2
|
+
import { AbstractCcipReadIsm__factory } from '@hyperlane-xyz/core';
|
|
3
3
|
import { IsmType } from '../types.js';
|
|
4
|
-
export class
|
|
5
|
-
type = IsmType.
|
|
4
|
+
export class OffchainLookupMetadataBuilder {
|
|
5
|
+
type = IsmType.OFFCHAIN_LOOKUP;
|
|
6
6
|
core;
|
|
7
7
|
constructor(core) {
|
|
8
8
|
this.core = core;
|
|
9
9
|
}
|
|
10
10
|
async build(context) {
|
|
11
11
|
const { ism, message } = context;
|
|
12
|
-
const provider = this.core.multiProvider.getProvider(message.parsed.
|
|
13
|
-
const contract =
|
|
12
|
+
const provider = this.core.multiProvider.getProvider(message.parsed.destination);
|
|
13
|
+
const contract = AbstractCcipReadIsm__factory.connect(ism.address, provider);
|
|
14
14
|
let revertData;
|
|
15
15
|
try {
|
|
16
16
|
// Should revert with OffchainLookup
|
|
@@ -40,9 +40,7 @@ export class CcipReadMetadataBuilder {
|
|
|
40
40
|
responseJson = await res.json();
|
|
41
41
|
}
|
|
42
42
|
else {
|
|
43
|
-
|
|
44
|
-
const messageHash = utils.solidityKeccak256(['string', 'address', 'bytes', 'string'], ['HYPERLANE_OFFCHAINLOOKUP', sender, callDataHex, urlTemplate]);
|
|
45
|
-
const signature = await signer.signMessage(utils.arrayify(messageHash));
|
|
43
|
+
const signature = await signer.signMessage(utils.arrayify(offchainLookupRequestMessageHash(sender, callDataHex, urlTemplate)));
|
|
46
44
|
const res = await fetch(url, {
|
|
47
45
|
method: 'POST',
|
|
48
46
|
headers: { 'Content-Type': 'application/json' },
|
|
@@ -61,4 +59,7 @@ export class CcipReadMetadataBuilder {
|
|
|
61
59
|
throw new Error('Could not fetch CCIP-read metadata');
|
|
62
60
|
}
|
|
63
61
|
}
|
|
62
|
+
export function offchainLookupRequestMessageHash(sender, callData, urlTemplate) {
|
|
63
|
+
return utils.solidityKeccak256(['string', 'address', 'bytes', 'string'], ['HYPERLANE_OFFCHAINLOOKUP', sender, callData, urlTemplate]);
|
|
64
|
+
}
|
|
64
65
|
//# sourceMappingURL=ccipread.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ccipread.js","sourceRoot":"","sources":["../../../src/ism/metadata/ccipread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ccipread.js","sourceRoot":"","sources":["../../../src/ism/metadata/ccipread.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { AggregationMetadataBuilder } from './aggregation.js';
|
|
|
3
3
|
import { ArbL2ToL1MetadataBuilder } from './arbL2ToL1.js';
|
|
4
4
|
import { MultisigMetadataBuilder } from './multisig.js';
|
|
5
5
|
import { NullMetadataBuilder } from './null.js';
|
|
6
|
-
import {
|
|
6
|
+
import { DynamicRoutingMetadataBuilder } from './routing.js';
|
|
7
7
|
export function decodeIsmMetadata(metadata, context) {
|
|
8
8
|
const { ism } = context;
|
|
9
9
|
switch (ism.type) {
|
|
@@ -15,7 +15,7 @@ export function decodeIsmMetadata(metadata, context) {
|
|
|
15
15
|
case IsmType.AGGREGATION:
|
|
16
16
|
return AggregationMetadataBuilder.decode(metadata, { ...context, ism });
|
|
17
17
|
case IsmType.ROUTING:
|
|
18
|
-
return
|
|
18
|
+
return DynamicRoutingMetadataBuilder.decode(metadata, {
|
|
19
19
|
...context,
|
|
20
20
|
ism,
|
|
21
21
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode.js","sourceRoot":"","sources":["../../../src/ism/metadata/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"decode.js","sourceRoot":"","sources":["../../../src/ism/metadata/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAG7D,MAAM,UAAU,iBAAiB,CAC/B,QAAgB,EAChB,OAAwB;IAExB,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IACxB,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,OAAO,CAAC,eAAe;YAC1B,OAAO,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEzC,KAAK,OAAO,CAAC,oBAAoB,CAAC;QAClC,KAAK,OAAO,CAAC,mBAAmB;YAC9B,OAAO,uBAAuB,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAE5D,KAAK,OAAO,CAAC,WAAW;YACtB,OAAO,0BAA0B,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAE1E,KAAK,OAAO,CAAC,OAAO;YAClB,OAAO,6BAA6B,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACpD,GAAG,OAAO;gBACV,GAAG;aACJ,CAAC,CAAC;QAEL,KAAK,OAAO,CAAC,YAAY;YACvB,OAAO,wBAAwB,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAC/C,GAAG,OAAO;gBACV,GAAG;aACJ,CAAC,CAAC;QAEL;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
|
|
@@ -8,13 +8,15 @@ export type RoutingMetadata<T> = {
|
|
|
8
8
|
origin: ChainName;
|
|
9
9
|
metadata: T;
|
|
10
10
|
};
|
|
11
|
-
export declare class
|
|
11
|
+
export declare class StaticRoutingMetadataBuilder implements MetadataBuilder {
|
|
12
12
|
protected baseMetadataBuilder: BaseMetadataBuilder;
|
|
13
13
|
constructor(baseMetadataBuilder: BaseMetadataBuilder);
|
|
14
14
|
build(context: MetadataContext<WithAddress<DomainRoutingIsmConfig>>, maxDepth?: number): Promise<string>;
|
|
15
15
|
static decode(metadata: string, context: MetadataContext<WithAddress<DomainRoutingIsmConfig>>): RoutingMetadata<StructuredMetadata | string>;
|
|
16
16
|
}
|
|
17
|
-
export declare class
|
|
17
|
+
export declare class DynamicRoutingMetadataBuilder extends StaticRoutingMetadataBuilder {
|
|
18
|
+
protected baseMetadataBuilder: BaseMetadataBuilder;
|
|
19
|
+
constructor(baseMetadataBuilder: BaseMetadataBuilder);
|
|
18
20
|
build(context: MetadataContext<WithAddress<RoutingIsmConfig>>, maxDepth?: number): Promise<string>;
|
|
19
21
|
}
|
|
20
22
|
//# sourceMappingURL=routing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../../src/ism/metadata/routing.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../../src/ism/metadata/routing.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAU,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAEL,sBAAsB,EACtB,OAAO,EACP,gBAAgB,EAEjB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC/B,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;IACtB,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,CAAC,CAAC;CACb,CAAC;AAEF,qBAAa,4BAA6B,YAAW,eAAe;IACtD,SAAS,CAAC,mBAAmB,EAAE,mBAAmB;gBAAxC,mBAAmB,EAAE,mBAAmB;IAEjD,KAAK,CAChB,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,EAC7D,QAAQ,SAAK,GACZ,OAAO,CAAC,MAAM,CAAC;IAYlB,MAAM,CAAC,MAAM,CACX,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,GAC5D,eAAe,CAAC,kBAAkB,GAAG,MAAM,CAAC;CAmBhD;AAED,qBAAa,6BAA8B,SAAQ,4BAA4B;IACjE,SAAS,CAAC,mBAAmB,EAAE,mBAAmB;gBAAxC,mBAAmB,EAAE,mBAAmB;IAIjD,KAAK,CAChB,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,EACvD,QAAQ,SAAK,GACZ,OAAO,CAAC,MAAM,CAAC;CAmDnB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { DefaultFallbackRoutingIsm__factory,
|
|
1
|
+
import { DefaultFallbackRoutingIsm__factory, IRoutingIsm__factory, } from '@hyperlane-xyz/core';
|
|
2
2
|
import { assert } from '@hyperlane-xyz/utils';
|
|
3
3
|
import { EvmIsmReader } from '../EvmIsmReader.js';
|
|
4
|
-
import { IsmType, } from '../types.js';
|
|
4
|
+
import { IsmType, isDynamicallyRoutedIsmType, } from '../types.js';
|
|
5
5
|
import { decodeIsmMetadata } from './decode.js';
|
|
6
|
-
export class
|
|
6
|
+
export class StaticRoutingMetadataBuilder {
|
|
7
7
|
baseMetadataBuilder;
|
|
8
8
|
constructor(baseMetadataBuilder) {
|
|
9
9
|
this.baseMetadataBuilder = baseMetadataBuilder;
|
|
@@ -33,46 +33,40 @@ export class RoutingMetadataBuilder {
|
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
export class
|
|
36
|
+
export class DynamicRoutingMetadataBuilder extends StaticRoutingMetadataBuilder {
|
|
37
|
+
baseMetadataBuilder;
|
|
38
|
+
constructor(baseMetadataBuilder) {
|
|
39
|
+
super(baseMetadataBuilder);
|
|
40
|
+
this.baseMetadataBuilder = baseMetadataBuilder;
|
|
41
|
+
}
|
|
37
42
|
async build(context, maxDepth = 10) {
|
|
38
|
-
const
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
throw new Error(`Origin domain ${originChain} is not enrolled in DomainRoutingIsm`);
|
|
54
|
-
}
|
|
55
|
-
const destinationProvider = this.baseMetadataBuilder.multiProvider.getProvider(context.message.parsed.destination);
|
|
56
|
-
let ismAddress;
|
|
57
|
-
if (context.ism.type === IsmType.ICA_ROUTING) {
|
|
58
|
-
const icaFallbackRoutingIsm = InterchainAccountIsm__factory.connect(context.ism.address, destinationProvider);
|
|
59
|
-
ismAddress = await icaFallbackRoutingIsm.route(context.message.message);
|
|
43
|
+
const { message, ism } = context;
|
|
44
|
+
const originChain = this.baseMetadataBuilder.multiProvider.getChainName(message.parsed.origin);
|
|
45
|
+
const destination = message.parsed.destination;
|
|
46
|
+
const provider = this.baseMetadataBuilder.multiProvider.getProvider(destination);
|
|
47
|
+
// Helper to derive new ISM config and recurse
|
|
48
|
+
const deriveAndRecurse = async (moduleAddress) => {
|
|
49
|
+
const ismReader = new EvmIsmReader(this.baseMetadataBuilder.multiProvider, destination);
|
|
50
|
+
const nextConfig = await ismReader.deriveIsmConfig(moduleAddress);
|
|
51
|
+
return this.baseMetadataBuilder.build({ ...context, ism: nextConfig }, maxDepth - 1);
|
|
52
|
+
};
|
|
53
|
+
// 1) Dynamic routing (AmountRouting or ICA): always route via .route(message)
|
|
54
|
+
if (isDynamicallyRoutedIsmType(ism.type)) {
|
|
55
|
+
const router = IRoutingIsm__factory.connect(ism.address, provider);
|
|
56
|
+
const moduleAddr = await router.route(message.message);
|
|
57
|
+
return deriveAndRecurse(moduleAddr);
|
|
60
58
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
59
|
+
// 2) Static domain routing: if origin is enrolled, delegate to super
|
|
60
|
+
if (ism.domains?.[originChain]) {
|
|
61
|
+
return super.build(context, maxDepth);
|
|
64
62
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
// 3) Fallback routing: use .module(origin)
|
|
64
|
+
if (ism.type === IsmType.FALLBACK_ROUTING) {
|
|
65
|
+
const fallback = DefaultFallbackRoutingIsm__factory.connect(ism.address, provider);
|
|
66
|
+
const moduleAddr = await fallback.module(message.parsed.origin);
|
|
67
|
+
return deriveAndRecurse(moduleAddr);
|
|
68
68
|
}
|
|
69
|
-
|
|
70
|
-
const defaultIsmConfig = await ismReader.deriveIsmConfig(ismAddress);
|
|
71
|
-
const originContext = {
|
|
72
|
-
...context,
|
|
73
|
-
ism: defaultIsmConfig,
|
|
74
|
-
};
|
|
75
|
-
return this.baseMetadataBuilder.build(originContext, maxDepth - 1);
|
|
69
|
+
throw new Error(`DefaultFallbackRoutingMetadataBuilder: unexpected ISM type ${ism.type}`);
|
|
76
70
|
}
|
|
77
71
|
}
|
|
78
72
|
//# sourceMappingURL=routing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../../../src/ism/metadata/routing.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,
|
|
1
|
+
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../../../src/ism/metadata/routing.ts"],"names":[],"mappings":"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"}
|
package/dist/ism/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { ArbL2ToL1Ism, CCIPIsm, IAggregationIsm,
|
|
2
|
+
import { AbstractCcipReadIsm, ArbL2ToL1Ism, CCIPIsm, IAggregationIsm, IInterchainSecurityModule, IMultisigIsm, IRoutingIsm, IStaticWeightedMultisigIsm, InterchainAccountRouter, OPStackIsm, PausableIsm, TestIsm, TrustedRelayerIsm } from '@hyperlane-xyz/core';
|
|
3
3
|
import type { Address, Domain, ValueOf, WithAddress } from '@hyperlane-xyz/utils';
|
|
4
4
|
import { ChainMap, OwnableConfig } from '../types.js';
|
|
5
5
|
export declare enum ModuleType {
|
|
@@ -20,8 +20,8 @@ export declare enum IsmType {
|
|
|
20
20
|
OP_STACK = "opStackIsm",
|
|
21
21
|
ROUTING = "domainRoutingIsm",
|
|
22
22
|
FALLBACK_ROUTING = "defaultFallbackRoutingIsm",
|
|
23
|
-
ICA_ROUTING = "icaRoutingIsm",
|
|
24
23
|
AMOUNT_ROUTING = "amountRoutingIsm",
|
|
24
|
+
INTERCHAIN_ACCOUNT_ROUTING = "interchainAccountRouting",
|
|
25
25
|
AGGREGATION = "staticAggregationIsm",
|
|
26
26
|
STORAGE_AGGREGATION = "storageAggregationIsm",
|
|
27
27
|
MERKLE_ROOT_MULTISIG = "merkleRootMultisigIsm",
|
|
@@ -35,7 +35,7 @@ export declare enum IsmType {
|
|
|
35
35
|
WEIGHTED_MERKLE_ROOT_MULTISIG = "weightedMerkleRootMultisigIsm",
|
|
36
36
|
WEIGHTED_MESSAGE_ID_MULTISIG = "weightedMessageIdMultisigIsm",
|
|
37
37
|
CCIP = "ccipIsm",
|
|
38
|
-
|
|
38
|
+
OFFCHAIN_LOOKUP = "offchainLookupIsm"
|
|
39
39
|
}
|
|
40
40
|
export declare const MUTABLE_ISM_TYPE: IsmType[];
|
|
41
41
|
/**
|
|
@@ -43,6 +43,9 @@ export declare const MUTABLE_ISM_TYPE: IsmType[];
|
|
|
43
43
|
* @dev ISM types with immutable config embedded in contract bytecode via MetaProxy
|
|
44
44
|
*/
|
|
45
45
|
export declare const STATIC_ISM_TYPES: IsmType[];
|
|
46
|
+
export declare const DYNAMICALLY_ROUTED_ISM_TYPES: readonly [IsmType.AMOUNT_ROUTING, IsmType.INTERCHAIN_ACCOUNT_ROUTING];
|
|
47
|
+
/** Type guard for dynamically routed ISM types */
|
|
48
|
+
export declare function isDynamicallyRoutedIsmType(type: IsmType): type is (typeof DYNAMICALLY_ROUTED_ISM_TYPES)[number];
|
|
46
49
|
export declare function ismTypeToModuleType(ismType: IsmType): ModuleType;
|
|
47
50
|
export type ValidatorConfig = {
|
|
48
51
|
address: Address;
|
|
@@ -60,21 +63,37 @@ export type OpStackIsmConfig = z.infer<typeof OpStackIsmConfigSchema>;
|
|
|
60
63
|
export type TrustedRelayerIsmConfig = z.infer<typeof TrustedRelayerIsmConfigSchema>;
|
|
61
64
|
export type CCIPIsmConfig = z.infer<typeof CCIPIsmConfigSchema>;
|
|
62
65
|
export type ArbL2ToL1IsmConfig = z.infer<typeof ArbL2ToL1IsmConfigSchema>;
|
|
63
|
-
export type
|
|
66
|
+
export type OffchainLookupIsmConfig = z.infer<typeof OffchainLookupIsmConfigSchema>;
|
|
64
67
|
export type NullIsmConfig = TestIsmConfig | PausableIsmConfig | OpStackIsmConfig | TrustedRelayerIsmConfig | CCIPIsmConfig;
|
|
65
|
-
type BaseRoutingIsmConfig<T extends IsmType.ROUTING | IsmType.FALLBACK_ROUTING | IsmType.
|
|
68
|
+
type BaseRoutingIsmConfig<T extends IsmType.ROUTING | IsmType.FALLBACK_ROUTING | IsmType.AMOUNT_ROUTING | IsmType.INTERCHAIN_ACCOUNT_ROUTING> = {
|
|
66
69
|
type: T;
|
|
67
70
|
};
|
|
68
71
|
export type DomainRoutingIsmConfig = BaseRoutingIsmConfig<IsmType.ROUTING | IsmType.FALLBACK_ROUTING> & OwnableConfig & {
|
|
69
72
|
domains: ChainMap<IsmConfig>;
|
|
70
73
|
};
|
|
71
|
-
export
|
|
74
|
+
export declare const InterchainAccountRouterIsmSchema: z.ZodObject<{
|
|
75
|
+
owner: z.ZodString;
|
|
76
|
+
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
77
|
+
type: z.ZodLiteral<IsmType.INTERCHAIN_ACCOUNT_ROUTING>;
|
|
78
|
+
isms: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
79
|
+
}, "strip", z.ZodTypeAny, {
|
|
80
|
+
type: IsmType.INTERCHAIN_ACCOUNT_ROUTING;
|
|
81
|
+
owner: string;
|
|
82
|
+
isms: Record<string, string>;
|
|
83
|
+
ownerOverrides?: Record<string, string> | undefined;
|
|
84
|
+
}, {
|
|
85
|
+
type: IsmType.INTERCHAIN_ACCOUNT_ROUTING;
|
|
86
|
+
owner: string;
|
|
87
|
+
isms: Record<string, string>;
|
|
88
|
+
ownerOverrides?: Record<string, string> | undefined;
|
|
89
|
+
}>;
|
|
90
|
+
export type InterchainAccountRouterIsm = z.infer<typeof InterchainAccountRouterIsmSchema>;
|
|
72
91
|
export type AmountRoutingIsmConfig = BaseRoutingIsmConfig<IsmType.AMOUNT_ROUTING> & {
|
|
73
92
|
lowerIsm: IsmConfig;
|
|
74
93
|
upperIsm: IsmConfig;
|
|
75
94
|
threshold: number;
|
|
76
95
|
};
|
|
77
|
-
export type RoutingIsmConfig =
|
|
96
|
+
export type RoutingIsmConfig = DomainRoutingIsmConfig | AmountRoutingIsmConfig | InterchainAccountRouterIsm;
|
|
78
97
|
export type AggregationIsmConfig = {
|
|
79
98
|
type: IsmType.AGGREGATION | IsmType.STORAGE_AGGREGATION;
|
|
80
99
|
modules: Array<IsmConfig>;
|
|
@@ -86,7 +105,6 @@ export type DeployedIsmType = {
|
|
|
86
105
|
[IsmType.CUSTOM]: IInterchainSecurityModule;
|
|
87
106
|
[IsmType.ROUTING]: IRoutingIsm;
|
|
88
107
|
[IsmType.FALLBACK_ROUTING]: IRoutingIsm;
|
|
89
|
-
[IsmType.ICA_ROUTING]: IRoutingIsm;
|
|
90
108
|
[IsmType.AMOUNT_ROUTING]: IRoutingIsm;
|
|
91
109
|
[IsmType.AGGREGATION]: IAggregationIsm;
|
|
92
110
|
[IsmType.STORAGE_AGGREGATION]: IAggregationIsm;
|
|
@@ -102,7 +120,8 @@ export type DeployedIsmType = {
|
|
|
102
120
|
[IsmType.ARB_L2_TO_L1]: ArbL2ToL1Ism;
|
|
103
121
|
[IsmType.WEIGHTED_MERKLE_ROOT_MULTISIG]: IStaticWeightedMultisigIsm;
|
|
104
122
|
[IsmType.WEIGHTED_MESSAGE_ID_MULTISIG]: IStaticWeightedMultisigIsm;
|
|
105
|
-
[IsmType.
|
|
123
|
+
[IsmType.OFFCHAIN_LOOKUP]: AbstractCcipReadIsm;
|
|
124
|
+
[IsmType.INTERCHAIN_ACCOUNT_ROUTING]: InterchainAccountRouter;
|
|
106
125
|
};
|
|
107
126
|
export type DeployedIsm = ValueOf<DeployedIsmType>;
|
|
108
127
|
export type RoutingIsmDelta = {
|
|
@@ -173,6 +192,28 @@ export declare const CCIPIsmConfigSchema: z.ZodObject<{
|
|
|
173
192
|
type: IsmType.CCIP;
|
|
174
193
|
originChain: string;
|
|
175
194
|
}>;
|
|
195
|
+
export declare const OffchainLookupIsmConfigSchema: z.ZodObject<{
|
|
196
|
+
owner: z.ZodString;
|
|
197
|
+
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
198
|
+
type: z.ZodLiteral<IsmType.OFFCHAIN_LOOKUP>;
|
|
199
|
+
urls: z.ZodArray<z.ZodString, "many">;
|
|
200
|
+
}, "strip", z.ZodTypeAny, {
|
|
201
|
+
type: IsmType.OFFCHAIN_LOOKUP;
|
|
202
|
+
owner: string;
|
|
203
|
+
urls: string[];
|
|
204
|
+
ownerOverrides?: Record<string, string> | undefined;
|
|
205
|
+
}, {
|
|
206
|
+
type: IsmType.OFFCHAIN_LOOKUP;
|
|
207
|
+
owner: string;
|
|
208
|
+
urls: string[];
|
|
209
|
+
ownerOverrides?: Record<string, string> | undefined;
|
|
210
|
+
}>;
|
|
211
|
+
export declare const isOffchainLookupIsmConfig: (config: unknown) => config is {
|
|
212
|
+
type: IsmType.OFFCHAIN_LOOKUP;
|
|
213
|
+
owner: string;
|
|
214
|
+
urls: string[];
|
|
215
|
+
ownerOverrides?: Record<string, string> | undefined;
|
|
216
|
+
};
|
|
176
217
|
export declare const OpStackIsmConfigSchema: z.ZodObject<{
|
|
177
218
|
type: z.ZodLiteral<IsmType.OP_STACK>;
|
|
178
219
|
origin: z.ZodString;
|
|
@@ -196,13 +237,6 @@ export declare const ArbL2ToL1IsmConfigSchema: z.ZodObject<{
|
|
|
196
237
|
type: IsmType.ARB_L2_TO_L1;
|
|
197
238
|
bridge: string;
|
|
198
239
|
}>;
|
|
199
|
-
export declare const CCIPReadIsmConfigSchema: z.ZodObject<{
|
|
200
|
-
type: z.ZodLiteral<IsmType.CCIP_READ>;
|
|
201
|
-
}, "strip", z.ZodTypeAny, {
|
|
202
|
-
type: IsmType.CCIP_READ;
|
|
203
|
-
}, {
|
|
204
|
-
type: IsmType.CCIP_READ;
|
|
205
|
-
}>;
|
|
206
240
|
export declare const PausableIsmConfigSchema: z.ZodIntersection<z.ZodObject<{
|
|
207
241
|
owner: z.ZodString;
|
|
208
242
|
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
@@ -380,11 +414,35 @@ export declare const IsmConfigSchema: z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
|
380
414
|
type: IsmType.ARB_L2_TO_L1;
|
|
381
415
|
bridge: string;
|
|
382
416
|
}>, z.ZodObject<{
|
|
383
|
-
|
|
417
|
+
owner: z.ZodString;
|
|
418
|
+
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
419
|
+
type: z.ZodLiteral<IsmType.OFFCHAIN_LOOKUP>;
|
|
420
|
+
urls: z.ZodArray<z.ZodString, "many">;
|
|
384
421
|
}, "strip", z.ZodTypeAny, {
|
|
385
|
-
type: IsmType.
|
|
422
|
+
type: IsmType.OFFCHAIN_LOOKUP;
|
|
423
|
+
owner: string;
|
|
424
|
+
urls: string[];
|
|
425
|
+
ownerOverrides?: Record<string, string> | undefined;
|
|
386
426
|
}, {
|
|
387
|
-
type: IsmType.
|
|
427
|
+
type: IsmType.OFFCHAIN_LOOKUP;
|
|
428
|
+
owner: string;
|
|
429
|
+
urls: string[];
|
|
430
|
+
ownerOverrides?: Record<string, string> | undefined;
|
|
431
|
+
}>, z.ZodObject<{
|
|
432
|
+
owner: z.ZodString;
|
|
433
|
+
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
434
|
+
type: z.ZodLiteral<IsmType.INTERCHAIN_ACCOUNT_ROUTING>;
|
|
435
|
+
isms: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
436
|
+
}, "strip", z.ZodTypeAny, {
|
|
437
|
+
type: IsmType.INTERCHAIN_ACCOUNT_ROUTING;
|
|
438
|
+
owner: string;
|
|
439
|
+
isms: Record<string, string>;
|
|
440
|
+
ownerOverrides?: Record<string, string> | undefined;
|
|
441
|
+
}, {
|
|
442
|
+
type: IsmType.INTERCHAIN_ACCOUNT_ROUTING;
|
|
443
|
+
owner: string;
|
|
444
|
+
isms: Record<string, string>;
|
|
445
|
+
ownerOverrides?: Record<string, string> | undefined;
|
|
388
446
|
}>]>;
|
|
389
447
|
export {};
|
|
390
448
|
//# sourceMappingURL=types.d.ts.map
|