@hyperlane-xyz/sdk 1.5.3 → 1.5.5-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 (225) hide show
  1. package/dist/consts/chainMetadata.d.ts +5 -0
  2. package/dist/consts/chainMetadata.d.ts.map +1 -1
  3. package/dist/consts/chainMetadata.js +133 -5
  4. package/dist/consts/chainMetadata.js.map +1 -1
  5. package/dist/consts/chains.d.ts +11 -6
  6. package/dist/consts/chains.d.ts.map +1 -1
  7. package/dist/consts/chains.js +15 -7
  8. package/dist/consts/chains.js.map +1 -1
  9. package/dist/consts/environments/index.d.ts +387 -61
  10. package/dist/consts/environments/index.d.ts.map +1 -1
  11. package/dist/consts/environments/index.js +7 -3
  12. package/dist/consts/environments/index.js.map +1 -1
  13. package/dist/consts/environments/mainnet.json +0 -17
  14. package/dist/consts/environments/testnet-sealevel.json +19 -0
  15. package/dist/consts/environments/testnet.json +181 -167
  16. package/dist/consts/multisigIsm.d.ts +2 -2
  17. package/dist/consts/multisigIsm.d.ts.map +1 -1
  18. package/dist/consts/multisigIsm.js +61 -58
  19. package/dist/consts/multisigIsm.js.map +1 -1
  20. package/dist/contracts/contracts.d.ts +2 -7
  21. package/dist/contracts/contracts.d.ts.map +1 -1
  22. package/dist/contracts/contracts.js +7 -31
  23. package/dist/contracts/contracts.js.map +1 -1
  24. package/dist/core/CoreDeployer.hardhat-test.js +4 -4
  25. package/dist/core/CoreDeployer.hardhat-test.js.map +1 -1
  26. package/dist/core/HyperlaneCore.d.ts +5 -1
  27. package/dist/core/HyperlaneCore.d.ts.map +1 -1
  28. package/dist/core/HyperlaneCore.js +13 -0
  29. package/dist/core/HyperlaneCore.js.map +1 -1
  30. package/dist/core/HyperlaneCoreChecker.d.ts.map +1 -1
  31. package/dist/core/HyperlaneCoreChecker.js +3 -3
  32. package/dist/core/HyperlaneCoreChecker.js.map +1 -1
  33. package/dist/core/HyperlaneCoreDeployer.d.ts +7 -2
  34. package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
  35. package/dist/core/HyperlaneCoreDeployer.js +47 -27
  36. package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
  37. package/dist/core/MultiProtocolCore.d.ts.map +1 -1
  38. package/dist/core/MultiProtocolCore.js +1 -0
  39. package/dist/core/MultiProtocolCore.js.map +1 -1
  40. package/dist/core/TestCoreApp.d.ts +0 -1
  41. package/dist/core/TestCoreApp.d.ts.map +1 -1
  42. package/dist/core/contracts.d.ts +3 -9
  43. package/dist/core/contracts.d.ts.map +1 -1
  44. package/dist/core/contracts.js +0 -1
  45. package/dist/core/contracts.js.map +1 -1
  46. package/dist/core/testHyperlaneDeploy.hardhat-test.js +3 -2
  47. package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
  48. package/dist/core/types.d.ts +4 -1
  49. package/dist/core/types.d.ts.map +1 -1
  50. package/dist/core/types.js.map +1 -1
  51. package/dist/deploy/HyperlaneAppChecker.d.ts +0 -1
  52. package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -1
  53. package/dist/deploy/HyperlaneAppChecker.js +5 -30
  54. package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
  55. package/dist/deploy/HyperlaneDeployer.d.ts +7 -5
  56. package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
  57. package/dist/deploy/HyperlaneDeployer.js +28 -25
  58. package/dist/deploy/HyperlaneDeployer.js.map +1 -1
  59. package/dist/deploy/HyperlaneProxyFactoryDeployer.d.ts +10 -0
  60. package/dist/deploy/HyperlaneProxyFactoryDeployer.d.ts.map +1 -0
  61. package/dist/deploy/HyperlaneProxyFactoryDeployer.js +30 -0
  62. package/dist/deploy/HyperlaneProxyFactoryDeployer.js.map +1 -0
  63. package/dist/deploy/contracts.d.ts +13 -0
  64. package/dist/deploy/contracts.d.ts.map +1 -0
  65. package/dist/deploy/contracts.js +20 -0
  66. package/dist/deploy/contracts.js.map +1 -0
  67. package/dist/gas/HyperlaneIgp.js +1 -1
  68. package/dist/gas/HyperlaneIgp.js.map +1 -1
  69. package/dist/gas/HyperlaneIgpChecker.d.ts +2 -2
  70. package/dist/gas/HyperlaneIgpChecker.d.ts.map +1 -1
  71. package/dist/gas/HyperlaneIgpChecker.js +10 -27
  72. package/dist/gas/HyperlaneIgpChecker.js.map +1 -1
  73. package/dist/gas/HyperlaneIgpDeployer.d.ts +4 -6
  74. package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -1
  75. package/dist/gas/HyperlaneIgpDeployer.js +12 -43
  76. package/dist/gas/HyperlaneIgpDeployer.js.map +1 -1
  77. package/dist/gas/contracts.d.ts +2 -4
  78. package/dist/gas/contracts.d.ts.map +1 -1
  79. package/dist/gas/contracts.js +1 -3
  80. package/dist/gas/contracts.js.map +1 -1
  81. package/dist/gas/types.d.ts +2 -6
  82. package/dist/gas/types.d.ts.map +1 -1
  83. package/dist/gas/types.js.map +1 -1
  84. package/dist/hook/HyperlaneHookDeployer.d.ts +28 -10
  85. package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
  86. package/dist/hook/HyperlaneHookDeployer.js +51 -70
  87. package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
  88. package/dist/hook/contracts.d.ts +6 -17
  89. package/dist/hook/contracts.d.ts.map +1 -1
  90. package/dist/hook/contracts.js +6 -13
  91. package/dist/hook/contracts.js.map +1 -1
  92. package/dist/hook/types.d.ts +24 -13
  93. package/dist/hook/types.d.ts.map +1 -1
  94. package/dist/hook/types.js +8 -6
  95. package/dist/hook/types.js.map +1 -1
  96. package/dist/index.d.ts +18 -12
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +37 -21
  99. package/dist/index.js.map +1 -1
  100. package/dist/ism/HyperlaneIsmFactory.d.ts +5 -4
  101. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  102. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +3 -3
  103. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
  104. package/dist/ism/HyperlaneIsmFactory.js +18 -59
  105. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  106. package/dist/ism/contracts.d.ts +4 -3
  107. package/dist/ism/contracts.d.ts.map +1 -1
  108. package/dist/ism/contracts.js +3 -2
  109. package/dist/ism/contracts.js.map +1 -1
  110. package/dist/ism/types.d.ts +6 -4
  111. package/dist/ism/types.d.ts.map +1 -1
  112. package/dist/ism/types.js.map +1 -1
  113. package/dist/metadata/ChainMetadataManager.d.ts +0 -10
  114. package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
  115. package/dist/metadata/ChainMetadataManager.js +2 -14
  116. package/dist/metadata/ChainMetadataManager.js.map +1 -1
  117. package/dist/metadata/agentConfig.d.ts +523 -1348
  118. package/dist/metadata/agentConfig.d.ts.map +1 -1
  119. package/dist/metadata/agentConfig.js +61 -94
  120. package/dist/metadata/agentConfig.js.map +1 -1
  121. package/dist/metadata/agentConfig.test.js +9 -9
  122. package/dist/metadata/agentConfig.test.js.map +1 -1
  123. package/dist/metadata/chainMetadataTypes.d.ts +1 -1
  124. package/dist/metadata/chainMetadataTypes.js +4 -4
  125. package/dist/metadata/chainMetadataTypes.js.map +1 -1
  126. package/dist/metadata/deploymentArtifacts.d.ts +5 -2
  127. package/dist/metadata/deploymentArtifacts.d.ts.map +1 -1
  128. package/dist/metadata/deploymentArtifacts.js +1 -0
  129. package/dist/metadata/deploymentArtifacts.js.map +1 -1
  130. package/dist/metadata/matchingList.d.ts +1 -1
  131. package/dist/metadata/matchingList.d.ts.map +1 -1
  132. package/dist/metadata/matchingList.js +1 -1
  133. package/dist/metadata/matchingList.js.map +1 -1
  134. package/dist/middleware/account/InterchainAccount.d.ts.map +1 -1
  135. package/dist/middleware/account/InterchainAccount.js +1 -4
  136. package/dist/middleware/account/InterchainAccount.js.map +1 -1
  137. package/dist/middleware/account/InterchainAccountDeployer.d.ts +2 -7
  138. package/dist/middleware/account/InterchainAccountDeployer.d.ts.map +1 -1
  139. package/dist/middleware/account/InterchainAccountDeployer.js +4 -9
  140. package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -1
  141. package/dist/middleware/account/accounts.hardhat-test.js +3 -5
  142. package/dist/middleware/account/accounts.hardhat-test.js.map +1 -1
  143. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts +2 -7
  144. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts.map +1 -1
  145. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js +7 -11
  146. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js.map +1 -1
  147. package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js +3 -7
  148. package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js.map +1 -1
  149. package/dist/middleware/query/InterchainQueryDeployer.d.ts +2 -7
  150. package/dist/middleware/query/InterchainQueryDeployer.d.ts.map +1 -1
  151. package/dist/middleware/query/InterchainQueryDeployer.js +3 -4
  152. package/dist/middleware/query/InterchainQueryDeployer.js.map +1 -1
  153. package/dist/middleware/query/queries.hardhat-test.js +4 -9
  154. package/dist/middleware/query/queries.hardhat-test.js.map +1 -1
  155. package/dist/providers/MultiProvider.d.ts +6 -1
  156. package/dist/providers/MultiProvider.d.ts.map +1 -1
  157. package/dist/providers/MultiProvider.js +11 -0
  158. package/dist/providers/MultiProvider.js.map +1 -1
  159. package/dist/router/GasRouterDeployer.d.ts.map +1 -1
  160. package/dist/router/GasRouterDeployer.js +1 -1
  161. package/dist/router/GasRouterDeployer.js.map +1 -1
  162. package/dist/router/HyperlaneRouterChecker.d.ts +2 -6
  163. package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -1
  164. package/dist/router/HyperlaneRouterChecker.js +12 -47
  165. package/dist/router/HyperlaneRouterChecker.js.map +1 -1
  166. package/dist/router/HyperlaneRouterDeployer.d.ts +1 -1
  167. package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -1
  168. package/dist/router/HyperlaneRouterDeployer.js +15 -18
  169. package/dist/router/HyperlaneRouterDeployer.js.map +1 -1
  170. package/dist/router/ProxiedRouterChecker.js +1 -1
  171. package/dist/router/ProxiedRouterChecker.js.map +1 -1
  172. package/dist/router/RouterApps.d.ts +1 -7
  173. package/dist/router/RouterApps.d.ts.map +1 -1
  174. package/dist/router/RouterApps.js +0 -17
  175. package/dist/router/RouterApps.js.map +1 -1
  176. package/dist/router/types.d.ts +14 -23
  177. package/dist/router/types.d.ts.map +1 -1
  178. package/dist/router/types.js +7 -11
  179. package/dist/router/types.js.map +1 -1
  180. package/dist/test/testUtils.d.ts +0 -2
  181. package/dist/test/testUtils.d.ts.map +1 -1
  182. package/dist/test/testUtils.js +15 -20
  183. package/dist/test/testUtils.js.map +1 -1
  184. package/dist/token/adapters/EvmTokenAdapter.d.ts +65 -0
  185. package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -0
  186. package/dist/token/adapters/EvmTokenAdapter.js +119 -0
  187. package/dist/token/adapters/EvmTokenAdapter.js.map +1 -0
  188. package/dist/token/adapters/ITokenAdapter.d.ts +30 -0
  189. package/dist/token/adapters/ITokenAdapter.d.ts.map +1 -0
  190. package/dist/token/adapters/ITokenAdapter.js +3 -0
  191. package/dist/token/adapters/ITokenAdapter.js.map +1 -0
  192. package/dist/token/adapters/SealevelTokenAdapter.d.ts +117 -0
  193. package/dist/token/adapters/SealevelTokenAdapter.d.ts.map +1 -0
  194. package/dist/token/adapters/SealevelTokenAdapter.js +423 -0
  195. package/dist/token/adapters/SealevelTokenAdapter.js.map +1 -0
  196. package/dist/token/adapters/serialization.d.ts +50 -0
  197. package/dist/token/adapters/serialization.d.ts.map +1 -0
  198. package/dist/token/adapters/serialization.js +117 -0
  199. package/dist/token/adapters/serialization.js.map +1 -0
  200. package/dist/token/config.d.ts +45 -0
  201. package/dist/token/config.d.ts.map +1 -0
  202. package/dist/token/config.js +26 -0
  203. package/dist/token/config.js.map +1 -0
  204. package/dist/token/contracts.d.ts +9 -0
  205. package/dist/token/contracts.d.ts.map +1 -0
  206. package/dist/token/contracts.js +3 -0
  207. package/dist/token/contracts.js.map +1 -0
  208. package/dist/token/deploy.d.ts +40 -0
  209. package/dist/token/deploy.d.ts.map +1 -0
  210. package/dist/token/deploy.js +243 -0
  211. package/dist/token/deploy.js.map +1 -0
  212. package/package.json +9 -7
  213. package/dist/consts/agentStartBlocks.d.ts +0 -3
  214. package/dist/consts/agentStartBlocks.d.ts.map +0 -1
  215. package/dist/consts/agentStartBlocks.js +0 -28
  216. package/dist/consts/agentStartBlocks.js.map +0 -1
  217. package/dist/consts/environments/test.json +0 -41
  218. package/dist/hook/config.d.ts +0 -4
  219. package/dist/hook/config.d.ts.map +0 -1
  220. package/dist/hook/config.js +0 -9
  221. package/dist/hook/config.js.map +0 -1
  222. package/dist/ism/HyperlaneIsmFactoryDeployer.d.ts +0 -11
  223. package/dist/ism/HyperlaneIsmFactoryDeployer.d.ts.map +0 -1
  224. package/dist/ism/HyperlaneIsmFactoryDeployer.js +0 -39
  225. package/dist/ism/HyperlaneIsmFactoryDeployer.js.map +0 -1
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HyperlaneRouterDeployer = void 0;
4
- const ethers_1 = require("ethers");
5
4
  const core_1 = require("@hyperlane-xyz/core");
6
5
  const utils_1 = require("@hyperlane-xyz/utils");
7
6
  const contracts_1 = require("../contracts/contracts");
@@ -15,43 +14,41 @@ class HyperlaneRouterDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
15
14
  for (const [local, config] of Object.entries(configMap)) {
16
15
  this.logger(`Checking config for ${local}...`);
17
16
  const signerOrProvider = this.multiProvider.getSignerOrProvider(local);
18
- const localIgp = core_1.IInterchainGasPaymaster__factory.connect(config.interchainGasPaymaster, signerOrProvider);
19
17
  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
- }
18
+ const localHook = core_1.IPostDispatchHook__factory.connect(config.hook ?? (await localMailbox.defaultHook()), signerOrProvider);
19
+ const deployer = await this.multiProvider.getSignerAddress(local);
28
20
  const remotes = Object.keys(configMap).filter((c) => c !== local);
29
21
  for (const remote of remotes) {
30
- this.logger(`Checking origin ${remote}...`);
31
- // Try to confirm that the IGP supports delivery to all remotes
22
+ const origin = this.multiProvider.getDomainId(local);
23
+ const destination = this.multiProvider.getDomainId(remote);
24
+ const message = (0, utils_1.formatMessage)(0, 0, origin, deployer, destination, deployer, '');
25
+ // Try to confirm that the hook supports delivery to all remotes
26
+ this.logger(`Checking ${local} => ${remote} hook...`);
32
27
  try {
33
- await localIgp.quoteGasPayment(this.multiProvider.getDomainId(remote), 1);
28
+ await localHook.quoteDispatch('', message);
34
29
  }
35
30
  catch (e) {
36
- throw new Error(`The specified or default IGP with address ${localIgp.address} on ` +
31
+ throw new Error(`The specified or default hook with address ${localHook.address} on ` +
37
32
  `${local} is not configured to deliver messages to ${remote}, ` +
38
33
  `did you mean to specify a different one?`);
39
34
  }
35
+ const localIsm = config.interchainSecurityModule ?? (await localMailbox.defaultIsm());
40
36
  // Try to confirm that the specified or default ISM can verify messages to all remotes
41
37
  const canVerify = await (0, HyperlaneIsmFactory_1.moduleCanCertainlyVerify)(localIsm, this.multiProvider, remote, local);
42
38
  if (!canVerify) {
43
- throw new Error(`The specified or default ISM with address ${localIsm} on ${local} ` +
39
+ const ismString = JSON.stringify(localIsm);
40
+ throw new Error(`The specified or default ISM ${ismString} on ${local} ` +
44
41
  `cannot verify messages from ${remote}, did you forget to ` +
45
42
  `specify an ISM, or mean to specify a different one?`);
46
43
  }
47
44
  }
48
45
  }
49
46
  }
50
- async initConnectionClients(contractsMap, configMap) {
47
+ async initMailboxClients(contractsMap, configMap) {
51
48
  for (const chain of Object.keys(contractsMap)) {
52
49
  const contracts = contractsMap[chain];
53
50
  const config = configMap[chain];
54
- await super.initConnectionClient(chain, this.router(contracts), config);
51
+ await super.initMailboxClient(chain, this.router(contracts), config);
55
52
  }
56
53
  }
57
54
  async enrollRemoteRouters(deployedContractsMap, _, foreignRouters = {}) {
@@ -102,7 +99,7 @@ class HyperlaneRouterDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
102
99
  const foreignDeployments = (0, utils_1.objFilter)((0, utils_1.objMap)(configMap, (_, config) => config.foreignDeployment), (_chainName, foreignDeployment) => foreignDeployment !== undefined);
103
100
  const deployedContractsMap = await super.deploy(configMapToDeploy);
104
101
  await this.enrollRemoteRouters(deployedContractsMap, configMap, foreignDeployments);
105
- await this.initConnectionClients(deployedContractsMap, configMap);
102
+ await this.initMailboxClients(deployedContractsMap, configMap);
106
103
  await this.transferOwnership(deployedContractsMap, configMap);
107
104
  this.logger(`Finished deploying router contracts for all chains.`);
108
105
  return deployedContractsMap;
@@ -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":"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"}
@@ -14,7 +14,7 @@ class ProxiedRouterChecker extends HyperlaneRouterChecker_1.HyperlaneRouterCheck
14
14
  return super.checkOwnership(chain, config.owner, ownableOverrides);
15
15
  }
16
16
  async checkChain(chain) {
17
- await super.checkHyperlaneConnectionClient(chain);
17
+ await super.checkMailboxClient(chain);
18
18
  await super.checkEnrolledRouters(chain);
19
19
  await this.checkProxiedContracts(chain);
20
20
  await this.checkOwnership(chain);
@@ -1 +1 @@
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
+ {"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,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACtC,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,18 +1,12 @@
1
- import debug from 'debug';
2
1
  import type { BigNumber } from 'ethers';
3
2
  import { GasRouter, Router } from '@hyperlane-xyz/core';
4
3
  import { Address } from '@hyperlane-xyz/utils';
5
4
  import { HyperlaneApp } from '../app/HyperlaneApp';
6
- import { HyperlaneContracts, HyperlaneContractsMap, HyperlaneFactories } from '../contracts/types';
7
- import { MultiProvider } from '../providers/MultiProvider';
5
+ import { HyperlaneContracts, HyperlaneFactories } from '../contracts/types';
8
6
  import { ChainMap, ChainName } from '../types';
9
7
  export { Router } from '@hyperlane-xyz/core';
10
8
  export declare abstract class RouterApp<Factories extends HyperlaneFactories> extends HyperlaneApp<Factories> {
11
- readonly foreignDeployments: ChainMap<Address>;
12
- constructor(contractsMap: HyperlaneContractsMap<Factories>, multiProvider: MultiProvider, logger?: debug.Debugger, foreignDeployments?: ChainMap<Address>);
13
9
  abstract router(contracts: HyperlaneContracts<Factories>): Router;
14
- routerAddress(chainName: string): Address;
15
- remoteChains(chainName: string): string[];
16
10
  getSecurityModules(): Promise<ChainMap<Address>>;
17
11
  getOwners(): Promise<ChainMap<Address>>;
18
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RouterApps.d.ts","sourceRoot":"","sources":["../../src/router/RouterApps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,OAAO,EAIR,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,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;IAK7B,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,OAAO,CAAC;gBAH9C,YAAY,EAAE,qBAAqB,CAAC,SAAS,CAAC,EAC9C,aAAa,EAAE,aAAa,EAC5B,MAAM,CAAC,EAAE,KAAK,CAAC,QAAQ,EACd,kBAAkB,GAAE,QAAQ,CAAC,OAAO,CAAM;IAKrD,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,MAAM;IAEjE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAUhC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAOlD,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"}
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"}
@@ -4,23 +4,6 @@ exports.GasRouterApp = exports.RouterApp = void 0;
4
4
  const utils_1 = require("@hyperlane-xyz/utils");
5
5
  const HyperlaneApp_1 = require("../app/HyperlaneApp");
6
6
  class RouterApp extends HyperlaneApp_1.HyperlaneApp {
7
- constructor(contractsMap, multiProvider, logger, foreignDeployments = {}) {
8
- super(contractsMap, multiProvider, logger);
9
- this.foreignDeployments = foreignDeployments;
10
- }
11
- routerAddress(chainName) {
12
- if (this.multiProvider.getChainMetadata(chainName).protocol ===
13
- utils_1.ProtocolType.Ethereum) {
14
- return this.router(this.contractsMap[chainName]).address;
15
- }
16
- return this.foreignDeployments[chainName];
17
- }
18
- remoteChains(chainName) {
19
- return [
20
- ...super.remoteChains(chainName),
21
- ...Object.keys(this.foreignDeployments),
22
- ].filter((chain) => chain !== chainName);
23
- }
24
7
  getSecurityModules() {
25
8
  return (0, utils_1.promiseObjAll)((0, utils_1.objMap)(this.chainMap, (_, contracts) => this.router(contracts).interchainSecurityModule()));
26
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RouterApps.js","sourceRoot":"","sources":["../../src/router/RouterApps.ts"],"names":[],"mappings":";;;AAIA,gDAK8B;AAE9B,sDAAmD;AAWnD,MAAsB,SAEpB,SAAQ,2BAAuB;IAC/B,YACE,YAA8C,EAC9C,aAA4B,EAC5B,MAAuB,EACd,qBAAwC,EAAE;QAEnD,KAAK,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QAFlC,uBAAkB,GAAlB,kBAAkB,CAAwB;IAGrD,CAAC;IAID,aAAa,CAAC,SAAiB;QAC7B,IACE,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,QAAQ;YACvD,oBAAY,CAAC,QAAQ,EACrB;YACA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;SAC1D;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAEQ,YAAY,CAAC,SAAiB;QACrC,OAAO;YACL,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC;YAChC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;SACxC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAA,qBAAa,EAClB,IAAA,cAAM,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CACrC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,wBAAwB,EAAE,CAClD,CACF,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,IAAA,qBAAa,EAClB,IAAA,cAAM,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,CACxE,CAAC;IACJ,CAAC;CACF;AA5CD,8BA4CC;AAED,MAAsB,YAGpB,SAAQ,SAAoB;IAG5B,KAAK,CAAC,eAAe,CACnB,MAAiB,EACjB,WAAsB;QAEtB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,eAAe,CACrD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAC5C,CAAC;IACJ,CAAC;CACF;AAdD,oCAcC"}
1
+ {"version":3,"file":"RouterApps.js","sourceRoot":"","sources":["../../src/router/RouterApps.ts"],"names":[],"mappings":";;;AAGA,gDAAsE;AAEtE,sDAAmD;AAMnD,MAAsB,SAEpB,SAAQ,2BAAuB;IAG/B,kBAAkB;QAChB,OAAO,IAAA,qBAAa,EAClB,IAAA,cAAM,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CACrC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,wBAAwB,EAAE,CAClD,CACF,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,IAAA,qBAAa,EAClB,IAAA,cAAM,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,CACxE,CAAC;IACJ,CAAC;CACF;AAlBD,8BAkBC;AAED,MAAsB,YAGpB,SAAQ,SAAoB;IAG5B,KAAK,CAAC,eAAe,CACnB,MAAiB,EACjB,WAAsB;QAEtB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,eAAe,CACrD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAC5C,CAAC;IACJ,CAAC;CACF;AAdD,oCAcC"}
@@ -1,4 +1,4 @@
1
- import { HyperlaneConnectionClient, ProxyAdmin__factory, Router, TimelockController__factory } from '@hyperlane-xyz/core';
1
+ import { MailboxClient, ProxyAdmin__factory, TimelockController__factory } from '@hyperlane-xyz/core';
2
2
  import type { Address } from '@hyperlane-xyz/utils';
3
3
  import { HyperlaneFactories } from '../contracts/types';
4
4
  import { UpgradeConfig } from '../deploy/proxy';
@@ -13,7 +13,7 @@ export type OwnableConfig = {
13
13
  export type ForeignDeploymentConfig = {
14
14
  foreignDeployment?: Address;
15
15
  };
16
- export type RouterConfig = ConnectionClientConfig & OwnableConfig & ForeignDeploymentConfig;
16
+ export type RouterConfig = MailboxClientConfig & OwnableConfig & ForeignDeploymentConfig;
17
17
  export type ProxiedRouterConfig = RouterConfig & Partial<UpgradeConfig>;
18
18
  export type GasConfig = {
19
19
  gas: number;
@@ -24,31 +24,22 @@ export type ProxiedFactories = HyperlaneFactories & {
24
24
  timelockController: TimelockController__factory;
25
25
  };
26
26
  export declare const proxiedFactories: ProxiedFactories;
27
- export type ConnectionClientConfig = {
27
+ type HookConfig = Address;
28
+ export type MailboxClientConfig = {
28
29
  mailbox: Address;
29
- interchainGasPaymaster: Address;
30
- interchainSecurityModule?: Address | IsmConfig;
30
+ hook?: HookConfig;
31
+ interchainSecurityModule?: IsmConfig;
31
32
  };
32
- export declare enum ConnectionClientViolationType {
33
- InterchainSecurityModule = "ConnectionClientIsm",
34
- Mailbox = "ConnectionClientMailbox",
35
- InterchainGasPaymaster = "ConnectionClientIgp"
33
+ export declare enum ClientViolationType {
34
+ InterchainSecurityModule = "ClientIsm",
35
+ Mailbox = "ClientMailbox",
36
+ Hook = "ClientHook"
36
37
  }
37
- export interface ConnectionClientViolation extends CheckerViolation {
38
- type: ConnectionClientViolationType;
39
- contract: HyperlaneConnectionClient;
40
- actual: string;
41
- expected: string;
42
- description?: string;
43
- }
44
- export declare enum RouterViolationType {
45
- EnrolledRouter = "EnrolledRouter"
46
- }
47
- export interface RouterViolation extends CheckerViolation {
48
- type: RouterViolationType.EnrolledRouter;
49
- remoteChain: string;
50
- contract: Router;
38
+ export interface ClientViolation extends CheckerViolation {
39
+ type: ClientViolationType;
40
+ contract: MailboxClient;
51
41
  actual: string;
52
42
  expected: string;
53
43
  }
44
+ export {};
54
45
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,MAAM,EACN,2BAA2B,EAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,sBAAsB,GAC/C,aAAa,GACb,uBAAuB,CAAC;AAE1B,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAExE,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,SAAS,CAAC;AAEvD,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG;IAClD,UAAU,EAAE,mBAAmB,CAAC;IAChC,kBAAkB,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,gBAG9B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,sBAAsB,EAAE,OAAO,CAAC;IAChC,wBAAwB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChD,CAAC;AAEF,oBAAY,6BAA6B;IACvC,wBAAwB,wBAAwB;IAChD,OAAO,4BAA4B;IACnC,sBAAsB,wBAAwB;CAC/C;AAED,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IACjE,IAAI,EAAE,6BAA6B,CAAC;IACpC,QAAQ,EAAE,yBAAyB,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,oBAAY,mBAAmB;IAC7B,cAAc,mBAAmB;CAClC;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,IAAI,EAAE,mBAAmB,CAAC,cAAc,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAC5C,aAAa,GACb,uBAAuB,CAAC;AAE1B,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAExE,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,SAAS,CAAC;AAEvD,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG;IAClD,UAAU,EAAE,mBAAmB,CAAC;IAChC,kBAAkB,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,gBAG9B,CAAC;AAGF,KAAK,UAAU,GAAG,OAAO,CAAC;AAE1B,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,wBAAwB,CAAC,EAAE,SAAS,CAAC;CACtC,CAAC;AAEF,oBAAY,mBAAmB;IAC7B,wBAAwB,cAAc;IACtC,OAAO,kBAAkB;IACzB,IAAI,eAAe;CACpB;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -1,19 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RouterViolationType = exports.ConnectionClientViolationType = exports.proxiedFactories = void 0;
3
+ exports.ClientViolationType = exports.proxiedFactories = void 0;
4
4
  const core_1 = require("@hyperlane-xyz/core");
5
5
  exports.proxiedFactories = {
6
6
  proxyAdmin: new core_1.ProxyAdmin__factory(),
7
7
  timelockController: new core_1.TimelockController__factory(),
8
8
  };
9
- var ConnectionClientViolationType;
10
- (function (ConnectionClientViolationType) {
11
- ConnectionClientViolationType["InterchainSecurityModule"] = "ConnectionClientIsm";
12
- ConnectionClientViolationType["Mailbox"] = "ConnectionClientMailbox";
13
- ConnectionClientViolationType["InterchainGasPaymaster"] = "ConnectionClientIgp";
14
- })(ConnectionClientViolationType || (exports.ConnectionClientViolationType = ConnectionClientViolationType = {}));
15
- var RouterViolationType;
16
- (function (RouterViolationType) {
17
- RouterViolationType["EnrolledRouter"] = "EnrolledRouter";
18
- })(RouterViolationType || (exports.RouterViolationType = RouterViolationType = {}));
9
+ var ClientViolationType;
10
+ (function (ClientViolationType) {
11
+ ClientViolationType["InterchainSecurityModule"] = "ClientIsm";
12
+ ClientViolationType["Mailbox"] = "ClientMailbox";
13
+ ClientViolationType["Hook"] = "ClientHook";
14
+ })(ClientViolationType || (exports.ClientViolationType = ClientViolationType = {}));
19
15
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":";;;AAAA,8CAK6B;AAqChB,QAAA,gBAAgB,GAAqB;IAChD,UAAU,EAAE,IAAI,0BAAmB,EAAE;IACrC,kBAAkB,EAAE,IAAI,kCAA2B,EAAE;CACtD,CAAC;AAQF,IAAY,6BAIX;AAJD,WAAY,6BAA6B;IACvC,iFAAgD,CAAA;IAChD,oEAAmC,CAAA;IACnC,+EAA8C,CAAA;AAChD,CAAC,EAJW,6BAA6B,6CAA7B,6BAA6B,QAIxC;AAUD,IAAY,mBAEX;AAFD,WAAY,mBAAmB;IAC7B,wDAAiC,CAAA;AACnC,CAAC,EAFW,mBAAmB,mCAAnB,mBAAmB,QAE9B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":";;;AAAA,8CAI6B;AAqChB,QAAA,gBAAgB,GAAqB;IAChD,UAAU,EAAE,IAAI,0BAAmB,EAAE;IACrC,kBAAkB,EAAE,IAAI,kCAA2B,EAAE;CACtD,CAAC;AAWF,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,6DAAsC,CAAA;IACtC,gDAAyB,CAAA;IACzB,0CAAmB,CAAA;AACrB,CAAC,EAJW,mBAAmB,mCAAnB,mBAAmB,QAI9B"}
@@ -4,13 +4,11 @@ import { CoreFactories } from '../core/contracts';
4
4
  import { CoreConfig } from '../core/types';
5
5
  import { IgpFactories } from '../gas/contracts';
6
6
  import { CoinGeckoInterface, CoinGeckoResponse, CoinGeckoSimpleInterface, CoinGeckoSimplePriceParams } from '../gas/token-prices';
7
- import { MultiProvider } from '../providers/MultiProvider';
8
7
  import { RouterConfig } from '../router/types';
9
8
  import { ChainMap, ChainName } from '../types';
10
9
  export declare function randomInt(max: number, min?: number): number;
11
10
  export declare function randomAddress(): Address;
12
11
  export declare function createRouterConfigMap(owner: Address, coreContracts: HyperlaneContractsMap<CoreFactories>, igpContracts: HyperlaneContractsMap<IgpFactories>): ChainMap<RouterConfig>;
13
- export declare function deployTestIgpsAndGetRouterConfig(multiProvider: MultiProvider, owner: Address, coreContracts: HyperlaneContractsMap<CoreFactories>): Promise<ChainMap<RouterConfig>>;
14
12
  export declare function testCoreConfig(chains: ChainName[]): ChainMap<CoreConfig>;
15
13
  export declare class MockCoinGecko implements CoinGeckoInterface {
16
14
  private tokenPrices;
@@ -1 +1 @@
1
- {"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../src/test/testUtils.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAU,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/C,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,MAAM,CAEtD;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,qBAAqB,CAAC,aAAa,CAAC,EACnD,YAAY,EAAE,qBAAqB,CAAC,YAAY,CAAC,GAChD,QAAQ,CAAC,YAAY,CAAC,CASxB;AAED,wBAAsB,gCAAgC,CACpD,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,qBAAqB,CAAC,aAAa,CAAC,GAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAejC;AAKD,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,CAqCxE;AAGD,qBAAa,aAAc,YAAW,kBAAkB;IAEtD,OAAO,CAAC,WAAW,CAAyB;IAE5C,OAAO,CAAC,IAAI,CAA0B;;IAOtC,KAAK,CAAC,MAAM,EAAE,0BAA0B,GAAG,iBAAiB;IAkB5D,IAAI,MAAM,IAAI,wBAAwB,CAErC;IAED,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKpD,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;CAI/C"}
1
+ {"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../src/test/testUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAU,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/C,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,MAAM,CAEtD;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,qBAAqB,CAAC,aAAa,CAAC,EACnD,YAAY,EAAE,qBAAqB,CAAC,YAAY,CAAC,GAChD,QAAQ,CAAC,YAAY,CAAC,CASxB;AAKD,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,CA+CxE;AAGD,qBAAa,aAAc,YAAW,kBAAkB;IAEtD,OAAO,CAAC,WAAW,CAAyB;IAE5C,OAAO,CAAC,IAAI,CAA0B;;IAOtC,KAAK,CAAC,MAAM,EAAE,0BAA0B,GAAG,iBAAiB;IAkB5D,IAAI,MAAM,IAAI,wBAAwB,CAErC;IAED,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKpD,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;CAI/C"}
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MockCoinGecko = exports.testCoreConfig = exports.deployTestIgpsAndGetRouterConfig = exports.createRouterConfigMap = exports.randomAddress = exports.randomInt = void 0;
3
+ exports.MockCoinGecko = exports.testCoreConfig = exports.createRouterConfigMap = exports.randomAddress = exports.randomInt = void 0;
4
4
  const ethers_1 = require("ethers");
5
- const core_1 = require("@hyperlane-xyz/core");
6
5
  const utils_1 = require("@hyperlane-xyz/utils");
7
6
  const chainMetadata_1 = require("../consts/chainMetadata");
8
- const types_1 = require("../ism/types");
7
+ const types_1 = require("../hook/types");
8
+ const types_2 = require("../ism/types");
9
9
  function randomInt(max, min = 0) {
10
10
  return Math.floor(Math.random() * (max - min)) + min;
11
11
  }
@@ -24,26 +24,11 @@ function createRouterConfigMap(owner, coreContracts, igpContracts) {
24
24
  });
25
25
  }
26
26
  exports.createRouterConfigMap = createRouterConfigMap;
27
- async function deployTestIgpsAndGetRouterConfig(multiProvider, owner, coreContracts) {
28
- const igps = {};
29
- for (const chain of multiProvider.getKnownChainNames()) {
30
- const factory = new core_1.TestInterchainGasPaymaster__factory(multiProvider.getSigner(chain));
31
- igps[chain] = await factory.deploy(owner);
32
- }
33
- return (0, utils_1.objMap)(coreContracts, (chain, contracts) => {
34
- return {
35
- owner,
36
- mailbox: contracts.mailbox.address,
37
- interchainGasPaymaster: igps[chain].address,
38
- };
39
- });
40
- }
41
- exports.deployTestIgpsAndGetRouterConfig = deployTestIgpsAndGetRouterConfig;
42
27
  const nonZeroAddress = ethers_1.ethers.constants.AddressZero.replace('00', '01');
43
28
  // dummy config as TestInbox and TestOutbox do not use deployed ISM
44
29
  function testCoreConfig(chains) {
45
30
  const multisigIsm = {
46
- type: types_1.ModuleType.MERKLE_ROOT_MULTISIG,
31
+ type: types_2.ModuleType.MERKLE_ROOT_MULTISIG,
47
32
  validators: [nonZeroAddress],
48
33
  threshold: 1,
49
34
  };
@@ -52,12 +37,22 @@ function testCoreConfig(chains) {
52
37
  {
53
38
  owner: nonZeroAddress,
54
39
  defaultIsm: {
55
- type: types_1.ModuleType.ROUTING,
40
+ type: types_2.ModuleType.ROUTING,
56
41
  owner: nonZeroAddress,
57
42
  domains: Object.fromEntries(chains
58
43
  .filter((c) => c !== local)
59
44
  .map((remote) => [remote, multisigIsm])),
60
45
  },
46
+ defaultHook: {
47
+ type: types_1.HookType.MERKLE_TREE,
48
+ },
49
+ requiredHook: {
50
+ type: types_1.HookType.PROTOCOL_FEE,
51
+ maxProtocolFee: ethers_1.ethers.utils.parseUnits('1', 'gwei'),
52
+ protocolFee: ethers_1.BigNumber.from(1),
53
+ beneficiary: nonZeroAddress,
54
+ owner: nonZeroAddress,
55
+ },
61
56
  },
62
57
  ]));
63
58
  // test partial timelock config
@@ -1 +1 @@
1
- {"version":3,"file":"testUtils.js","sourceRoot":"","sources":["../../src/test/testUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testUtils.js","sourceRoot":"","sources":["../../src/test/testUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /// <reference types="node" />
2
+ import { PopulatedTransaction } from 'ethers';
3
+ import { ERC20, HypERC20 } from '@hyperlane-xyz/core';
4
+ import { Address, Domain } from '@hyperlane-xyz/utils';
5
+ import { BaseEvmAdapter } from '../../app/MultiProtocolApp';
6
+ import { MultiProtocolProvider } from '../../providers/MultiProtocolProvider';
7
+ import { ChainName } from '../../types';
8
+ import { MinimalTokenMetadata } from '../config';
9
+ import { IHypTokenAdapter, ITokenAdapter, TransferParams, TransferRemoteParams } from './ITokenAdapter';
10
+ export declare class EvmNativeTokenAdapter extends BaseEvmAdapter implements ITokenAdapter {
11
+ getBalance(address: Address): Promise<string>;
12
+ getMetadata(): Promise<MinimalTokenMetadata>;
13
+ populateApproveTx(_params: TransferParams): Promise<PopulatedTransaction>;
14
+ populateTransferTx({ weiAmountOrId, recipient, }: TransferParams): Promise<PopulatedTransaction>;
15
+ }
16
+ export declare class EvmTokenAdapter<T extends ERC20 = ERC20> extends EvmNativeTokenAdapter implements ITokenAdapter {
17
+ readonly chainName: ChainName;
18
+ readonly multiProvider: MultiProtocolProvider;
19
+ readonly addresses: {
20
+ token: Address;
21
+ };
22
+ readonly contractFactory: any;
23
+ readonly contract: T;
24
+ constructor(chainName: ChainName, multiProvider: MultiProtocolProvider, addresses: {
25
+ token: Address;
26
+ }, contractFactory?: any);
27
+ getBalance(address: Address): Promise<string>;
28
+ getMetadata(isNft?: boolean): Promise<MinimalTokenMetadata>;
29
+ populateApproveTx({ weiAmountOrId, recipient, }: TransferParams): Promise<PopulatedTransaction>;
30
+ populateTransferTx({ weiAmountOrId, recipient, }: TransferParams): Promise<PopulatedTransaction>;
31
+ }
32
+ export declare class EvmHypSyntheticAdapter<T extends HypERC20 = HypERC20> extends EvmTokenAdapter<T> implements IHypTokenAdapter {
33
+ readonly chainName: ChainName;
34
+ readonly multiProvider: MultiProtocolProvider;
35
+ readonly addresses: {
36
+ token: Address;
37
+ };
38
+ readonly contractFactory: any;
39
+ constructor(chainName: ChainName, multiProvider: MultiProtocolProvider, addresses: {
40
+ token: Address;
41
+ }, contractFactory?: any);
42
+ getDomains(): Promise<Domain[]>;
43
+ getRouterAddress(domain: Domain): Promise<Buffer>;
44
+ getAllRouters(): Promise<Array<{
45
+ domain: Domain;
46
+ address: Buffer;
47
+ }>>;
48
+ quoteGasPayment(destination: Domain): Promise<string>;
49
+ populateTransferRemoteTx({ weiAmountOrId, destination, recipient, txValue, }: TransferRemoteParams): Promise<PopulatedTransaction>;
50
+ }
51
+ export declare class EvmHypCollateralAdapter extends EvmHypSyntheticAdapter implements IHypTokenAdapter {
52
+ readonly chainName: ChainName;
53
+ readonly multiProvider: MultiProtocolProvider;
54
+ readonly addresses: {
55
+ token: Address;
56
+ };
57
+ readonly contractFactory: any;
58
+ constructor(chainName: ChainName, multiProvider: MultiProtocolProvider, addresses: {
59
+ token: Address;
60
+ }, contractFactory?: any);
61
+ getMetadata(): Promise<MinimalTokenMetadata>;
62
+ populateApproveTx(_params: TransferParams): Promise<PopulatedTransaction>;
63
+ populateTransferTx(_params: TransferParams): Promise<PopulatedTransaction>;
64
+ }
65
+ //# sourceMappingURL=EvmTokenAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvmTokenAdapter.d.ts","sourceRoot":"","sources":["../../../src/token/adapters/EvmTokenAdapter.ts"],"names":[],"mappings":";AAAA,OAAO,EAAa,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAEzD,OAAO,EACL,KAAK,EAEL,QAAQ,EAGT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,OAAO,EACP,MAAM,EAKP,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAGzB,qBAAa,qBACX,SAAQ,cACR,YAAW,aAAa;IAElB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAK7C,WAAW,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAK5C,iBAAiB,CACrB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,oBAAoB,CAAC;IAI1B,kBAAkB,CAAC,EACvB,aAAa,EACb,SAAS,GACV,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAIlD;AAGD,qBAAa,eAAe,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAClD,SAAQ,qBACR,YAAW,aAAa;aAKN,SAAS,EAAE,SAAS;aACpB,aAAa,EAAE,qBAAqB;aACpC,SAAS,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE;aAC7B,eAAe,EAAE,GAAG;IANtC,SAAgB,QAAQ,EAAE,CAAC,CAAC;gBAGV,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,qBAAqB,EACpC,SAAS,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,EAC7B,eAAe,GAAE,GAAoB;IASxC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAK7C,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC;IASjE,iBAAiB,CAAC,EACzB,aAAa,EACb,SAAS,GACV,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIxC,kBAAkB,CAAC,EAC1B,aAAa,EACb,SAAS,GACV,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAGlD;AAGD,qBAAa,sBAAsB,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAC/D,SAAQ,eAAe,CAAC,CAAC,CACzB,YAAW,gBAAgB;aAGT,SAAS,EAAE,SAAS;aACpB,aAAa,EAAE,qBAAqB;aACpC,SAAS,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE;aAC7B,eAAe,EAAE,GAAG;gBAHpB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,qBAAqB,EACpC,SAAS,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,EAC7B,eAAe,GAAE,GAAuB;IAK1D,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIzB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAcjD,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAQpE,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK3D,wBAAwB,CAAC,EACvB,aAAa,EACb,WAAW,EACX,SAAS,EACT,OAAO,GACR,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAYxD;AAGD,qBAAa,uBACX,SAAQ,sBACR,YAAW,gBAAgB;aAGT,SAAS,EAAE,SAAS;aACpB,aAAa,EAAE,qBAAqB;aACpC,SAAS,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE;aAC7B,eAAe,EAAE,GAAG;gBAHpB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,qBAAqB,EACpC,SAAS,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,EAC7B,eAAe,GAAE,GAAiC;IAK3D,WAAW,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAO5C,iBAAiB,CACxB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,oBAAoB,CAAC;IAMvB,kBAAkB,CACzB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,oBAAoB,CAAC;CAKjC"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EvmHypCollateralAdapter = exports.EvmHypSyntheticAdapter = exports.EvmTokenAdapter = exports.EvmNativeTokenAdapter = void 0;
4
+ const ethers_1 = require("ethers");
5
+ const core_1 = require("@hyperlane-xyz/core");
6
+ const utils_1 = require("@hyperlane-xyz/utils");
7
+ const MultiProtocolApp_1 = require("../../app/MultiProtocolApp");
8
+ // Interacts with native currencies
9
+ class EvmNativeTokenAdapter extends MultiProtocolApp_1.BaseEvmAdapter {
10
+ async getBalance(address) {
11
+ const balance = await this.getProvider().getBalance(address);
12
+ return balance.toString();
13
+ }
14
+ async getMetadata() {
15
+ // TODO get metadata from chainMetadata config
16
+ throw new Error('Metadata not available to native tokens');
17
+ }
18
+ async populateApproveTx(_params) {
19
+ throw new Error('Approve not required for native tokens');
20
+ }
21
+ async populateTransferTx({ weiAmountOrId, recipient, }) {
22
+ const value = ethers_1.BigNumber.from(weiAmountOrId);
23
+ return { value, to: recipient };
24
+ }
25
+ }
26
+ exports.EvmNativeTokenAdapter = EvmNativeTokenAdapter;
27
+ // Interacts with ERC20/721 contracts
28
+ class EvmTokenAdapter extends EvmNativeTokenAdapter {
29
+ constructor(chainName, multiProvider, addresses, contractFactory = core_1.ERC20__factory) {
30
+ super(chainName, multiProvider, addresses);
31
+ this.chainName = chainName;
32
+ this.multiProvider = multiProvider;
33
+ this.addresses = addresses;
34
+ this.contractFactory = contractFactory;
35
+ this.contract = contractFactory.connect(addresses.token, this.getProvider());
36
+ }
37
+ async getBalance(address) {
38
+ const balance = await this.contract.balanceOf(address);
39
+ return balance.toString();
40
+ }
41
+ async getMetadata(isNft) {
42
+ const [decimals, symbol, name] = await Promise.all([
43
+ isNft ? 0 : this.contract.decimals(),
44
+ this.contract.symbol(),
45
+ this.contract.name(),
46
+ ]);
47
+ return { decimals, symbol, name };
48
+ }
49
+ populateApproveTx({ weiAmountOrId, recipient, }) {
50
+ return this.contract.populateTransaction.approve(recipient, weiAmountOrId);
51
+ }
52
+ populateTransferTx({ weiAmountOrId, recipient, }) {
53
+ return this.contract.populateTransaction.transfer(recipient, weiAmountOrId);
54
+ }
55
+ }
56
+ exports.EvmTokenAdapter = EvmTokenAdapter;
57
+ // Interacts with Hyp Synthetic token contracts (aka 'HypTokens')
58
+ class EvmHypSyntheticAdapter extends EvmTokenAdapter {
59
+ constructor(chainName, multiProvider, addresses, contractFactory = core_1.HypERC20__factory) {
60
+ super(chainName, multiProvider, addresses, contractFactory);
61
+ this.chainName = chainName;
62
+ this.multiProvider = multiProvider;
63
+ this.addresses = addresses;
64
+ this.contractFactory = contractFactory;
65
+ }
66
+ getDomains() {
67
+ return this.contract.domains();
68
+ }
69
+ async getRouterAddress(domain) {
70
+ const routerAddressesAsBytes32 = await this.contract.routers(domain);
71
+ // Evm addresses will be padded with 12 bytes
72
+ if (routerAddressesAsBytes32.startsWith('0x000000000000000000000000')) {
73
+ return Buffer.from((0, utils_1.strip0x)((0, utils_1.bytes32ToAddress)(routerAddressesAsBytes32)), 'hex');
74
+ // Otherwise leave the address unchanged
75
+ }
76
+ else {
77
+ return Buffer.from((0, utils_1.strip0x)(routerAddressesAsBytes32), 'hex');
78
+ }
79
+ }
80
+ async getAllRouters() {
81
+ const domains = await this.getDomains();
82
+ const routers = await Promise.all(domains.map((d) => this.getRouterAddress(d)));
83
+ return domains.map((d, i) => ({ domain: d, address: routers[i] }));
84
+ }
85
+ async quoteGasPayment(destination) {
86
+ const gasPayment = await this.contract.quoteGasPayment(destination);
87
+ return gasPayment.toString();
88
+ }
89
+ populateTransferRemoteTx({ weiAmountOrId, destination, recipient, txValue, }) {
90
+ const recipBytes32 = (0, utils_1.addressToBytes32)((0, utils_1.addressToByteHexString)(recipient));
91
+ return this.contract.populateTransaction.transferRemote(destination, recipBytes32, weiAmountOrId, {
92
+ // Note, typically the value is the gas payment as quoted by IGP
93
+ value: txValue,
94
+ });
95
+ }
96
+ }
97
+ exports.EvmHypSyntheticAdapter = EvmHypSyntheticAdapter;
98
+ // Interacts with HypCollateral and HypNative contracts
99
+ class EvmHypCollateralAdapter extends EvmHypSyntheticAdapter {
100
+ constructor(chainName, multiProvider, addresses, contractFactory = core_1.HypERC20Collateral__factory) {
101
+ super(chainName, multiProvider, addresses, contractFactory);
102
+ this.chainName = chainName;
103
+ this.multiProvider = multiProvider;
104
+ this.addresses = addresses;
105
+ this.contractFactory = contractFactory;
106
+ }
107
+ getMetadata() {
108
+ // TODO pass through metadata from wrapped token or chainMetadata config
109
+ throw new Error('Metadata not available for HypCollateral/HypNative contract.');
110
+ }
111
+ populateApproveTx(_params) {
112
+ throw new Error('Approve not applicable to HypCollateral/HypNative contract.');
113
+ }
114
+ populateTransferTx(_params) {
115
+ throw new Error('Local transfer not supported for HypCollateral/HypNative contract.');
116
+ }
117
+ }
118
+ exports.EvmHypCollateralAdapter = EvmHypCollateralAdapter;
119
+ //# sourceMappingURL=EvmTokenAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvmTokenAdapter.js","sourceRoot":"","sources":["../../../src/token/adapters/EvmTokenAdapter.ts"],"names":[],"mappings":"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"}