@hyperlane-xyz/sdk 1.4.3-beta1 → 1.4.3-beta2

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 (297) hide show
  1. package/README.md +7 -1
  2. package/dist/{HyperlaneApp.d.ts → app/HyperlaneApp.d.ts} +4 -4
  3. package/dist/app/HyperlaneApp.d.ts.map +1 -0
  4. package/dist/{HyperlaneApp.js → app/HyperlaneApp.js} +2 -2
  5. package/dist/app/HyperlaneApp.js.map +1 -0
  6. package/dist/app/MultiProtocolApp.d.ts +51 -0
  7. package/dist/app/MultiProtocolApp.d.ts.map +1 -0
  8. package/dist/app/MultiProtocolApp.js +80 -0
  9. package/dist/app/MultiProtocolApp.js.map +1 -0
  10. package/dist/app/MultiProtocolApp.test.d.ts +2 -0
  11. package/dist/app/MultiProtocolApp.test.d.ts.map +1 -0
  12. package/dist/app/MultiProtocolApp.test.js +19 -0
  13. package/dist/app/MultiProtocolApp.test.js.map +1 -0
  14. package/dist/consts/agentStartBlocks.d.ts +3 -0
  15. package/dist/consts/agentStartBlocks.d.ts.map +1 -0
  16. package/dist/consts/agentStartBlocks.js +28 -0
  17. package/dist/consts/agentStartBlocks.js.map +1 -0
  18. package/dist/consts/bytecode.js +1 -1
  19. package/dist/consts/bytecode.js.map +1 -1
  20. package/dist/consts/chainMetadata.d.ts +2 -58
  21. package/dist/consts/chainMetadata.d.ts.map +1 -1
  22. package/dist/consts/chainMetadata.js +1 -19
  23. package/dist/consts/chainMetadata.js.map +1 -1
  24. package/dist/consts/chains.d.ts +2 -3
  25. package/dist/consts/chains.d.ts.map +1 -1
  26. package/dist/consts/chains.js +2 -3
  27. package/dist/consts/chains.js.map +1 -1
  28. package/dist/consts/environments/index.d.ts +3 -3
  29. package/dist/consts/environments/index.d.ts.map +1 -1
  30. package/dist/consts/environments/index.js.map +1 -1
  31. package/dist/{contracts.d.ts → contracts/contracts.d.ts} +3 -15
  32. package/dist/contracts/contracts.d.ts.map +1 -0
  33. package/dist/{contracts.js → contracts/contracts.js} +12 -23
  34. package/dist/contracts/contracts.js.map +1 -0
  35. package/dist/contracts/types.d.ts +18 -0
  36. package/dist/contracts/types.d.ts.map +1 -0
  37. package/dist/contracts/types.js +3 -0
  38. package/dist/contracts/types.js.map +1 -0
  39. package/dist/core/CoreDeployer.hardhat-test.js +33 -42
  40. package/dist/core/CoreDeployer.hardhat-test.js.map +1 -1
  41. package/dist/core/HyperlaneCore.d.ts +5 -5
  42. package/dist/core/HyperlaneCore.d.ts.map +1 -1
  43. package/dist/core/HyperlaneCore.js +15 -28
  44. package/dist/core/HyperlaneCore.js.map +1 -1
  45. package/dist/core/HyperlaneCore.test.js +4 -13
  46. package/dist/core/HyperlaneCore.test.js.map +1 -1
  47. package/dist/core/HyperlaneCoreChecker.js +80 -99
  48. package/dist/core/HyperlaneCoreChecker.js.map +1 -1
  49. package/dist/core/HyperlaneCoreDeployer.d.ts +1 -1
  50. package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
  51. package/dist/core/HyperlaneCoreDeployer.js +45 -62
  52. package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
  53. package/dist/core/TestCoreApp.d.ts +1 -1
  54. package/dist/core/TestCoreApp.d.ts.map +1 -1
  55. package/dist/core/TestCoreApp.js +35 -45
  56. package/dist/core/TestCoreApp.js.map +1 -1
  57. package/dist/core/TestCoreDeployer.d.ts +1 -1
  58. package/dist/core/TestCoreDeployer.d.ts.map +1 -1
  59. package/dist/core/TestCoreDeployer.js +14 -27
  60. package/dist/core/TestCoreDeployer.js.map +1 -1
  61. package/dist/core/contracts.d.ts +1 -1
  62. package/dist/core/contracts.d.ts.map +1 -1
  63. package/dist/core/events.d.ts +1 -1
  64. package/dist/core/events.d.ts.map +1 -1
  65. package/dist/core/testHyperlaneDeploy.hardhat-test.js +23 -32
  66. package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
  67. package/dist/core/types.d.ts +1 -1
  68. package/dist/core/types.d.ts.map +1 -1
  69. package/dist/core/types.js +2 -2
  70. package/dist/core/types.js.map +1 -1
  71. package/dist/deploy/HyperlaneAppChecker.d.ts +1 -1
  72. package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -1
  73. package/dist/deploy/HyperlaneAppChecker.js +99 -123
  74. package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
  75. package/dist/deploy/HyperlaneDeployer.d.ts +1 -1
  76. package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
  77. package/dist/deploy/HyperlaneDeployer.js +176 -216
  78. package/dist/deploy/HyperlaneDeployer.js.map +1 -1
  79. package/dist/deploy/proxy.d.ts +1 -1
  80. package/dist/deploy/proxy.d.ts.map +1 -1
  81. package/dist/deploy/proxy.js +11 -26
  82. package/dist/deploy/proxy.js.map +1 -1
  83. package/dist/deploy/types.js +1 -1
  84. package/dist/deploy/types.js.map +1 -1
  85. package/dist/deploy/verify/ContractVerifier.js +122 -131
  86. package/dist/deploy/verify/ContractVerifier.js.map +1 -1
  87. package/dist/deploy/verify/types.d.ts +3 -3
  88. package/dist/deploy/verify/types.d.ts.map +1 -1
  89. package/dist/gas/HyperlaneIgp.d.ts +2 -2
  90. package/dist/gas/HyperlaneIgp.d.ts.map +1 -1
  91. package/dist/gas/HyperlaneIgp.js +2 -2
  92. package/dist/gas/HyperlaneIgp.js.map +1 -1
  93. package/dist/gas/HyperlaneIgpChecker.js +101 -123
  94. package/dist/gas/HyperlaneIgpChecker.js.map +1 -1
  95. package/dist/gas/HyperlaneIgpDeployer.d.ts +1 -1
  96. package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -1
  97. package/dist/gas/HyperlaneIgpDeployer.js +70 -89
  98. package/dist/gas/HyperlaneIgpDeployer.js.map +1 -1
  99. package/dist/gas/contracts.d.ts +1 -1
  100. package/dist/gas/contracts.d.ts.map +1 -1
  101. package/dist/gas/contracts.js +6 -1
  102. package/dist/gas/contracts.js.map +1 -1
  103. package/dist/gas/token-prices.d.ts +6 -60
  104. package/dist/gas/token-prices.d.ts.map +1 -1
  105. package/dist/gas/token-prices.js +37 -54
  106. package/dist/gas/token-prices.js.map +1 -1
  107. package/dist/gas/token-prices.test.js +11 -20
  108. package/dist/gas/token-prices.test.js.map +1 -1
  109. package/dist/gas/types.d.ts +2 -2
  110. package/dist/gas/types.d.ts.map +1 -1
  111. package/dist/gas/types.js +2 -2
  112. package/dist/gas/types.js.map +1 -1
  113. package/dist/hook/HyperlaneHookDeployer.d.ts +1 -1
  114. package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
  115. package/dist/hook/HyperlaneHookDeployer.js +69 -88
  116. package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
  117. package/dist/hook/contracts.d.ts +4 -4
  118. package/dist/hook/contracts.d.ts.map +1 -1
  119. package/dist/hook/contracts.js +5 -1
  120. package/dist/hook/contracts.js.map +1 -1
  121. package/dist/hook/types.d.ts +3 -3
  122. package/dist/hook/types.d.ts.map +1 -1
  123. package/dist/hook/types.js +1 -1
  124. package/dist/hook/types.js.map +1 -1
  125. package/dist/index.d.ts +13 -6
  126. package/dist/index.d.ts.map +1 -1
  127. package/dist/index.js +30 -5
  128. package/dist/index.js.map +1 -1
  129. package/dist/ism/HyperlaneIsmFactory.d.ts +2 -2
  130. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  131. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +14 -23
  132. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
  133. package/dist/ism/HyperlaneIsmFactory.js +234 -256
  134. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  135. package/dist/ism/HyperlaneIsmFactoryDeployer.d.ts +1 -1
  136. package/dist/ism/HyperlaneIsmFactoryDeployer.d.ts.map +1 -1
  137. package/dist/ism/HyperlaneIsmFactoryDeployer.js +18 -34
  138. package/dist/ism/HyperlaneIsmFactoryDeployer.js.map +1 -1
  139. package/dist/ism/contracts.d.ts +1 -1
  140. package/dist/ism/contracts.d.ts.map +1 -1
  141. package/dist/ism/types.d.ts +5 -5
  142. package/dist/ism/types.d.ts.map +1 -1
  143. package/dist/ism/types.js +1 -1
  144. package/dist/ism/types.js.map +1 -1
  145. package/dist/metadata/ChainMetadataManager.d.ts +130 -0
  146. package/dist/metadata/ChainMetadataManager.d.ts.map +1 -0
  147. package/dist/metadata/ChainMetadataManager.js +240 -0
  148. package/dist/metadata/ChainMetadataManager.js.map +1 -0
  149. package/dist/metadata/agentConfig.d.ts +4 -4
  150. package/dist/metadata/agentConfig.d.ts.map +1 -1
  151. package/dist/metadata/agentConfig.js +15 -6
  152. package/dist/metadata/agentConfig.js.map +1 -1
  153. package/dist/metadata/chainMetadata.test.js +27 -9
  154. package/dist/metadata/chainMetadata.test.js.map +1 -1
  155. package/dist/metadata/chainMetadataTypes.d.ts +2 -2
  156. package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
  157. package/dist/metadata/chainMetadataTypes.js +2 -3
  158. package/dist/metadata/chainMetadataTypes.js.map +1 -1
  159. package/dist/metadata/deploymentArtifacts.d.ts +2 -2
  160. package/dist/metadata/deploymentArtifacts.d.ts.map +1 -1
  161. package/dist/middleware/account/InterchainAccount.d.ts +1 -1
  162. package/dist/middleware/account/InterchainAccount.d.ts.map +1 -1
  163. package/dist/middleware/account/InterchainAccount.js +1 -1
  164. package/dist/middleware/account/InterchainAccount.js.map +1 -1
  165. package/dist/middleware/account/InterchainAccountChecker.js +4 -1
  166. package/dist/middleware/account/InterchainAccountChecker.js.map +1 -1
  167. package/dist/middleware/account/InterchainAccountDeployer.d.ts +2 -2
  168. package/dist/middleware/account/InterchainAccountDeployer.d.ts.map +1 -1
  169. package/dist/middleware/account/InterchainAccountDeployer.js +28 -41
  170. package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -1
  171. package/dist/middleware/account/accounts.hardhat-test.js +21 -30
  172. package/dist/middleware/account/accounts.hardhat-test.js.map +1 -1
  173. package/dist/middleware/account/contracts.d.ts +1 -1
  174. package/dist/middleware/account/contracts.d.ts.map +1 -1
  175. package/dist/middleware/account/contracts.js +5 -1
  176. package/dist/middleware/account/contracts.js.map +1 -1
  177. package/dist/middleware/liquidity-layer/LiquidityLayerApp.d.ts +2 -2
  178. package/dist/middleware/liquidity-layer/LiquidityLayerApp.d.ts.map +1 -1
  179. package/dist/middleware/liquidity-layer/LiquidityLayerApp.js +130 -152
  180. package/dist/middleware/liquidity-layer/LiquidityLayerApp.js.map +1 -1
  181. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts +3 -3
  182. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts.map +1 -1
  183. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js +85 -110
  184. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js.map +1 -1
  185. package/dist/middleware/liquidity-layer/contracts.d.ts +1 -1
  186. package/dist/middleware/liquidity-layer/contracts.d.ts.map +1 -1
  187. package/dist/middleware/liquidity-layer/contracts.js +6 -1
  188. package/dist/middleware/liquidity-layer/contracts.js.map +1 -1
  189. package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js +41 -46
  190. package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js.map +1 -1
  191. package/dist/middleware/query/InterchainQuery.d.ts +1 -1
  192. package/dist/middleware/query/InterchainQuery.d.ts.map +1 -1
  193. package/dist/middleware/query/InterchainQuery.js +1 -1
  194. package/dist/middleware/query/InterchainQuery.js.map +1 -1
  195. package/dist/middleware/query/InterchainQueryDeployer.d.ts +1 -1
  196. package/dist/middleware/query/InterchainQueryDeployer.d.ts.map +1 -1
  197. package/dist/middleware/query/InterchainQueryDeployer.js +13 -27
  198. package/dist/middleware/query/InterchainQueryDeployer.js.map +1 -1
  199. package/dist/middleware/query/contracts.d.ts +1 -1
  200. package/dist/middleware/query/contracts.d.ts.map +1 -1
  201. package/dist/middleware/query/contracts.js +4 -1
  202. package/dist/middleware/query/contracts.js.map +1 -1
  203. package/dist/middleware/query/queries.hardhat-test.js +23 -32
  204. package/dist/middleware/query/queries.hardhat-test.js.map +1 -1
  205. package/dist/providers/MultiProtocolProvider.d.ts +39 -0
  206. package/dist/providers/MultiProtocolProvider.d.ts.map +1 -0
  207. package/dist/providers/MultiProtocolProvider.js +105 -0
  208. package/dist/providers/MultiProtocolProvider.js.map +1 -0
  209. package/dist/providers/MultiProtocolProvider.test.d.ts +2 -0
  210. package/dist/providers/MultiProtocolProvider.test.d.ts.map +1 -0
  211. package/dist/providers/MultiProtocolProvider.test.js +24 -0
  212. package/dist/providers/MultiProtocolProvider.test.js.map +1 -0
  213. package/dist/providers/MultiProvider.d.ts +20 -118
  214. package/dist/providers/MultiProvider.d.ts.map +1 -1
  215. package/dist/providers/MultiProvider.js +69 -300
  216. package/dist/providers/MultiProvider.js.map +1 -1
  217. package/dist/providers/ProviderType.d.ts +71 -0
  218. package/dist/providers/ProviderType.d.ts.map +1 -0
  219. package/dist/providers/ProviderType.js +11 -0
  220. package/dist/providers/ProviderType.js.map +1 -0
  221. package/dist/providers/RetryProvider.d.ts +1 -1
  222. package/dist/providers/RetryProvider.d.ts.map +1 -1
  223. package/dist/providers/RetryProvider.js +2 -16
  224. package/dist/providers/RetryProvider.js.map +1 -1
  225. package/dist/providers/providerBuilders.d.ts +17 -0
  226. package/dist/providers/providerBuilders.d.ts.map +1 -0
  227. package/dist/providers/providerBuilders.js +97 -0
  228. package/dist/providers/providerBuilders.js.map +1 -0
  229. package/dist/router/GasRouterDeployer.d.ts +1 -1
  230. package/dist/router/GasRouterDeployer.d.ts.map +1 -1
  231. package/dist/router/GasRouterDeployer.js +18 -32
  232. package/dist/router/GasRouterDeployer.js.map +1 -1
  233. package/dist/router/HyperlaneRouterChecker.d.ts +1 -1
  234. package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -1
  235. package/dist/router/HyperlaneRouterChecker.js +37 -55
  236. package/dist/router/HyperlaneRouterChecker.js.map +1 -1
  237. package/dist/router/HyperlaneRouterDeployer.d.ts +1 -1
  238. package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -1
  239. package/dist/router/HyperlaneRouterDeployer.js +87 -115
  240. package/dist/router/HyperlaneRouterDeployer.js.map +1 -1
  241. package/dist/router/MultiProtocolRouterApps.d.ts +29 -0
  242. package/dist/router/MultiProtocolRouterApps.d.ts.map +1 -0
  243. package/dist/router/MultiProtocolRouterApps.js +43 -0
  244. package/dist/router/MultiProtocolRouterApps.js.map +1 -0
  245. package/dist/router/MultiProtocolRouterApps.test.d.ts +2 -0
  246. package/dist/router/MultiProtocolRouterApps.test.d.ts.map +1 -0
  247. package/dist/router/MultiProtocolRouterApps.test.js +20 -0
  248. package/dist/router/MultiProtocolRouterApps.test.js.map +1 -0
  249. package/dist/router/ProxiedRouterChecker.js +14 -34
  250. package/dist/router/ProxiedRouterChecker.js.map +1 -1
  251. package/dist/router/ProxiedRouterDeployer.d.ts +1 -1
  252. package/dist/router/ProxiedRouterDeployer.d.ts.map +1 -1
  253. package/dist/router/ProxiedRouterDeployer.js +24 -38
  254. package/dist/router/ProxiedRouterDeployer.js.map +1 -1
  255. package/dist/router/RouterApps.d.ts +4 -4
  256. package/dist/router/RouterApps.d.ts.map +1 -1
  257. package/dist/router/RouterApps.js +8 -18
  258. package/dist/router/RouterApps.js.map +1 -1
  259. package/dist/router/adapters/EvmRouterAdapter.d.ts +25 -0
  260. package/dist/router/adapters/EvmRouterAdapter.d.ts.map +1 -0
  261. package/dist/router/adapters/EvmRouterAdapter.js +50 -0
  262. package/dist/router/adapters/EvmRouterAdapter.js.map +1 -0
  263. package/dist/router/adapters/SealevelRouterAdapter.d.ts +50 -0
  264. package/dist/router/adapters/SealevelRouterAdapter.d.ts.map +1 -0
  265. package/dist/router/adapters/SealevelRouterAdapter.js +132 -0
  266. package/dist/router/adapters/SealevelRouterAdapter.js.map +1 -0
  267. package/dist/router/adapters/SealevelRouterAdapter.test.d.ts +2 -0
  268. package/dist/router/adapters/SealevelRouterAdapter.test.d.ts.map +1 -0
  269. package/dist/router/adapters/SealevelRouterAdapter.test.js +21 -0
  270. package/dist/router/adapters/SealevelRouterAdapter.test.js.map +1 -0
  271. package/dist/router/adapters/types.d.ts +18 -0
  272. package/dist/router/adapters/types.d.ts.map +1 -0
  273. package/dist/router/adapters/types.js +3 -0
  274. package/dist/router/adapters/types.js.map +1 -0
  275. package/dist/router/types.d.ts +12 -9
  276. package/dist/router/types.d.ts.map +1 -1
  277. package/dist/router/types.js +1 -1
  278. package/dist/router/types.js.map +1 -1
  279. package/dist/test/testUtils.d.ts +1 -1
  280. package/dist/test/testUtils.d.ts.map +1 -1
  281. package/dist/test/testUtils.js +12 -23
  282. package/dist/test/testUtils.js.map +1 -1
  283. package/dist/types.d.ts +5 -5
  284. package/dist/types.d.ts.map +1 -1
  285. package/dist/utils/MultiGeneric.d.ts +1 -1
  286. package/dist/utils/MultiGeneric.d.ts.map +1 -1
  287. package/dist/utils/MultiGeneric.js +2 -4
  288. package/dist/utils/MultiGeneric.js.map +1 -1
  289. package/dist/utils/fetch.js +8 -16
  290. package/dist/utils/fetch.js.map +1 -1
  291. package/dist/utils/wagmi.js +1 -2
  292. package/dist/utils/wagmi.js.map +1 -1
  293. package/package.json +10 -7
  294. package/dist/HyperlaneApp.d.ts.map +0 -1
  295. package/dist/HyperlaneApp.js.map +0 -1
  296. package/dist/contracts.d.ts.map +0 -1
  297. package/dist/contracts.js.map +0 -1
@@ -1,139 +1,111 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.HyperlaneRouterDeployer = void 0;
13
4
  const ethers_1 = require("ethers");
14
5
  const core_1 = require("@hyperlane-xyz/core");
15
6
  const utils_1 = require("@hyperlane-xyz/utils");
16
- const contracts_1 = require("../contracts");
7
+ const contracts_1 = require("../contracts/contracts");
17
8
  const HyperlaneDeployer_1 = require("../deploy/HyperlaneDeployer");
18
9
  const HyperlaneIsmFactory_1 = require("../ism/HyperlaneIsmFactory");
19
10
  class HyperlaneRouterDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
20
11
  // The ISM check does not appropriately handle ISMs that have sender,
21
12
  // recipient, or body-specific logic. Folks that wish to deploy using
22
13
  // such ISMs *may* need to override checkConfig to disable this check.
23
- checkConfig(configMap) {
24
- return __awaiter(this, void 0, void 0, function* () {
25
- for (const [local, config] of Object.entries(configMap)) {
26
- this.logger(`Checking config for ${local}...`);
27
- const signerOrProvider = this.multiProvider.getSignerOrProvider(local);
28
- const localIgp = core_1.IInterchainGasPaymaster__factory.connect(config.interchainGasPaymaster, signerOrProvider);
29
- const localMailbox = core_1.Mailbox__factory.connect(config.mailbox, signerOrProvider);
30
- let localIsm;
31
- if (!config.interchainSecurityModule ||
32
- config.interchainSecurityModule === ethers_1.ethers.constants.AddressZero) {
33
- localIsm = yield localMailbox.defaultIsm();
14
+ async checkConfig(configMap) {
15
+ for (const [local, config] of Object.entries(configMap)) {
16
+ this.logger(`Checking config for ${local}...`);
17
+ const signerOrProvider = this.multiProvider.getSignerOrProvider(local);
18
+ const localIgp = core_1.IInterchainGasPaymaster__factory.connect(config.interchainGasPaymaster, signerOrProvider);
19
+ const localMailbox = core_1.Mailbox__factory.connect(config.mailbox, signerOrProvider);
20
+ let localIsm;
21
+ if (!config.interchainSecurityModule ||
22
+ config.interchainSecurityModule === ethers_1.ethers.constants.AddressZero) {
23
+ localIsm = await localMailbox.defaultIsm();
24
+ }
25
+ else {
26
+ localIsm = config.interchainSecurityModule;
27
+ }
28
+ const remotes = Object.keys(configMap).filter((c) => c !== local);
29
+ for (const remote of remotes) {
30
+ this.logger(`Checking origin ${remote}...`);
31
+ // Try to confirm that the IGP supports delivery to all remotes
32
+ try {
33
+ await localIgp.quoteGasPayment(this.multiProvider.getDomainId(remote), 1);
34
34
  }
35
- else {
36
- localIsm = config.interchainSecurityModule;
35
+ catch (e) {
36
+ throw new Error(`The specified or default IGP with address ${localIgp.address} on ` +
37
+ `${local} is not configured to deliver messages to ${remote}, ` +
38
+ `did you mean to specify a different one?`);
37
39
  }
38
- const remotes = Object.keys(configMap).filter((c) => c !== local);
39
- for (const remote of remotes) {
40
- this.logger(`Checking origin ${remote}...`);
41
- // Try to confirm that the IGP supports delivery to all remotes
42
- try {
43
- yield localIgp.quoteGasPayment(this.multiProvider.getDomainId(remote), 1);
44
- }
45
- catch (e) {
46
- throw new Error(`The specified or default IGP with address ${localIgp.address} on ` +
47
- `${local} is not configured to deliver messages to ${remote}, ` +
48
- `did you mean to specify a different one?`);
49
- }
50
- // Try to confirm that the specified or default ISM can verify messages to all remotes
51
- const canVerify = yield (0, HyperlaneIsmFactory_1.moduleCanCertainlyVerify)(localIsm, this.multiProvider, remote, local);
52
- if (!canVerify) {
53
- throw new Error(`The specified or default ISM with address ${localIsm} on ${local} ` +
54
- `cannot verify messages from ${remote}, did you forget to ` +
55
- `specify an ISM, or mean to specify a different one?`);
56
- }
40
+ // Try to confirm that the specified or default ISM can verify messages to all remotes
41
+ const canVerify = await (0, HyperlaneIsmFactory_1.moduleCanCertainlyVerify)(localIsm, this.multiProvider, remote, local);
42
+ if (!canVerify) {
43
+ throw new Error(`The specified or default ISM with address ${localIsm} on ${local} ` +
44
+ `cannot verify messages from ${remote}, did you forget to ` +
45
+ `specify an ISM, or mean to specify a different one?`);
57
46
  }
58
47
  }
59
- });
48
+ }
60
49
  }
61
- initConnectionClients(contractsMap, configMap) {
62
- const _super = Object.create(null, {
63
- initConnectionClient: { get: () => super.initConnectionClient }
64
- });
65
- return __awaiter(this, void 0, void 0, function* () {
66
- for (const chain of Object.keys(contractsMap)) {
67
- const contracts = contractsMap[chain];
68
- const config = configMap[chain];
69
- yield _super.initConnectionClient.call(this, chain, this.router(contracts), config);
70
- }
71
- });
50
+ async initConnectionClients(contractsMap, configMap) {
51
+ for (const chain of Object.keys(contractsMap)) {
52
+ const contracts = contractsMap[chain];
53
+ const config = configMap[chain];
54
+ await super.initConnectionClient(chain, this.router(contracts), config);
55
+ }
72
56
  }
73
- enrollRemoteRouters(deployedContractsMap, _, foreignRouters = {}) {
74
- const _super = Object.create(null, {
75
- runIfOwner: { get: () => super.runIfOwner }
76
- });
77
- return __awaiter(this, void 0, void 0, function* () {
78
- this.logger(`Enrolling deployed routers with each other (if not already)...`);
79
- // Make all routers aware of each other.
80
- // Routers that were deployed.
81
- const deployedRouters = (0, utils_1.objMap)(deployedContractsMap, (_, contracts) => this.router(contracts).address);
82
- // All routers, including those that were deployed and those with existing deployments.
83
- const allRouters = (0, utils_1.objMerge)(deployedRouters, foreignRouters);
84
- const allChains = Object.keys(allRouters);
85
- for (const [chain, contracts] of Object.entries(deployedContractsMap)) {
86
- const allRemoteChains = this.multiProvider
87
- .getRemoteChains(chain)
88
- .filter((c) => allChains.includes(c));
89
- const enrollEntries = yield Promise.all(allRemoteChains.map((remote) => __awaiter(this, void 0, void 0, function* () {
90
- const remoteDomain = this.multiProvider.getDomainId(remote);
91
- const current = yield this.router(contracts).routers(remoteDomain);
92
- const expected = (0, utils_1.addressToBytes32)(allRouters[remote]);
93
- return current !== expected ? [remoteDomain, expected] : undefined;
94
- })));
95
- const entries = enrollEntries.filter((entry) => entry !== undefined);
96
- const domains = entries.map(([id]) => id);
97
- const addresses = entries.map(([, address]) => address);
98
- // skip if no enrollments are needed
99
- if (domains.length === 0) {
100
- continue;
101
- }
102
- yield _super.runIfOwner.call(this, chain, this.router(contracts), () => __awaiter(this, void 0, void 0, function* () {
103
- const chains = domains.map((id) => this.multiProvider.getChainName(id));
104
- this.logger(`Enrolling remote routers (${chains.join(', ')}) on ${chain}`);
105
- yield this.multiProvider.handleTx(chain, this.router(contracts).enrollRemoteRouters(domains, addresses, this.multiProvider.getTransactionOverrides(chain)));
106
- }));
57
+ async enrollRemoteRouters(deployedContractsMap, _, foreignRouters = {}) {
58
+ this.logger(`Enrolling deployed routers with each other (if not already)...`);
59
+ // Make all routers aware of each other.
60
+ // Routers that were deployed.
61
+ const deployedRouters = (0, utils_1.objMap)(deployedContractsMap, (_, contracts) => this.router(contracts).address);
62
+ // All routers, including those that were deployed and those with existing deployments.
63
+ const allRouters = (0, utils_1.objMerge)(deployedRouters, foreignRouters);
64
+ const allChains = Object.keys(allRouters);
65
+ for (const [chain, contracts] of Object.entries(deployedContractsMap)) {
66
+ const allRemoteChains = this.multiProvider
67
+ .getRemoteChains(chain)
68
+ .filter((c) => allChains.includes(c));
69
+ const enrollEntries = await Promise.all(allRemoteChains.map(async (remote) => {
70
+ const remoteDomain = this.multiProvider.getDomainId(remote);
71
+ const current = await this.router(contracts).routers(remoteDomain);
72
+ const expected = (0, utils_1.addressToBytes32)(allRouters[remote]);
73
+ return current !== expected ? [remoteDomain, expected] : undefined;
74
+ }));
75
+ const entries = enrollEntries.filter((entry) => entry !== undefined);
76
+ const domains = entries.map(([id]) => id);
77
+ const addresses = entries.map(([, address]) => address);
78
+ // skip if no enrollments are needed
79
+ if (domains.length === 0) {
80
+ continue;
107
81
  }
108
- });
82
+ await super.runIfOwner(chain, this.router(contracts), async () => {
83
+ const chains = domains.map((id) => this.multiProvider.getChainName(id));
84
+ this.logger(`Enrolling remote routers (${chains.join(', ')}) on ${chain}`);
85
+ await this.multiProvider.handleTx(chain, this.router(contracts).enrollRemoteRouters(domains, addresses, this.multiProvider.getTransactionOverrides(chain)));
86
+ });
87
+ }
109
88
  }
110
- transferOwnership(contractsMap, configMap) {
111
- return __awaiter(this, void 0, void 0, function* () {
112
- this.logger(`Transferring ownership of ownables...`);
113
- for (const chain of Object.keys(contractsMap)) {
114
- const contracts = contractsMap[chain];
115
- const owner = configMap[chain].owner;
116
- const ownables = yield (0, contracts_1.filterOwnableContracts)(contracts);
117
- yield this.transferOwnershipOfContracts(chain, owner, ownables);
118
- }
119
- });
89
+ async transferOwnership(contractsMap, configMap) {
90
+ this.logger(`Transferring ownership of ownables...`);
91
+ for (const chain of Object.keys(contractsMap)) {
92
+ const contracts = contractsMap[chain];
93
+ const owner = configMap[chain].owner;
94
+ const ownables = await (0, contracts_1.filterOwnableContracts)(contracts);
95
+ await this.transferOwnershipOfContracts(chain, owner, ownables);
96
+ }
120
97
  }
121
- deploy(configMap) {
122
- const _super = Object.create(null, {
123
- deploy: { get: () => super.deploy }
124
- });
125
- return __awaiter(this, void 0, void 0, function* () {
126
- // Only deploy on chains that don't have foreign deployments.
127
- const configMapToDeploy = (0, utils_1.objFilter)(configMap, (_chainName, config) => !config.foreignDeployment);
128
- // Create a map of chains that have foreign deployments.
129
- const foreignDeployments = (0, utils_1.objFilter)((0, utils_1.objMap)(configMap, (_, config) => config.foreignDeployment), (_chainName, foreignDeployment) => foreignDeployment !== undefined);
130
- const deployedContractsMap = yield _super.deploy.call(this, configMapToDeploy);
131
- yield this.enrollRemoteRouters(deployedContractsMap, configMap, foreignDeployments);
132
- yield this.initConnectionClients(deployedContractsMap, configMap);
133
- yield this.transferOwnership(deployedContractsMap, configMap);
134
- this.logger(`Finished deploying router contracts for all chains.`);
135
- return deployedContractsMap;
136
- });
98
+ async deploy(configMap) {
99
+ // Only deploy on chains that don't have foreign deployments.
100
+ const configMapToDeploy = (0, utils_1.objFilter)(configMap, (_chainName, config) => !config.foreignDeployment);
101
+ // Create a map of chains that have foreign deployments.
102
+ const foreignDeployments = (0, utils_1.objFilter)((0, utils_1.objMap)(configMap, (_, config) => config.foreignDeployment), (_chainName, foreignDeployment) => foreignDeployment !== undefined);
103
+ const deployedContractsMap = await super.deploy(configMapToDeploy);
104
+ await this.enrollRemoteRouters(deployedContractsMap, configMap, foreignDeployments);
105
+ await this.initConnectionClients(deployedContractsMap, configMap);
106
+ await this.transferOwnership(deployedContractsMap, configMap);
107
+ this.logger(`Finished deploying router contracts for all chains.`);
108
+ return deployedContractsMap;
137
109
  }
138
110
  }
139
111
  exports.HyperlaneRouterDeployer = HyperlaneRouterDeployer;
@@ -1 +1 @@
1
- {"version":3,"file":"HyperlaneRouterDeployer.js","sourceRoot":"","sources":["../../src/router/HyperlaneRouterDeployer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HyperlaneRouterDeployer.js","sourceRoot":"","sources":["../../src/router/HyperlaneRouterDeployer.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,8CAI6B;AAC7B,gDAM8B;AAE9B,sDAAgE;AAMhE,mEAAgE;AAChE,oEAAsE;AAItE,MAAsB,uBAGpB,SAAQ,qCAAoC;IAG5C,qEAAqE;IACrE,qEAAqE;IACrE,sEAAsE;IACtE,KAAK,CAAC,WAAW,CAAC,SAA2B;QAC3C,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACvD,IAAI,CAAC,MAAM,CAAC,uBAAuB,KAAK,KAAK,CAAC,CAAC;YAC/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,QAAQ,GAAG,uCAAgC,CAAC,OAAO,CACvD,MAAM,CAAC,sBAAsB,EAC7B,gBAAgB,CACjB,CAAC;YACF,MAAM,YAAY,GAAG,uBAAgB,CAAC,OAAO,CAC3C,MAAM,CAAC,OAAO,EACd,gBAAgB,CACjB,CAAC;YACF,IAAI,QAAQ,CAAC;YACb,IACE,CAAC,MAAM,CAAC,wBAAwB;gBAChC,MAAM,CAAC,wBAAwB,KAAK,eAAM,CAAC,SAAS,CAAC,WAAW,EAChE;gBACA,QAAQ,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC;aAC5C;iBAAM;gBACL,QAAQ,GAAG,MAAM,CAAC,wBAAwB,CAAC;aAC5C;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;YAClE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,mBAAmB,MAAM,KAAK,CAAC,CAAC;gBAC5C,+DAA+D;gBAC/D,IAAI;oBACF,MAAM,QAAQ,CAAC,eAAe,CAC5B,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,EACtC,CAAC,CACF,CAAC;iBACH;gBAAC,OAAO,CAAC,EAAE;oBACV,MAAM,IAAI,KAAK,CACb,6CAA6C,QAAQ,CAAC,OAAO,MAAM;wBACjE,GAAG,KAAK,6CAA6C,MAAM,IAAI;wBAC/D,0CAA0C,CAC7C,CAAC;iBACH;gBAED,sFAAsF;gBACtF,MAAM,SAAS,GAAG,MAAM,IAAA,8CAAwB,EAC9C,QAAQ,EACR,IAAI,CAAC,aAAa,EAClB,MAAM,EACN,KAAK,CACN,CAAC;gBACF,IAAI,CAAC,SAAS,EAAE;oBACd,MAAM,IAAI,KAAK,CACb,6CAA6C,QAAQ,OAAO,KAAK,GAAG;wBAClE,+BAA+B,MAAM,sBAAsB;wBAC3D,qDAAqD,CACxD,CAAC;iBACH;aACF;SACF;IACH,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,YAA8C,EAC9C,SAA2B;QAE3B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC7C,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAChC,MAAM,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;SACzE;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,oBAAsD,EACtD,CAAmB,EACnB,iBAAoC,EAAE;QAEtC,IAAI,CAAC,MAAM,CACT,gEAAgE,CACjE,CAAC;QAEF,wCAAwC;QAExC,8BAA8B;QAC9B,MAAM,eAAe,GAAsB,IAAA,cAAM,EAC/C,oBAAoB,EACpB,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CACjD,CAAC;QACF,uFAAuF;QACvF,MAAM,UAAU,GAAG,IAAA,gBAAQ,EAAC,eAAe,EAAE,cAAc,CAAC,CAAC;QAE7D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE;YACrE,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa;iBACvC,eAAe,CAAC,KAAK,CAAC;iBACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAExC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACnC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC5D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBACnE,MAAM,QAAQ,GAAG,IAAA,wBAAgB,EAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtD,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACrE,CAAC,CAAC,CACH,CAAC;YACF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAClC,CAAC,KAAK,EAA6B,EAAE,CAAC,KAAK,KAAK,SAAS,CAC1D,CAAC;YACF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;YAExD,oCAAoC;YACpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxB,SAAS;aACV;YAED,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,EAAE;gBAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxE,IAAI,CAAC,MAAM,CACT,6BAA6B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,EAAE,CAC9D,CAAC;gBACF,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAC/B,KAAK,EACL,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,mBAAmB,CACxC,OAAO,EACP,SAAS,EACT,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAClD,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,YAA8C,EAC9C,SAA2B;QAE3B,IAAI,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC;QACrD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC7C,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;YACrC,MAAM,QAAQ,GAAG,MAAM,IAAA,kCAAsB,EAAC,SAAS,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SACjE;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CACV,SAA2B;QAE3B,6DAA6D;QAC7D,MAAM,iBAAiB,GAAG,IAAA,iBAAS,EACjC,SAAS,EACT,CAAC,UAAU,EAAE,MAAM,EAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,iBAAiB,CACpE,CAAC;QAEF,wDAAwD;QACxD,MAAM,kBAAkB,GAAsB,IAAA,iBAAS,EACrD,IAAA,cAAM,EAAC,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAC1D,CAAC,UAAU,EAAE,iBAAiB,EAA+B,EAAE,CAC7D,iBAAiB,KAAK,SAAS,CAClC,CAAC;QAEF,MAAM,oBAAoB,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAEnE,MAAM,IAAI,CAAC,mBAAmB,CAC5B,oBAAoB,EACpB,SAAS,EACT,kBAAkB,CACnB,CAAC;QACF,MAAM,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;QAClE,MAAM,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC;QAEnE,OAAO,oBAAoB,CAAC;IAC9B,CAAC;CACF;AApLD,0DAoLC"}
@@ -0,0 +1,29 @@
1
+ import { Address, Domain } from '@hyperlane-xyz/utils';
2
+ import { MultiProtocolApp } from '../app/MultiProtocolApp';
3
+ import { ChainMap, ChainName } from '../types';
4
+ import { EvmGasRouterAdapter, EvmRouterAdapter } from './adapters/EvmRouterAdapter';
5
+ import { SealevelGasRouterAdapter, SealevelRouterAdapter } from './adapters/SealevelRouterAdapter';
6
+ import { IGasRouterAdapter, IRouterAdapter } from './adapters/types';
7
+ import { RouterAddress } from './types';
8
+ export { Router } from '@hyperlane-xyz/core';
9
+ export declare class MultiProtocolRouterApp<ContractAddrs extends RouterAddress = RouterAddress, IAdapterApi extends IRouterAdapter = IRouterAdapter> extends MultiProtocolApp<ContractAddrs, IAdapterApi> {
10
+ readonly protocolToAdapter: {
11
+ ethereum: typeof EvmRouterAdapter;
12
+ sealevel: typeof SealevelRouterAdapter;
13
+ };
14
+ router(chain: ChainName): Address;
15
+ interchainSecurityModules(): Promise<ChainMap<Address>>;
16
+ owners(): Promise<ChainMap<Address>>;
17
+ remoteRouters(origin: ChainName): Promise<Array<{
18
+ domain: Domain;
19
+ address: Address;
20
+ }>>;
21
+ }
22
+ export declare class MultiProtocolGasRouterApp<ContractAddrs extends RouterAddress = RouterAddress, IAdapterApi extends IGasRouterAdapter = IGasRouterAdapter> extends MultiProtocolRouterApp<ContractAddrs, IAdapterApi> {
23
+ readonly protocolToAdapter: {
24
+ ethereum: typeof EvmGasRouterAdapter;
25
+ sealevel: typeof SealevelGasRouterAdapter;
26
+ };
27
+ quoteGasPayment(origin: ChainName, destination: ChainName): Promise<string>;
28
+ }
29
+ //# sourceMappingURL=MultiProtocolRouterApps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiProtocolRouterApps.d.ts","sourceRoot":"","sources":["../../src/router/MultiProtocolRouterApps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAgB,MAAM,sBAAsB,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,qBAAa,sBAAsB,CACjC,aAAa,SAAS,aAAa,GAAG,aAAa,EACnD,WAAW,SAAS,cAAc,GAAG,cAAc,CACnD,SAAQ,gBAAgB,CAAC,aAAa,EAAE,WAAW,CAAC;IACpD,SAAyB,iBAAiB;;;MAGxC;IAEF,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIjC,yBAAyB,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAMvD,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAIpC,aAAa,CACX,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAGxD;AAED,qBAAa,yBAAyB,CACpC,aAAa,SAAS,aAAa,GAAG,aAAa,EACnD,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,CACzD,SAAQ,sBAAsB,CAAC,aAAa,EAAE,WAAW,CAAC;IAC1D,SAAyB,iBAAiB;;;MAGxC;IAEI,eAAe,CACnB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,SAAS,GACrB,OAAO,CAAC,MAAM,CAAC;CAGnB"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MultiProtocolGasRouterApp = exports.MultiProtocolRouterApp = void 0;
4
+ const utils_1 = require("@hyperlane-xyz/utils");
5
+ const MultiProtocolApp_1 = require("../app/MultiProtocolApp");
6
+ const EvmRouterAdapter_1 = require("./adapters/EvmRouterAdapter");
7
+ const SealevelRouterAdapter_1 = require("./adapters/SealevelRouterAdapter");
8
+ class MultiProtocolRouterApp extends MultiProtocolApp_1.MultiProtocolApp {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.protocolToAdapter = {
12
+ [utils_1.ProtocolType.Ethereum]: EvmRouterAdapter_1.EvmRouterAdapter,
13
+ [utils_1.ProtocolType.Sealevel]: SealevelRouterAdapter_1.SealevelRouterAdapter,
14
+ };
15
+ }
16
+ router(chain) {
17
+ return this.metadata(chain).router;
18
+ }
19
+ interchainSecurityModules() {
20
+ return this.adapterMap((chain, adapter) => adapter.interchainSecurityModule(chain));
21
+ }
22
+ owners() {
23
+ return this.adapterMap((chain, adapter) => adapter.owner(chain));
24
+ }
25
+ remoteRouters(origin) {
26
+ return this.adapter(origin).remoteRouters(origin);
27
+ }
28
+ }
29
+ exports.MultiProtocolRouterApp = MultiProtocolRouterApp;
30
+ class MultiProtocolGasRouterApp extends MultiProtocolRouterApp {
31
+ constructor() {
32
+ super(...arguments);
33
+ this.protocolToAdapter = {
34
+ [utils_1.ProtocolType.Ethereum]: EvmRouterAdapter_1.EvmGasRouterAdapter,
35
+ [utils_1.ProtocolType.Sealevel]: SealevelRouterAdapter_1.SealevelGasRouterAdapter,
36
+ };
37
+ }
38
+ async quoteGasPayment(origin, destination) {
39
+ return this.adapter(origin).quoteGasPayment(origin, destination);
40
+ }
41
+ }
42
+ exports.MultiProtocolGasRouterApp = MultiProtocolGasRouterApp;
43
+ //# sourceMappingURL=MultiProtocolRouterApps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiProtocolRouterApps.js","sourceRoot":"","sources":["../../src/router/MultiProtocolRouterApps.ts"],"names":[],"mappings":";;;AAAA,gDAAqE;AAErE,8DAA2D;AAG3D,kEAGqC;AACrC,4EAG0C;AAM1C,MAAa,sBAGX,SAAQ,mCAA4C;IAHtD;;QAI2B,sBAAiB,GAAG;YAC3C,CAAC,oBAAY,CAAC,QAAQ,CAAC,EAAE,mCAAgB;YACzC,CAAC,oBAAY,CAAC,QAAQ,CAAC,EAAE,6CAAqB;SAC/C,CAAC;IAqBJ,CAAC;IAnBC,MAAM,CAAC,KAAgB;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IACrC,CAAC;IAED,yBAAyB;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CACxC,OAAO,CAAC,wBAAwB,CAAC,KAAK,CAAC,CACxC,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,aAAa,CACX,MAAiB;QAEjB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;CACF;AA5BD,wDA4BC;AAED,MAAa,yBAGX,SAAQ,sBAAkD;IAH5D;;QAI2B,sBAAiB,GAAG;YAC3C,CAAC,oBAAY,CAAC,QAAQ,CAAC,EAAE,sCAAmB;YAC5C,CAAC,oBAAY,CAAC,QAAQ,CAAC,EAAE,gDAAwB;SAClD,CAAC;IAQJ,CAAC;IANC,KAAK,CAAC,eAAe,CACnB,MAAiB,EACjB,WAAsB;QAEtB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnE,CAAC;CACF;AAfD,8DAeC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MultiProtocolRouterApps.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiProtocolRouterApps.test.d.ts","sourceRoot":"","sources":["../../src/router/MultiProtocolRouterApps.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const chains_1 = require("../consts/chains");
5
+ const MultiProtocolProvider_1 = require("../providers/MultiProtocolProvider");
6
+ const MultiProtocolRouterApps_1 = require("./MultiProtocolRouterApps");
7
+ const EvmRouterAdapter_1 = require("./adapters/EvmRouterAdapter");
8
+ describe('MultiProtocolRouterApp', () => {
9
+ describe('constructs', () => {
10
+ const multiProvider = new MultiProtocolProvider_1.MultiProtocolProvider();
11
+ it('creates an app class', async () => {
12
+ const app = new MultiProtocolRouterApps_1.MultiProtocolRouterApp(multiProvider);
13
+ (0, chai_1.expect)(app).to.be.instanceOf(MultiProtocolRouterApps_1.MultiProtocolRouterApp);
14
+ const ethAdapter = app.adapter(chains_1.Chains.ethereum);
15
+ (0, chai_1.expect)(ethAdapter).to.be.instanceOf(EvmRouterAdapter_1.EvmRouterAdapter);
16
+ (0, chai_1.expect)(!!ethAdapter.remoteRouter).to.be.true;
17
+ });
18
+ });
19
+ });
20
+ //# sourceMappingURL=MultiProtocolRouterApps.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiProtocolRouterApps.test.js","sourceRoot":"","sources":["../../src/router/MultiProtocolRouterApps.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAI9B,6CAA0C;AAC1C,8EAA2E;AAE3E,uEAAmE;AACnE,kEAA+D;AAE/D,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,MAAM,aAAa,GAAG,IAAI,6CAAqB,EAAuB,CAAC;QACvE,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,gDAAsB,CAAC,aAAa,CAAC,CAAC;YACtD,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,gDAAsB,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,mCAAgB,CAAC,CAAC;YACtD,IAAA,aAAM,EAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,43 +1,23 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.ProxiedRouterChecker = void 0;
13
4
  const HyperlaneRouterChecker_1 = require("./HyperlaneRouterChecker");
14
5
  class ProxiedRouterChecker extends HyperlaneRouterChecker_1.HyperlaneRouterChecker {
15
- checkOwnership(chain) {
16
- const _super = Object.create(null, {
17
- checkOwnership: { get: () => super.checkOwnership }
18
- });
19
- return __awaiter(this, void 0, void 0, function* () {
20
- const config = this.configMap[chain];
21
- let ownableOverrides = {};
22
- if (config.timelock) {
23
- ownableOverrides = {
24
- proxyAdmin: this.app.getAddresses(chain).timelockController,
25
- };
26
- }
27
- return _super.checkOwnership.call(this, chain, config.owner, ownableOverrides);
28
- });
6
+ async checkOwnership(chain) {
7
+ const config = this.configMap[chain];
8
+ let ownableOverrides = {};
9
+ if (config.timelock) {
10
+ ownableOverrides = {
11
+ proxyAdmin: this.app.getAddresses(chain).timelockController,
12
+ };
13
+ }
14
+ return super.checkOwnership(chain, config.owner, ownableOverrides);
29
15
  }
30
- checkChain(chain) {
31
- const _super = Object.create(null, {
32
- checkHyperlaneConnectionClient: { get: () => super.checkHyperlaneConnectionClient },
33
- checkEnrolledRouters: { get: () => super.checkEnrolledRouters }
34
- });
35
- return __awaiter(this, void 0, void 0, function* () {
36
- yield _super.checkHyperlaneConnectionClient.call(this, chain);
37
- yield _super.checkEnrolledRouters.call(this, chain);
38
- yield this.checkProxiedContracts(chain);
39
- yield this.checkOwnership(chain);
40
- });
16
+ async checkChain(chain) {
17
+ await super.checkHyperlaneConnectionClient(chain);
18
+ await super.checkEnrolledRouters(chain);
19
+ await this.checkProxiedContracts(chain);
20
+ await this.checkOwnership(chain);
41
21
  }
42
22
  }
43
23
  exports.ProxiedRouterChecker = ProxiedRouterChecker;
@@ -1 +1 @@
1
- {"version":3,"file":"ProxiedRouterChecker.js","sourceRoot":"","sources":["../../src/router/ProxiedRouterChecker.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,qEAAkE;AAIlE,MAAsB,oBAIpB,SAAQ,+CAA8C;IAChD,cAAc,CAAC,KAAgB;;;;;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,gBAAgB,GAAG,EAAE,CAAC;YAC1B,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACnB,gBAAgB,GAAG;oBACjB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,kBAAkB;iBAC5D,CAAC;aACH;YAED,OAAO,OAAM,cAAc,YAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAAE;QACrE,CAAC;KAAA;IAEK,UAAU,CAAC,KAAgB;;;;;;YAC/B,MAAM,OAAM,8BAA8B,YAAC,KAAK,CAAC,CAAC;YAClD,MAAM,OAAM,oBAAoB,YAAC,KAAK,CAAC,CAAC;YACxC,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;KAAA;CACF;AAvBD,oDAuBC"}
1
+ {"version":3,"file":"ProxiedRouterChecker.js","sourceRoot":"","sources":["../../src/router/ProxiedRouterChecker.ts"],"names":[],"mappings":";;;AAEA,qEAAkE;AAIlE,MAAsB,oBAIpB,SAAQ,+CAA8C;IACtD,KAAK,CAAC,cAAc,CAAC,KAAgB;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,IAAI,MAAM,CAAC,QAAQ,EAAE;YACnB,gBAAgB,GAAG;gBACjB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,kBAAkB;aAC5D,CAAC;SACH;QAED,OAAO,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAgB;QAC/B,MAAM,KAAK,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;CACF;AAvBD,oDAuBC"}
@@ -1,5 +1,5 @@
1
1
  import { Router } from '@hyperlane-xyz/core';
2
- import { HyperlaneContracts } from '../contracts';
2
+ import { HyperlaneContracts } from '../contracts/types';
3
3
  import { ChainName } from '../types';
4
4
  import { HyperlaneRouterDeployer } from './HyperlaneRouterDeployer';
5
5
  import { ProxiedFactories, ProxiedRouterConfig } from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"ProxiedRouterDeployer.d.ts","sourceRoot":"","sources":["../../src/router/ProxiedRouterDeployer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,MAAM,EAGP,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEhE,8BAAsB,qBAAqB,CACzC,MAAM,SAAS,mBAAmB,EAClC,SAAS,SAAS,gBAAgB,EAClC,SAAS,SAAS,MAAM,SAAS,CACjC,SAAQ,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC;IAClD,QAAQ,CAAC,kBAAkB,EAAE,SAAS,CAAC;IAEvC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,MAAM;IAIxD,QAAQ,CAAC,eAAe,CACtB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEtD,QAAQ,CAAC,cAAc,CACrB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CACR,UAAU,CACR,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAClE,CACF;IAEK,eAAe,CACnB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;CAgD1C"}
1
+ {"version":3,"file":"ProxiedRouterDeployer.d.ts","sourceRoot":"","sources":["../../src/router/ProxiedRouterDeployer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,MAAM,EAGP,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEhE,8BAAsB,qBAAqB,CACzC,MAAM,SAAS,mBAAmB,EAClC,SAAS,SAAS,gBAAgB,EAClC,SAAS,SAAS,MAAM,SAAS,CACjC,SAAQ,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC;IAClD,QAAQ,CAAC,kBAAkB,EAAE,SAAS,CAAC;IAEvC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,MAAM;IAIxD,QAAQ,CAAC,eAAe,CACtB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEtD,QAAQ,CAAC,cAAc,CACrB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CACR,UAAU,CACR,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAClE,CACF;IAEK,eAAe,CACnB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;CAgD1C"}
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.ProxiedRouterDeployer = void 0;
13
4
  const ethers_1 = require("ethers");
@@ -18,37 +9,32 @@ class ProxiedRouterDeployer extends HyperlaneRouterDeployer_1.HyperlaneRouterDep
18
9
  router(contracts) {
19
10
  return contracts[this.routerContractName];
20
11
  }
21
- deployContracts(chain, config) {
22
- const _super = Object.create(null, {
23
- runIfOwner: { get: () => super.runIfOwner }
24
- });
25
- return __awaiter(this, void 0, void 0, function* () {
26
- const proxyAdmin = yield this.deployContractFromFactory(chain, this.factories.proxyAdmin, 'proxyAdmin', []);
27
- let timelockController;
28
- let adminOwner;
29
- if (config.timelock) {
30
- timelockController = yield this.deployTimelock(chain, config.timelock);
31
- adminOwner = timelockController.address;
32
- }
33
- else {
34
- timelockController = core_1.TimelockController__factory.connect(ethers_1.constants.AddressZero, this.multiProvider.getProvider(chain));
35
- adminOwner = config.owner;
12
+ async deployContracts(chain, config) {
13
+ const proxyAdmin = await this.deployContractFromFactory(chain, this.factories.proxyAdmin, 'proxyAdmin', []);
14
+ let timelockController;
15
+ let adminOwner;
16
+ if (config.timelock) {
17
+ timelockController = await this.deployTimelock(chain, config.timelock);
18
+ adminOwner = timelockController.address;
19
+ }
20
+ else {
21
+ timelockController = core_1.TimelockController__factory.connect(ethers_1.constants.AddressZero, this.multiProvider.getProvider(chain));
22
+ adminOwner = config.owner;
23
+ }
24
+ await super.runIfOwner(chain, proxyAdmin, async () => {
25
+ this.logger(`Checking ownership of proxy admin to ${adminOwner}`);
26
+ if (!(0, utils_1.eqAddress)(await proxyAdmin.owner(), adminOwner)) {
27
+ this.logger(`Transferring ownership of proxy admin to ${adminOwner}`);
28
+ return this.multiProvider.handleTx(chain, proxyAdmin.transferOwnership(adminOwner));
36
29
  }
37
- yield _super.runIfOwner.call(this, chain, proxyAdmin, () => __awaiter(this, void 0, void 0, function* () {
38
- this.logger(`Checking ownership of proxy admin to ${adminOwner}`);
39
- if (!(0, utils_1.eqAddress)(yield proxyAdmin.owner(), adminOwner)) {
40
- this.logger(`Transferring ownership of proxy admin to ${adminOwner}`);
41
- return this.multiProvider.handleTx(chain, proxyAdmin.transferOwnership(adminOwner));
42
- }
43
- return;
44
- }));
45
- const proxiedRouter = yield this.deployProxiedContract(chain, this.routerContractName, proxyAdmin.address, yield this.constructorArgs(chain, config), yield this.initializeArgs(chain, config));
46
- return {
47
- [this.routerContractName]: proxiedRouter,
48
- proxyAdmin,
49
- timelockController,
50
- };
30
+ return;
51
31
  });
32
+ const proxiedRouter = await this.deployProxiedContract(chain, this.routerContractName, proxyAdmin.address, await this.constructorArgs(chain, config), await this.initializeArgs(chain, config));
33
+ return {
34
+ [this.routerContractName]: proxiedRouter,
35
+ proxyAdmin,
36
+ timelockController,
37
+ };
52
38
  }
53
39
  }
54
40
  exports.ProxiedRouterDeployer = ProxiedRouterDeployer;
@@ -1 +1 @@
1
- {"version":3,"file":"ProxiedRouterDeployer.js","sourceRoot":"","sources":["../../src/router/ProxiedRouterDeployer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAmC;AAEnC,8CAI6B;AAC7B,gDAAiD;AAKjD,uEAAoE;AAGpE,MAAsB,qBAIpB,SAAQ,iDAA0C;IAGlD,MAAM,CAAC,SAAwC;QAC7C,OAAO,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAW,CAAC;IACtD,CAAC;IAgBK,eAAe,CACnB,KAAgB,EAChB,MAAc;;;;;YAEd,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,yBAAyB,CACrD,KAAK,EACL,IAAI,CAAC,SAAS,CAAC,UAAU,EACzB,YAAY,EACZ,EAAE,CACH,CAAC;YAEF,IAAI,kBAAsC,CAAC;YAC3C,IAAI,UAAkB,CAAC;YACvB,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACnB,kBAAkB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACvE,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC;aACzC;iBAAM;gBACL,kBAAkB,GAAG,kCAA2B,CAAC,OAAO,CACtD,kBAAS,CAAC,WAAW,EACrB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CACtC,CAAC;gBACF,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;aAC3B;YAED,MAAM,OAAM,UAAU,YAAC,KAAK,EAAE,UAAU,EAAE,GAAS,EAAE;gBACnD,IAAI,CAAC,MAAM,CAAC,wCAAwC,UAAU,EAAE,CAAC,CAAC;gBAElE,IAAI,CAAC,IAAA,iBAAS,EAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,EAAE;oBACpD,IAAI,CAAC,MAAM,CAAC,4CAA4C,UAAU,EAAE,CAAC,CAAC;oBACtE,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAChC,KAAK,EACL,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,CACzC,CAAC;iBACH;gBACD,OAAO;YACT,CAAC,CAAA,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,qBAAqB,CACpD,KAAK,EACL,IAAI,CAAC,kBAAkB,EACvB,UAAU,CAAC,OAAO,EAClB,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,EACzC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CACzC,CAAC;YAEF,OAAO;gBACL,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,aAAa;gBACxC,UAAU;gBACV,kBAAkB;aACc,CAAC;QACrC,CAAC;KAAA;CACF;AA5ED,sDA4EC"}
1
+ {"version":3,"file":"ProxiedRouterDeployer.js","sourceRoot":"","sources":["../../src/router/ProxiedRouterDeployer.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AAEnC,8CAI6B;AAC7B,gDAAiD;AAKjD,uEAAoE;AAGpE,MAAsB,qBAIpB,SAAQ,iDAA0C;IAGlD,MAAM,CAAC,SAAwC;QAC7C,OAAO,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAW,CAAC;IACtD,CAAC;IAgBD,KAAK,CAAC,eAAe,CACnB,KAAgB,EAChB,MAAc;QAEd,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,yBAAyB,CACrD,KAAK,EACL,IAAI,CAAC,SAAS,CAAC,UAAU,EACzB,YAAY,EACZ,EAAE,CACH,CAAC;QAEF,IAAI,kBAAsC,CAAC;QAC3C,IAAI,UAAkB,CAAC;QACvB,IAAI,MAAM,CAAC,QAAQ,EAAE;YACnB,kBAAkB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACvE,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC;SACzC;aAAM;YACL,kBAAkB,GAAG,kCAA2B,CAAC,OAAO,CACtD,kBAAS,CAAC,WAAW,EACrB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CACtC,CAAC;YACF,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;SAC3B;QAED,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE;YACnD,IAAI,CAAC,MAAM,CAAC,wCAAwC,UAAU,EAAE,CAAC,CAAC;YAElE,IAAI,CAAC,IAAA,iBAAS,EAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,EAAE;gBACpD,IAAI,CAAC,MAAM,CAAC,4CAA4C,UAAU,EAAE,CAAC,CAAC;gBACtE,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAChC,KAAK,EACL,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,CACzC,CAAC;aACH;YACD,OAAO;QACT,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,qBAAqB,CACpD,KAAK,EACL,IAAI,CAAC,kBAAkB,EACvB,UAAU,CAAC,OAAO,EAClB,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,EACzC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CACzC,CAAC;QAEF,OAAO;YACL,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,aAAa;YACxC,UAAU;YACV,kBAAkB;SACc,CAAC;IACrC,CAAC;CACF;AA5ED,sDA4EC"}
@@ -1,14 +1,14 @@
1
1
  import type { BigNumber } from 'ethers';
2
2
  import { GasRouter, Router } from '@hyperlane-xyz/core';
3
3
  import { Address } from '@hyperlane-xyz/utils';
4
- import { HyperlaneApp } from '../HyperlaneApp';
5
- import { HyperlaneContracts, HyperlaneFactories } from '../contracts';
4
+ import { HyperlaneApp } from '../app/HyperlaneApp';
5
+ import { HyperlaneContracts, HyperlaneFactories } from '../contracts/types';
6
6
  import { ChainMap, ChainName } from '../types';
7
7
  export { Router } from '@hyperlane-xyz/core';
8
8
  export declare abstract class RouterApp<Factories extends HyperlaneFactories> extends HyperlaneApp<Factories> {
9
9
  abstract router(contracts: HyperlaneContracts<Factories>): Router;
10
- getSecurityModules: () => Promise<ChainMap<Address>>;
11
- getOwners: () => Promise<ChainMap<Address>>;
10
+ getSecurityModules(): Promise<ChainMap<Address>>;
11
+ getOwners(): Promise<ChainMap<Address>>;
12
12
  }
13
13
  export declare abstract class GasRouterApp<Factories extends HyperlaneFactories, R extends GasRouter> extends RouterApp<Factories> {
14
14
  abstract router(contracts: HyperlaneContracts<Factories>): R;
@@ -1 +1 @@
1
- {"version":3,"file":"RouterApps.d.ts","sourceRoot":"","sources":["../../src/router/RouterApps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAyB,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,8BAAsB,SAAS,CAC7B,SAAS,SAAS,kBAAkB,CACpC,SAAQ,YAAY,CAAC,SAAS,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,MAAM;IAEjE,kBAAkB,QAAO,QAAQ,SAAS,OAAO,CAAC,CAAC,CAK/C;IAEJ,SAAS,QAAO,QAAQ,SAAS,OAAO,CAAC,CAAC,CAGtC;CACL;AAED,8BAAsB,YAAY,CAChC,SAAS,SAAS,kBAAkB,EACpC,CAAC,SAAS,SAAS,CACnB,SAAQ,SAAS,CAAC,SAAS,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC;IAEtD,eAAe,CACnB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,SAAS,GACrB,OAAO,CAAC,SAAS,CAAC;CAKtB"}
1
+ {"version":3,"file":"RouterApps.d.ts","sourceRoot":"","sources":["../../src/router/RouterApps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAyB,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,8BAAsB,SAAS,CAC7B,SAAS,SAAS,kBAAkB,CACpC,SAAQ,YAAY,CAAC,SAAS,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,MAAM;IAEjE,kBAAkB,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAQhD,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;CAKxC;AAED,8BAAsB,YAAY,CAChC,SAAS,SAAS,kBAAkB,EACpC,CAAC,SAAS,SAAS,CACnB,SAAQ,SAAS,CAAC,SAAS,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC;IAEtD,eAAe,CACnB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,SAAS,GACrB,OAAO,CAAC,SAAS,CAAC;CAKtB"}