@hyperlane-xyz/sdk 1.4.1 → 1.4.3-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 (217) hide show
  1. package/dist/consts/agentStartBlocks.d.ts +3 -0
  2. package/dist/consts/agentStartBlocks.d.ts.map +1 -0
  3. package/dist/consts/agentStartBlocks.js +28 -0
  4. package/dist/consts/agentStartBlocks.js.map +1 -0
  5. package/dist/consts/bytecode.js +1 -1
  6. package/dist/consts/bytecode.js.map +1 -1
  7. package/dist/consts/chainMetadata.js +3 -3
  8. package/dist/consts/chains.d.ts +1 -1
  9. package/dist/consts/chains.d.ts.map +1 -1
  10. package/dist/consts/chains.js +2 -2
  11. package/dist/consts/chains.js.map +1 -1
  12. package/dist/consts/environments/index.d.ts +40 -2
  13. package/dist/consts/environments/index.d.ts.map +1 -1
  14. package/dist/consts/environments/index.js.map +1 -1
  15. package/dist/consts/environments/mainnet.json +27 -9
  16. package/dist/consts/environments/testnet.json +36 -18
  17. package/dist/contracts.d.ts +5 -5
  18. package/dist/contracts.d.ts.map +1 -1
  19. package/dist/contracts.js +12 -23
  20. package/dist/contracts.js.map +1 -1
  21. package/dist/core/CoreDeployer.hardhat-test.js +33 -42
  22. package/dist/core/CoreDeployer.hardhat-test.js.map +1 -1
  23. package/dist/core/HyperlaneCore.d.ts +1 -1
  24. package/dist/core/HyperlaneCore.d.ts.map +1 -1
  25. package/dist/core/HyperlaneCore.js +12 -25
  26. package/dist/core/HyperlaneCore.js.map +1 -1
  27. package/dist/core/HyperlaneCore.test.js +4 -13
  28. package/dist/core/HyperlaneCore.test.js.map +1 -1
  29. package/dist/core/HyperlaneCoreChecker.d.ts +0 -1
  30. package/dist/core/HyperlaneCoreChecker.d.ts.map +1 -1
  31. package/dist/core/HyperlaneCoreChecker.js +79 -137
  32. package/dist/core/HyperlaneCoreChecker.js.map +1 -1
  33. package/dist/core/HyperlaneCoreDeployer.d.ts +1 -2
  34. package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
  35. package/dist/core/HyperlaneCoreDeployer.js +45 -71
  36. package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
  37. package/dist/core/TestCoreApp.js +35 -45
  38. package/dist/core/TestCoreApp.js.map +1 -1
  39. package/dist/core/TestCoreDeployer.js +14 -27
  40. package/dist/core/TestCoreDeployer.js.map +1 -1
  41. package/dist/core/contracts.d.ts +1 -1
  42. package/dist/core/contracts.d.ts.map +1 -1
  43. package/dist/core/events.d.ts +1 -1
  44. package/dist/core/events.d.ts.map +1 -1
  45. package/dist/core/testHyperlaneDeploy.hardhat-test.js +23 -32
  46. package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
  47. package/dist/core/types.d.ts +4 -4
  48. package/dist/core/types.d.ts.map +1 -1
  49. package/dist/core/types.js +2 -3
  50. package/dist/core/types.js.map +1 -1
  51. package/dist/deploy/HyperlaneAppChecker.d.ts +3 -1
  52. package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -1
  53. package/dist/deploy/HyperlaneAppChecker.js +105 -83
  54. package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
  55. package/dist/deploy/HyperlaneDeployer.d.ts +5 -1
  56. package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
  57. package/dist/deploy/HyperlaneDeployer.js +179 -183
  58. package/dist/deploy/HyperlaneDeployer.js.map +1 -1
  59. package/dist/deploy/proxy.d.ts +9 -0
  60. package/dist/deploy/proxy.d.ts.map +1 -1
  61. package/dist/deploy/proxy.js +11 -26
  62. package/dist/deploy/proxy.js.map +1 -1
  63. package/dist/deploy/types.d.ts +18 -2
  64. package/dist/deploy/types.d.ts.map +1 -1
  65. package/dist/deploy/types.js +3 -1
  66. package/dist/deploy/types.js.map +1 -1
  67. package/dist/deploy/verify/ContractVerifier.js +122 -131
  68. package/dist/deploy/verify/ContractVerifier.js.map +1 -1
  69. package/dist/deploy/verify/types.d.ts +3 -3
  70. package/dist/deploy/verify/types.d.ts.map +1 -1
  71. package/dist/gas/HyperlaneIgpChecker.d.ts +0 -4
  72. package/dist/gas/HyperlaneIgpChecker.d.ts.map +1 -1
  73. package/dist/gas/HyperlaneIgpChecker.js +101 -121
  74. package/dist/gas/HyperlaneIgpChecker.js.map +1 -1
  75. package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -1
  76. package/dist/gas/HyperlaneIgpDeployer.js +74 -77
  77. package/dist/gas/HyperlaneIgpDeployer.js.map +1 -1
  78. package/dist/gas/contracts.d.ts +4 -3
  79. package/dist/gas/contracts.d.ts.map +1 -1
  80. package/dist/gas/contracts.js +2 -1
  81. package/dist/gas/contracts.js.map +1 -1
  82. package/dist/gas/token-prices.d.ts +5 -5
  83. package/dist/gas/token-prices.d.ts.map +1 -1
  84. package/dist/gas/token-prices.js +37 -54
  85. package/dist/gas/token-prices.js.map +1 -1
  86. package/dist/gas/token-prices.test.js +11 -20
  87. package/dist/gas/token-prices.test.js.map +1 -1
  88. package/dist/gas/types.d.ts +5 -2
  89. package/dist/gas/types.d.ts.map +1 -1
  90. package/dist/gas/types.js +2 -2
  91. package/dist/gas/types.js.map +1 -1
  92. package/dist/hook/HyperlaneHookDeployer.js +69 -88
  93. package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
  94. package/dist/hook/contracts.d.ts +4 -4
  95. package/dist/hook/contracts.d.ts.map +1 -1
  96. package/dist/hook/contracts.js +5 -1
  97. package/dist/hook/contracts.js.map +1 -1
  98. package/dist/hook/types.d.ts +3 -3
  99. package/dist/hook/types.d.ts.map +1 -1
  100. package/dist/hook/types.js +1 -1
  101. package/dist/hook/types.js.map +1 -1
  102. package/dist/index.d.ts +3 -2
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +6 -2
  105. package/dist/index.js.map +1 -1
  106. package/dist/ism/HyperlaneIsmFactory.d.ts +1 -1
  107. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  108. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +14 -23
  109. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
  110. package/dist/ism/HyperlaneIsmFactory.js +215 -198
  111. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  112. package/dist/ism/HyperlaneIsmFactoryDeployer.js +18 -34
  113. package/dist/ism/HyperlaneIsmFactoryDeployer.js.map +1 -1
  114. package/dist/ism/contracts.d.ts +1 -1
  115. package/dist/ism/contracts.d.ts.map +1 -1
  116. package/dist/ism/types.d.ts +5 -5
  117. package/dist/ism/types.d.ts.map +1 -1
  118. package/dist/ism/types.js +1 -1
  119. package/dist/ism/types.js.map +1 -1
  120. package/dist/metadata/agentConfig.d.ts +9 -4
  121. package/dist/metadata/agentConfig.d.ts.map +1 -1
  122. package/dist/metadata/agentConfig.js +26 -8
  123. package/dist/metadata/agentConfig.js.map +1 -1
  124. package/dist/metadata/agentConfig.test.d.ts +2 -0
  125. package/dist/metadata/agentConfig.test.d.ts.map +1 -0
  126. package/dist/metadata/agentConfig.test.js +33 -0
  127. package/dist/metadata/agentConfig.test.js.map +1 -0
  128. package/dist/metadata/chainMetadata.test.js +27 -9
  129. package/dist/metadata/chainMetadata.test.js.map +1 -1
  130. package/dist/metadata/chainMetadataTypes.d.ts +3 -3
  131. package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
  132. package/dist/metadata/chainMetadataTypes.js +3 -4
  133. package/dist/metadata/chainMetadataTypes.js.map +1 -1
  134. package/dist/metadata/deploymentArtifacts.d.ts +2 -2
  135. package/dist/metadata/deploymentArtifacts.d.ts.map +1 -1
  136. package/dist/middleware/account/InterchainAccountChecker.js +4 -1
  137. package/dist/middleware/account/InterchainAccountChecker.js.map +1 -1
  138. package/dist/middleware/account/InterchainAccountDeployer.d.ts +12 -6
  139. package/dist/middleware/account/InterchainAccountDeployer.d.ts.map +1 -1
  140. package/dist/middleware/account/InterchainAccountDeployer.js +34 -63
  141. package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -1
  142. package/dist/middleware/account/accounts.hardhat-test.js +21 -30
  143. package/dist/middleware/account/accounts.hardhat-test.js.map +1 -1
  144. package/dist/middleware/account/contracts.d.ts +4 -3
  145. package/dist/middleware/account/contracts.d.ts.map +1 -1
  146. package/dist/middleware/account/contracts.js +2 -1
  147. package/dist/middleware/account/contracts.js.map +1 -1
  148. package/dist/middleware/liquidity-layer/LiquidityLayerApp.js +129 -151
  149. package/dist/middleware/liquidity-layer/LiquidityLayerApp.js.map +1 -1
  150. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts +2 -2
  151. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts.map +1 -1
  152. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js +85 -107
  153. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js.map +1 -1
  154. package/dist/middleware/liquidity-layer/contracts.d.ts +4 -3
  155. package/dist/middleware/liquidity-layer/contracts.d.ts.map +1 -1
  156. package/dist/middleware/liquidity-layer/contracts.js +2 -1
  157. package/dist/middleware/liquidity-layer/contracts.js.map +1 -1
  158. package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js +41 -46
  159. package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js.map +1 -1
  160. package/dist/middleware/query/InterchainQueryDeployer.d.ts +1 -1
  161. package/dist/middleware/query/InterchainQueryDeployer.d.ts.map +1 -1
  162. package/dist/middleware/query/InterchainQueryDeployer.js +13 -24
  163. package/dist/middleware/query/InterchainQueryDeployer.js.map +1 -1
  164. package/dist/middleware/query/contracts.d.ts +4 -3
  165. package/dist/middleware/query/contracts.d.ts.map +1 -1
  166. package/dist/middleware/query/contracts.js +2 -1
  167. package/dist/middleware/query/contracts.js.map +1 -1
  168. package/dist/middleware/query/queries.hardhat-test.js +23 -32
  169. package/dist/middleware/query/queries.hardhat-test.js.map +1 -1
  170. package/dist/providers/MultiProvider.d.ts +2 -2
  171. package/dist/providers/MultiProvider.d.ts.map +1 -1
  172. package/dist/providers/MultiProvider.js +63 -84
  173. package/dist/providers/MultiProvider.js.map +1 -1
  174. package/dist/providers/RetryProvider.d.ts +1 -1
  175. package/dist/providers/RetryProvider.d.ts.map +1 -1
  176. package/dist/providers/RetryProvider.js +2 -16
  177. package/dist/providers/RetryProvider.js.map +1 -1
  178. package/dist/router/GasRouterDeployer.js +18 -32
  179. package/dist/router/GasRouterDeployer.js.map +1 -1
  180. package/dist/router/HyperlaneRouterChecker.d.ts +0 -1
  181. package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -1
  182. package/dist/router/HyperlaneRouterChecker.js +37 -51
  183. package/dist/router/HyperlaneRouterChecker.js.map +1 -1
  184. package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -1
  185. package/dist/router/HyperlaneRouterDeployer.js +89 -107
  186. package/dist/router/HyperlaneRouterDeployer.js.map +1 -1
  187. package/dist/router/ProxiedRouterChecker.d.ts +3 -2
  188. package/dist/router/ProxiedRouterChecker.d.ts.map +1 -1
  189. package/dist/router/ProxiedRouterChecker.js +15 -17
  190. package/dist/router/ProxiedRouterChecker.js.map +1 -1
  191. package/dist/router/ProxiedRouterDeployer.d.ts +2 -2
  192. package/dist/router/ProxiedRouterDeployer.d.ts.map +1 -1
  193. package/dist/router/ProxiedRouterDeployer.js +27 -28
  194. package/dist/router/ProxiedRouterDeployer.js.map +1 -1
  195. package/dist/router/RouterApps.d.ts.map +1 -1
  196. package/dist/router/RouterApps.js +4 -15
  197. package/dist/router/RouterApps.js.map +1 -1
  198. package/dist/router/types.d.ts +14 -9
  199. package/dist/router/types.d.ts.map +1 -1
  200. package/dist/router/types.js +7 -2
  201. package/dist/router/types.js.map +1 -1
  202. package/dist/test/testUtils.d.ts.map +1 -1
  203. package/dist/test/testUtils.js +21 -24
  204. package/dist/test/testUtils.js.map +1 -1
  205. package/dist/types.d.ts +5 -5
  206. package/dist/types.d.ts.map +1 -1
  207. package/dist/utils/MultiGeneric.js +2 -4
  208. package/dist/utils/MultiGeneric.js.map +1 -1
  209. package/dist/utils/fetch.js +8 -16
  210. package/dist/utils/fetch.js.map +1 -1
  211. package/dist/utils/number.js +2 -2
  212. package/dist/utils/number.js.map +1 -1
  213. package/dist/utils/objects.d.ts +2 -2
  214. package/dist/utils/objects.d.ts.map +1 -1
  215. package/dist/utils/wagmi.js +1 -2
  216. package/dist/utils/wagmi.js.map +1 -1
  217. package/package.json +9 -8
@@ -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.LiquidityLayerDeployer = exports.BridgeAdapterType = void 0;
13
4
  const ethers_1 = require("ethers");
@@ -19,116 +10,103 @@ var BridgeAdapterType;
19
10
  (function (BridgeAdapterType) {
20
11
  BridgeAdapterType["Circle"] = "Circle";
21
12
  BridgeAdapterType["Portal"] = "Portal";
22
- })(BridgeAdapterType = exports.BridgeAdapterType || (exports.BridgeAdapterType = {}));
13
+ })(BridgeAdapterType || (exports.BridgeAdapterType = BridgeAdapterType = {}));
23
14
  class LiquidityLayerDeployer extends ProxiedRouterDeployer_1.ProxiedRouterDeployer {
24
15
  constructor(multiProvider) {
25
16
  super(multiProvider, contracts_1.liquidityLayerFactories);
26
17
  this.routerContractName = 'liquidityLayerRouter';
27
18
  }
28
- constructorArgs(_, __) {
29
- return __awaiter(this, void 0, void 0, function* () {
30
- return [];
31
- });
19
+ async constructorArgs(_, __) {
20
+ return [];
32
21
  }
33
- initializeArgs(chain, config) {
34
- var _a;
35
- return __awaiter(this, void 0, void 0, function* () {
36
- const owner = yield this.multiProvider.getSignerAddress(chain);
37
- return [
38
- config.mailbox,
39
- config.interchainGasPaymaster,
40
- (_a = config.interchainSecurityModule) !== null && _a !== void 0 ? _a : ethers_1.ethers.constants.AddressZero,
41
- owner,
42
- ];
43
- });
22
+ async initializeArgs(chain, config) {
23
+ const owner = await this.multiProvider.getSignerAddress(chain);
24
+ if (typeof config.interchainSecurityModule === 'object') {
25
+ throw new Error('ISM as object unimplemented');
26
+ }
27
+ return [
28
+ config.mailbox,
29
+ config.interchainGasPaymaster,
30
+ config.interchainSecurityModule ?? ethers_1.ethers.constants.AddressZero,
31
+ owner,
32
+ ];
44
33
  }
45
- enrollRemoteRouters(contractsMap, configMap, foreignRouters) {
46
- const _super = Object.create(null, {
47
- enrollRemoteRouters: { get: () => super.enrollRemoteRouters }
48
- });
49
- return __awaiter(this, void 0, void 0, function* () {
50
- this.logger(`Enroll LiquidityLayerRouters with each other`);
51
- yield _super.enrollRemoteRouters.call(this, contractsMap, configMap, foreignRouters);
52
- this.logger(`Enroll CircleBridgeAdapters with each other`);
53
- // Hack to allow use of super.enrollRemoteRouters
54
- yield _super.enrollRemoteRouters.call(this, (0, objects_1.objMap)((0, objects_1.objFilter)(contractsMap, (_, c) => !!c.circleBridgeAdapter), (_, contracts) => ({
55
- liquidityLayerRouter: contracts.circleBridgeAdapter,
56
- })), configMap, foreignRouters);
57
- this.logger(`Enroll PortalAdapters with each other`);
58
- // Hack to allow use of super.enrollRemoteRouters
59
- yield _super.enrollRemoteRouters.call(this, (0, objects_1.objMap)((0, objects_1.objFilter)(contractsMap, (_, c) => !!c.portalAdapter), (_, contracts) => ({
60
- liquidityLayerRouter: contracts.portalAdapter,
61
- })), configMap, foreignRouters);
62
- });
34
+ async enrollRemoteRouters(contractsMap, configMap, foreignRouters) {
35
+ this.logger(`Enroll LiquidityLayerRouters with each other`);
36
+ await super.enrollRemoteRouters(contractsMap, configMap, foreignRouters);
37
+ this.logger(`Enroll CircleBridgeAdapters with each other`);
38
+ // Hack to allow use of super.enrollRemoteRouters
39
+ await super.enrollRemoteRouters((0, objects_1.objMap)((0, objects_1.objFilter)(contractsMap, (_, c) => !!c.circleBridgeAdapter), (_, contracts) => ({
40
+ liquidityLayerRouter: contracts.circleBridgeAdapter,
41
+ })), configMap, foreignRouters);
42
+ this.logger(`Enroll PortalAdapters with each other`);
43
+ // Hack to allow use of super.enrollRemoteRouters
44
+ await super.enrollRemoteRouters((0, objects_1.objMap)((0, objects_1.objFilter)(contractsMap, (_, c) => !!c.portalAdapter), (_, contracts) => ({
45
+ liquidityLayerRouter: contracts.portalAdapter,
46
+ })), configMap, foreignRouters);
63
47
  }
64
48
  // Custom contract deployment logic can go here
65
49
  // If no custom logic is needed, call deployContract for the router
66
- deployContracts(chain, config) {
67
- const _super = Object.create(null, {
68
- deployContracts: { get: () => super.deployContracts }
69
- });
70
- return __awaiter(this, void 0, void 0, function* () {
71
- // This is just the temp owner for contracts, and HyperlaneRouterDeployer#transferOwnership actually sets the configured owner
72
- const deployer = yield this.multiProvider.getSignerAddress(chain);
73
- const routerContracts = yield _super.deployContracts.call(this, chain, config);
74
- const bridgeAdapters = {};
75
- if (config.circle) {
76
- bridgeAdapters.circleBridgeAdapter = yield this.deployCircleBridgeAdapter(chain, config.circle, deployer, routerContracts.liquidityLayerRouter);
77
- }
78
- if (config.portal) {
79
- bridgeAdapters.portalAdapter = yield this.deployPortalAdapter(chain, config.portal, deployer, routerContracts.liquidityLayerRouter);
80
- }
81
- return Object.assign(Object.assign({}, routerContracts), bridgeAdapters);
82
- });
50
+ async deployContracts(chain, config) {
51
+ // This is just the temp owner for contracts, and HyperlaneRouterDeployer#transferOwnership actually sets the configured owner
52
+ const deployer = await this.multiProvider.getSignerAddress(chain);
53
+ const routerContracts = await super.deployContracts(chain, config);
54
+ const bridgeAdapters = {};
55
+ if (config.circle) {
56
+ bridgeAdapters.circleBridgeAdapter = await this.deployCircleBridgeAdapter(chain, config.circle, deployer, routerContracts.liquidityLayerRouter);
57
+ }
58
+ if (config.portal) {
59
+ bridgeAdapters.portalAdapter = await this.deployPortalAdapter(chain, config.portal, deployer, routerContracts.liquidityLayerRouter);
60
+ }
61
+ return {
62
+ ...routerContracts,
63
+ ...bridgeAdapters,
64
+ };
83
65
  }
84
- deployPortalAdapter(chain, adapterConfig, owner, router) {
85
- return __awaiter(this, void 0, void 0, function* () {
86
- const portalAdapter = yield this.deployContract(chain, 'portalAdapter', [], [
87
- this.multiProvider.getDomainId(chain),
88
- owner,
89
- adapterConfig.portalBridgeAddress,
90
- router.address,
91
- ]);
92
- for (const { wormholeDomain, hyperlaneDomain, } of adapterConfig.wormholeDomainMapping) {
93
- const expectedCircleDomain = yield portalAdapter.hyperlaneDomainToWormholeDomain(hyperlaneDomain);
94
- if (expectedCircleDomain === wormholeDomain)
95
- continue;
96
- this.logger(`Set wormhole domain ${wormholeDomain} for hyperlane domain ${hyperlaneDomain}`);
97
- yield this.runIfOwner(chain, portalAdapter, () => this.multiProvider.handleTx(chain, portalAdapter.addDomain(hyperlaneDomain, wormholeDomain)));
98
- }
99
- if (!utils_1.utils.eqAddress(yield router.liquidityLayerAdapters('Portal'), portalAdapter.address)) {
100
- this.logger('Set Portal as LiquidityLayerAdapter on Router');
101
- yield this.runIfOwner(chain, portalAdapter, () => this.multiProvider.handleTx(chain, router.setLiquidityLayerAdapter(adapterConfig.type, portalAdapter.address)));
102
- }
103
- return portalAdapter;
104
- });
66
+ async deployPortalAdapter(chain, adapterConfig, owner, router) {
67
+ const portalAdapter = await this.deployContract(chain, 'portalAdapter', [], [
68
+ this.multiProvider.getDomainId(chain),
69
+ owner,
70
+ adapterConfig.portalBridgeAddress,
71
+ router.address,
72
+ ]);
73
+ for (const { wormholeDomain, hyperlaneDomain, } of adapterConfig.wormholeDomainMapping) {
74
+ const expectedCircleDomain = await portalAdapter.hyperlaneDomainToWormholeDomain(hyperlaneDomain);
75
+ if (expectedCircleDomain === wormholeDomain)
76
+ continue;
77
+ this.logger(`Set wormhole domain ${wormholeDomain} for hyperlane domain ${hyperlaneDomain}`);
78
+ await this.runIfOwner(chain, portalAdapter, () => this.multiProvider.handleTx(chain, portalAdapter.addDomain(hyperlaneDomain, wormholeDomain)));
79
+ }
80
+ if (!utils_1.utils.eqAddress(await router.liquidityLayerAdapters('Portal'), portalAdapter.address)) {
81
+ this.logger('Set Portal as LiquidityLayerAdapter on Router');
82
+ await this.runIfOwner(chain, portalAdapter, () => this.multiProvider.handleTx(chain, router.setLiquidityLayerAdapter(adapterConfig.type, portalAdapter.address)));
83
+ }
84
+ return portalAdapter;
105
85
  }
106
- deployCircleBridgeAdapter(chain, adapterConfig, owner, router) {
107
- return __awaiter(this, void 0, void 0, function* () {
108
- const circleBridgeAdapter = yield this.deployContract(chain, 'circleBridgeAdapter', [], [
109
- owner,
110
- adapterConfig.tokenMessengerAddress,
111
- adapterConfig.messageTransmitterAddress,
112
- router.address,
113
- ]);
114
- if (!utils_1.utils.eqAddress(yield circleBridgeAdapter.tokenSymbolToAddress('USDC'), adapterConfig.usdcAddress)) {
115
- this.logger(`Set USDC token contract`);
116
- yield this.runIfOwner(chain, circleBridgeAdapter, () => this.multiProvider.handleTx(chain, circleBridgeAdapter.addToken(adapterConfig.usdcAddress, 'USDC')));
117
- }
118
- // Set domain mappings
119
- for (const { circleDomain, hyperlaneDomain, } of adapterConfig.circleDomainMapping) {
120
- const expectedCircleDomain = yield circleBridgeAdapter.hyperlaneDomainToCircleDomain(hyperlaneDomain);
121
- if (expectedCircleDomain === circleDomain)
122
- continue;
123
- this.logger(`Set circle domain ${circleDomain} for hyperlane domain ${hyperlaneDomain}`);
124
- yield this.runIfOwner(chain, circleBridgeAdapter, () => this.multiProvider.handleTx(chain, circleBridgeAdapter.addDomain(hyperlaneDomain, circleDomain)));
125
- }
126
- if (!utils_1.utils.eqAddress(yield router.liquidityLayerAdapters('Circle'), circleBridgeAdapter.address)) {
127
- this.logger('Set Circle as LiquidityLayerAdapter on Router');
128
- yield this.runIfOwner(chain, circleBridgeAdapter, () => this.multiProvider.handleTx(chain, router.setLiquidityLayerAdapter(adapterConfig.type, circleBridgeAdapter.address)));
129
- }
130
- return circleBridgeAdapter;
131
- });
86
+ async deployCircleBridgeAdapter(chain, adapterConfig, owner, router) {
87
+ const circleBridgeAdapter = await this.deployContract(chain, 'circleBridgeAdapter', [], [
88
+ owner,
89
+ adapterConfig.tokenMessengerAddress,
90
+ adapterConfig.messageTransmitterAddress,
91
+ router.address,
92
+ ]);
93
+ if (!utils_1.utils.eqAddress(await circleBridgeAdapter.tokenSymbolToAddress('USDC'), adapterConfig.usdcAddress)) {
94
+ this.logger(`Set USDC token contract`);
95
+ await this.runIfOwner(chain, circleBridgeAdapter, () => this.multiProvider.handleTx(chain, circleBridgeAdapter.addToken(adapterConfig.usdcAddress, 'USDC')));
96
+ }
97
+ // Set domain mappings
98
+ for (const { circleDomain, hyperlaneDomain, } of adapterConfig.circleDomainMapping) {
99
+ const expectedCircleDomain = await circleBridgeAdapter.hyperlaneDomainToCircleDomain(hyperlaneDomain);
100
+ if (expectedCircleDomain === circleDomain)
101
+ continue;
102
+ this.logger(`Set circle domain ${circleDomain} for hyperlane domain ${hyperlaneDomain}`);
103
+ await this.runIfOwner(chain, circleBridgeAdapter, () => this.multiProvider.handleTx(chain, circleBridgeAdapter.addDomain(hyperlaneDomain, circleDomain)));
104
+ }
105
+ if (!utils_1.utils.eqAddress(await router.liquidityLayerAdapters('Circle'), circleBridgeAdapter.address)) {
106
+ this.logger('Set Circle as LiquidityLayerAdapter on Router');
107
+ await this.runIfOwner(chain, circleBridgeAdapter, () => this.multiProvider.handleTx(chain, router.setLiquidityLayerAdapter(adapterConfig.type, circleBridgeAdapter.address)));
108
+ }
109
+ return circleBridgeAdapter;
132
110
  }
133
111
  }
134
112
  exports.LiquidityLayerDeployer = LiquidityLayerDeployer;
@@ -1 +1 @@
1
- {"version":3,"file":"LiquidityLayerRouterDeployer.js","sourceRoot":"","sources":["../../../src/middleware/liquidity-layer/LiquidityLayerRouterDeployer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LiquidityLayerRouterDeployer.js","sourceRoot":"","sources":["../../../src/middleware/liquidity-layer/LiquidityLayerRouterDeployer.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
- import { CircleBridgeAdapter__factory, LiquidityLayerRouter__factory, PortalAdapter__factory, ProxyAdmin__factory } from '@hyperlane-xyz/core';
1
+ import { CircleBridgeAdapter__factory, LiquidityLayerRouter__factory, PortalAdapter__factory } from '@hyperlane-xyz/core';
2
2
  export declare const liquidityLayerFactories: {
3
+ proxyAdmin: import("@hyperlane-xyz/core").ProxyAdmin__factory;
4
+ timelockController: import("@hyperlane-xyz/core").TimelockController__factory;
3
5
  circleBridgeAdapter: CircleBridgeAdapter__factory;
4
6
  portalAdapter: PortalAdapter__factory;
5
- proxyAdmin: ProxyAdmin__factory;
6
7
  liquidityLayerRouter: LiquidityLayerRouter__factory;
7
8
  };
8
- export declare type LiquidityLayerFactories = typeof liquidityLayerFactories;
9
+ export type LiquidityLayerFactories = typeof liquidityLayerFactories;
9
10
  //# sourceMappingURL=contracts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/middleware/liquidity-layer/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC7B,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,uBAAuB;;;;;CAKnC,CAAC;AAEF,oBAAY,uBAAuB,GAAG,OAAO,uBAAuB,CAAC"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/middleware/liquidity-layer/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC7B,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAI7B,eAAO,MAAM,uBAAuB;;;;;;CAKnC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAC"}
@@ -2,10 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.liquidityLayerFactories = void 0;
4
4
  const core_1 = require("@hyperlane-xyz/core");
5
+ const types_1 = require("../../router/types");
5
6
  exports.liquidityLayerFactories = {
6
7
  circleBridgeAdapter: new core_1.CircleBridgeAdapter__factory(),
7
8
  portalAdapter: new core_1.PortalAdapter__factory(),
8
- proxyAdmin: new core_1.ProxyAdmin__factory(),
9
9
  liquidityLayerRouter: new core_1.LiquidityLayerRouter__factory(),
10
+ ...types_1.proxiedFactories,
10
11
  };
11
12
  //# sourceMappingURL=contracts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/middleware/liquidity-layer/contracts.ts"],"names":[],"mappings":";;;AAAA,8CAK6B;AAEhB,QAAA,uBAAuB,GAAG;IACrC,mBAAmB,EAAE,IAAI,mCAA4B,EAAE;IACvD,aAAa,EAAE,IAAI,6BAAsB,EAAE;IAC3C,UAAU,EAAE,IAAI,0BAAmB,EAAE;IACrC,oBAAoB,EAAE,IAAI,oCAA6B,EAAE;CAC1D,CAAC"}
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/middleware/liquidity-layer/contracts.ts"],"names":[],"mappings":";;;AAAA,8CAI6B;AAE7B,8CAAsD;AAEzC,QAAA,uBAAuB,GAAG;IACrC,mBAAmB,EAAE,IAAI,mCAA4B,EAAE;IACvD,aAAa,EAAE,IAAI,6BAAsB,EAAE;IAC3C,oBAAoB,EAAE,IAAI,oCAA6B,EAAE;IACzD,GAAG,wBAAgB;CACpB,CAAC"}
@@ -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
  const chai_1 = require("chai");
13
4
  const hardhat_1 = require("hardhat");
@@ -22,7 +13,7 @@ const testUtils_1 = require("../../test/testUtils");
22
13
  const objects_1 = require("../../utils/objects");
23
14
  const LiquidityLayerApp_1 = require("./LiquidityLayerApp");
24
15
  const LiquidityLayerRouterDeployer_1 = require("./LiquidityLayerRouterDeployer");
25
- describe('LiquidityLayerRouter', () => __awaiter(void 0, void 0, void 0, function* () {
16
+ describe('LiquidityLayerRouter', async () => {
26
17
  const localChain = chains_1.Chains.test1;
27
18
  const remoteChain = chains_1.Chains.test2;
28
19
  const localDomain = chainMetadata_1.chainMetadata[localChain].chainId;
@@ -37,23 +28,25 @@ describe('LiquidityLayerRouter', () => __awaiter(void 0, void 0, void 0, functio
37
28
  let circleTokenMessenger;
38
29
  let portalBridge;
39
30
  let messageTransmitter;
40
- before(() => __awaiter(void 0, void 0, void 0, function* () {
41
- [signer] = yield hardhat_1.ethers.getSigners();
31
+ before(async () => {
32
+ [signer] = await hardhat_1.ethers.getSigners();
42
33
  multiProvider = MultiProvider_1.MultiProvider.createTestMultiProvider({ signer });
43
34
  const coreDeployer = new TestCoreDeployer_1.TestCoreDeployer(multiProvider);
44
- const coreContractsMaps = yield coreDeployer.deploy();
35
+ const coreContractsMaps = await coreDeployer.deploy();
45
36
  coreApp = new TestCoreApp_1.TestCoreApp(coreContractsMaps, multiProvider);
46
37
  const mockTokenF = new core_1.MockToken__factory(signer);
47
- mockToken = yield mockTokenF.deploy();
38
+ mockToken = await mockTokenF.deploy();
48
39
  const portalBridgeF = new core_1.MockPortalBridge__factory(signer);
49
40
  const circleTokenMessengerF = new core_1.MockCircleTokenMessenger__factory(signer);
50
- circleTokenMessenger = yield circleTokenMessengerF.deploy(mockToken.address);
51
- portalBridge = yield portalBridgeF.deploy(mockToken.address);
41
+ circleTokenMessenger = await circleTokenMessengerF.deploy(mockToken.address);
42
+ portalBridge = await portalBridgeF.deploy(mockToken.address);
52
43
  const messageTransmitterF = new core_1.MockCircleMessageTransmitter__factory(signer);
53
- messageTransmitter = yield messageTransmitterF.deploy(mockToken.address);
54
- const routerConfig = yield (0, testUtils_1.deployTestIgpsAndGetRouterConfig)(multiProvider, signer.address, coreContractsMaps);
44
+ messageTransmitter = await messageTransmitterF.deploy(mockToken.address);
45
+ const routerConfig = await (0, testUtils_1.deployTestIgpsAndGetRouterConfig)(multiProvider, signer.address, coreContractsMaps);
55
46
  config = (0, objects_1.objMap)(routerConfig, (chain, config) => {
56
- return Object.assign(Object.assign({}, config), { circle: {
47
+ return {
48
+ ...config,
49
+ circle: {
57
50
  type: LiquidityLayerRouterDeployer_1.BridgeAdapterType.Circle,
58
51
  tokenMessengerAddress: circleTokenMessenger.address,
59
52
  messageTransmitterAddress: messageTransmitter.address,
@@ -68,7 +61,8 @@ describe('LiquidityLayerRouter', () => __awaiter(void 0, void 0, void 0, functio
68
61
  circleDomain: remoteDomain,
69
62
  },
70
63
  ],
71
- }, portal: {
64
+ },
65
+ portal: {
72
66
  type: LiquidityLayerRouterDeployer_1.BridgeAdapterType.Portal,
73
67
  portalBridgeAddress: portalBridge.address,
74
68
  wormholeDomainMapping: [
@@ -81,40 +75,41 @@ describe('LiquidityLayerRouter', () => __awaiter(void 0, void 0, void 0, functio
81
75
  wormholeDomain: remoteDomain,
82
76
  },
83
77
  ],
84
- } });
78
+ },
79
+ };
85
80
  });
86
- }));
87
- beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
81
+ });
82
+ beforeEach(async () => {
88
83
  const LiquidityLayer = new LiquidityLayerRouterDeployer_1.LiquidityLayerDeployer(multiProvider);
89
- const contracts = yield LiquidityLayer.deploy(config);
84
+ const contracts = await LiquidityLayer.deploy(config);
90
85
  liquidityLayerApp = new LiquidityLayerApp_1.LiquidityLayerApp(contracts, multiProvider, config);
91
86
  local = liquidityLayerApp.getContracts(localChain).liquidityLayerRouter;
92
- }));
93
- it('can transfer tokens via Circle', () => __awaiter(void 0, void 0, void 0, function* () {
87
+ });
88
+ it('can transfer tokens via Circle', async () => {
94
89
  const recipientF = new core_1.TestLiquidityLayerMessageRecipient__factory(signer);
95
- const recipient = yield recipientF.deploy();
90
+ const recipient = await recipientF.deploy();
96
91
  const amount = 1000;
97
- yield mockToken.mint(signer.address, amount);
98
- yield mockToken.approve(local.address, amount);
99
- yield local.dispatchWithTokens(remoteDomain, utils_1.utils.addressToBytes32(recipient.address), mockToken.address, amount, LiquidityLayerRouterDeployer_1.BridgeAdapterType.Circle, '0x01');
100
- const transferNonce = yield circleTokenMessenger.nextNonce();
101
- const nonceId = yield messageTransmitter.hashSourceAndNonce(localDomain, transferNonce);
102
- yield messageTransmitter.process(nonceId, liquidityLayerApp.getContracts(remoteChain).circleBridgeAdapter.address, amount);
103
- yield coreApp.processMessages();
104
- (0, chai_1.expect)((yield mockToken.balanceOf(recipient.address)).toNumber()).to.eql(amount);
105
- }));
106
- it('can transfer tokens via Portal', () => __awaiter(void 0, void 0, void 0, function* () {
92
+ await mockToken.mint(signer.address, amount);
93
+ await mockToken.approve(local.address, amount);
94
+ await local.dispatchWithTokens(remoteDomain, utils_1.utils.addressToBytes32(recipient.address), mockToken.address, amount, LiquidityLayerRouterDeployer_1.BridgeAdapterType.Circle, '0x01');
95
+ const transferNonce = await circleTokenMessenger.nextNonce();
96
+ const nonceId = await messageTransmitter.hashSourceAndNonce(localDomain, transferNonce);
97
+ await messageTransmitter.process(nonceId, liquidityLayerApp.getContracts(remoteChain).circleBridgeAdapter.address, amount);
98
+ await coreApp.processMessages();
99
+ (0, chai_1.expect)((await mockToken.balanceOf(recipient.address)).toNumber()).to.eql(amount);
100
+ });
101
+ it('can transfer tokens via Portal', async () => {
107
102
  const recipientF = new core_1.TestLiquidityLayerMessageRecipient__factory(signer);
108
- const recipient = yield recipientF.deploy();
103
+ const recipient = await recipientF.deploy();
109
104
  const amount = 1000;
110
- yield mockToken.mint(signer.address, amount);
111
- yield mockToken.approve(local.address, amount);
112
- yield local.dispatchWithTokens(remoteDomain, utils_1.utils.addressToBytes32(recipient.address), mockToken.address, amount, LiquidityLayerRouterDeployer_1.BridgeAdapterType.Portal, '0x01');
105
+ await mockToken.mint(signer.address, amount);
106
+ await mockToken.approve(local.address, amount);
107
+ await local.dispatchWithTokens(remoteDomain, utils_1.utils.addressToBytes32(recipient.address), mockToken.address, amount, LiquidityLayerRouterDeployer_1.BridgeAdapterType.Portal, '0x01');
113
108
  const originAdapter = liquidityLayerApp.getContracts(localChain).portalAdapter;
114
109
  const destinationAdapter = liquidityLayerApp.getContracts(remoteChain).portalAdapter;
115
- yield destinationAdapter.completeTransfer(yield portalBridge.mockPortalVaa(localDomain, yield originAdapter.nonce(), amount));
116
- yield coreApp.processMessages();
117
- (0, chai_1.expect)((yield mockToken.balanceOf(recipient.address)).toNumber()).to.eql(amount);
118
- }));
119
- }));
110
+ await destinationAdapter.completeTransfer(await portalBridge.mockPortalVaa(localDomain, await originAdapter.nonce(), amount));
111
+ await coreApp.processMessages();
112
+ (0, chai_1.expect)((await mockToken.balanceOf(recipient.address)).toNumber()).to.eql(amount);
113
+ });
114
+ });
120
115
  //# sourceMappingURL=liquidity-layer.hardhat-test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"liquidity-layer.hardhat-test.js","sourceRoot":"","sources":["../../../src/middleware/liquidity-layer/liquidity-layer.hardhat-test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"liquidity-layer.hardhat-test.js","sourceRoot":"","sources":["../../../src/middleware/liquidity-layer/liquidity-layer.hardhat-test.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { MultiProvider } from '../../providers/MultiProvider';
2
2
  import { ProxiedRouterDeployer } from '../../router/ProxiedRouterDeployer';
3
3
  import { RouterConfig } from '../../router/types';
4
4
  import { InterchainQueryFactories } from './contracts';
5
- export declare type InterchainQueryConfig = RouterConfig;
5
+ export type InterchainQueryConfig = RouterConfig;
6
6
  export declare class InterchainQueryDeployer extends ProxiedRouterDeployer<InterchainQueryConfig, InterchainQueryFactories, 'interchainQueryRouter'> {
7
7
  readonly routerContractName = "interchainQueryRouter";
8
8
  constructor(multiProvider: MultiProvider);
@@ -1 +1 @@
1
- {"version":3,"file":"InterchainQueryDeployer.d.ts","sourceRoot":"","sources":["../../../src/middleware/query/InterchainQueryDeployer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EACL,wBAAwB,EAEzB,MAAM,aAAa,CAAC;AAErB,oBAAY,qBAAqB,GAAG,YAAY,CAAC;AAEjD,qBAAa,uBAAwB,SAAQ,qBAAqB,CAChE,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,CACxB;IACC,QAAQ,CAAC,kBAAkB,2BAA2B;gBAE1C,aAAa,EAAE,aAAa;IAIlC,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC;IAGzD,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,YAAY,GACnB,OAAO,CACR;QACE,QAAQ,EAAE,MAAM;QAChB,uBAAuB,EAAE,MAAM;QAC/B,yBAAyB,EAAE,MAAM;QACjC,MAAM,EAAE,MAAM;KACf,CACF;CASF"}
1
+ {"version":3,"file":"InterchainQueryDeployer.d.ts","sourceRoot":"","sources":["../../../src/middleware/query/InterchainQueryDeployer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EACL,wBAAwB,EAEzB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAEjD,qBAAa,uBAAwB,SAAQ,qBAAqB,CAChE,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,CACxB;IACC,QAAQ,CAAC,kBAAkB,2BAA2B;gBAE1C,aAAa,EAAE,aAAa;IAIlC,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC;IAGzD,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,YAAY,GACnB,OAAO,CACR;QACE,QAAQ,EAAE,MAAM;QAChB,uBAAuB,EAAE,MAAM;QAC/B,yBAAyB,EAAE,MAAM;QACjC,MAAM,EAAE,MAAM;KACf,CACF;CAYF"}
@@ -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.InterchainQueryDeployer = void 0;
13
4
  const ethers_1 = require("ethers");
@@ -18,22 +9,20 @@ class InterchainQueryDeployer extends ProxiedRouterDeployer_1.ProxiedRouterDeplo
18
9
  super(multiProvider, contracts_1.interchainQueryFactories);
19
10
  this.routerContractName = 'interchainQueryRouter';
20
11
  }
21
- constructorArgs(_, __) {
22
- return __awaiter(this, void 0, void 0, function* () {
23
- return [];
24
- });
12
+ async constructorArgs(_, __) {
13
+ return [];
25
14
  }
26
- initializeArgs(chain, config) {
27
- var _a;
28
- return __awaiter(this, void 0, void 0, function* () {
29
- const owner = yield this.multiProvider.getSignerAddress(chain);
30
- return [
31
- config.mailbox,
32
- config.interchainGasPaymaster,
33
- (_a = config.interchainSecurityModule) !== null && _a !== void 0 ? _a : ethers_1.ethers.constants.AddressZero,
34
- owner,
35
- ];
36
- });
15
+ async initializeArgs(chain, config) {
16
+ const owner = await this.multiProvider.getSignerAddress(chain);
17
+ if (typeof config.interchainSecurityModule === 'object') {
18
+ throw new Error('ISM as object unimplemented');
19
+ }
20
+ return [
21
+ config.mailbox,
22
+ config.interchainGasPaymaster,
23
+ config.interchainSecurityModule ?? ethers_1.ethers.constants.AddressZero,
24
+ owner,
25
+ ];
37
26
  }
38
27
  }
39
28
  exports.InterchainQueryDeployer = InterchainQueryDeployer;
@@ -1 +1 @@
1
- {"version":3,"file":"InterchainQueryDeployer.js","sourceRoot":"","sources":["../../../src/middleware/query/InterchainQueryDeployer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAgC;AAGhC,8EAA2E;AAG3E,2CAGqB;AAIrB,MAAa,uBAAwB,SAAQ,6CAI5C;IAGC,YAAY,aAA4B;QACtC,KAAK,CAAC,aAAa,EAAE,oCAAwB,CAAC,CAAC;QAHxC,uBAAkB,GAAG,uBAAuB,CAAC;IAItD,CAAC;IAEK,eAAe,CAAC,CAAS,EAAE,EAAgB;;YAC/C,OAAO,EAAE,CAAC;QACZ,CAAC;KAAA;IACK,cAAc,CAClB,KAAa,EACb,MAAoB;;;YASpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC/D,OAAO;gBACL,MAAM,CAAC,OAAO;gBACd,MAAM,CAAC,sBAAsB;gBAC7B,MAAA,MAAM,CAAC,wBAAwB,mCAAI,eAAM,CAAC,SAAS,CAAC,WAAW;gBAC/D,KAAK;aACN,CAAC;;KACH;CACF;AAjCD,0DAiCC"}
1
+ {"version":3,"file":"InterchainQueryDeployer.js","sourceRoot":"","sources":["../../../src/middleware/query/InterchainQueryDeployer.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAGhC,8EAA2E;AAG3E,2CAGqB;AAIrB,MAAa,uBAAwB,SAAQ,6CAI5C;IAGC,YAAY,aAA4B;QACtC,KAAK,CAAC,aAAa,EAAE,oCAAwB,CAAC,CAAC;QAHxC,uBAAkB,GAAG,uBAAuB,CAAC;IAItD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,CAAS,EAAE,EAAgB;QAC/C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,KAAK,CAAC,cAAc,CAClB,KAAa,EACb,MAAoB;QASpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,OAAO,MAAM,CAAC,wBAAwB,KAAK,QAAQ,EAAE;YACvD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAChD;QACD,OAAO;YACL,MAAM,CAAC,OAAO;YACd,MAAM,CAAC,sBAAsB;YAC7B,MAAM,CAAC,wBAAwB,IAAI,eAAM,CAAC,SAAS,CAAC,WAAW;YAC/D,KAAK;SACN,CAAC;IACJ,CAAC;CACF;AApCD,0DAoCC"}
@@ -1,7 +1,8 @@
1
- import { InterchainQueryRouter__factory, ProxyAdmin__factory } from '@hyperlane-xyz/core';
1
+ import { InterchainQueryRouter__factory } from '@hyperlane-xyz/core';
2
2
  export declare const interchainQueryFactories: {
3
+ proxyAdmin: import("@hyperlane-xyz/core").ProxyAdmin__factory;
4
+ timelockController: import("@hyperlane-xyz/core").TimelockController__factory;
3
5
  interchainQueryRouter: InterchainQueryRouter__factory;
4
- proxyAdmin: ProxyAdmin__factory;
5
6
  };
6
- export declare type InterchainQueryFactories = typeof interchainQueryFactories;
7
+ export type InterchainQueryFactories = typeof interchainQueryFactories;
7
8
  //# sourceMappingURL=contracts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/middleware/query/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,wBAAwB;;;CAGpC,CAAC;AAEF,oBAAY,wBAAwB,GAAG,OAAO,wBAAwB,CAAC"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/middleware/query/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAIrE,eAAO,MAAM,wBAAwB;;;;CAGpC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAC"}
@@ -2,8 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.interchainQueryFactories = void 0;
4
4
  const core_1 = require("@hyperlane-xyz/core");
5
+ const types_1 = require("../../router/types");
5
6
  exports.interchainQueryFactories = {
6
7
  interchainQueryRouter: new core_1.InterchainQueryRouter__factory(),
7
- proxyAdmin: new core_1.ProxyAdmin__factory(),
8
+ ...types_1.proxiedFactories,
8
9
  };
9
10
  //# sourceMappingURL=contracts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/middleware/query/contracts.ts"],"names":[],"mappings":";;;AAAA,8CAG6B;AAEhB,QAAA,wBAAwB,GAAG;IACtC,qBAAqB,EAAE,IAAI,qCAA8B,EAAE;IAC3D,UAAU,EAAE,IAAI,0BAAmB,EAAE;CACtC,CAAC"}
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/middleware/query/contracts.ts"],"names":[],"mappings":";;;AAAA,8CAAqE;AAErE,8CAAsD;AAEzC,QAAA,wBAAwB,GAAG;IACtC,qBAAqB,EAAE,IAAI,qCAA8B,EAAE;IAC3D,GAAG,wBAAgB;CACpB,CAAC"}