@hyperlane-xyz/sdk 3.7.0 → 3.8.0-beta0

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 (218) hide show
  1. package/dist/consts/chainMetadata.d.ts +1 -2
  2. package/dist/consts/chainMetadata.d.ts.map +1 -1
  3. package/dist/consts/chainMetadata.js +43 -64
  4. package/dist/consts/chainMetadata.js.map +1 -1
  5. package/dist/consts/chains.d.ts +1 -2
  6. package/dist/consts/chains.d.ts.map +1 -1
  7. package/dist/consts/chains.js +2 -4
  8. package/dist/consts/chains.js.map +1 -1
  9. package/dist/consts/environments/index.d.ts +121 -133
  10. package/dist/consts/environments/index.d.ts.map +1 -1
  11. package/dist/consts/environments/testnet.json +166 -178
  12. package/dist/consts/multisigIsm.d.ts.map +1 -1
  13. package/dist/consts/multisigIsm.js +6 -18
  14. package/dist/consts/multisigIsm.js.map +1 -1
  15. package/dist/core/CoreDeployer.hardhat-test.js +4 -2
  16. package/dist/core/CoreDeployer.hardhat-test.js.map +1 -1
  17. package/dist/core/HyperlaneCoreChecker.d.ts.map +1 -1
  18. package/dist/core/HyperlaneCoreChecker.js +3 -3
  19. package/dist/core/HyperlaneCoreChecker.js.map +1 -1
  20. package/dist/core/HyperlaneCoreDeployer.d.ts +6 -2
  21. package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
  22. package/dist/core/HyperlaneCoreDeployer.js +24 -11
  23. package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
  24. package/dist/core/TestRecipientDeployer.d.ts +2 -1
  25. package/dist/core/TestRecipientDeployer.d.ts.map +1 -1
  26. package/dist/core/TestRecipientDeployer.js +2 -1
  27. package/dist/core/TestRecipientDeployer.js.map +1 -1
  28. package/dist/deploy/HyperlaneDeployer.d.ts +7 -6
  29. package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
  30. package/dist/deploy/HyperlaneDeployer.js +34 -13
  31. package/dist/deploy/HyperlaneDeployer.js.map +1 -1
  32. package/dist/deploy/HyperlaneProxyFactoryDeployer.d.ts +2 -1
  33. package/dist/deploy/HyperlaneProxyFactoryDeployer.d.ts.map +1 -1
  34. package/dist/deploy/HyperlaneProxyFactoryDeployer.js +2 -1
  35. package/dist/deploy/HyperlaneProxyFactoryDeployer.js.map +1 -1
  36. package/dist/deploy/types.d.ts +1 -1
  37. package/dist/deploy/types.d.ts.map +1 -1
  38. package/dist/deploy/verify/ContractVerifier.d.ts +9 -12
  39. package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -1
  40. package/dist/deploy/verify/ContractVerifier.js +147 -121
  41. package/dist/deploy/verify/ContractVerifier.js.map +1 -1
  42. package/dist/deploy/verify/PostDeploymentContractVerifier.d.ts +14 -0
  43. package/dist/deploy/verify/PostDeploymentContractVerifier.d.ts.map +1 -0
  44. package/dist/deploy/verify/PostDeploymentContractVerifier.js +31 -0
  45. package/dist/deploy/verify/PostDeploymentContractVerifier.js.map +1 -0
  46. package/dist/deploy/verify/types.d.ts +60 -3
  47. package/dist/deploy/verify/types.d.ts.map +1 -1
  48. package/dist/deploy/verify/types.js +42 -0
  49. package/dist/deploy/verify/types.js.map +1 -1
  50. package/dist/gas/HyperlaneIgpChecker.d.ts +0 -2
  51. package/dist/gas/HyperlaneIgpChecker.d.ts.map +1 -1
  52. package/dist/gas/HyperlaneIgpChecker.js +8 -29
  53. package/dist/gas/HyperlaneIgpChecker.js.map +1 -1
  54. package/dist/gas/HyperlaneIgpDeployer.d.ts +6 -7
  55. package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -1
  56. package/dist/gas/HyperlaneIgpDeployer.js +40 -59
  57. package/dist/gas/HyperlaneIgpDeployer.js.map +1 -1
  58. package/dist/gas/oracle/configure-gas-oracles.hardhat-test.js +17 -22
  59. package/dist/gas/oracle/configure-gas-oracles.hardhat-test.js.map +1 -1
  60. package/dist/gas/oracle/types.d.ts +6 -9
  61. package/dist/gas/oracle/types.d.ts.map +1 -1
  62. package/dist/gas/oracle/types.js +23 -1
  63. package/dist/gas/oracle/types.js.map +1 -1
  64. package/dist/gas/types.d.ts +3 -4
  65. package/dist/gas/types.d.ts.map +1 -1
  66. package/dist/gas/types.js +1 -5
  67. package/dist/gas/types.js.map +1 -1
  68. package/dist/hook/HyperlaneHookDeployer.d.ts +2 -1
  69. package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
  70. package/dist/hook/HyperlaneHookDeployer.js +6 -4
  71. package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
  72. package/dist/index.d.ts +16 -7
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +49 -22
  75. package/dist/index.js.map +1 -1
  76. package/dist/ism/HyperlaneIsmFactory.d.ts +11 -10
  77. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  78. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +14 -12
  79. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
  80. package/dist/ism/HyperlaneIsmFactory.js +39 -287
  81. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  82. package/dist/ism/utils.d.ts +11 -0
  83. package/dist/ism/utils.d.ts.map +1 -0
  84. package/dist/ism/utils.js +277 -0
  85. package/dist/ism/utils.js.map +1 -0
  86. package/dist/metadata/ChainMetadataManager.d.ts +43 -21
  87. package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
  88. package/dist/metadata/ChainMetadataManager.js +26 -0
  89. package/dist/metadata/ChainMetadataManager.js.map +1 -1
  90. package/dist/metadata/agentConfig.d.ts +97 -46
  91. package/dist/metadata/agentConfig.d.ts.map +1 -1
  92. package/dist/metadata/blockExplorer.d.ts +6 -1
  93. package/dist/metadata/blockExplorer.d.ts.map +1 -1
  94. package/dist/metadata/blockExplorer.js +15 -1
  95. package/dist/metadata/blockExplorer.js.map +1 -1
  96. package/dist/metadata/chainMetadataTypes.d.ts +188 -1
  97. package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
  98. package/dist/metadata/chainMetadataTypes.js +14 -4
  99. package/dist/metadata/chainMetadataTypes.js.map +1 -1
  100. package/dist/metadata/customZodTypes.d.ts +2 -0
  101. package/dist/metadata/customZodTypes.d.ts.map +1 -1
  102. package/dist/metadata/customZodTypes.js +3 -1
  103. package/dist/metadata/customZodTypes.js.map +1 -1
  104. package/dist/middleware/account/InterchainAccountDeployer.d.ts +2 -1
  105. package/dist/middleware/account/InterchainAccountDeployer.d.ts.map +1 -1
  106. package/dist/middleware/account/InterchainAccountDeployer.js +4 -2
  107. package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -1
  108. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts +2 -1
  109. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts.map +1 -1
  110. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js +4 -2
  111. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js.map +1 -1
  112. package/dist/middleware/query/InterchainQueryDeployer.d.ts +2 -1
  113. package/dist/middleware/query/InterchainQueryDeployer.d.ts.map +1 -1
  114. package/dist/middleware/query/InterchainQueryDeployer.js +4 -2
  115. package/dist/middleware/query/InterchainQueryDeployer.js.map +1 -1
  116. package/dist/providers/MultiProtocolProvider.d.ts +10 -12
  117. package/dist/providers/MultiProtocolProvider.d.ts.map +1 -1
  118. package/dist/providers/MultiProtocolProvider.js +2 -7
  119. package/dist/providers/MultiProtocolProvider.js.map +1 -1
  120. package/dist/providers/MultiProvider.d.ts +17 -17
  121. package/dist/providers/MultiProvider.d.ts.map +1 -1
  122. package/dist/providers/MultiProvider.js +1 -0
  123. package/dist/providers/MultiProvider.js.map +1 -1
  124. package/dist/providers/ProviderType.d.ts +5 -2
  125. package/dist/providers/ProviderType.d.ts.map +1 -1
  126. package/dist/providers/ProviderType.js +10 -1
  127. package/dist/providers/ProviderType.js.map +1 -1
  128. package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
  129. package/dist/providers/SmartProvider/SmartProvider.js +2 -2
  130. package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
  131. package/dist/providers/providerBuilders.d.ts.map +1 -1
  132. package/dist/providers/providerBuilders.js +1 -0
  133. package/dist/providers/providerBuilders.js.map +1 -1
  134. package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -1
  135. package/dist/router/HyperlaneRouterChecker.js +2 -2
  136. package/dist/router/HyperlaneRouterChecker.js.map +1 -1
  137. package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -1
  138. package/dist/router/HyperlaneRouterDeployer.js +2 -3
  139. package/dist/router/HyperlaneRouterDeployer.js.map +1 -1
  140. package/dist/test/testUtils.d.ts +1 -2
  141. package/dist/test/testUtils.d.ts.map +1 -1
  142. package/dist/test/testUtils.js +12 -28
  143. package/dist/test/testUtils.js.map +1 -1
  144. package/dist/token/IToken.d.ts +147 -0
  145. package/dist/token/IToken.d.ts.map +1 -0
  146. package/dist/token/IToken.js +37 -0
  147. package/dist/token/IToken.js.map +1 -0
  148. package/dist/token/Token.d.ts +58 -0
  149. package/dist/token/Token.d.ts.map +1 -0
  150. package/dist/token/Token.js +260 -0
  151. package/dist/token/Token.js.map +1 -0
  152. package/dist/token/Token.test.d.ts +2 -0
  153. package/dist/token/Token.test.d.ts.map +1 -0
  154. package/dist/token/Token.test.js +155 -0
  155. package/dist/token/Token.test.js.map +1 -0
  156. package/dist/token/TokenAmount.d.ts +12 -0
  157. package/dist/token/TokenAmount.d.ts.map +1 -0
  158. package/dist/token/TokenAmount.js +24 -0
  159. package/dist/token/TokenAmount.js.map +1 -0
  160. package/dist/token/TokenAmount.test.d.ts +2 -0
  161. package/dist/token/TokenAmount.test.d.ts.map +1 -0
  162. package/dist/token/TokenAmount.test.js +41 -0
  163. package/dist/token/TokenAmount.test.js.map +1 -0
  164. package/dist/token/TokenConnection.d.ts +81 -0
  165. package/dist/token/TokenConnection.d.ts.map +1 -0
  166. package/dist/token/TokenConnection.js +36 -0
  167. package/dist/token/TokenConnection.js.map +1 -0
  168. package/dist/token/TokenStandard.d.ts +36 -0
  169. package/dist/token/TokenStandard.d.ts.map +1 -0
  170. package/dist/token/TokenStandard.js +118 -0
  171. package/dist/token/TokenStandard.js.map +1 -0
  172. package/dist/token/adapters/CosmWasmTokenAdapter.d.ts +29 -30
  173. package/dist/token/adapters/CosmWasmTokenAdapter.d.ts.map +1 -1
  174. package/dist/token/adapters/CosmWasmTokenAdapter.js +65 -50
  175. package/dist/token/adapters/CosmWasmTokenAdapter.js.map +1 -1
  176. package/dist/token/adapters/CosmosTokenAdapter.d.ts +11 -9
  177. package/dist/token/adapters/CosmosTokenAdapter.d.ts.map +1 -1
  178. package/dist/token/adapters/CosmosTokenAdapter.js +25 -6
  179. package/dist/token/adapters/CosmosTokenAdapter.js.map +1 -1
  180. package/dist/token/adapters/EvmTokenAdapter.d.ts +27 -16
  181. package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
  182. package/dist/token/adapters/EvmTokenAdapter.js +69 -23
  183. package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
  184. package/dist/token/adapters/ITokenAdapter.d.ts +16 -11
  185. package/dist/token/adapters/ITokenAdapter.d.ts.map +1 -1
  186. package/dist/token/adapters/SealevelTokenAdapter.d.ts +15 -13
  187. package/dist/token/adapters/SealevelTokenAdapter.d.ts.map +1 -1
  188. package/dist/token/adapters/SealevelTokenAdapter.js +17 -15
  189. package/dist/token/adapters/SealevelTokenAdapter.js.map +1 -1
  190. package/dist/token/deploy.d.ts +3 -2
  191. package/dist/token/deploy.d.ts.map +1 -1
  192. package/dist/token/deploy.js +4 -2
  193. package/dist/token/deploy.js.map +1 -1
  194. package/dist/types.d.ts +2 -1
  195. package/dist/types.d.ts.map +1 -1
  196. package/dist/warp/WarpCore.d.ts +76 -0
  197. package/dist/warp/WarpCore.d.ts.map +1 -0
  198. package/dist/warp/WarpCore.js +288 -0
  199. package/dist/warp/WarpCore.js.map +1 -0
  200. package/dist/warp/WarpCore.test.d.ts +2 -0
  201. package/dist/warp/WarpCore.test.d.ts.map +1 -0
  202. package/dist/warp/WarpCore.test.js +143 -0
  203. package/dist/warp/WarpCore.test.js.map +1 -0
  204. package/dist/warp/types.d.ts +274 -0
  205. package/dist/warp/types.d.ts.map +1 -0
  206. package/dist/warp/types.js +38 -0
  207. package/dist/warp/types.js.map +1 -0
  208. package/logos/black/cosmwasm.svg +1 -1
  209. package/logos/black/plume.svg +29 -0
  210. package/logos/color/cosmos.svg +1 -1
  211. package/logos/color/cosmwasm.svg +1 -1
  212. package/logos/color/manta.svg +1 -1
  213. package/logos/color/plume.svg +24 -0
  214. package/package.json +5 -4
  215. package/dist/gas/oracle/logging.d.ts +0 -7
  216. package/dist/gas/oracle/logging.d.ts.map +0 -1
  217. package/dist/gas/oracle/logging.js +0 -18
  218. package/dist/gas/oracle/logging.js.map +0 -1
@@ -1,16 +1,18 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.collectValidators = exports.routingModuleDelta = exports.moduleMatchesConfig = exports.moduleCanCertainlyVerify = exports.HyperlaneIsmFactory = void 0;
4
- const debug_1 = require("debug");
5
- const ethers_1 = require("ethers");
6
+ exports.HyperlaneIsmFactory = void 0;
7
+ const debug_1 = __importDefault(require("debug"));
6
8
  const core_1 = require("@hyperlane-xyz/core");
7
9
  const utils_1 = require("@hyperlane-xyz/utils");
8
10
  const HyperlaneApp_1 = require("../app/HyperlaneApp");
9
11
  const environments_1 = require("../consts/environments");
10
12
  const contracts_1 = require("../contracts/contracts");
11
13
  const contracts_2 = require("../deploy/contracts");
12
- const logger_1 = require("../logger");
13
14
  const types_1 = require("./types");
15
+ const utils_2 = require("./utils");
14
16
  class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
15
17
  constructor() {
16
18
  super(...arguments);
@@ -19,6 +21,9 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
19
21
  // TODO: fix this in the next refactoring
20
22
  this.deployedIsms = {};
21
23
  }
24
+ setDeployer(deployer) {
25
+ this.deployer = deployer;
26
+ }
22
27
  static fromEnvironment(env, multiProvider) {
23
28
  const envAddresses = environments_1.hyperlaneEnvironments[env];
24
29
  if (!envAddresses) {
@@ -29,7 +34,7 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
29
34
  }
30
35
  static fromAddressesMap(addressesMap, multiProvider) {
31
36
  const helper = (0, contracts_1.appFromAddressesMapHelper)(addressesMap, contracts_2.proxyFactoryFactories, multiProvider);
32
- return new HyperlaneIsmFactory(helper.contractsMap, multiProvider, (0, debug_1.debug)('hyperlane:IsmFactoryApp'));
37
+ return new HyperlaneIsmFactory(helper.contractsMap, multiProvider, (0, debug_1.default)('hyperlane:IsmFactoryApp'));
33
38
  }
34
39
  async deploy(params) {
35
40
  const { destination, config, origin, mailbox, existingIsmAddress } = params;
@@ -38,12 +43,13 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
38
43
  return core_1.IInterchainSecurityModule__factory.connect(config, this.multiProvider.getSignerOrProvider(destination));
39
44
  }
40
45
  const ismType = config.type;
41
- this.logger(`Deploying ${ismType} to ${destination} ${origin ? `(for verifying ${origin})` : ''}`);
46
+ const logger = this.logger.extend(`${destination}:${ismType}`);
47
+ logger(`Deploying ${ismType} to ${destination} ${origin ? `(for verifying ${origin})` : ''}`);
42
48
  let contract;
43
49
  switch (ismType) {
44
50
  case types_1.IsmType.MESSAGE_ID_MULTISIG:
45
51
  case types_1.IsmType.MERKLE_ROOT_MULTISIG:
46
- contract = await this.deployMultisigIsm(destination, config);
52
+ contract = await this.deployMultisigIsm(destination, config, logger);
47
53
  break;
48
54
  case types_1.IsmType.ROUTING:
49
55
  case types_1.IsmType.FALLBACK_ROUTING:
@@ -53,6 +59,7 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
53
59
  origin,
54
60
  mailbox,
55
61
  existingIsmAddress,
62
+ logger,
56
63
  });
57
64
  break;
58
65
  case types_1.IsmType.AGGREGATION:
@@ -61,16 +68,26 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
61
68
  config,
62
69
  origin,
63
70
  mailbox,
71
+ logger,
64
72
  });
65
73
  break;
66
74
  case types_1.IsmType.OP_STACK:
67
- contract = await this.deployOpStackIsm(destination, config);
75
+ if (!this.deployer) {
76
+ throw new Error(`HyperlaneDeployer must be set to deploy ${ismType}`);
77
+ }
78
+ contract = await this.deployer?.deployContractFromFactory(destination, new core_1.OPStackIsm__factory(), types_1.IsmType.OP_STACK, [config.nativeBridge]);
68
79
  break;
69
80
  case types_1.IsmType.PAUSABLE:
70
- contract = await this.multiProvider.handleDeploy(destination, new core_1.PausableIsm__factory(), [config.owner]);
81
+ if (!this.deployer) {
82
+ throw new Error(`HyperlaneDeployer must be set to deploy ${ismType}`);
83
+ }
84
+ contract = await this.deployer?.deployContractFromFactory(destination, new core_1.PausableIsm__factory(), types_1.IsmType.PAUSABLE, [config.owner]);
71
85
  break;
72
86
  case types_1.IsmType.TEST_ISM:
73
- contract = await this.multiProvider.handleDeploy(destination, new core_1.TestIsm__factory(), []);
87
+ if (!this.deployer) {
88
+ throw new Error(`HyperlaneDeployer must be set to deploy ${ismType}`);
89
+ }
90
+ contract = await this.deployer?.deployContractFromFactory(destination, new core_1.TestIsm__factory(), types_1.IsmType.TEST_ISM, []);
74
91
  break;
75
92
  default:
76
93
  throw new Error(`Unsupported ISM type ${ismType}`);
@@ -92,12 +109,12 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
92
109
  }
93
110
  return contract;
94
111
  }
95
- async deployMultisigIsm(destination, config) {
112
+ async deployMultisigIsm(destination, config, logger) {
96
113
  const signer = this.multiProvider.getSigner(destination);
97
114
  const multisigIsmFactory = config.type === types_1.IsmType.MERKLE_ROOT_MULTISIG
98
115
  ? this.getContracts(destination).merkleRootMultisigIsmFactory
99
116
  : this.getContracts(destination).messageIdMultisigIsmFactory;
100
- const address = await this.deployStaticAddressSet(destination, multisigIsmFactory, config.validators, config.threshold);
117
+ const address = await this.deployStaticAddressSet(destination, multisigIsmFactory, config.validators, logger, config.threshold);
101
118
  return core_1.IMultisigIsm__factory.connect(address, signer);
102
119
  }
103
120
  async deployRoutingIsm(params) {
@@ -115,7 +132,7 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
115
132
  });
116
133
  const safeConfigDomains = Object.keys(config.domains).map((domain) => this.multiProvider.getDomainId(domain));
117
134
  const delta = existingIsmAddress
118
- ? await routingModuleDelta(destination, existingIsmAddress, config, this.multiProvider, this.getContracts(destination), mailbox)
135
+ ? await (0, utils_2.routingModuleDelta)(destination, existingIsmAddress, config, this.multiProvider, this.getContracts(destination), mailbox)
119
136
  : {
120
137
  domainsToUnenroll: [],
121
138
  domainsToEnroll: safeConfigDomains,
@@ -134,7 +151,7 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
134
151
  // deploying all the ISMs which have to be updated
135
152
  for (const originDomain of delta.domainsToEnroll) {
136
153
  const origin = this.multiProvider.getChainName(originDomain); // already filtered to only include domains in the multiprovider
137
- (0, logger_1.logger)(`Reconfiguring preexisting routing ISM at for origin ${origin}...`);
154
+ params.logger(`Reconfiguring preexisting routing ISM at for origin ${origin}...`);
138
155
  const ism = await this.deploy({
139
156
  destination,
140
157
  config: config.domains[origin],
@@ -147,13 +164,13 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
147
164
  }
148
165
  // unenrolling domains if needed
149
166
  for (const originDomain of delta.domainsToUnenroll) {
150
- (0, logger_1.logger)(`Unenrolling originDomain ${originDomain} from preexisting routing ISM at ${existingIsmAddress}...`);
167
+ params.logger(`Unenrolling originDomain ${originDomain} from preexisting routing ISM at ${existingIsmAddress}...`);
151
168
  const tx = await routingIsm.remove(originDomain, overrides);
152
169
  await this.multiProvider.handleTx(destination, tx);
153
170
  }
154
171
  // transfer ownership if needed
155
172
  if (delta.owner) {
156
- (0, logger_1.logger)(`Transferring ownership of routing ISM...`);
173
+ params.logger(`Transferring ownership of routing ISM...`);
157
174
  const tx = await routingIsm.transferOwnership(delta.owner, overrides);
158
175
  await this.multiProvider.handleTx(destination, tx);
159
176
  }
@@ -176,9 +193,9 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
176
193
  if (!mailbox) {
177
194
  throw new Error('Mailbox address is required for deploying fallback routing ISM');
178
195
  }
179
- (0, logger_1.logger)('Deploying fallback routing ISM ...');
196
+ params.logger('Deploying fallback routing ISM ...');
180
197
  routingIsm = await this.multiProvider.handleDeploy(destination, new core_1.DefaultFallbackRoutingIsm__factory(), [mailbox]);
181
- (0, logger_1.logger)('Initialising fallback routing ISM ...');
198
+ params.logger('Initialising fallback routing ISM ...');
182
199
  receipt = await this.multiProvider.handleTx(destination, routingIsm['initialize(address,uint32[],address[])'](config.owner, safeConfigDomains, submoduleAddresses, overrides));
183
200
  }
184
201
  else {
@@ -219,290 +236,25 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
219
236
  });
220
237
  addresses.push(submodule.address);
221
238
  }
222
- const address = await this.deployStaticAddressSet(destination, aggregationIsmFactory, addresses, config.threshold);
239
+ const address = await this.deployStaticAddressSet(destination, aggregationIsmFactory, addresses, params.logger, config.threshold);
223
240
  return core_1.IAggregationIsm__factory.connect(address, signer);
224
241
  }
225
- async deployOpStackIsm(chain, config) {
226
- return await this.multiProvider.handleDeploy(chain, new core_1.OPStackIsm__factory(), [config.nativeBridge]);
227
- }
228
- async deployStaticAddressSet(chain, factory, values, threshold = values.length) {
242
+ async deployStaticAddressSet(chain, factory, values, logger, threshold = values.length) {
229
243
  const sorted = [...values].sort();
230
244
  const address = await factory['getAddress(address[],uint8)'](sorted, threshold);
231
245
  const code = await this.multiProvider.getProvider(chain).getCode(address);
232
246
  if (code === '0x') {
233
- this.logger(`Deploying new ${threshold} of ${values.length} address set to ${chain}`);
247
+ logger(`Deploying new ${threshold} of ${values.length} address set to ${chain}`);
234
248
  const overrides = this.multiProvider.getTransactionOverrides(chain);
235
249
  const hash = await factory['deploy(address[],uint8)'](sorted, threshold, overrides);
236
250
  await this.multiProvider.handleTx(chain, hash);
237
251
  // TODO: add proxy verification artifact?
238
252
  }
239
253
  else {
240
- this.logger(`Recovered ${threshold} of ${values.length} address set on ${chain}`);
254
+ logger(`Recovered ${threshold} of ${values.length} address set on ${chain}`);
241
255
  }
242
256
  return address;
243
257
  }
244
258
  }
245
259
  exports.HyperlaneIsmFactory = HyperlaneIsmFactory;
246
- // Note that this function may return false negatives, but should
247
- // not return false positives.
248
- // This can happen if, for example, the module has sender, recipient, or
249
- // body specific logic, as the sample message used when querying the ISM
250
- // sets all of these to zero.
251
- async function moduleCanCertainlyVerify(destModule, multiProvider, origin, destination) {
252
- const originDomainId = multiProvider.tryGetDomainId(origin);
253
- const destinationDomainId = multiProvider.tryGetDomainId(destination);
254
- if (!originDomainId || !destinationDomainId) {
255
- return false;
256
- }
257
- const message = (0, utils_1.formatMessage)(0, 0, originDomainId, ethers_1.ethers.constants.AddressZero, destinationDomainId, ethers_1.ethers.constants.AddressZero, '0x');
258
- const provider = multiProvider.getSignerOrProvider(destination);
259
- if (typeof destModule === 'string') {
260
- const module = core_1.IInterchainSecurityModule__factory.connect(destModule, provider);
261
- try {
262
- const moduleType = await module.moduleType();
263
- if (moduleType === types_1.ModuleType.MERKLE_ROOT_MULTISIG ||
264
- moduleType === types_1.ModuleType.MESSAGE_ID_MULTISIG) {
265
- const multisigModule = core_1.IMultisigIsm__factory.connect(destModule, provider);
266
- const [, threshold] = await multisigModule.validatorsAndThreshold(message);
267
- return threshold > 0;
268
- }
269
- else if (moduleType === types_1.ModuleType.ROUTING) {
270
- const routingIsm = core_1.IRoutingIsm__factory.connect(destModule, provider);
271
- const subModule = await routingIsm.route(message);
272
- return moduleCanCertainlyVerify(subModule, multiProvider, origin, destination);
273
- }
274
- else if (moduleType === types_1.ModuleType.AGGREGATION) {
275
- const aggregationIsm = core_1.IAggregationIsm__factory.connect(destModule, provider);
276
- const [subModules, threshold] = await aggregationIsm.modulesAndThreshold(message);
277
- let verified = 0;
278
- for (const subModule of subModules) {
279
- const canVerify = await moduleCanCertainlyVerify(subModule, multiProvider, origin, destination);
280
- if (canVerify) {
281
- verified += 1;
282
- }
283
- }
284
- return verified >= threshold;
285
- }
286
- else {
287
- throw new Error(`Unsupported module type: ${moduleType}`);
288
- }
289
- }
290
- catch (e) {
291
- (0, logger_1.logger)(`Error checking module ${destModule}: ${e}`);
292
- return false;
293
- }
294
- }
295
- else {
296
- // destModule is an IsmConfig
297
- switch (destModule.type) {
298
- case types_1.IsmType.MERKLE_ROOT_MULTISIG:
299
- case types_1.IsmType.MESSAGE_ID_MULTISIG:
300
- return destModule.threshold > 0;
301
- case types_1.IsmType.ROUTING: {
302
- const checking = moduleCanCertainlyVerify(destModule.domains[destination], multiProvider, origin, destination);
303
- return checking;
304
- }
305
- case types_1.IsmType.AGGREGATION: {
306
- let verified = 0;
307
- for (const subModule of destModule.modules) {
308
- const canVerify = await moduleCanCertainlyVerify(subModule, multiProvider, origin, destination);
309
- if (canVerify) {
310
- verified += 1;
311
- }
312
- }
313
- return verified >= destModule.threshold;
314
- }
315
- case types_1.IsmType.OP_STACK:
316
- return destModule.nativeBridge !== ethers_1.ethers.constants.AddressZero;
317
- case types_1.IsmType.TEST_ISM: {
318
- return true;
319
- }
320
- default:
321
- throw new Error(`Unsupported module type: ${destModule.type}`);
322
- }
323
- }
324
- }
325
- exports.moduleCanCertainlyVerify = moduleCanCertainlyVerify;
326
- async function moduleMatchesConfig(chain, moduleAddress, config, multiProvider, contracts, mailbox) {
327
- if (typeof config === 'string') {
328
- return (0, utils_1.eqAddress)(moduleAddress, config);
329
- }
330
- // If the module address is zero, it can't match any object-based config.
331
- // The subsequent check of what moduleType it is will throw, so we fail here.
332
- if ((0, utils_1.eqAddress)(moduleAddress, ethers_1.ethers.constants.AddressZero)) {
333
- return false;
334
- }
335
- const provider = multiProvider.getProvider(chain);
336
- const module = core_1.IInterchainSecurityModule__factory.connect(moduleAddress, provider);
337
- const actualType = await module.moduleType();
338
- if (actualType !== (0, types_1.ismTypeToModuleType)(config.type))
339
- return false;
340
- let matches = true;
341
- switch (config.type) {
342
- case types_1.IsmType.MERKLE_ROOT_MULTISIG: {
343
- // A MerkleRootMultisigIsm matches if validators and threshold match the config
344
- const expectedAddress = await contracts.merkleRootMultisigIsmFactory.getAddress(config.validators.sort(), config.threshold);
345
- matches = (0, utils_1.eqAddress)(expectedAddress, module.address);
346
- break;
347
- }
348
- case types_1.IsmType.MESSAGE_ID_MULTISIG: {
349
- // A MessageIdMultisigIsm matches if validators and threshold match the config
350
- const expectedAddress = await contracts.messageIdMultisigIsmFactory.getAddress(config.validators.sort(), config.threshold);
351
- matches = (0, utils_1.eqAddress)(expectedAddress, module.address);
352
- break;
353
- }
354
- case types_1.IsmType.FALLBACK_ROUTING:
355
- case types_1.IsmType.ROUTING: {
356
- // A RoutingIsm matches if:
357
- // 1. The set of domains in the config equals those on-chain
358
- // 2. The modules for each domain match the config
359
- // TODO: Check (1)
360
- const routingIsm = core_1.DomainRoutingIsm__factory.connect(moduleAddress, provider);
361
- // Check that the RoutingISM owner matches the config
362
- const owner = await routingIsm.owner();
363
- matches && (matches = (0, utils_1.eqAddress)(owner, config.owner));
364
- // check if the mailbox matches the config for fallback routing
365
- if (config.type === types_1.IsmType.FALLBACK_ROUTING) {
366
- const client = core_1.MailboxClient__factory.connect(moduleAddress, provider);
367
- const mailboxAddress = await client.mailbox();
368
- matches =
369
- matches &&
370
- mailbox !== undefined &&
371
- (0, utils_1.eqAddress)(mailboxAddress, mailbox);
372
- }
373
- const delta = await routingModuleDelta(chain, moduleAddress, config, multiProvider, contracts, mailbox);
374
- matches =
375
- matches &&
376
- delta.domainsToEnroll.length === 0 &&
377
- delta.domainsToUnenroll.length === 0 &&
378
- !delta.mailbox &&
379
- !delta.owner;
380
- break;
381
- }
382
- case types_1.IsmType.AGGREGATION: {
383
- // An AggregationIsm matches if:
384
- // 1. The threshold matches the config
385
- // 2. There is a bijection between on and off-chain configured modules
386
- const aggregationIsm = core_1.StaticAggregationIsm__factory.connect(moduleAddress, provider);
387
- const [subModules, threshold] = await aggregationIsm.modulesAndThreshold('0x');
388
- matches && (matches = threshold === config.threshold);
389
- matches && (matches = subModules.length === config.modules.length);
390
- const configIndexMatched = new Map();
391
- for (const subModule of subModules) {
392
- const subModuleMatchesConfig = await Promise.all(config.modules.map((c) => moduleMatchesConfig(chain, subModule, c, multiProvider, contracts)));
393
- // The submodule returned by the ISM must match exactly one
394
- // entry in the config.
395
- const count = subModuleMatchesConfig.filter(Boolean).length;
396
- matches && (matches = count === 1);
397
- // That entry in the config should not have been matched already.
398
- subModuleMatchesConfig.forEach((matched, index) => {
399
- if (matched) {
400
- matches && (matches = !configIndexMatched.has(index));
401
- configIndexMatched.set(index, true);
402
- }
403
- });
404
- }
405
- break;
406
- }
407
- case types_1.IsmType.OP_STACK: {
408
- const opStackIsm = core_1.OPStackIsm__factory.connect(moduleAddress, provider);
409
- const type = await opStackIsm.moduleType();
410
- matches && (matches = type === types_1.ModuleType.NULL);
411
- break;
412
- }
413
- case types_1.IsmType.TEST_ISM: {
414
- // This is just a TestISM
415
- matches = true;
416
- break;
417
- }
418
- case types_1.IsmType.PAUSABLE: {
419
- const pausableIsm = core_1.PausableIsm__factory.connect(moduleAddress, provider);
420
- const owner = await pausableIsm.owner();
421
- matches && (matches = (0, utils_1.eqAddress)(owner, config.owner));
422
- if (config.paused) {
423
- const isPaused = await pausableIsm.paused();
424
- matches && (matches = config.paused === isPaused);
425
- }
426
- break;
427
- }
428
- default: {
429
- throw new Error('Unsupported ModuleType');
430
- }
431
- }
432
- return matches;
433
- }
434
- exports.moduleMatchesConfig = moduleMatchesConfig;
435
- async function routingModuleDelta(destination, moduleAddress, config, multiProvider, contracts, mailbox) {
436
- const provider = multiProvider.getProvider(destination);
437
- const routingIsm = core_1.DomainRoutingIsm__factory.connect(moduleAddress, provider);
438
- const owner = await routingIsm.owner();
439
- const deployedDomains = (await routingIsm.domains()).map((domain) => domain.toNumber());
440
- // config.domains is already filtered to only include domains in the multiprovider
441
- const safeConfigDomains = (0, utils_1.objMap)(config.domains, (domain) => multiProvider.getDomainId(domain));
442
- const delta = {
443
- domainsToUnenroll: [],
444
- domainsToEnroll: [],
445
- };
446
- // if owners don't match, we need to transfer ownership
447
- if (!(0, utils_1.eqAddress)(owner, (0, utils_1.normalizeAddress)(config.owner)))
448
- delta.owner = config.owner;
449
- if (config.type === types_1.IsmType.FALLBACK_ROUTING) {
450
- const client = core_1.MailboxClient__factory.connect(moduleAddress, provider);
451
- const mailboxAddress = await client.mailbox();
452
- if (mailbox && !(0, utils_1.eqAddress)(mailboxAddress, mailbox))
453
- delta.mailbox = mailbox;
454
- }
455
- // check for exclusion of domains in the config
456
- delta.domainsToUnenroll = deployedDomains.filter((domain) => !Object.values(safeConfigDomains).includes(domain));
457
- // check for inclusion of domains in the config
458
- for (const [origin, subConfig] of Object.entries(config.domains)) {
459
- const originDomain = safeConfigDomains[origin];
460
- if (!deployedDomains.includes(originDomain)) {
461
- delta.domainsToEnroll.push(originDomain);
462
- }
463
- else {
464
- const subModule = await routingIsm.module(originDomain);
465
- // Recursively check that the submodule for each configured
466
- // domain matches the submodule config.
467
- const subModuleMatches = await moduleMatchesConfig(destination, subModule, subConfig, multiProvider, contracts, mailbox);
468
- if (!subModuleMatches)
469
- delta.domainsToEnroll.push(originDomain);
470
- }
471
- }
472
- return delta;
473
- }
474
- exports.routingModuleDelta = routingModuleDelta;
475
- function collectValidators(origin, config) {
476
- // TODO: support address configurations in collectValidators
477
- if (typeof config === 'string') {
478
- (0, debug_1.debug)('hyperlane:IsmFactory')('Address config unimplemented in collectValidators');
479
- return new Set([]);
480
- }
481
- let validators = [];
482
- if (config.type === types_1.IsmType.MERKLE_ROOT_MULTISIG ||
483
- config.type === types_1.IsmType.MESSAGE_ID_MULTISIG) {
484
- validators = config.validators;
485
- }
486
- else if (config.type === types_1.IsmType.ROUTING) {
487
- if (Object.keys(config.domains).includes(origin)) {
488
- const domainValidators = collectValidators(origin, config.domains[origin]);
489
- validators = [...domainValidators];
490
- }
491
- }
492
- else if (config.type === types_1.IsmType.AGGREGATION) {
493
- const aggregatedValidators = config.modules.map((c) => collectValidators(origin, c));
494
- aggregatedValidators.forEach((set) => {
495
- validators = validators.concat([...set]);
496
- });
497
- }
498
- else if (config.type === types_1.IsmType.TEST_ISM ||
499
- config.type === types_1.IsmType.PAUSABLE) {
500
- return new Set([]);
501
- }
502
- else {
503
- throw new Error('Unsupported ModuleType');
504
- }
505
- return new Set(validators);
506
- }
507
- exports.collectValidators = collectValidators;
508
260
  //# sourceMappingURL=HyperlaneIsmFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HyperlaneIsmFactory.js","sourceRoot":"","sources":["../../src/ism/HyperlaneIsmFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HyperlaneIsmFactory.js","sourceRoot":"","sources":["../../src/ism/HyperlaneIsmFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Address } from '@hyperlane-xyz/utils';
2
+ import { HyperlaneContracts } from '../contracts/types';
3
+ import { ProxyFactoryFactories } from '../deploy/contracts';
4
+ import { MultiProvider } from '../providers/MultiProvider';
5
+ import { ChainName } from '../types';
6
+ import { IsmConfig, RoutingIsmConfig, RoutingIsmDelta } from './types';
7
+ export declare function moduleCanCertainlyVerify(destModule: Address | IsmConfig, multiProvider: MultiProvider, origin: ChainName, destination: ChainName): Promise<boolean>;
8
+ export declare function moduleMatchesConfig(chain: ChainName, moduleAddress: Address, config: IsmConfig, multiProvider: MultiProvider, contracts: HyperlaneContracts<ProxyFactoryFactories>, mailbox?: Address): Promise<boolean>;
9
+ export declare function routingModuleDelta(destination: ChainName, moduleAddress: Address, config: RoutingIsmConfig, multiProvider: MultiProvider, contracts: HyperlaneContracts<ProxyFactoryFactories>, mailbox?: Address): Promise<RoutingIsmDelta>;
10
+ export declare function collectValidators(origin: ChainName, config: IsmConfig): Set<string>;
11
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/ism/utils.ts"],"names":[],"mappings":"AAcA,OAAO,EACL,OAAO,EAKR,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EACL,SAAS,EAGT,gBAAgB,EAChB,eAAe,EAEhB,MAAM,SAAS,CAAC;AASjB,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,OAAO,GAAG,SAAS,EAC/B,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,SAAS,GACrB,OAAO,CAAC,OAAO,CAAC,CAiHlB;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,EACpD,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,OAAO,CAAC,CA8IlB;AAED,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,gBAAgB,EACxB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,EACpD,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,eAAe,CAAC,CAqD1B;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,SAAS,GAChB,GAAG,CAAC,MAAM,CAAC,CAsCb"}