@hyperlane-xyz/sdk 13.2.0 → 13.3.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.
Files changed (169) hide show
  1. package/dist/consts/multisigIsm.d.ts.map +1 -1
  2. package/dist/consts/multisigIsm.js +36 -0
  3. package/dist/consts/multisigIsm.js.map +1 -1
  4. package/dist/core/CoreDeployer.hardhat-test.js +5 -0
  5. package/dist/core/CoreDeployer.hardhat-test.js.map +1 -1
  6. package/dist/core/CosmosNativeCoreModule.d.ts.map +1 -1
  7. package/dist/core/CosmosNativeCoreModule.js +0 -1
  8. package/dist/core/CosmosNativeCoreModule.js.map +1 -1
  9. package/dist/core/EvmCoreModule.d.ts.map +1 -1
  10. package/dist/core/EvmCoreModule.hardhat-test.js +1 -2
  11. package/dist/core/EvmCoreModule.hardhat-test.js.map +1 -1
  12. package/dist/core/EvmCoreModule.js +7 -7
  13. package/dist/core/EvmCoreModule.js.map +1 -1
  14. package/dist/core/EvmCoreReader.d.ts.map +1 -1
  15. package/dist/core/EvmCoreReader.js +1 -1
  16. package/dist/core/EvmCoreReader.js.map +1 -1
  17. package/dist/core/EvmIcaModule.d.ts +3 -4
  18. package/dist/core/EvmIcaModule.d.ts.map +1 -1
  19. package/dist/core/EvmIcaModule.hardhat-test.js +25 -2
  20. package/dist/core/EvmIcaModule.hardhat-test.js.map +1 -1
  21. package/dist/core/EvmIcaModule.js +13 -11
  22. package/dist/core/EvmIcaModule.js.map +1 -1
  23. package/dist/core/HyperlaneRelayer.d.ts +20 -5
  24. package/dist/core/HyperlaneRelayer.d.ts.map +1 -1
  25. package/dist/core/types.d.ts +2801 -1286
  26. package/dist/core/types.d.ts.map +1 -1
  27. package/dist/core/types.js +0 -1
  28. package/dist/core/types.js.map +1 -1
  29. package/dist/deploy/HyperlaneDeployer.d.ts +2 -1
  30. package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
  31. package/dist/deploy/HyperlaneDeployer.js +11 -8
  32. package/dist/deploy/HyperlaneDeployer.js.map +1 -1
  33. package/dist/deploy/proxy.d.ts +1 -1
  34. package/dist/deploy/proxy.d.ts.map +1 -1
  35. package/dist/deploy/proxy.js +4 -5
  36. package/dist/deploy/proxy.js.map +1 -1
  37. package/dist/gas/token-prices.d.ts.map +1 -1
  38. package/dist/gas/token-prices.js +23 -4
  39. package/dist/gas/token-prices.js.map +1 -1
  40. package/dist/ica/EvmIcaReader.d.ts +2 -5
  41. package/dist/ica/EvmIcaReader.d.ts.map +1 -1
  42. package/dist/ica/EvmIcaReader.hardhat-test.js +2 -7
  43. package/dist/ica/EvmIcaReader.hardhat-test.js.map +1 -1
  44. package/dist/ica/EvmIcaReader.js +10 -44
  45. package/dist/ica/EvmIcaReader.js.map +1 -1
  46. package/dist/ica/types.d.ts +965 -47
  47. package/dist/ica/types.d.ts.map +1 -1
  48. package/dist/ica/types.js +7 -22
  49. package/dist/ica/types.js.map +1 -1
  50. package/dist/index.d.ts +19 -17
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +16 -14
  53. package/dist/index.js.map +1 -1
  54. package/dist/ism/EvmIsmModule.hardhat-test.js +0 -5
  55. package/dist/ism/EvmIsmModule.hardhat-test.js.map +1 -1
  56. package/dist/ism/EvmIsmReader.d.ts +4 -1
  57. package/dist/ism/EvmIsmReader.d.ts.map +1 -1
  58. package/dist/ism/EvmIsmReader.js +66 -42
  59. package/dist/ism/EvmIsmReader.js.map +1 -1
  60. package/dist/ism/HyperlaneIsmFactory.d.ts +0 -1
  61. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  62. package/dist/ism/HyperlaneIsmFactory.js +4 -11
  63. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  64. package/dist/ism/metadata/arbL2ToL1.hardhat-test.js +0 -1
  65. package/dist/ism/metadata/arbL2ToL1.hardhat-test.js.map +1 -1
  66. package/dist/ism/metadata/builder.d.ts +2 -2
  67. package/dist/ism/metadata/builder.d.ts.map +1 -1
  68. package/dist/ism/metadata/builder.hardhat-test.js +0 -1
  69. package/dist/ism/metadata/builder.hardhat-test.js.map +1 -1
  70. package/dist/ism/metadata/builder.js +3 -4
  71. package/dist/ism/metadata/builder.js.map +1 -1
  72. package/dist/ism/metadata/ccipread.d.ts +4 -4
  73. package/dist/ism/metadata/ccipread.d.ts.map +1 -1
  74. package/dist/ism/metadata/ccipread.hardhat-test.js +5 -37
  75. package/dist/ism/metadata/ccipread.hardhat-test.js.map +1 -1
  76. package/dist/ism/metadata/ccipread.js +4 -4
  77. package/dist/ism/metadata/ccipread.js.map +1 -1
  78. package/dist/ism/metadata/routing.d.ts.map +1 -1
  79. package/dist/ism/metadata/routing.js +8 -11
  80. package/dist/ism/metadata/routing.js.map +1 -1
  81. package/dist/ism/types.d.ts +59 -19
  82. package/dist/ism/types.d.ts.map +1 -1
  83. package/dist/ism/types.js +17 -12
  84. package/dist/ism/types.js.map +1 -1
  85. package/dist/ism/utils.d.ts.map +1 -1
  86. package/dist/ism/utils.js +7 -5
  87. package/dist/ism/utils.js.map +1 -1
  88. package/dist/middleware/account/InterchainAccount.d.ts +1 -1
  89. package/dist/middleware/account/InterchainAccount.d.ts.map +1 -1
  90. package/dist/middleware/account/InterchainAccount.js +3 -9
  91. package/dist/middleware/account/InterchainAccount.js.map +1 -1
  92. package/dist/middleware/account/InterchainAccountChecker.d.ts +3 -6
  93. package/dist/middleware/account/InterchainAccountChecker.d.ts.map +1 -1
  94. package/dist/middleware/account/InterchainAccountChecker.js +2 -17
  95. package/dist/middleware/account/InterchainAccountChecker.js.map +1 -1
  96. package/dist/middleware/account/InterchainAccountDeployer.d.ts +3 -8
  97. package/dist/middleware/account/InterchainAccountDeployer.d.ts.map +1 -1
  98. package/dist/middleware/account/InterchainAccountDeployer.js +11 -31
  99. package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -1
  100. package/dist/middleware/account/accounts.hardhat-test.js +10 -1
  101. package/dist/middleware/account/accounts.hardhat-test.js.map +1 -1
  102. package/dist/middleware/account/contracts.d.ts +1 -4
  103. package/dist/middleware/account/contracts.d.ts.map +1 -1
  104. package/dist/middleware/account/contracts.js +1 -4
  105. package/dist/middleware/account/contracts.js.map +1 -1
  106. package/dist/middleware/account/types.d.ts +2 -2
  107. package/dist/providers/transactions/submitter/builder/types.d.ts +10 -10
  108. package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.d.ts +2 -3
  109. package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.d.ts.map +1 -1
  110. package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.js +20 -16
  111. package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.js.map +1 -1
  112. package/dist/providers/transactions/transformer/ethersV5/types.d.ts +3 -3
  113. package/dist/providers/transactions/transformer/types.d.ts +3 -3
  114. package/dist/router/EvmRouterReader.d.ts +18 -0
  115. package/dist/router/EvmRouterReader.d.ts.map +1 -0
  116. package/dist/router/EvmRouterReader.js +60 -0
  117. package/dist/router/EvmRouterReader.js.map +1 -0
  118. package/dist/router/HyperlaneRouterChecker.d.ts +3 -0
  119. package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -1
  120. package/dist/router/HyperlaneRouterChecker.js +14 -4
  121. package/dist/router/HyperlaneRouterChecker.js.map +1 -1
  122. package/dist/router/types.d.ts +79 -31
  123. package/dist/router/types.d.ts.map +1 -1
  124. package/dist/router/types.js +13 -4
  125. package/dist/router/types.js.map +1 -1
  126. package/dist/token/EvmERC20WarpModule.d.ts +13 -0
  127. package/dist/token/EvmERC20WarpModule.d.ts.map +1 -1
  128. package/dist/token/EvmERC20WarpModule.hardhat-test.js +354 -9
  129. package/dist/token/EvmERC20WarpModule.hardhat-test.js.map +1 -1
  130. package/dist/token/EvmERC20WarpModule.js +210 -9
  131. package/dist/token/EvmERC20WarpModule.js.map +1 -1
  132. package/dist/token/EvmERC20WarpRouteReader.d.ts +7 -11
  133. package/dist/token/EvmERC20WarpRouteReader.d.ts.map +1 -1
  134. package/dist/token/EvmERC20WarpRouteReader.js +98 -47
  135. package/dist/token/EvmERC20WarpRouteReader.js.map +1 -1
  136. package/dist/token/TokenMetadataMap.d.ts +1 -2
  137. package/dist/token/TokenMetadataMap.d.ts.map +1 -1
  138. package/dist/token/TokenMetadataMap.js +2 -20
  139. package/dist/token/TokenMetadataMap.js.map +1 -1
  140. package/dist/token/TokenStandard.d.ts.map +1 -1
  141. package/dist/token/TokenStandard.js +3 -0
  142. package/dist/token/TokenStandard.js.map +1 -1
  143. package/dist/token/config.d.ts +25 -0
  144. package/dist/token/config.d.ts.map +1 -1
  145. package/dist/token/config.js +25 -0
  146. package/dist/token/config.js.map +1 -1
  147. package/dist/token/configUtils.d.ts.map +1 -1
  148. package/dist/token/configUtils.js +13 -3
  149. package/dist/token/configUtils.js.map +1 -1
  150. package/dist/token/contracts.d.ts +37 -31
  151. package/dist/token/contracts.d.ts.map +1 -1
  152. package/dist/token/contracts.js +8 -1
  153. package/dist/token/contracts.js.map +1 -1
  154. package/dist/token/deploy.d.ts +12 -5
  155. package/dist/token/deploy.d.ts.map +1 -1
  156. package/dist/token/deploy.js +137 -5
  157. package/dist/token/deploy.js.map +1 -1
  158. package/dist/token/types.d.ts +2720 -101
  159. package/dist/token/types.d.ts.map +1 -1
  160. package/dist/token/types.js +76 -5
  161. package/dist/token/types.js.map +1 -1
  162. package/dist/types.d.ts +2 -1
  163. package/dist/types.d.ts.map +1 -1
  164. package/dist/types.js.map +1 -1
  165. package/dist/utils/decimals.d.ts +4 -0
  166. package/dist/utils/decimals.d.ts.map +1 -0
  167. package/dist/utils/decimals.js +26 -0
  168. package/dist/utils/decimals.js.map +1 -0
  169. package/package.json +12 -8
@@ -1,3 +1,4 @@
1
+ import { OperationType, } from '@safe-global/safe-core-sdk-types';
1
2
  import { assert, rootLogger } from '@hyperlane-xyz/utils';
2
3
  // prettier-ignore
3
4
  // @ts-ignore
@@ -29,27 +30,30 @@ export class EV5GnosisSafeTxSubmitter {
29
30
  const safeService = await getSafeService(chain, multiProvider);
30
31
  return new EV5GnosisSafeTxSubmitter(multiProvider, props, safe, safeService);
31
32
  }
32
- async createSafeTransaction({ to, data, value, chainId, }) {
33
+ async createSafeTransaction(...transactions) {
33
34
  const nextNonce = await this.safeService.getNextNonce(this.props.safeAddress);
34
35
  const submitterChainId = this.multiProvider.getChainId(this.props.chain);
35
- assert(chainId, 'Invalid AnnotatedEV5Transaction: chainId is required');
36
- assert(chainId === submitterChainId, `Invalid AnnotatedEV5Transaction: Cannot submit tx for chain ID ${chainId} to submitter for chain ID ${submitterChainId}.`);
37
- return this.safe.createTransaction({
38
- safeTransactionData: [{ to, data, value: value?.toString() ?? '0' }],
39
- options: { nonce: nextNonce },
36
+ const safeTransactionData = transactions.map(({ to, data, value, chainId }) => {
37
+ assert(chainId, 'Invalid AnnotatedEV5Transaction: chainId is required');
38
+ assert(chainId === submitterChainId, `Invalid AnnotatedEV5Transaction: Cannot submit tx for chain ID ${chainId} to submitter for chain ID ${submitterChainId}.`);
39
+ return { to, data, value: value?.toString() ?? '0' };
40
40
  });
41
+ const isMultiSend = transactions.length > 1;
42
+ const safeTransaction = await this.safe.createTransaction({
43
+ safeTransactionData,
44
+ onlyCalls: isMultiSend,
45
+ options: {
46
+ nonce: nextNonce,
47
+ operation: isMultiSend
48
+ ? OperationType.DelegateCall
49
+ : OperationType.Call,
50
+ },
51
+ });
52
+ return safeTransaction;
41
53
  }
42
54
  async submit(...txs) {
43
- return this.proposeIndividualTransactions(txs);
44
- }
45
- async proposeIndividualTransactions(txs) {
46
- const safeTransactions = [];
47
- for (const tx of txs) {
48
- const safeTransaction = await this.createSafeTransaction(tx);
49
- await this.proposeSafeTransaction(safeTransaction);
50
- safeTransactions.push(safeTransaction);
51
- }
52
- return safeTransactions;
55
+ const safeTransaction = await this.createSafeTransaction(...txs);
56
+ return this.proposeSafeTransaction(safeTransaction);
53
57
  }
54
58
  async proposeSafeTransaction(safeTransaction) {
55
59
  const safeTxHash = await this.safe.getTransactionHash(safeTransaction);
@@ -1 +1 @@
1
- {"version":3,"file":"EV5GnosisSafeTxSubmitter.js","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EV5GnosisSafeTxSubmitter.js","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.ts"],"names":[],"mappings":"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"}
@@ -35,8 +35,7 @@ export declare const EV5InterchainAccountTxTransformerPropsSchema: z.ZodObject<P
35
35
  ismOverride?: string | undefined;
36
36
  }>;
37
37
  hookMetadata: z.ZodOptional<z.ZodString>;
38
- }, "chain" | "config" | "hookMetadata">, "strip", z.ZodTypeAny, {
39
- chain: string;
38
+ }, "config" | "chain" | "hookMetadata">, "strip", z.ZodTypeAny, {
40
39
  config: {
41
40
  owner: string;
42
41
  origin: string;
@@ -44,9 +43,9 @@ export declare const EV5InterchainAccountTxTransformerPropsSchema: z.ZodObject<P
44
43
  routerOverride?: string | undefined;
45
44
  ismOverride?: string | undefined;
46
45
  };
46
+ chain: string;
47
47
  hookMetadata?: string | undefined;
48
48
  }, {
49
- chain: string;
50
49
  config: {
51
50
  owner: string;
52
51
  origin: string;
@@ -54,6 +53,7 @@ export declare const EV5InterchainAccountTxTransformerPropsSchema: z.ZodObject<P
54
53
  routerOverride?: string | undefined;
55
54
  ismOverride?: string | undefined;
56
55
  };
56
+ chain: string;
57
57
  hookMetadata?: string | undefined;
58
58
  }>;
59
59
  export type EV5InterchainAccountTxTransformerProps = z.infer<typeof EV5InterchainAccountTxTransformerPropsSchema>;
@@ -1,7 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { TxTransformerType } from './TxTransformerTypes.js';
3
3
  export declare const TransformerMetadataSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
4
- chain: z.ZodString;
5
4
  config: z.ZodObject<{
6
5
  origin: z.ZodString;
7
6
  owner: z.ZodString;
@@ -21,11 +20,11 @@ export declare const TransformerMetadataSchema: z.ZodDiscriminatedUnion<"type",
21
20
  routerOverride?: string | undefined;
22
21
  ismOverride?: string | undefined;
23
22
  }>;
23
+ chain: z.ZodString;
24
24
  hookMetadata: z.ZodOptional<z.ZodString>;
25
25
  type: z.ZodLiteral<TxTransformerType>;
26
26
  }, "strip", z.ZodTypeAny, {
27
27
  type: TxTransformerType;
28
- chain: string;
29
28
  config: {
30
29
  owner: string;
31
30
  origin: string;
@@ -33,10 +32,10 @@ export declare const TransformerMetadataSchema: z.ZodDiscriminatedUnion<"type",
33
32
  routerOverride?: string | undefined;
34
33
  ismOverride?: string | undefined;
35
34
  };
35
+ chain: string;
36
36
  hookMetadata?: string | undefined;
37
37
  }, {
38
38
  type: TxTransformerType;
39
- chain: string;
40
39
  config: {
41
40
  owner: string;
42
41
  origin: string;
@@ -44,6 +43,7 @@ export declare const TransformerMetadataSchema: z.ZodDiscriminatedUnion<"type",
44
43
  routerOverride?: string | undefined;
45
44
  ismOverride?: string | undefined;
46
45
  };
46
+ chain: string;
47
47
  hookMetadata?: string | undefined;
48
48
  }>]>;
49
49
  export type TransformerMetadata = z.infer<typeof TransformerMetadataSchema>;
@@ -0,0 +1,18 @@
1
+ import { Address } from '@hyperlane-xyz/utils';
2
+ import { EvmHookReader } from '../hook/EvmHookReader.js';
3
+ import { EvmIsmReader } from '../ism/EvmIsmReader.js';
4
+ import { MultiProvider } from '../providers/MultiProvider.js';
5
+ import { ChainNameOrId } from '../types.js';
6
+ import { HyperlaneReader } from '../utils/HyperlaneReader.js';
7
+ import { DerivedMailboxClientConfig, DerivedRouterConfig, RemoteRouters } from './types.js';
8
+ export declare class EvmRouterReader extends HyperlaneReader {
9
+ protected readonly concurrency: number;
10
+ protected readonly logger: import("pino").default.Logger<never>;
11
+ protected evmHookReader: EvmHookReader;
12
+ protected evmIsmReader: EvmIsmReader;
13
+ constructor(multiProvider: MultiProvider, chain: ChainNameOrId, concurrency?: number);
14
+ readRouterConfig(address: Address): Promise<DerivedRouterConfig>;
15
+ fetchMailboxClientConfig(routerAddress: Address): Promise<DerivedMailboxClientConfig>;
16
+ fetchRemoteRouters(routerAddress: Address): Promise<RemoteRouters>;
17
+ }
18
+ //# sourceMappingURL=EvmRouterReader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvmRouterReader.d.ts","sourceRoot":"","sources":["../../src/router/EvmRouterReader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAyB,MAAM,sBAAsB,CAAC;AAGtE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,aAAa,EAEd,MAAM,YAAY,CAAC;AAEpB,qBAAa,eAAgB,SAAQ,eAAe;IAQhD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM;IAPxC,SAAS,CAAC,QAAQ,CAAC,MAAM,uCAAmD;IAC5E,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACvC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;gBAGnC,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,aAAa,EACD,WAAW,GAAE,MAA0C;IAO/D,gBAAgB,CAC3B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,mBAAmB,CAAC;IAWzB,wBAAwB,CAC5B,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC,0BAA0B,CAAC;IA2BhC,kBAAkB,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;CAazE"}
@@ -0,0 +1,60 @@
1
+ import { constants } from 'ethers';
2
+ import { MailboxClient__factory, Router__factory } from '@hyperlane-xyz/core';
3
+ import { eqAddress, rootLogger } from '@hyperlane-xyz/utils';
4
+ import { DEFAULT_CONTRACT_READ_CONCURRENCY } from '../consts/concurrency.js';
5
+ import { EvmHookReader } from '../hook/EvmHookReader.js';
6
+ import { EvmIsmReader } from '../ism/EvmIsmReader.js';
7
+ import { HyperlaneReader } from '../utils/HyperlaneReader.js';
8
+ import { RemoteRoutersSchema, } from './types.js';
9
+ export class EvmRouterReader extends HyperlaneReader {
10
+ concurrency;
11
+ logger = rootLogger.child({ module: 'EvmRouterReader' });
12
+ evmHookReader;
13
+ evmIsmReader;
14
+ constructor(multiProvider, chain, concurrency = DEFAULT_CONTRACT_READ_CONCURRENCY) {
15
+ super(multiProvider, chain);
16
+ this.concurrency = concurrency;
17
+ this.evmHookReader = new EvmHookReader(multiProvider, chain, concurrency);
18
+ this.evmIsmReader = new EvmIsmReader(multiProvider, chain, concurrency);
19
+ }
20
+ async readRouterConfig(address) {
21
+ const mailboxClientConfig = await this.fetchMailboxClientConfig(address);
22
+ const remoteRouters = await this.fetchRemoteRouters(address);
23
+ // proxyAdmin and foreignDeployment are not directly readable from a generic router
24
+ // and depend on deployment context or specific router implementations.
25
+ return {
26
+ ...mailboxClientConfig,
27
+ remoteRouters,
28
+ };
29
+ }
30
+ async fetchMailboxClientConfig(routerAddress) {
31
+ const mailboxClient = MailboxClient__factory.connect(routerAddress, this.provider);
32
+ const [mailbox, owner, hookAddress, ismAddress] = await Promise.all([
33
+ mailboxClient.mailbox(),
34
+ mailboxClient.owner(),
35
+ mailboxClient.hook(),
36
+ mailboxClient.interchainSecurityModule(),
37
+ ]);
38
+ const derivedIsm = eqAddress(ismAddress, constants.AddressZero)
39
+ ? constants.AddressZero
40
+ : await this.evmIsmReader.deriveIsmConfig(ismAddress);
41
+ const derivedHook = eqAddress(hookAddress, constants.AddressZero)
42
+ ? constants.AddressZero
43
+ : await this.evmHookReader.deriveHookConfig(hookAddress);
44
+ return {
45
+ owner,
46
+ mailbox,
47
+ hook: derivedHook,
48
+ interchainSecurityModule: derivedIsm,
49
+ };
50
+ }
51
+ async fetchRemoteRouters(routerAddress) {
52
+ const router = Router__factory.connect(routerAddress, this.provider);
53
+ const domains = await router.domains();
54
+ const routers = Object.fromEntries(await Promise.all(domains.map(async (domain) => {
55
+ return [domain, { address: await router.routers(domain) }];
56
+ })));
57
+ return RemoteRoutersSchema.parse(routers);
58
+ }
59
+ }
60
+ //# sourceMappingURL=EvmRouterReader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvmRouterReader.js","sourceRoot":"","sources":["../../src/router/EvmRouterReader.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { Router } from '@hyperlane-xyz/core';
1
2
  import { HyperlaneFactories } from '../contracts/types.js';
2
3
  import { HyperlaneAppChecker } from '../deploy/HyperlaneAppChecker.js';
3
4
  import { HyperlaneIsmFactory } from '../ism/HyperlaneIsmFactory.js';
@@ -10,6 +11,8 @@ export declare class HyperlaneRouterChecker<Factories extends HyperlaneFactories
10
11
  readonly logger: import("pino").default.Logger<never>;
11
12
  constructor(multiProvider: MultiProvider, app: App, configMap: ChainMap<Config>, ismFactory?: HyperlaneIsmFactory | undefined, logger?: import("pino").default.Logger<never>);
12
13
  checkChain(chain: ChainName): Promise<void>;
14
+ protected checkMailbox(chain: ChainName, router: Router, config: RouterConfig): Promise<void>;
15
+ protected checkMailboxIsm(chain: ChainName, router: Router, config: RouterConfig): Promise<void>;
13
16
  checkMailboxClient(chain: ChainName): Promise<void>;
14
17
  checkEnrolledRouters(chain: ChainName, expectedRemoteChains?: ChainName[]): Promise<void>;
15
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HyperlaneRouterChecker.d.ts","sourceRoot":"","sources":["../../src/router/HyperlaneRouterChecker.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAKL,YAAY,EAGb,MAAM,YAAY,CAAC;AAEpB,qBAAa,sBAAsB,CACjC,SAAS,SAAS,kBAAkB,EACpC,GAAG,SAAS,SAAS,CAAC,SAAS,CAAC,EAChC,MAAM,SAAS,YAAY,CAC3B,SAAQ,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC;IAKtC,QAAQ,CAAC,UAAU,CAAC;IACpB,QAAQ,CAAC,MAAM;gBAJf,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,EAClB,UAAU,CAAC,iCAAqB,EAChC,MAAM,uCAAyD;IAKpE,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3C,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAyEnD,oBAAoB,CACxB,KAAK,EAAE,SAAS,EAChB,oBAAoB,GAAE,SAAS,EAAO,GACrC,OAAO,CAAC,IAAI,CAAC;CAoFjB"}
1
+ {"version":3,"file":"HyperlaneRouterChecker.d.ts","sourceRoot":"","sources":["../../src/router/HyperlaneRouterChecker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAS7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAKL,YAAY,EAGb,MAAM,YAAY,CAAC;AAEpB,qBAAa,sBAAsB,CACjC,SAAS,SAAS,kBAAkB,EACpC,GAAG,SAAS,SAAS,CAAC,SAAS,CAAC,EAChC,MAAM,SAAS,YAAY,CAC3B,SAAQ,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC;IAKtC,QAAQ,CAAC,UAAU,CAAC;IACpB,QAAQ,CAAC,MAAM;gBAJf,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,EAClB,UAAU,CAAC,iCAAqB,EAChC,MAAM,uCAAyD;IAKpE,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;cAUjC,YAAY,CAC1B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC;cA0BA,eAAe,CAC7B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC;IAgDV,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnD,oBAAoB,CACxB,KAAK,EAAE,SAAS,EAChB,oBAAoB,GAAE,SAAS,EAAO,GACrC,OAAO,CAAC,IAAI,CAAC;CAoFjB"}
@@ -17,9 +17,7 @@ export class HyperlaneRouterChecker extends HyperlaneAppChecker {
17
17
  await this.checkEnrolledRouters(chain);
18
18
  await super.checkOwnership(chain, this.configMap[chain].owner, this.configMap[chain].ownerOverrides);
19
19
  }
20
- async checkMailboxClient(chain) {
21
- const router = this.app.router(this.app.getContracts(chain));
22
- const config = this.configMap[chain];
20
+ async checkMailbox(chain, router, config) {
23
21
  const mailboxAddr = await router.mailbox();
24
22
  if (!eqAddress(mailboxAddr, config.mailbox)) {
25
23
  this.addViolation({
@@ -42,12 +40,18 @@ export class HyperlaneRouterChecker extends HyperlaneAppChecker {
42
40
  });
43
41
  }
44
42
  }
43
+ }
44
+ async checkMailboxIsm(chain, router, config) {
45
+ const mailboxAddr = await router.mailbox();
45
46
  const actualIsmAddress = await router.interchainSecurityModule();
47
+ // If the router is its own ism (e.g. the ICA router, skip checking configs)
48
+ if (eqAddress(actualIsmAddress, router.address))
49
+ return;
46
50
  const matches = await moduleMatchesConfig(chain, actualIsmAddress, config.interchainSecurityModule ?? ethers.constants.AddressZero, this.multiProvider, this.ismFactory?.chainMap[chain] ?? {}, mailboxAddr);
47
51
  if (!matches) {
48
52
  const ismReader = new EvmIsmReader(this.multiProvider, chain);
49
53
  let actualConfig = ethers.constants.AddressZero;
50
- if (actualIsmAddress !== ethers.constants.AddressZero) {
54
+ if (!isZeroishAddress(actualIsmAddress)) {
51
55
  actualConfig = await ismReader.deriveIsmConfig(actualIsmAddress);
52
56
  }
53
57
  let expectedConfig = config.interchainSecurityModule;
@@ -69,6 +73,12 @@ export class HyperlaneRouterChecker extends HyperlaneAppChecker {
69
73
  this.addViolation(violation);
70
74
  }
71
75
  }
76
+ async checkMailboxClient(chain) {
77
+ const router = this.app.router(this.app.getContracts(chain));
78
+ const config = this.configMap[chain];
79
+ await this.checkMailbox(chain, router, config);
80
+ await this.checkMailboxIsm(chain, router, config);
81
+ }
72
82
  async checkEnrolledRouters(chain, expectedRemoteChains = []) {
73
83
  const router = this.app.router(this.app.getContracts(chain));
74
84
  const actualRemoteChains = await this.app.remoteChains(chain);
@@ -1 +1 @@
1
- {"version":3,"file":"HyperlaneRouterChecker.js","sourceRoot":"","sources":["../../src/router/HyperlaneRouterChecker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HyperlaneRouterChecker.js","sourceRoot":"","sources":["../../src/router/HyperlaneRouterChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAEL,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,UAAU,GACX,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAKtD,OAAO,EAEL,mBAAmB,EAKnB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,MAAM,OAAO,sBAIX,SAAQ,mBAAgC;IAK7B;IACA;IALX,YACE,aAA4B,EAC5B,GAAQ,EACR,SAA2B,EAClB,UAAgC,EAChC,SAAS,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;QAExE,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAH5B,eAAU,GAAV,UAAU,CAAsB;QAChC,WAAM,GAAN,MAAM,CAAyD;IAG1E,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAgB;QAC/B,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,KAAK,CAAC,cAAc,CACxB,KAAK,EACL,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAC3B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,cAAc,CACrC,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,YAAY,CAC1B,KAAgB,EAChB,MAAc,EACd,MAAoB;QAEpB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,YAAY,CAAC;gBAChB,KAAK;gBACL,IAAI,EAAE,mBAAmB,CAAC,OAAO;gBACjC,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,MAAM,CAAC,OAAO;aACzB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,IAAc,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,YAAY,CAAC;oBAChB,KAAK;oBACL,IAAI,EAAE,mBAAmB,CAAC,IAAI;oBAC9B,QAAQ,EAAE,MAAM;oBAChB,MAAM,EAAE,IAAI;oBACZ,QAAQ,EAAE,MAAM,CAAC,IAAI;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAES,KAAK,CAAC,eAAe,CAC7B,KAAgB,EAChB,MAAc,EACd,MAAoB;QAEpB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QAC3C,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,wBAAwB,EAAE,CAAC;QAEjE,4EAA4E;QAC5E,IAAI,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC;YAAE,OAAO;QACxD,MAAM,OAAO,GAAG,MAAM,mBAAmB,CACvC,KAAK,EACL,gBAAgB,EAChB,MAAM,CAAC,wBAAwB,IAAI,MAAM,CAAC,SAAS,CAAC,WAAW,EAC/D,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAK,EAAU,EAC/C,WAAW,CACZ,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YAC9D,IAAI,YAAY,GACd,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;YAC/B,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACxC,YAAY,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;YACnE,CAAC;YAED,IAAI,cAAc,GAAG,MAAM,CAAC,wBAAwB,CAAC;YAErD,IACE,OAAO,cAAc,KAAK,QAAQ;gBAClC,CAAC,gBAAgB,CAAC,cAAc,CAAC,EACjC,CAAC;gBACD,cAAc,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YACnE,CAAC;YAED,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;YAChD,CAAC;YAED,MAAM,SAAS,GAAoB;gBACjC,KAAK;gBACL,IAAI,EAAE,mBAAmB,CAAC,wBAAwB;gBAClD,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,YAAY;gBACpB,QAAQ,EAAE,cAAc;gBACxB,WAAW,EAAE,wCAAwC;aACtD,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAgB;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,KAAgB,EAChB,uBAAoC,EAAE;QAEtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAE9D,MAAM,cAAc,GAAqB,EAAE,CAAC;QAC5C,MAAM,eAAe,GAAqB,EAAE,CAAC;QAE7C,MAAM,mBAAmB,GAAG,oBAAoB;aAC7C,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;aAClD,IAAI,EAAE,CAAC;QACV,MAAM,uBAAuB,GAGxB,EAAE,CAAC;QACR,MAAM,oBAAoB,GAAgB,EAAE,CAAC;QAE7C,MAAM,OAAO,CAAC,GAAG,CACf,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YAC3C,IAAI,mBAA2B,CAAC;YAChC,IAAI,CAAC;gBACH,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAC5D,CAAC;YAAC,MAAM,CAAC;gBACP,uDAAuD;gBACvD,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,OAAO;YACT,CAAC;YACD,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACnE,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC1D,MAAM,cAAc,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YAE7D,cAAc,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC;YAC3C,eAAe,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC;YAE9C,IAAI,YAAY,KAAK,cAAc,EAAE,CAAC;gBACpC,uBAAuB,CAAC,WAAW,CAAC,GAAG;oBACrC,MAAM,EAAE,YAAY;oBACpB,QAAQ,EAAE,cAAc;iBACzB,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,MAAM,CACpD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CACjD,CAAC;QAEF,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,SAAS,GAAmC;gBAChD,KAAK;gBACL,IAAI,EAAE,mBAAmB,CAAC,qBAAqB;gBAC/C,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;gBACrC,QAAQ,EAAE,oBAAoB,CAAC,IAAI,EAAE;gBACrC,aAAa,EAAE,mBAAmB;gBAClC,WAAW,EAAE,sDAAsD;aACpE,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,MAAM,SAAS,GAAoB;gBACjC,KAAK;gBACL,IAAI,EAAE,mBAAmB,CAAC,2BAA2B;gBACrD,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,cAAc;gBACtB,QAAQ,EAAE,eAAe;gBACzB,UAAU,EAAE,uBAAuB;gBACnC,WAAW,EAAE,gEAAgE;aAC9E,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,SAAS,GAA2B;gBACxC,KAAK;gBACL,IAAI,EAAE,mBAAmB,CAAC,aAAa;gBACvC,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC;gBACpC,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC;gBACxC,WAAW,EAAE,sDAAsD;aACpE,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;CACF"}
@@ -6,17 +6,18 @@ import { UpgradeConfig } from '../deploy/proxy.js';
6
6
  import { CheckerViolation } from '../deploy/types.js';
7
7
  import { DerivedHookConfig } from '../hook/types.js';
8
8
  import { DerivedIsmConfig } from '../ism/types.js';
9
+ import { MultiProvider } from '../providers/MultiProvider.js';
9
10
  import { ChainMap } from '../types.js';
10
11
  export type RouterAddress = {
11
12
  router: Address;
12
13
  };
13
14
  export type MailboxClientConfig = z.infer<typeof MailboxClientConfigSchema>;
14
- export type DerivedMailboxClientFields = {
15
- hook: string | DerivedHookConfig;
16
- interchainSecurityModule: string | DerivedIsmConfig;
15
+ export type DerivedMailboxClientConfig = MailboxClientConfig & {
16
+ hook: DerivedHookConfig | Address;
17
+ interchainSecurityModule: DerivedIsmConfig | Address;
17
18
  };
18
- export type DerivedMailboxClientConfig = Omit<MailboxClientConfig, keyof DerivedMailboxClientFields> & DerivedMailboxClientFields;
19
19
  export type RouterConfig = z.infer<typeof RouterConfigSchema>;
20
+ export type DerivedRouterConfig = RouterConfig & DerivedMailboxClientConfig;
20
21
  export type GasRouterConfig = z.infer<typeof GasRouterConfigSchema>;
21
22
  export type ProxiedRouterConfig = RouterConfig & Partial<UpgradeConfig>;
22
23
  export type ProxiedFactories = HyperlaneFactories & {
@@ -312,11 +313,20 @@ export declare const MailboxClientConfigSchema: z.ZodObject<{
312
313
  type: import("../ism/types.js").IsmType.ARB_L2_TO_L1;
313
314
  bridge: string;
314
315
  }>, z.ZodObject<{
315
- type: z.ZodLiteral<import("../ism/types.js").IsmType.CCIP_READ>;
316
+ owner: z.ZodString;
317
+ ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
318
+ type: z.ZodLiteral<import("../ism/types.js").IsmType.OFFCHAIN_LOOKUP>;
319
+ urls: z.ZodArray<z.ZodString, "many">;
316
320
  }, "strip", z.ZodTypeAny, {
317
- type: import("../ism/types.js").IsmType.CCIP_READ;
321
+ type: import("../ism/types.js").IsmType.OFFCHAIN_LOOKUP;
322
+ owner: string;
323
+ urls: string[];
324
+ ownerOverrides?: Record<string, string> | undefined;
318
325
  }, {
319
- type: import("../ism/types.js").IsmType.CCIP_READ;
326
+ type: import("../ism/types.js").IsmType.OFFCHAIN_LOOKUP;
327
+ owner: string;
328
+ urls: string[];
329
+ ownerOverrides?: Record<string, string> | undefined;
320
330
  }>]>>;
321
331
  }, "strip", z.ZodTypeAny, {
322
332
  owner: string;
@@ -401,7 +411,10 @@ export declare const MailboxClientConfigSchema: z.ZodObject<{
401
411
  type: import("../ism/types.js").IsmType.ARB_L2_TO_L1;
402
412
  bridge: string;
403
413
  } | {
404
- type: import("../ism/types.js").IsmType.CCIP_READ;
414
+ type: import("../ism/types.js").IsmType.OFFCHAIN_LOOKUP;
415
+ owner: string;
416
+ urls: string[];
417
+ ownerOverrides?: Record<string, string> | undefined;
405
418
  } | import("../ism/types.js").RoutingIsmConfig | import("../ism/types.js").AggregationIsmConfig | undefined;
406
419
  }, {
407
420
  owner: string;
@@ -486,7 +499,10 @@ export declare const MailboxClientConfigSchema: z.ZodObject<{
486
499
  type: import("../ism/types.js").IsmType.ARB_L2_TO_L1;
487
500
  bridge: string;
488
501
  } | {
489
- type: import("../ism/types.js").IsmType.CCIP_READ;
502
+ type: import("../ism/types.js").IsmType.OFFCHAIN_LOOKUP;
503
+ owner: string;
504
+ urls: string[];
505
+ ownerOverrides?: Record<string, string> | undefined;
490
506
  } | import("../ism/types.js").RoutingIsmConfig | import("../ism/types.js").AggregationIsmConfig | undefined;
491
507
  }>;
492
508
  export declare const ForeignDeploymentConfigSchema: z.ZodObject<{
@@ -496,7 +512,9 @@ export declare const ForeignDeploymentConfigSchema: z.ZodObject<{
496
512
  }, {
497
513
  foreignDeployment?: string | undefined;
498
514
  }>;
499
- export declare const RemoteRouterDomain: z.ZodString;
515
+ export declare const RemoteRouterDomainOrChainNameSchema: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
516
+ export type RemoteRouterDomainOrChainName = z.infer<typeof RemoteRouterDomainOrChainNameSchema>;
517
+ export declare function resolveRouterMapConfig<T>(multiProvider: MultiProvider, routerMap: Record<RemoteRouterDomainOrChainName, T>): Record<number, T>;
500
518
  export declare const RemoteRouterRouter: z.ZodObject<{
501
519
  address: z.ZodString;
502
520
  }, "strip", z.ZodTypeAny, {
@@ -504,7 +522,7 @@ export declare const RemoteRouterRouter: z.ZodObject<{
504
522
  }, {
505
523
  address: string;
506
524
  }>;
507
- export declare const RemoteRoutersSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
525
+ export declare const RemoteRoutersSchema: z.ZodRecord<z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodObject<{
508
526
  address: z.ZodString;
509
527
  }, "strip", z.ZodTypeAny, {
510
528
  address: string;
@@ -762,14 +780,23 @@ export declare const RouterConfigSchema: z.ZodObject<{
762
780
  type: import("../ism/types.js").IsmType.ARB_L2_TO_L1;
763
781
  bridge: string;
764
782
  }>, z.ZodObject<{
765
- type: z.ZodLiteral<import("../ism/types.js").IsmType.CCIP_READ>;
783
+ owner: z.ZodString;
784
+ ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
785
+ type: z.ZodLiteral<import("../ism/types.js").IsmType.OFFCHAIN_LOOKUP>;
786
+ urls: z.ZodArray<z.ZodString, "many">;
766
787
  }, "strip", z.ZodTypeAny, {
767
- type: import("../ism/types.js").IsmType.CCIP_READ;
788
+ type: import("../ism/types.js").IsmType.OFFCHAIN_LOOKUP;
789
+ owner: string;
790
+ urls: string[];
791
+ ownerOverrides?: Record<string, string> | undefined;
768
792
  }, {
769
- type: import("../ism/types.js").IsmType.CCIP_READ;
793
+ type: import("../ism/types.js").IsmType.OFFCHAIN_LOOKUP;
794
+ owner: string;
795
+ urls: string[];
796
+ ownerOverrides?: Record<string, string> | undefined;
770
797
  }>]>>;
771
798
  foreignDeployment: z.ZodOptional<z.ZodString>;
772
- remoteRouters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
799
+ remoteRouters: z.ZodOptional<z.ZodRecord<z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodObject<{
773
800
  address: z.ZodString;
774
801
  }, "strip", z.ZodTypeAny, {
775
802
  address: string;
@@ -872,10 +899,13 @@ export declare const RouterConfigSchema: z.ZodObject<{
872
899
  type: import("../ism/types.js").IsmType.ARB_L2_TO_L1;
873
900
  bridge: string;
874
901
  } | {
875
- type: import("../ism/types.js").IsmType.CCIP_READ;
902
+ type: import("../ism/types.js").IsmType.OFFCHAIN_LOOKUP;
903
+ owner: string;
904
+ urls: string[];
905
+ ownerOverrides?: Record<string, string> | undefined;
876
906
  } | import("../ism/types.js").RoutingIsmConfig | import("../ism/types.js").AggregationIsmConfig | undefined;
877
907
  foreignDeployment?: string | undefined;
878
- remoteRouters?: Record<string, {
908
+ remoteRouters?: Record<string | number, {
879
909
  address: string;
880
910
  }> | undefined;
881
911
  proxyAdmin?: {
@@ -966,10 +996,13 @@ export declare const RouterConfigSchema: z.ZodObject<{
966
996
  type: import("../ism/types.js").IsmType.ARB_L2_TO_L1;
967
997
  bridge: string;
968
998
  } | {
969
- type: import("../ism/types.js").IsmType.CCIP_READ;
999
+ type: import("../ism/types.js").IsmType.OFFCHAIN_LOOKUP;
1000
+ owner: string;
1001
+ urls: string[];
1002
+ ownerOverrides?: Record<string, string> | undefined;
970
1003
  } | import("../ism/types.js").RoutingIsmConfig | import("../ism/types.js").AggregationIsmConfig | undefined;
971
1004
  foreignDeployment?: string | undefined;
972
- remoteRouters?: Record<string, {
1005
+ remoteRouters?: Record<string | number, {
973
1006
  address: string;
974
1007
  }> | undefined;
975
1008
  proxyAdmin?: {
@@ -978,7 +1011,7 @@ export declare const RouterConfigSchema: z.ZodObject<{
978
1011
  address?: string | undefined;
979
1012
  } | undefined;
980
1013
  }>;
981
- export declare const DestinationGasSchema: z.ZodRecord<z.ZodString, z.ZodString>;
1014
+ export declare const DestinationGasSchema: z.ZodRecord<z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodString>;
982
1015
  export declare const GasRouterConfigSchema: z.ZodObject<{
983
1016
  owner: z.ZodString;
984
1017
  ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -1243,14 +1276,23 @@ export declare const GasRouterConfigSchema: z.ZodObject<{
1243
1276
  type: import("../ism/types.js").IsmType.ARB_L2_TO_L1;
1244
1277
  bridge: string;
1245
1278
  }>, z.ZodObject<{
1246
- type: z.ZodLiteral<import("../ism/types.js").IsmType.CCIP_READ>;
1279
+ owner: z.ZodString;
1280
+ ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1281
+ type: z.ZodLiteral<import("../ism/types.js").IsmType.OFFCHAIN_LOOKUP>;
1282
+ urls: z.ZodArray<z.ZodString, "many">;
1247
1283
  }, "strip", z.ZodTypeAny, {
1248
- type: import("../ism/types.js").IsmType.CCIP_READ;
1284
+ type: import("../ism/types.js").IsmType.OFFCHAIN_LOOKUP;
1285
+ owner: string;
1286
+ urls: string[];
1287
+ ownerOverrides?: Record<string, string> | undefined;
1249
1288
  }, {
1250
- type: import("../ism/types.js").IsmType.CCIP_READ;
1289
+ type: import("../ism/types.js").IsmType.OFFCHAIN_LOOKUP;
1290
+ owner: string;
1291
+ urls: string[];
1292
+ ownerOverrides?: Record<string, string> | undefined;
1251
1293
  }>]>>;
1252
1294
  foreignDeployment: z.ZodOptional<z.ZodString>;
1253
- remoteRouters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1295
+ remoteRouters: z.ZodOptional<z.ZodRecord<z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodObject<{
1254
1296
  address: z.ZodString;
1255
1297
  }, "strip", z.ZodTypeAny, {
1256
1298
  address: string;
@@ -1258,7 +1300,7 @@ export declare const GasRouterConfigSchema: z.ZodObject<{
1258
1300
  address: string;
1259
1301
  }>>>;
1260
1302
  gas: z.ZodOptional<z.ZodNumber>;
1261
- destinationGas: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1303
+ destinationGas: z.ZodOptional<z.ZodRecord<z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodString>>;
1262
1304
  }, "strip", z.ZodTypeAny, {
1263
1305
  owner: string;
1264
1306
  mailbox: string;
@@ -1347,14 +1389,17 @@ export declare const GasRouterConfigSchema: z.ZodObject<{
1347
1389
  type: import("../ism/types.js").IsmType.ARB_L2_TO_L1;
1348
1390
  bridge: string;
1349
1391
  } | {
1350
- type: import("../ism/types.js").IsmType.CCIP_READ;
1392
+ type: import("../ism/types.js").IsmType.OFFCHAIN_LOOKUP;
1393
+ owner: string;
1394
+ urls: string[];
1395
+ ownerOverrides?: Record<string, string> | undefined;
1351
1396
  } | import("../ism/types.js").RoutingIsmConfig | import("../ism/types.js").AggregationIsmConfig | undefined;
1352
1397
  foreignDeployment?: string | undefined;
1353
- remoteRouters?: Record<string, {
1398
+ remoteRouters?: Record<string | number, {
1354
1399
  address: string;
1355
1400
  }> | undefined;
1356
1401
  gas?: number | undefined;
1357
- destinationGas?: Record<string, string> | undefined;
1402
+ destinationGas?: Record<string | number, string> | undefined;
1358
1403
  }, {
1359
1404
  owner: string;
1360
1405
  mailbox: string;
@@ -1443,13 +1488,16 @@ export declare const GasRouterConfigSchema: z.ZodObject<{
1443
1488
  type: import("../ism/types.js").IsmType.ARB_L2_TO_L1;
1444
1489
  bridge: string;
1445
1490
  } | {
1446
- type: import("../ism/types.js").IsmType.CCIP_READ;
1491
+ type: import("../ism/types.js").IsmType.OFFCHAIN_LOOKUP;
1492
+ owner: string;
1493
+ urls: string[];
1494
+ ownerOverrides?: Record<string, string> | undefined;
1447
1495
  } | import("../ism/types.js").RoutingIsmConfig | import("../ism/types.js").AggregationIsmConfig | undefined;
1448
1496
  foreignDeployment?: string | undefined;
1449
- remoteRouters?: Record<string, {
1497
+ remoteRouters?: Record<string | number, {
1450
1498
  address: string;
1451
1499
  }> | undefined;
1452
1500
  gas?: number | undefined;
1453
- destinationGas?: Record<string, string> | undefined;
1501
+ destinationGas?: Record<string | number, string> | undefined;
1454
1502
  }>;
1455
1503
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,MAAM,EACN,2BAA2B,EAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,cAAc,EAAa,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAoB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAwC,MAAM,aAAa,CAAC;AAE7E,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,MAAM,MAAM,0BAA0B,GAAG,mBAAmB,GAAG;IAC7D,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC;IAClC,wBAAwB,EAAE,gBAAgB,GAAG,OAAO,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,0BAA0B,CAAC;AAE5E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACxE,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG;IAClD,UAAU,EAAE,mBAAmB,CAAC;IAChC,kBAAkB,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,gBAG9B,CAAC;AAEF,oBAAY,mBAAmB;IAC7B,wBAAwB,cAAc;IACtC,OAAO,kBAAkB;IACzB,IAAI,eAAe;CACpB;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,oBAAY,mBAAmB;IAC7B,2BAA2B,gCAAgC;IAC3D,qBAAqB,0BAA0B;IAC/C,aAAa,kBAAkB;CAChC;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,IAAI,EAAE,mBAAmB,CAAC,2BAA2B,CAAC;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,QAAQ,CAAC;QACnB,MAAM,EAAE,cAAc,CAAC;QACvB,QAAQ,EAAE,cAAc,CAAC;KAC1B,CAAC,CAAC;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,8BAA+B,SAAQ,gBAAgB;IACtE,IAAI,EAAE,mBAAmB,CAAC,qBAAqB,CAAC;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,IAAI,EAAE,mBAAmB,CAAC,aAAa,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIpC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;EAExC,CAAC;AAEH,eAAO,MAAM,mCAAmC,wCAA4B,CAAC;AAC7E,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CACjD,OAAO,mCAAmC,CAC3C,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,MAAM,CAAC,6BAA6B,EAAE,CAAC,CAAC,GAClD,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAWnB;AAED,eAAO,MAAM,kBAAkB;;;;;;EAE7B,CAAC;AACH,eAAO,MAAM,mBAAmB;;;;;;GAG/B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO9B,CAAC;AAGF,eAAO,MAAM,oBAAoB,kEAGhC,CAAC;AACF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGhC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { ProxyAdmin__factory, TimelockController__factory, } from '@hyperlane-xyz/core';
3
+ import { isNumeric } from '@hyperlane-xyz/utils';
3
4
  import { HookConfigSchema } from '../hook/types.js';
4
5
  import { IsmConfigSchema } from '../ism/types.js';
5
6
  import { ZHash } from '../metadata/customZodTypes.js';
@@ -28,18 +29,26 @@ export const MailboxClientConfigSchema = OwnableSchema.extend({
28
29
  export const ForeignDeploymentConfigSchema = z.object({
29
30
  foreignDeployment: z.string().optional(),
30
31
  });
31
- export const RemoteRouterDomain = z.string();
32
+ export const RemoteRouterDomainOrChainNameSchema = z.string().or(z.number());
33
+ export function resolveRouterMapConfig(multiProvider, routerMap) {
34
+ return Object.fromEntries(Object.entries(routerMap).map(([domainIdOrChainName, value]) => {
35
+ if (isNumeric(domainIdOrChainName)) {
36
+ return [parseInt(domainIdOrChainName), value];
37
+ }
38
+ const meta = multiProvider.getChainMetadata(domainIdOrChainName);
39
+ return [meta.domainId, value];
40
+ }));
41
+ }
32
42
  export const RemoteRouterRouter = z.object({
33
43
  address: z.string().startsWith('0x'),
34
44
  });
35
- export const RemoteRoutersSchema = z.record(RemoteRouterDomain, RemoteRouterRouter);
45
+ export const RemoteRoutersSchema = z.record(RemoteRouterDomainOrChainNameSchema, RemoteRouterRouter);
36
46
  export const RouterConfigSchema = MailboxClientConfigSchema.merge(ForeignDeploymentConfigSchema).merge(z.object({
37
47
  remoteRouters: RemoteRoutersSchema.optional(),
38
48
  proxyAdmin: DeployedOwnableSchema.optional(),
39
49
  }));
40
- const DestinationGasDomain = z.string();
41
50
  const DestinationGasAmount = z.string(); // This must be a string type to match Ether's type
42
- export const DestinationGasSchema = z.record(DestinationGasDomain, DestinationGasAmount);
51
+ export const DestinationGasSchema = z.record(RemoteRouterDomainOrChainNameSchema, DestinationGasAmount);
43
52
  export const GasRouterConfigSchema = RouterConfigSchema.extend({
44
53
  gas: z.number().optional(),
45
54
  destinationGas: DestinationGasSchema.optional(),