@hyperlane-xyz/core 0.5.5 → 1.0.0-beta1

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 (723) hide show
  1. package/contracts/{AbacusConnectionClient.sol → HyperlaneConnectionClient.sol} +71 -58
  2. package/contracts/InterchainGasPaymaster.sol +20 -13
  3. package/contracts/Mailbox.sol +244 -44
  4. package/contracts/PausableReentrancyGuard.sol +69 -0
  5. package/contracts/Router.sol +49 -52
  6. package/contracts/isms/MultisigIsm.sol +373 -0
  7. package/contracts/libs/Message.sol +107 -66
  8. package/contracts/libs/MultisigIsmMetadata.sol +185 -0
  9. package/contracts/middleware/InterchainAccountRouter.sol +13 -12
  10. package/contracts/middleware/InterchainQueryRouter.sol +17 -16
  11. package/contracts/middleware/liquidity-layer/LiquidityLayerRouter.sol +21 -14
  12. package/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.sol +0 -4
  13. package/contracts/mock/MockHyperlaneEnvironment.sol +24 -48
  14. package/contracts/mock/MockInterchainAccountRouter.sol +4 -4
  15. package/contracts/mock/MockMailbox.sol +79 -0
  16. package/contracts/test/TestHyperlaneConnectionClient.sol +14 -0
  17. package/contracts/test/TestIsm.sol +20 -0
  18. package/contracts/test/TestLiquidityLayerMessageRecipient.sol +1 -1
  19. package/contracts/test/TestMailbox.sol +34 -4
  20. package/contracts/test/TestMerkle.sol +9 -4
  21. package/contracts/test/TestMessage.sol +24 -12
  22. package/contracts/test/TestMultisigIsm.sol +23 -0
  23. package/contracts/test/TestRouter.sol +14 -6
  24. package/contracts/test/TestSendReceiver.sol +22 -16
  25. package/contracts/test/TestTokenRecipient.sol +1 -1
  26. package/contracts/upgrade/ProxyAdmin.sol +6 -0
  27. package/contracts/upgrade/TransparentUpgradeableProxy.sol +6 -0
  28. package/dist/@openzeppelin/contracts/index.d.ts +4 -0
  29. package/dist/@openzeppelin/contracts/index.d.ts.map +1 -1
  30. package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.d.ts +43 -0
  31. package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.d.ts.map +1 -0
  32. package/dist/{contracts/MerkleTreeManager.js → @openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.js} +1 -1
  33. package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.js.map +1 -0
  34. package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.d.ts +2 -0
  35. package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.d.ts.map +1 -0
  36. package/dist/@openzeppelin/{contracts-upgradeable/security → contracts/interfaces/draft-IERC1822.sol}/index.js +0 -0
  37. package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.js.map +1 -0
  38. package/dist/@openzeppelin/contracts/interfaces/index.d.ts +3 -0
  39. package/dist/@openzeppelin/contracts/interfaces/index.d.ts.map +1 -0
  40. package/dist/{contracts/middleware/token-bridge → @openzeppelin/contracts/interfaces}/index.js +0 -0
  41. package/dist/@openzeppelin/contracts/interfaces/index.js.map +1 -0
  42. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.d.ts +64 -0
  43. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.d.ts.map +1 -0
  44. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.js +4 -0
  45. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.js.map +1 -0
  46. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.d.ts +64 -0
  47. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.d.ts.map +1 -0
  48. package/dist/{contracts/middleware/liquidity-layer/adapters/PortalAdapter.js → @openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.js} +1 -1
  49. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.js.map +1 -0
  50. package/dist/@openzeppelin/contracts/proxy/ERC1967/index.d.ts +3 -0
  51. package/dist/@openzeppelin/contracts/proxy/ERC1967/index.d.ts.map +1 -0
  52. package/dist/{contracts/middleware/liquidity-layer/interfaces/portal → @openzeppelin/contracts/proxy/ERC1967}/index.js +0 -0
  53. package/dist/@openzeppelin/contracts/proxy/ERC1967/index.js.map +1 -0
  54. package/dist/{contracts/upgrade/UpgradeBeaconProxy.d.ts → @openzeppelin/contracts/proxy/Proxy.d.ts} +5 -5
  55. package/dist/@openzeppelin/contracts/proxy/Proxy.d.ts.map +1 -0
  56. package/dist/{contracts/Inbox.js → @openzeppelin/contracts/proxy/Proxy.js} +1 -1
  57. package/dist/@openzeppelin/contracts/proxy/Proxy.js.map +1 -0
  58. package/dist/@openzeppelin/contracts/proxy/beacon/IBeacon.d.ts +43 -0
  59. package/dist/@openzeppelin/contracts/proxy/beacon/IBeacon.d.ts.map +1 -0
  60. package/dist/{contracts/Outbox.js → @openzeppelin/contracts/proxy/beacon/IBeacon.js} +1 -1
  61. package/dist/@openzeppelin/contracts/proxy/beacon/IBeacon.js.map +1 -0
  62. package/dist/@openzeppelin/contracts/proxy/beacon/index.d.ts +2 -0
  63. package/dist/@openzeppelin/contracts/proxy/beacon/index.d.ts.map +1 -0
  64. package/dist/{contracts/middleware/token-bridge/adapters → @openzeppelin/contracts/proxy/beacon}/index.js +0 -0
  65. package/dist/@openzeppelin/contracts/proxy/beacon/index.js.map +1 -0
  66. package/dist/@openzeppelin/contracts/proxy/index.d.ts +8 -0
  67. package/dist/@openzeppelin/contracts/proxy/index.d.ts.map +1 -0
  68. package/dist/{contracts/middleware/token-bridge/interfaces → @openzeppelin/contracts/proxy}/index.js +0 -0
  69. package/dist/@openzeppelin/contracts/proxy/index.js.map +1 -0
  70. package/dist/{contracts/upgrade/UpgradeBeaconController.d.ts → @openzeppelin/contracts/proxy/transparent/ProxyAdmin.d.ts} +60 -25
  71. package/dist/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.d.ts.map +1 -0
  72. package/dist/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.js +4 -0
  73. package/dist/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.js.map +1 -0
  74. package/dist/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.d.ts +150 -0
  75. package/dist/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.d.ts.map +1 -0
  76. package/dist/@openzeppelin/{contracts-upgradeable/security/ReentrancyGuardUpgradeable.js → contracts/proxy/transparent/TransparentUpgradeableProxy.js} +1 -1
  77. package/dist/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.js.map +1 -0
  78. package/dist/@openzeppelin/contracts/proxy/transparent/index.d.ts +3 -0
  79. package/dist/@openzeppelin/contracts/proxy/transparent/index.d.ts.map +1 -0
  80. package/dist/{contracts/middleware/token-bridge/interfaces/circle → @openzeppelin/contracts/proxy/transparent}/index.js +0 -0
  81. package/dist/@openzeppelin/contracts/proxy/transparent/index.js.map +1 -0
  82. package/dist/@openzeppelin/contracts-upgradeable/index.d.ts +0 -2
  83. package/dist/@openzeppelin/contracts-upgradeable/index.d.ts.map +1 -1
  84. package/dist/contracts/InterchainGasPaymaster.d.ts +15 -15
  85. package/dist/contracts/InterchainGasPaymaster.d.ts.map +1 -1
  86. package/dist/contracts/Mailbox.d.ts +237 -27
  87. package/dist/contracts/Mailbox.d.ts.map +1 -1
  88. package/dist/{@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.d.ts → contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable.d.ts} +5 -5
  89. package/dist/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable.d.ts.map +1 -0
  90. package/dist/contracts/{AbacusConnectionClient.js → PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable.js} +1 -1
  91. package/dist/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable.js.map +1 -0
  92. package/dist/contracts/PausableReentrancyGuard.sol/index.d.ts +2 -0
  93. package/dist/contracts/PausableReentrancyGuard.sol/index.d.ts.map +1 -0
  94. package/dist/contracts/{validator-manager → PausableReentrancyGuard.sol}/index.js +0 -0
  95. package/dist/contracts/PausableReentrancyGuard.sol/index.js.map +1 -0
  96. package/dist/contracts/Router.d.ts +81 -32
  97. package/dist/contracts/Router.d.ts.map +1 -1
  98. package/dist/contracts/index.d.ts +2 -7
  99. package/dist/contracts/index.d.ts.map +1 -1
  100. package/dist/contracts/isms/MultisigIsm.d.ts +63 -24
  101. package/dist/contracts/isms/MultisigIsm.d.ts.map +1 -1
  102. package/dist/contracts/middleware/InterchainAccountRouter.d.ts +88 -39
  103. package/dist/contracts/middleware/InterchainAccountRouter.d.ts.map +1 -1
  104. package/dist/contracts/middleware/InterchainQueryRouter.d.ts +89 -40
  105. package/dist/contracts/middleware/InterchainQueryRouter.d.ts.map +1 -1
  106. package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts +87 -38
  107. package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts.map +1 -1
  108. package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts +81 -32
  109. package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts.map +1 -1
  110. package/dist/contracts/middleware/liquidity-layer/adapters/index.d.ts +0 -1
  111. package/dist/contracts/middleware/liquidity-layer/adapters/index.d.ts.map +1 -1
  112. package/dist/contracts/middleware/liquidity-layer/interfaces/index.d.ts +0 -3
  113. package/dist/contracts/middleware/liquidity-layer/interfaces/index.d.ts.map +1 -1
  114. package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts +25 -33
  115. package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts.map +1 -1
  116. package/dist/contracts/mock/MockInterchainAccountRouter.d.ts +2 -2
  117. package/dist/contracts/mock/MockInterchainAccountRouter.d.ts.map +1 -1
  118. package/dist/contracts/mock/index.d.ts +0 -3
  119. package/dist/contracts/mock/index.d.ts.map +1 -1
  120. package/dist/contracts/test/TestMailbox.d.ts +250 -32
  121. package/dist/contracts/test/TestMailbox.d.ts.map +1 -1
  122. package/dist/contracts/test/TestMessage.d.ts +30 -10
  123. package/dist/contracts/test/TestMessage.d.ts.map +1 -1
  124. package/dist/contracts/test/TestMultisigIsm.d.ts +63 -24
  125. package/dist/contracts/test/TestMultisigIsm.d.ts.map +1 -1
  126. package/dist/contracts/test/TestRouter.d.ts +93 -44
  127. package/dist/contracts/test/TestRouter.d.ts.map +1 -1
  128. package/dist/contracts/test/TestSendReceiver.d.ts +14 -6
  129. package/dist/contracts/test/TestSendReceiver.d.ts.map +1 -1
  130. package/dist/contracts/test/index.d.ts +0 -8
  131. package/dist/contracts/test/index.d.ts.map +1 -1
  132. package/dist/contracts/upgrade/index.d.ts +0 -3
  133. package/dist/contracts/upgrade/index.d.ts.map +1 -1
  134. package/dist/factories/@openzeppelin/contracts/index.d.ts +2 -0
  135. package/dist/factories/@openzeppelin/contracts/index.d.ts.map +1 -1
  136. package/dist/factories/@openzeppelin/contracts/index.js +3 -1
  137. package/dist/factories/@openzeppelin/contracts/index.js.map +1 -1
  138. package/dist/factories/{interfaces/IMultisigValidatorManager__factory.d.ts → @openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.d.ts} +5 -5
  139. package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.d.ts.map +1 -0
  140. package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.js +31 -0
  141. package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.js.map +1 -0
  142. package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.d.ts +2 -0
  143. package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.d.ts.map +1 -0
  144. package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.js +9 -0
  145. package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.js.map +1 -0
  146. package/dist/factories/@openzeppelin/contracts/interfaces/index.d.ts +2 -0
  147. package/dist/factories/@openzeppelin/contracts/interfaces/index.d.ts.map +1 -0
  148. package/dist/factories/{contracts/middleware/token-bridge → @openzeppelin/contracts/interfaces}/index.js +2 -5
  149. package/dist/factories/@openzeppelin/contracts/interfaces/index.js.map +1 -0
  150. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.d.ts +48 -0
  151. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.d.ts.map +1 -0
  152. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.js +110 -0
  153. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.js.map +1 -0
  154. package/dist/factories/@openzeppelin/{contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.d.ts → contracts/proxy/ERC1967/ERC1967Upgrade__factory.d.ts} +5 -5
  155. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade__factory.d.ts.map +1 -0
  156. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade__factory.js +63 -0
  157. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade__factory.js.map +1 -0
  158. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/index.d.ts +3 -0
  159. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/index.d.ts.map +1 -0
  160. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/index.js +11 -0
  161. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/index.js.map +1 -0
  162. package/dist/factories/@openzeppelin/contracts/proxy/Proxy__factory.d.ts +12 -0
  163. package/dist/factories/@openzeppelin/contracts/proxy/Proxy__factory.d.ts.map +1 -0
  164. package/dist/factories/@openzeppelin/contracts/proxy/Proxy__factory.js +26 -0
  165. package/dist/factories/@openzeppelin/contracts/proxy/Proxy__factory.js.map +1 -0
  166. package/dist/factories/{contracts/test/MysteryMath__factory.d.ts → @openzeppelin/contracts/proxy/beacon/IBeacon__factory.d.ts} +6 -10
  167. package/dist/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.d.ts.map +1 -0
  168. package/dist/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.js +31 -0
  169. package/dist/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.js.map +1 -0
  170. package/dist/factories/@openzeppelin/contracts/proxy/beacon/index.d.ts +2 -0
  171. package/dist/factories/@openzeppelin/contracts/proxy/beacon/index.d.ts.map +1 -0
  172. package/dist/factories/@openzeppelin/contracts/proxy/beacon/index.js +9 -0
  173. package/dist/factories/@openzeppelin/contracts/proxy/beacon/index.js.map +1 -0
  174. package/dist/factories/@openzeppelin/contracts/proxy/index.d.ts +5 -0
  175. package/dist/factories/@openzeppelin/contracts/proxy/index.d.ts.map +1 -0
  176. package/dist/factories/{contracts/middleware/token-bridge/interfaces → @openzeppelin/contracts/proxy}/index.js +6 -6
  177. package/dist/factories/@openzeppelin/contracts/proxy/index.js.map +1 -0
  178. package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts +48 -0
  179. package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts.map +1 -0
  180. package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js +190 -0
  181. package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js.map +1 -0
  182. package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.d.ts +73 -0
  183. package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.d.ts.map +1 -0
  184. package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.js +185 -0
  185. package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.js.map +1 -0
  186. package/dist/factories/@openzeppelin/contracts/proxy/transparent/index.d.ts +3 -0
  187. package/dist/factories/@openzeppelin/contracts/proxy/transparent/index.d.ts.map +1 -0
  188. package/dist/factories/@openzeppelin/contracts/proxy/transparent/index.js +11 -0
  189. package/dist/factories/@openzeppelin/contracts/proxy/transparent/index.js.map +1 -0
  190. package/dist/factories/@openzeppelin/contracts-upgradeable/index.d.ts +0 -1
  191. package/dist/factories/@openzeppelin/contracts-upgradeable/index.d.ts.map +1 -1
  192. package/dist/factories/@openzeppelin/contracts-upgradeable/index.js +1 -2
  193. package/dist/factories/@openzeppelin/contracts-upgradeable/index.js.map +1 -1
  194. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.d.ts +1 -1
  195. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.d.ts.map +1 -1
  196. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.js +1 -1
  197. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.js.map +1 -1
  198. package/dist/factories/contracts/InterchainGasPaymaster__factory.d.ts +1 -1
  199. package/dist/factories/contracts/InterchainGasPaymaster__factory.d.ts.map +1 -1
  200. package/dist/factories/contracts/InterchainGasPaymaster__factory.js +19 -14
  201. package/dist/factories/contracts/InterchainGasPaymaster__factory.js.map +1 -1
  202. package/dist/factories/contracts/Mailbox__factory.d.ts +29 -13
  203. package/dist/factories/contracts/Mailbox__factory.d.ts.map +1 -1
  204. package/dist/factories/contracts/Mailbox__factory.js +327 -10
  205. package/dist/factories/contracts/Mailbox__factory.js.map +1 -1
  206. package/dist/factories/contracts/OwnableMulticall__factory.d.ts +1 -1
  207. package/dist/factories/contracts/OwnableMulticall__factory.d.ts.map +1 -1
  208. package/dist/factories/contracts/OwnableMulticall__factory.js +1 -1
  209. package/dist/factories/contracts/OwnableMulticall__factory.js.map +1 -1
  210. package/dist/factories/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable__factory.d.ts +19 -0
  211. package/dist/factories/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable__factory.d.ts.map +1 -0
  212. package/dist/factories/{@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.js → contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable__factory.js} +5 -5
  213. package/dist/factories/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable__factory.js.map +1 -0
  214. package/dist/factories/contracts/PausableReentrancyGuard.sol/index.d.ts +2 -0
  215. package/dist/factories/contracts/PausableReentrancyGuard.sol/index.d.ts.map +1 -0
  216. package/dist/factories/contracts/PausableReentrancyGuard.sol/index.js +9 -0
  217. package/dist/factories/contracts/PausableReentrancyGuard.sol/index.js.map +1 -0
  218. package/dist/factories/contracts/Router__factory.d.ts.map +1 -1
  219. package/dist/factories/contracts/Router__factory.js +83 -26
  220. package/dist/factories/contracts/Router__factory.js.map +1 -1
  221. package/dist/factories/contracts/index.d.ts +1 -6
  222. package/dist/factories/contracts/index.d.ts.map +1 -1
  223. package/dist/factories/contracts/index.js +2 -12
  224. package/dist/factories/contracts/index.js.map +1 -1
  225. package/dist/factories/contracts/isms/MultisigIsm__factory.d.ts +1 -1
  226. package/dist/factories/contracts/isms/MultisigIsm__factory.d.ts.map +1 -1
  227. package/dist/factories/contracts/isms/MultisigIsm__factory.js +62 -25
  228. package/dist/factories/contracts/isms/MultisigIsm__factory.js.map +1 -1
  229. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
  230. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts.map +1 -1
  231. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +95 -38
  232. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js.map +1 -1
  233. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
  234. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts.map +1 -1
  235. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +96 -39
  236. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js.map +1 -1
  237. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
  238. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts.map +1 -1
  239. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +97 -34
  240. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js.map +1 -1
  241. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
  242. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts.map +1 -1
  243. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +88 -31
  244. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js.map +1 -1
  245. package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.d.ts +0 -1
  246. package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.d.ts.map +1 -1
  247. package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.js +1 -3
  248. package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.js.map +1 -1
  249. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.d.ts +0 -2
  250. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.d.ts.map +1 -1
  251. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.js +1 -4
  252. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.js.map +1 -1
  253. package/dist/factories/contracts/mock/MockCircleBridge__factory.d.ts +1 -1
  254. package/dist/factories/contracts/mock/MockCircleBridge__factory.js +1 -1
  255. package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.d.ts +1 -1
  256. package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.js +1 -1
  257. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
  258. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -1
  259. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +7 -26
  260. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -1
  261. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.d.ts +1 -1
  262. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.d.ts.map +1 -1
  263. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.js +5 -5
  264. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.js.map +1 -1
  265. package/dist/factories/contracts/mock/MockToken__factory.d.ts +1 -1
  266. package/dist/factories/contracts/mock/MockToken__factory.d.ts.map +1 -1
  267. package/dist/factories/contracts/mock/MockToken__factory.js +1 -1
  268. package/dist/factories/contracts/mock/MockToken__factory.js.map +1 -1
  269. package/dist/factories/contracts/mock/index.d.ts +0 -3
  270. package/dist/factories/contracts/mock/index.d.ts.map +1 -1
  271. package/dist/factories/contracts/mock/index.js +1 -7
  272. package/dist/factories/contracts/mock/index.js.map +1 -1
  273. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.d.ts +1 -1
  274. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.d.ts.map +1 -1
  275. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js +1 -1
  276. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js.map +1 -1
  277. package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.d.ts +1 -1
  278. package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.js +1 -1
  279. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -8
  280. package/dist/factories/contracts/test/TestMailbox__factory.d.ts.map +1 -1
  281. package/dist/factories/contracts/test/TestMailbox__factory.js +322 -11
  282. package/dist/factories/contracts/test/TestMailbox__factory.js.map +1 -1
  283. package/dist/factories/contracts/test/TestMerkle__factory.d.ts +1 -1
  284. package/dist/factories/contracts/test/TestMerkle__factory.js +1 -1
  285. package/dist/factories/contracts/test/TestMessage__factory.d.ts +1 -1
  286. package/dist/factories/contracts/test/TestMessage__factory.d.ts.map +1 -1
  287. package/dist/factories/contracts/test/TestMessage__factory.js +40 -7
  288. package/dist/factories/contracts/test/TestMessage__factory.js.map +1 -1
  289. package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts +1 -1
  290. package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts.map +1 -1
  291. package/dist/factories/contracts/test/TestMultisigIsm__factory.js +62 -25
  292. package/dist/factories/contracts/test/TestMultisigIsm__factory.js.map +1 -1
  293. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
  294. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts.map +1 -1
  295. package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
  296. package/dist/factories/contracts/test/TestQuerySender__factory.js.map +1 -1
  297. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  298. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  299. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  300. package/dist/factories/contracts/test/TestRouter__factory.d.ts.map +1 -1
  301. package/dist/factories/contracts/test/TestRouter__factory.js +101 -34
  302. package/dist/factories/contracts/test/TestRouter__factory.js.map +1 -1
  303. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +12 -1
  304. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts.map +1 -1
  305. package/dist/factories/contracts/test/TestSendReceiver__factory.js +16 -3
  306. package/dist/factories/contracts/test/TestSendReceiver__factory.js.map +1 -1
  307. package/dist/factories/contracts/test/TestTokenRecipient__factory.d.ts +1 -1
  308. package/dist/factories/contracts/test/TestTokenRecipient__factory.js +1 -1
  309. package/dist/factories/contracts/test/index.d.ts +0 -8
  310. package/dist/factories/contracts/test/index.d.ts.map +1 -1
  311. package/dist/factories/contracts/test/index.js +1 -17
  312. package/dist/factories/contracts/test/index.js.map +1 -1
  313. package/dist/factories/contracts/upgrade/index.d.ts +0 -3
  314. package/dist/factories/contracts/upgrade/index.d.ts.map +1 -1
  315. package/dist/factories/contracts/upgrade/index.js +1 -7
  316. package/dist/factories/contracts/upgrade/index.js.map +1 -1
  317. package/dist/factories/interfaces/IInterchainAccountRouter__factory.js +4 -4
  318. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.d.ts.map +1 -1
  319. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js +13 -8
  320. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js.map +1 -1
  321. package/dist/factories/interfaces/IInterchainQueryRouter__factory.js +6 -6
  322. package/dist/factories/{contracts/middleware/liquidity-layer/interfaces → interfaces}/ILiquidityLayerMessageRecipient__factory.d.ts +1 -1
  323. package/dist/factories/interfaces/ILiquidityLayerMessageRecipient__factory.d.ts.map +1 -0
  324. package/dist/factories/{contracts/middleware/liquidity-layer/interfaces → interfaces}/ILiquidityLayerMessageRecipient__factory.js +0 -0
  325. package/dist/factories/interfaces/ILiquidityLayerMessageRecipient__factory.js.map +1 -0
  326. package/dist/factories/interfaces/{IOutbox__factory.d.ts → ILiquidityLayerRouter__factory.d.ts} +5 -5
  327. package/dist/factories/interfaces/ILiquidityLayerRouter__factory.d.ts.map +1 -0
  328. package/dist/factories/{contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.js → interfaces/ILiquidityLayerRouter__factory.js} +22 -11
  329. package/dist/factories/interfaces/ILiquidityLayerRouter__factory.js.map +1 -0
  330. package/dist/factories/interfaces/IMailbox__factory.d.ts +5 -1
  331. package/dist/factories/interfaces/IMailbox__factory.d.ts.map +1 -1
  332. package/dist/factories/interfaces/IMailbox__factory.js +81 -3
  333. package/dist/factories/interfaces/IMailbox__factory.js.map +1 -1
  334. package/dist/factories/interfaces/IMultisigIsm__factory.js +2 -2
  335. package/dist/factories/interfaces/IMultisigIsm__factory.js.map +1 -1
  336. package/dist/factories/interfaces/index.d.ts +2 -4
  337. package/dist/factories/interfaces/index.d.ts.map +1 -1
  338. package/dist/factories/interfaces/index.js +5 -9
  339. package/dist/factories/interfaces/index.js.map +1 -1
  340. package/dist/index.d.ts +20 -60
  341. package/dist/index.d.ts.map +1 -1
  342. package/dist/index.js +22 -62
  343. package/dist/index.js.map +1 -1
  344. package/dist/interfaces/IInterchainAccountRouter.d.ts +2 -2
  345. package/dist/interfaces/IInterchainAccountRouter.d.ts.map +1 -1
  346. package/dist/interfaces/IInterchainGasPaymaster.d.ts +9 -9
  347. package/dist/interfaces/IInterchainGasPaymaster.d.ts.map +1 -1
  348. package/dist/interfaces/IInterchainQueryRouter.d.ts +3 -3
  349. package/dist/interfaces/IInterchainQueryRouter.d.ts.map +1 -1
  350. package/dist/{contracts/middleware/liquidity-layer/interfaces → interfaces}/ILiquidityLayerMessageRecipient.d.ts +1 -1
  351. package/dist/interfaces/ILiquidityLayerMessageRecipient.d.ts.map +1 -0
  352. package/dist/{contracts/middleware/liquidity-layer/interfaces → interfaces}/ILiquidityLayerMessageRecipient.js +0 -0
  353. package/dist/interfaces/ILiquidityLayerMessageRecipient.js.map +1 -0
  354. package/dist/interfaces/ILiquidityLayerRouter.d.ts +51 -0
  355. package/dist/interfaces/ILiquidityLayerRouter.d.ts.map +1 -0
  356. package/dist/interfaces/ILiquidityLayerRouter.js +4 -0
  357. package/dist/interfaces/ILiquidityLayerRouter.js.map +1 -0
  358. package/dist/interfaces/IMailbox.d.ts +58 -10
  359. package/dist/interfaces/IMailbox.d.ts.map +1 -1
  360. package/dist/interfaces/IMultisigIsm.d.ts +3 -3
  361. package/dist/interfaces/IMultisigIsm.d.ts.map +1 -1
  362. package/dist/interfaces/index.d.ts +2 -4
  363. package/dist/interfaces/index.d.ts.map +1 -1
  364. package/interfaces/IInterchainAccountRouter.sol +2 -2
  365. package/interfaces/IInterchainGasPaymaster.sol +5 -4
  366. package/interfaces/IInterchainQueryRouter.sol +3 -3
  367. package/interfaces/IInterchainSecurityModule.sol +16 -0
  368. package/{contracts/middleware/liquidity-layer/interfaces → interfaces}/ILiquidityLayerMessageRecipient.sol +0 -0
  369. package/interfaces/ILiquidityLayerRouter.sol +15 -0
  370. package/interfaces/IMailbox.sol +15 -2
  371. package/interfaces/IMultisigIsm.sol +18 -0
  372. package/package.json +5 -5
  373. package/contracts/AbacusConnectionManager.sol +0 -145
  374. package/contracts/Inbox.sol +0 -148
  375. package/contracts/MerkleTreeManager.sol +0 -32
  376. package/contracts/Outbox.sol +0 -191
  377. package/contracts/middleware/liquidity-layer/adapters/PortalAdapter.sol +0 -215
  378. package/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.sol +0 -87
  379. package/contracts/mock/MockInbox.sol +0 -52
  380. package/contracts/mock/MockOutbox.sol +0 -30
  381. package/contracts/mock/MockPortalBridge.sol +0 -89
  382. package/contracts/test/MysteryMath.sol +0 -21
  383. package/contracts/test/MysteryMathV1.sol +0 -22
  384. package/contracts/test/MysteryMathV2.sol +0 -22
  385. package/contracts/test/TestAbacusConnectionClient.sol +0 -23
  386. package/contracts/test/TestInbox.sol +0 -54
  387. package/contracts/test/TestMultisigValidatorManager.sol +0 -26
  388. package/contracts/test/TestOutbox.sol +0 -46
  389. package/contracts/test/TestValidatorManager.sol +0 -21
  390. package/contracts/upgrade/UpgradeBeacon.sol +0 -98
  391. package/contracts/upgrade/UpgradeBeaconController.sol +0 -48
  392. package/contracts/upgrade/UpgradeBeaconProxy.sol +0 -176
  393. package/contracts/validator-manager/InboxValidatorManager.sol +0 -58
  394. package/contracts/validator-manager/MultisigValidatorManager.sol +0 -271
  395. package/contracts/validator-manager/OutboxValidatorManager.sol +0 -244
  396. package/dist/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.d.ts.map +0 -1
  397. package/dist/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.js.map +0 -1
  398. package/dist/@openzeppelin/contracts-upgradeable/security/index.d.ts +0 -2
  399. package/dist/@openzeppelin/contracts-upgradeable/security/index.d.ts.map +0 -1
  400. package/dist/@openzeppelin/contracts-upgradeable/security/index.js.map +0 -1
  401. package/dist/contracts/AbacusConnectionClient.d.ts +0 -169
  402. package/dist/contracts/AbacusConnectionClient.d.ts.map +0 -1
  403. package/dist/contracts/AbacusConnectionClient.js.map +0 -1
  404. package/dist/contracts/AbacusConnectionManager.d.ts +0 -213
  405. package/dist/contracts/AbacusConnectionManager.d.ts.map +0 -1
  406. package/dist/contracts/AbacusConnectionManager.js +0 -4
  407. package/dist/contracts/AbacusConnectionManager.js.map +0 -1
  408. package/dist/contracts/Inbox.d.ts +0 -207
  409. package/dist/contracts/Inbox.d.ts.map +0 -1
  410. package/dist/contracts/Inbox.js.map +0 -1
  411. package/dist/contracts/MerkleTreeManager.d.ts +0 -53
  412. package/dist/contracts/MerkleTreeManager.d.ts.map +0 -1
  413. package/dist/contracts/MerkleTreeManager.js.map +0 -1
  414. package/dist/contracts/Outbox.d.ts +0 -331
  415. package/dist/contracts/Outbox.d.ts.map +0 -1
  416. package/dist/contracts/Outbox.js.map +0 -1
  417. package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.d.ts +0 -378
  418. package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.d.ts.map +0 -1
  419. package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.js.map +0 -1
  420. package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient.d.ts.map +0 -1
  421. package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient.js.map +0 -1
  422. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.d.ts +0 -148
  423. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.d.ts.map +0 -1
  424. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.js +0 -4
  425. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.js.map +0 -1
  426. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts +0 -2
  427. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts.map +0 -1
  428. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/index.js.map +0 -1
  429. package/dist/contracts/middleware/token-bridge/TokenBridgeRouter.d.ts +0 -291
  430. package/dist/contracts/middleware/token-bridge/TokenBridgeRouter.d.ts.map +0 -1
  431. package/dist/contracts/middleware/token-bridge/TokenBridgeRouter.js +0 -4
  432. package/dist/contracts/middleware/token-bridge/TokenBridgeRouter.js.map +0 -1
  433. package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.d.ts +0 -416
  434. package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.d.ts.map +0 -1
  435. package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.js +0 -4
  436. package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.js.map +0 -1
  437. package/dist/contracts/middleware/token-bridge/adapters/index.d.ts +0 -2
  438. package/dist/contracts/middleware/token-bridge/adapters/index.d.ts.map +0 -1
  439. package/dist/contracts/middleware/token-bridge/adapters/index.js.map +0 -1
  440. package/dist/contracts/middleware/token-bridge/index.d.ts +0 -6
  441. package/dist/contracts/middleware/token-bridge/index.d.ts.map +0 -1
  442. package/dist/contracts/middleware/token-bridge/index.js.map +0 -1
  443. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.d.ts +0 -67
  444. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.d.ts.map +0 -1
  445. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.js +0 -4
  446. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.js.map +0 -1
  447. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.d.ts +0 -51
  448. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.d.ts.map +0 -1
  449. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.js +0 -4
  450. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.js.map +0 -1
  451. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.d.ts +0 -78
  452. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.d.ts.map +0 -1
  453. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.js +0 -4
  454. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.js.map +0 -1
  455. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.d.ts +0 -59
  456. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.d.ts.map +0 -1
  457. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.js +0 -4
  458. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.js.map +0 -1
  459. package/dist/contracts/middleware/token-bridge/interfaces/circle/index.d.ts +0 -3
  460. package/dist/contracts/middleware/token-bridge/interfaces/circle/index.d.ts.map +0 -1
  461. package/dist/contracts/middleware/token-bridge/interfaces/circle/index.js.map +0 -1
  462. package/dist/contracts/middleware/token-bridge/interfaces/index.d.ts +0 -5
  463. package/dist/contracts/middleware/token-bridge/interfaces/index.d.ts.map +0 -1
  464. package/dist/contracts/middleware/token-bridge/interfaces/index.js.map +0 -1
  465. package/dist/contracts/mock/MockInbox.d.ts +0 -67
  466. package/dist/contracts/mock/MockInbox.d.ts.map +0 -1
  467. package/dist/contracts/mock/MockInbox.js +0 -4
  468. package/dist/contracts/mock/MockInbox.js.map +0 -1
  469. package/dist/contracts/mock/MockOutbox.d.ts +0 -51
  470. package/dist/contracts/mock/MockOutbox.d.ts.map +0 -1
  471. package/dist/contracts/mock/MockOutbox.js +0 -4
  472. package/dist/contracts/mock/MockOutbox.js.map +0 -1
  473. package/dist/contracts/mock/MockPortalBridge.d.ts +0 -164
  474. package/dist/contracts/mock/MockPortalBridge.d.ts.map +0 -1
  475. package/dist/contracts/mock/MockPortalBridge.js +0 -4
  476. package/dist/contracts/mock/MockPortalBridge.js.map +0 -1
  477. package/dist/contracts/test/MysteryMath.d.ts +0 -77
  478. package/dist/contracts/test/MysteryMath.d.ts.map +0 -1
  479. package/dist/contracts/test/MysteryMath.js +0 -4
  480. package/dist/contracts/test/MysteryMath.js.map +0 -1
  481. package/dist/contracts/test/MysteryMathV1.d.ts +0 -85
  482. package/dist/contracts/test/MysteryMathV1.d.ts.map +0 -1
  483. package/dist/contracts/test/MysteryMathV1.js +0 -4
  484. package/dist/contracts/test/MysteryMathV1.js.map +0 -1
  485. package/dist/contracts/test/MysteryMathV2.d.ts +0 -85
  486. package/dist/contracts/test/MysteryMathV2.d.ts.map +0 -1
  487. package/dist/contracts/test/MysteryMathV2.js +0 -4
  488. package/dist/contracts/test/MysteryMathV2.js.map +0 -1
  489. package/dist/contracts/test/TestAbacusConnectionClient.d.ts +0 -209
  490. package/dist/contracts/test/TestAbacusConnectionClient.d.ts.map +0 -1
  491. package/dist/contracts/test/TestAbacusConnectionClient.js +0 -4
  492. package/dist/contracts/test/TestAbacusConnectionClient.js.map +0 -1
  493. package/dist/contracts/test/TestInbox.d.ts +0 -263
  494. package/dist/contracts/test/TestInbox.d.ts.map +0 -1
  495. package/dist/contracts/test/TestInbox.js +0 -4
  496. package/dist/contracts/test/TestInbox.js.map +0 -1
  497. package/dist/contracts/test/TestMultisigValidatorManager.d.ts +0 -247
  498. package/dist/contracts/test/TestMultisigValidatorManager.d.ts.map +0 -1
  499. package/dist/contracts/test/TestMultisigValidatorManager.js +0 -4
  500. package/dist/contracts/test/TestMultisigValidatorManager.js.map +0 -1
  501. package/dist/contracts/test/TestOutbox.d.ts +0 -371
  502. package/dist/contracts/test/TestOutbox.d.ts.map +0 -1
  503. package/dist/contracts/test/TestOutbox.js +0 -4
  504. package/dist/contracts/test/TestOutbox.js.map +0 -1
  505. package/dist/contracts/test/TestTokenBridgeMessageRecipient.d.ts +0 -72
  506. package/dist/contracts/test/TestTokenBridgeMessageRecipient.d.ts.map +0 -1
  507. package/dist/contracts/test/TestTokenBridgeMessageRecipient.js +0 -4
  508. package/dist/contracts/test/TestTokenBridgeMessageRecipient.js.map +0 -1
  509. package/dist/contracts/test/TestValidatorManager.d.ts +0 -58
  510. package/dist/contracts/test/TestValidatorManager.d.ts.map +0 -1
  511. package/dist/contracts/test/TestValidatorManager.js +0 -4
  512. package/dist/contracts/test/TestValidatorManager.js.map +0 -1
  513. package/dist/contracts/upgrade/UpgradeBeacon.d.ts +0 -40
  514. package/dist/contracts/upgrade/UpgradeBeacon.d.ts.map +0 -1
  515. package/dist/contracts/upgrade/UpgradeBeacon.js +0 -4
  516. package/dist/contracts/upgrade/UpgradeBeacon.js.map +0 -1
  517. package/dist/contracts/upgrade/UpgradeBeaconController.d.ts.map +0 -1
  518. package/dist/contracts/upgrade/UpgradeBeaconController.js +0 -4
  519. package/dist/contracts/upgrade/UpgradeBeaconController.js.map +0 -1
  520. package/dist/contracts/upgrade/UpgradeBeaconProxy.d.ts.map +0 -1
  521. package/dist/contracts/upgrade/UpgradeBeaconProxy.js +0 -4
  522. package/dist/contracts/upgrade/UpgradeBeaconProxy.js.map +0 -1
  523. package/dist/contracts/validator-manager/InboxValidatorManager.d.ts +0 -263
  524. package/dist/contracts/validator-manager/InboxValidatorManager.d.ts.map +0 -1
  525. package/dist/contracts/validator-manager/InboxValidatorManager.js +0 -4
  526. package/dist/contracts/validator-manager/InboxValidatorManager.js.map +0 -1
  527. package/dist/contracts/validator-manager/MultisigValidatorManager.d.ts +0 -239
  528. package/dist/contracts/validator-manager/MultisigValidatorManager.d.ts.map +0 -1
  529. package/dist/contracts/validator-manager/MultisigValidatorManager.js +0 -4
  530. package/dist/contracts/validator-manager/MultisigValidatorManager.js.map +0 -1
  531. package/dist/contracts/validator-manager/OutboxValidatorManager.d.ts +0 -335
  532. package/dist/contracts/validator-manager/OutboxValidatorManager.d.ts.map +0 -1
  533. package/dist/contracts/validator-manager/OutboxValidatorManager.js +0 -4
  534. package/dist/contracts/validator-manager/OutboxValidatorManager.js.map +0 -1
  535. package/dist/contracts/validator-manager/index.d.ts +0 -4
  536. package/dist/contracts/validator-manager/index.d.ts.map +0 -1
  537. package/dist/contracts/validator-manager/index.js.map +0 -1
  538. package/dist/factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.d.ts.map +0 -1
  539. package/dist/factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.js.map +0 -1
  540. package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.d.ts +0 -2
  541. package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.d.ts.map +0 -1
  542. package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.js +0 -9
  543. package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.js.map +0 -1
  544. package/dist/factories/contracts/AbacusConnectionClient__factory.d.ts +0 -43
  545. package/dist/factories/contracts/AbacusConnectionClient__factory.d.ts.map +0 -1
  546. package/dist/factories/contracts/AbacusConnectionClient__factory.js +0 -161
  547. package/dist/factories/contracts/AbacusConnectionClient__factory.js.map +0 -1
  548. package/dist/factories/contracts/AbacusConnectionManager__factory.d.ts +0 -55
  549. package/dist/factories/contracts/AbacusConnectionManager__factory.d.ts.map +0 -1
  550. package/dist/factories/contracts/AbacusConnectionManager__factory.js +0 -276
  551. package/dist/factories/contracts/AbacusConnectionManager__factory.js.map +0 -1
  552. package/dist/factories/contracts/Inbox__factory.d.ts +0 -59
  553. package/dist/factories/contracts/Inbox__factory.d.ts.map +0 -1
  554. package/dist/factories/contracts/Inbox__factory.js +0 -278
  555. package/dist/factories/contracts/Inbox__factory.js.map +0 -1
  556. package/dist/factories/contracts/MerkleTreeManager__factory.d.ts +0 -31
  557. package/dist/factories/contracts/MerkleTreeManager__factory.d.ts.map +0 -1
  558. package/dist/factories/contracts/MerkleTreeManager__factory.js +0 -67
  559. package/dist/factories/contracts/MerkleTreeManager__factory.js.map +0 -1
  560. package/dist/factories/contracts/Outbox__factory.d.ts +0 -59
  561. package/dist/factories/contracts/Outbox__factory.d.ts.map +0 -1
  562. package/dist/factories/contracts/Outbox__factory.js +0 -415
  563. package/dist/factories/contracts/Outbox__factory.js.map +0 -1
  564. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +0 -48
  565. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts.map +0 -1
  566. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +0 -540
  567. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js.map +0 -1
  568. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient__factory.d.ts.map +0 -1
  569. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient__factory.js.map +0 -1
  570. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.d.ts +0 -56
  571. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.d.ts.map +0 -1
  572. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.js +0 -204
  573. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.js.map +0 -1
  574. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts +0 -2
  575. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts.map +0 -1
  576. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.js +0 -9
  577. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.js.map +0 -1
  578. package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.d.ts +0 -48
  579. package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.d.ts.map +0 -1
  580. package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.js +0 -380
  581. package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.js.map +0 -1
  582. package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.d.ts +0 -48
  583. package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.d.ts.map +0 -1
  584. package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.js +0 -584
  585. package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.js.map +0 -1
  586. package/dist/factories/contracts/middleware/token-bridge/adapters/index.d.ts +0 -2
  587. package/dist/factories/contracts/middleware/token-bridge/adapters/index.d.ts.map +0 -1
  588. package/dist/factories/contracts/middleware/token-bridge/adapters/index.js +0 -9
  589. package/dist/factories/contracts/middleware/token-bridge/adapters/index.js.map +0 -1
  590. package/dist/factories/contracts/middleware/token-bridge/index.d.ts +0 -4
  591. package/dist/factories/contracts/middleware/token-bridge/index.d.ts.map +0 -1
  592. package/dist/factories/contracts/middleware/token-bridge/index.js.map +0 -1
  593. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.d.ts +0 -23
  594. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.d.ts.map +0 -1
  595. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.js +0 -91
  596. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.js.map +0 -1
  597. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.d.ts +0 -19
  598. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.d.ts.map +0 -1
  599. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.js.map +0 -1
  600. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.d.ts +0 -36
  601. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.d.ts.map +0 -1
  602. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.js +0 -104
  603. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.js.map +0 -1
  604. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.d.ts +0 -23
  605. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.d.ts.map +0 -1
  606. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.js +0 -61
  607. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.js.map +0 -1
  608. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.d.ts +0 -3
  609. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.d.ts.map +0 -1
  610. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.js +0 -11
  611. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.js.map +0 -1
  612. package/dist/factories/contracts/middleware/token-bridge/interfaces/index.d.ts +0 -4
  613. package/dist/factories/contracts/middleware/token-bridge/interfaces/index.d.ts.map +0 -1
  614. package/dist/factories/contracts/middleware/token-bridge/interfaces/index.js.map +0 -1
  615. package/dist/factories/contracts/mock/MockInbox__factory.d.ts +0 -31
  616. package/dist/factories/contracts/mock/MockInbox__factory.d.ts.map +0 -1
  617. package/dist/factories/contracts/mock/MockInbox__factory.js +0 -76
  618. package/dist/factories/contracts/mock/MockInbox__factory.js.map +0 -1
  619. package/dist/factories/contracts/mock/MockOutbox__factory.d.ts +0 -45
  620. package/dist/factories/contracts/mock/MockOutbox__factory.d.ts.map +0 -1
  621. package/dist/factories/contracts/mock/MockOutbox__factory.js +0 -86
  622. package/dist/factories/contracts/mock/MockOutbox__factory.js.map +0 -1
  623. package/dist/factories/contracts/mock/MockPortalBridge__factory.d.ts +0 -79
  624. package/dist/factories/contracts/mock/MockPortalBridge__factory.d.ts.map +0 -1
  625. package/dist/factories/contracts/mock/MockPortalBridge__factory.js +0 -296
  626. package/dist/factories/contracts/mock/MockPortalBridge__factory.js.map +0 -1
  627. package/dist/factories/contracts/test/MysteryMathV1__factory.d.ts +0 -41
  628. package/dist/factories/contracts/test/MysteryMathV1__factory.d.ts.map +0 -1
  629. package/dist/factories/contracts/test/MysteryMathV1__factory.js +0 -122
  630. package/dist/factories/contracts/test/MysteryMathV1__factory.js.map +0 -1
  631. package/dist/factories/contracts/test/MysteryMathV2__factory.d.ts +0 -41
  632. package/dist/factories/contracts/test/MysteryMathV2__factory.d.ts.map +0 -1
  633. package/dist/factories/contracts/test/MysteryMathV2__factory.js +0 -122
  634. package/dist/factories/contracts/test/MysteryMathV2__factory.js.map +0 -1
  635. package/dist/factories/contracts/test/MysteryMath__factory.d.ts.map +0 -1
  636. package/dist/factories/contracts/test/MysteryMath__factory.js +0 -81
  637. package/dist/factories/contracts/test/MysteryMath__factory.js.map +0 -1
  638. package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.d.ts +0 -48
  639. package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.d.ts.map +0 -1
  640. package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.js +0 -242
  641. package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.js.map +0 -1
  642. package/dist/factories/contracts/test/TestInbox__factory.d.ts +0 -59
  643. package/dist/factories/contracts/test/TestInbox__factory.d.ts.map +0 -1
  644. package/dist/factories/contracts/test/TestInbox__factory.js +0 -371
  645. package/dist/factories/contracts/test/TestInbox__factory.js.map +0 -1
  646. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.d.ts +0 -59
  647. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.d.ts.map +0 -1
  648. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.js +0 -349
  649. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.js.map +0 -1
  650. package/dist/factories/contracts/test/TestOutbox__factory.d.ts +0 -59
  651. package/dist/factories/contracts/test/TestOutbox__factory.d.ts.map +0 -1
  652. package/dist/factories/contracts/test/TestOutbox__factory.js +0 -483
  653. package/dist/factories/contracts/test/TestOutbox__factory.js.map +0 -1
  654. package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.d.ts +0 -44
  655. package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.d.ts.map +0 -1
  656. package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.js +0 -111
  657. package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.js.map +0 -1
  658. package/dist/factories/contracts/test/TestValidatorManager__factory.d.ts +0 -31
  659. package/dist/factories/contracts/test/TestValidatorManager__factory.d.ts.map +0 -1
  660. package/dist/factories/contracts/test/TestValidatorManager__factory.js +0 -79
  661. package/dist/factories/contracts/test/TestValidatorManager__factory.js.map +0 -1
  662. package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.d.ts +0 -55
  663. package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.d.ts.map +0 -1
  664. package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.js +0 -130
  665. package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.js.map +0 -1
  666. package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.d.ts +0 -33
  667. package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.d.ts.map +0 -1
  668. package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.js +0 -65
  669. package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.js.map +0 -1
  670. package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.d.ts +0 -48
  671. package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.d.ts.map +0 -1
  672. package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.js +0 -74
  673. package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.js.map +0 -1
  674. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.d.ts +0 -59
  675. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.d.ts.map +0 -1
  676. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.js +0 -373
  677. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.js.map +0 -1
  678. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.d.ts +0 -36
  679. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.d.ts.map +0 -1
  680. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.js +0 -286
  681. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.js.map +0 -1
  682. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.d.ts +0 -59
  683. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.d.ts.map +0 -1
  684. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.js +0 -560
  685. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.js.map +0 -1
  686. package/dist/factories/contracts/validator-manager/index.d.ts +0 -4
  687. package/dist/factories/contracts/validator-manager/index.d.ts.map +0 -1
  688. package/dist/factories/contracts/validator-manager/index.js +0 -13
  689. package/dist/factories/contracts/validator-manager/index.js.map +0 -1
  690. package/dist/factories/interfaces/IAbacusConnectionManager__factory.d.ts +0 -23
  691. package/dist/factories/interfaces/IAbacusConnectionManager__factory.d.ts.map +0 -1
  692. package/dist/factories/interfaces/IAbacusConnectionManager__factory.js +0 -63
  693. package/dist/factories/interfaces/IAbacusConnectionManager__factory.js.map +0 -1
  694. package/dist/factories/interfaces/IInbox__factory.d.ts +0 -29
  695. package/dist/factories/interfaces/IInbox__factory.d.ts.map +0 -1
  696. package/dist/factories/interfaces/IInbox__factory.js +0 -90
  697. package/dist/factories/interfaces/IInbox__factory.js.map +0 -1
  698. package/dist/factories/interfaces/IMultisigValidatorManager__factory.d.ts.map +0 -1
  699. package/dist/factories/interfaces/IMultisigValidatorManager__factory.js +0 -57
  700. package/dist/factories/interfaces/IMultisigValidatorManager__factory.js.map +0 -1
  701. package/dist/factories/interfaces/IOutbox__factory.d.ts.map +0 -1
  702. package/dist/factories/interfaces/IOutbox__factory.js +0 -155
  703. package/dist/factories/interfaces/IOutbox__factory.js.map +0 -1
  704. package/dist/interfaces/IAbacusConnectionManager.d.ts +0 -59
  705. package/dist/interfaces/IAbacusConnectionManager.d.ts.map +0 -1
  706. package/dist/interfaces/IAbacusConnectionManager.js +0 -4
  707. package/dist/interfaces/IAbacusConnectionManager.js.map +0 -1
  708. package/dist/interfaces/IInbox.d.ts +0 -83
  709. package/dist/interfaces/IInbox.d.ts.map +0 -1
  710. package/dist/interfaces/IInbox.js +0 -4
  711. package/dist/interfaces/IInbox.js.map +0 -1
  712. package/dist/interfaces/IMultisigValidatorManager.d.ts +0 -59
  713. package/dist/interfaces/IMultisigValidatorManager.d.ts.map +0 -1
  714. package/dist/interfaces/IMultisigValidatorManager.js +0 -4
  715. package/dist/interfaces/IMultisigValidatorManager.js.map +0 -1
  716. package/dist/interfaces/IOutbox.d.ts +0 -148
  717. package/dist/interfaces/IOutbox.d.ts.map +0 -1
  718. package/dist/interfaces/IOutbox.js +0 -4
  719. package/dist/interfaces/IOutbox.js.map +0 -1
  720. package/interfaces/IAbacusConnectionManager.sol +0 -12
  721. package/interfaces/IInbox.sol +0 -16
  722. package/interfaces/IMultisigValidatorManager.sol +0 -11
  723. package/interfaces/IOutbox.sol +0 -27
@@ -2,13 +2,12 @@
2
2
  pragma solidity >=0.6.11;
3
3
 
4
4
  // ============ Internal Imports ============
5
- import {AbacusConnectionClient} from "./AbacusConnectionClient.sol";
6
- import {IAbacusConnectionManager} from "../interfaces/IAbacusConnectionManager.sol";
5
+ import {HyperlaneConnectionClient} from "./HyperlaneConnectionClient.sol";
7
6
  import {IInterchainGasPaymaster} from "../interfaces/IInterchainGasPaymaster.sol";
8
7
  import {IMessageRecipient} from "../interfaces/IMessageRecipient.sol";
9
- import {IOutbox} from "../interfaces/IOutbox.sol";
8
+ import {IMailbox} from "../interfaces/IMailbox.sol";
10
9
 
11
- abstract contract Router is AbacusConnectionClient, IMessageRecipient {
10
+ abstract contract Router is HyperlaneConnectionClient, IMessageRecipient {
12
11
  string constant NO_ROUTER_ENROLLED_REVERT_MESSAGE =
13
12
  "No router enrolled for domain. Did you specify the right domain ID?";
14
13
 
@@ -41,19 +40,16 @@ abstract contract Router is AbacusConnectionClient, IMessageRecipient {
41
40
  }
42
41
 
43
42
  // ======== Initializer =========
44
- function __Router_initialize(address _abacusConnectionManager)
45
- internal
46
- onlyInitializing
47
- {
48
- __AbacusConnectionClient_initialize(_abacusConnectionManager);
43
+ function __Router_initialize(address _mailbox) internal onlyInitializing {
44
+ __HyperlaneConnectionClient_initialize(_mailbox);
49
45
  }
50
46
 
51
47
  function __Router_initialize(
52
- address _abacusConnectionManager,
48
+ address _mailbox,
53
49
  address _interchainGasPaymaster
54
50
  ) internal onlyInitializing {
55
- __AbacusConnectionClient_initialize(
56
- _abacusConnectionManager,
51
+ __HyperlaneConnectionClient_initialize(
52
+ _mailbox,
57
53
  _interchainGasPaymaster
58
54
  );
59
55
  }
@@ -73,6 +69,21 @@ abstract contract Router is AbacusConnectionClient, IMessageRecipient {
73
69
  _enrollRemoteRouter(_domain, _router);
74
70
  }
75
71
 
72
+ /**
73
+ * @notice Batch version of `enrollRemoteRouter`
74
+ * @param _domains The domaisn of the remote Application Routers
75
+ * @param _routers The addresses of the remote Application Routers
76
+ */
77
+ function enrollRemoteRouters(
78
+ uint32[] calldata _domains,
79
+ bytes32[] calldata _routers
80
+ ) external virtual onlyOwner {
81
+ require(_domains.length == _routers.length, "!length");
82
+ for (uint256 i = 0; i < _domains.length; i += 1) {
83
+ _enrollRemoteRouter(_domains[i], _routers[i]);
84
+ }
85
+ }
86
+
76
87
  /**
77
88
  * @notice Handles an incoming message
78
89
  * @param _origin The origin domain
@@ -83,7 +94,7 @@ abstract contract Router is AbacusConnectionClient, IMessageRecipient {
83
94
  uint32 _origin,
84
95
  bytes32 _sender,
85
96
  bytes calldata _message
86
- ) external virtual override onlyInbox onlyRemoteRouter(_origin, _sender) {
97
+ ) external virtual override onlyMailbox onlyRemoteRouter(_origin, _sender) {
87
98
  // TODO: callbacks on success/failure
88
99
  _handle(_origin, _sender, _message);
89
100
  }
@@ -135,60 +146,46 @@ abstract contract Router is AbacusConnectionClient, IMessageRecipient {
135
146
  }
136
147
 
137
148
  /**
138
- * @notice Dispatches a message to an enrolled router via the local router's Outbox.
139
- * @notice Does not pay interchain gas.
140
- * @dev Reverts if there is no enrolled router for _destinationDomain.
141
- * @param _destinationDomain The domain of the chain to which to send the message.
142
- * @param _msg The message to dispatch.
143
- */
144
- function _dispatch(uint32 _destinationDomain, bytes memory _msg)
145
- internal
146
- returns (uint256)
147
- {
148
- return _dispatch(_outbox(), _destinationDomain, _msg);
149
- }
150
-
151
- /**
152
- * @notice Dispatches a message to an enrolled router via the local router's Outbox
149
+ * @notice Dispatches a message to an enrolled router via the local router's Mailbox
153
150
  * and pays for it to be relayed to the destination.
154
151
  * @dev Reverts if there is no enrolled router for _destinationDomain.
155
152
  * @param _destinationDomain The domain of the chain to which to send the message.
156
- * @param _msg The message to dispatch.
153
+ * @param _messageBody Raw bytes content of message.
154
+ * @param _gasAmount The amount of destination gas for the message that is requested via the InterchainGasPaymaster.
157
155
  * @param _gasPayment The amount of native tokens to pay for the message to be relayed.
156
+ * @param _gasPaymentRefundAddress The address to refund any gas overpayment to.
158
157
  */
159
158
  function _dispatchWithGas(
160
159
  uint32 _destinationDomain,
161
- bytes memory _msg,
162
- uint256 _gasPayment
163
- ) internal {
164
- IOutbox _outbox = _outbox();
165
- uint256 _leafIndex = _dispatch(_outbox, _destinationDomain, _msg);
166
- if (_gasPayment > 0) {
167
- interchainGasPaymaster.payGasFor{value: _gasPayment}(
168
- address(_outbox),
169
- _leafIndex,
170
- _destinationDomain
171
- );
172
- }
160
+ bytes memory _messageBody,
161
+ uint256 _gasAmount,
162
+ uint256 _gasPayment,
163
+ address _gasPaymentRefundAddress
164
+ ) internal returns (bytes32 _messageId) {
165
+ _messageId = _dispatch(_destinationDomain, _messageBody);
166
+ // Call the IGP even if the gas payment is zero. This is to support on-chain
167
+ // fee quoting in IGPs, which should always revert if gas payment is insufficient.
168
+ interchainGasPaymaster.payForGas{value: _gasPayment}(
169
+ _messageId,
170
+ _destinationDomain,
171
+ _gasAmount,
172
+ _gasPaymentRefundAddress
173
+ );
173
174
  }
174
175
 
175
- // ============ Private functions ============
176
-
177
176
  /**
178
- * @notice Dispatches a message to an enrolled router via the provided Outbox.
177
+ * @notice Dispatches a message to an enrolled router via the provided Mailbox.
179
178
  * @dev Does not pay interchain gas.
180
179
  * @dev Reverts if there is no enrolled router for _destinationDomain.
181
- * @param _outbox The outbox contract to dispatch the message through.
182
180
  * @param _destinationDomain The domain of the chain to which to send the message.
183
- * @param _msg The message to dispatch.
181
+ * @param _messageBody Raw bytes content of message.
184
182
  */
185
- function _dispatch(
186
- IOutbox _outbox,
187
- uint32 _destinationDomain,
188
- bytes memory _msg
189
- ) private returns (uint256) {
183
+ function _dispatch(uint32 _destinationDomain, bytes memory _messageBody)
184
+ internal
185
+ returns (bytes32)
186
+ {
190
187
  // Ensure that destination chain has an enrolled router.
191
188
  bytes32 _router = _mustHaveRemoteRouter(_destinationDomain);
192
- return _outbox.dispatch(_destinationDomain, _router, _msg);
189
+ return mailbox.dispatch(_destinationDomain, _router, _messageBody);
193
190
  }
194
191
  }
@@ -0,0 +1,373 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ // ============ External Imports ============
5
+ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
6
+ import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
7
+ import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
8
+
9
+ // ============ Internal Imports ============
10
+ import {IMultisigIsm} from "../../interfaces/IMultisigIsm.sol";
11
+ import {Message} from "../libs/Message.sol";
12
+ import {MultisigIsmMetadata} from "../libs/MultisigIsmMetadata.sol";
13
+ import {MerkleLib} from "../libs/Merkle.sol";
14
+
15
+ /**
16
+ * @title MultisigIsm
17
+ * @notice Manages an ownable set of validators that ECDSA sign checkpoints to
18
+ * reach a quorum.
19
+ */
20
+ contract MultisigIsm is IMultisigIsm, Ownable {
21
+ // ============ Libraries ============
22
+
23
+ using EnumerableSet for EnumerableSet.AddressSet;
24
+ using Message for bytes;
25
+ using MultisigIsmMetadata for bytes;
26
+ using MerkleLib for MerkleLib.Tree;
27
+
28
+ // ============ Mutable Storage ============
29
+
30
+ /// @notice The validator threshold for each remote domain.
31
+ mapping(uint32 => uint8) public threshold;
32
+
33
+ /// @notice The validator set for each remote domain.
34
+ mapping(uint32 => EnumerableSet.AddressSet) private validatorSet;
35
+
36
+ /// @notice A succinct commitment to the validator set and threshold for each remote
37
+ /// domain.
38
+ mapping(uint32 => bytes32) public commitment;
39
+
40
+ // ============ Events ============
41
+
42
+ /**
43
+ * @notice Emitted when a validator is enrolled in a validator set.
44
+ * @param domain The remote domain of the validator set.
45
+ * @param validator The address of the validator.
46
+ * @param validatorCount The number of enrolled validators in the validator set.
47
+ */
48
+ event ValidatorEnrolled(
49
+ uint32 indexed domain,
50
+ address indexed validator,
51
+ uint256 validatorCount
52
+ );
53
+
54
+ /**
55
+ * @notice Emitted when a validator is unenrolled from a validator set.
56
+ * @param domain The remote domain of the validator set.
57
+ * @param validator The address of the validator.
58
+ * @param validatorCount The number of enrolled validators in the validator set.
59
+ */
60
+ event ValidatorUnenrolled(
61
+ uint32 indexed domain,
62
+ address indexed validator,
63
+ uint256 validatorCount
64
+ );
65
+
66
+ /**
67
+ * @notice Emitted when the quorum threshold is set.
68
+ * @param domain The remote domain of the validator set.
69
+ * @param threshold The new quorum threshold.
70
+ */
71
+ event ThresholdSet(uint32 indexed domain, uint8 threshold);
72
+
73
+ /**
74
+ * @notice Emitted when the validator set or threshold changes.
75
+ * @param domain The remote domain of the validator set.
76
+ * @param commitment A commitment to the validator set and threshold.
77
+ */
78
+ event CommitmentUpdated(uint32 domain, bytes32 commitment);
79
+
80
+ // ============ Constructor ============
81
+
82
+ // solhint-disable-next-line no-empty-blocks
83
+ constructor() Ownable() {}
84
+
85
+ // ============ External Functions ============
86
+
87
+ /**
88
+ * @notice Enrolls multiple validators into a validator set.
89
+ * @dev Reverts if `_validator` is already in the validator set.
90
+ * @param _domains The remote domains of the validator sets.
91
+ * @param _validators The validators to add to the validator sets.
92
+ * @dev _validators[i] are the validators to enroll for _domains[i].
93
+ */
94
+ function enrollValidators(
95
+ uint32[] calldata _domains,
96
+ address[][] calldata _validators
97
+ ) external onlyOwner {
98
+ require(_domains.length == _validators.length, "!length");
99
+ for (uint256 i = 0; i < _domains.length; i += 1) {
100
+ address[] calldata _domainValidators = _validators[i];
101
+ for (uint256 j = 0; j < _domainValidators.length; j += 1) {
102
+ _enrollValidator(_domains[i], _domainValidators[j]);
103
+ }
104
+ _updateCommitment(_domains[i]);
105
+ }
106
+ }
107
+
108
+ /**
109
+ * @notice Enrolls a validator into a validator set.
110
+ * @dev Reverts if `_validator` is already in the validator set.
111
+ * @param _domain The remote domain of the validator set.
112
+ * @param _validator The validator to add to the validator set.
113
+ */
114
+ function enrollValidator(uint32 _domain, address _validator)
115
+ external
116
+ onlyOwner
117
+ {
118
+ _enrollValidator(_domain, _validator);
119
+ _updateCommitment(_domain);
120
+ }
121
+
122
+ /**
123
+ * @notice Unenrolls a validator from a validator set.
124
+ * @dev Reverts if `_validator` is not in the validator set.
125
+ * @param _domain The remote domain of the validator set.
126
+ * @param _validator The validator to remove from the validator set.
127
+ */
128
+ function unenrollValidator(uint32 _domain, address _validator)
129
+ external
130
+ onlyOwner
131
+ {
132
+ require(validatorSet[_domain].remove(_validator), "!enrolled");
133
+ uint256 _validatorCount = validatorCount(_domain);
134
+ require(
135
+ _validatorCount >= threshold[_domain],
136
+ "violates quorum threshold"
137
+ );
138
+ _updateCommitment(_domain);
139
+ emit ValidatorUnenrolled(_domain, _validator, _validatorCount);
140
+ }
141
+
142
+ /**
143
+ * @notice Sets the quorum threshold for multiple domains.
144
+ * @param _domains The remote domains of the validator sets.
145
+ * @param _thresholds The new quorum thresholds.
146
+ */
147
+ function setThresholds(
148
+ uint32[] calldata _domains,
149
+ uint8[] calldata _thresholds
150
+ ) external onlyOwner {
151
+ require(_domains.length == _thresholds.length, "!length");
152
+ for (uint256 i = 0; i < _domains.length; i += 1) {
153
+ setThreshold(_domains[i], _thresholds[i]);
154
+ }
155
+ }
156
+
157
+ /**
158
+ * @notice Returns whether an address is enrolled in a validator set.
159
+ * @param _domain The remote domain of the validator set.
160
+ * @param _address The address to test for set membership.
161
+ * @return True if the address is enrolled, false otherwise.
162
+ */
163
+ function isEnrolled(uint32 _domain, address _address)
164
+ external
165
+ view
166
+ returns (bool)
167
+ {
168
+ EnumerableSet.AddressSet storage _validatorSet = validatorSet[_domain];
169
+ return _validatorSet.contains(_address);
170
+ }
171
+
172
+ // ============ Public Functions ============
173
+
174
+ /**
175
+ * @notice Sets the quorum threshold.
176
+ * @param _domain The remote domain of the validator set.
177
+ * @param _threshold The new quorum threshold.
178
+ */
179
+ function setThreshold(uint32 _domain, uint8 _threshold) public onlyOwner {
180
+ require(
181
+ _threshold > 0 && _threshold <= validatorCount(_domain),
182
+ "!range"
183
+ );
184
+ threshold[_domain] = _threshold;
185
+ emit ThresholdSet(_domain, _threshold);
186
+
187
+ _updateCommitment(_domain);
188
+ }
189
+
190
+ /**
191
+ * @notice Verifies that a quorum of the origin domain's validators signed
192
+ * a checkpoint, and verifies the merkle proof of `_message` against that
193
+ * checkpoint.
194
+ * @param _metadata ABI encoded module metadata (see MultisigIsmMetadata.sol)
195
+ * @param _message Formatted Hyperlane message (see Message.sol).
196
+ */
197
+ function verify(bytes calldata _metadata, bytes calldata _message)
198
+ public
199
+ view
200
+ returns (bool)
201
+ {
202
+ require(_verifyMerkleProof(_metadata, _message), "!merkle");
203
+ require(_verifyValidatorSignatures(_metadata, _message), "!sigs");
204
+ return true;
205
+ }
206
+
207
+ /**
208
+ * @notice Gets the current validator set
209
+ * @param _domain The remote domain of the validator set.
210
+ * @return The addresses of the validator set.
211
+ */
212
+ function validators(uint32 _domain) public view returns (address[] memory) {
213
+ EnumerableSet.AddressSet storage _validatorSet = validatorSet[_domain];
214
+ uint256 _validatorCount = _validatorSet.length();
215
+ address[] memory _validators = new address[](_validatorCount);
216
+ for (uint256 i = 0; i < _validatorCount; i++) {
217
+ _validators[i] = _validatorSet.at(i);
218
+ }
219
+ return _validators;
220
+ }
221
+
222
+ /**
223
+ * @notice Returns the number of validators enrolled in the validator set.
224
+ * @param _domain The remote domain of the validator set.
225
+ * @return The number of validators enrolled in the validator set.
226
+ */
227
+ function validatorCount(uint32 _domain) public view returns (uint256) {
228
+ return validatorSet[_domain].length();
229
+ }
230
+
231
+ // ============ Internal Functions ============
232
+
233
+ /**
234
+ * @notice Enrolls a validator into a validator set.
235
+ * @dev Reverts if `_validator` is already in the validator set.
236
+ * @param _domain The remote domain of the validator set.
237
+ * @param _validator The validator to add to the validator set.
238
+ */
239
+ function _enrollValidator(uint32 _domain, address _validator) internal {
240
+ require(_validator != address(0), "zero address");
241
+ require(validatorSet[_domain].add(_validator), "already enrolled");
242
+ emit ValidatorEnrolled(_domain, _validator, validatorCount(_domain));
243
+ }
244
+
245
+ /**
246
+ * @notice Updates the commitment to the validator set for `_domain`.
247
+ * @param _domain The remote domain of the validator set.
248
+ * @return The commitment to the validator set for `_domain`.
249
+ */
250
+ function _updateCommitment(uint32 _domain) internal returns (bytes32) {
251
+ address[] memory _validators = validators(_domain);
252
+ uint8 _threshold = threshold[_domain];
253
+ bytes32 _commitment = keccak256(
254
+ abi.encodePacked(_threshold, _validators)
255
+ );
256
+ commitment[_domain] = _commitment;
257
+ emit CommitmentUpdated(_domain, _commitment);
258
+ return _commitment;
259
+ }
260
+
261
+ /**
262
+ * @notice Verifies the merkle proof of `_message` against the provided
263
+ * checkpoint.
264
+ * @param _metadata ABI encoded module metadata (see MultisigIsmMetadata.sol)
265
+ * @param _message Formatted Hyperlane message (see Message.sol).
266
+ */
267
+ function _verifyMerkleProof(
268
+ bytes calldata _metadata,
269
+ bytes calldata _message
270
+ ) internal pure returns (bool) {
271
+ // calculate the expected root based on the proof
272
+ bytes32 _calculatedRoot = MerkleLib.branchRoot(
273
+ _message.id(),
274
+ _metadata.proof(),
275
+ _message.nonce()
276
+ );
277
+ return _calculatedRoot == _metadata.root();
278
+ }
279
+
280
+ /**
281
+ * @notice Verifies that a quorum of the origin domain's validators signed
282
+ * the provided checkpoint.
283
+ * @param _metadata ABI encoded module metadata (see MultisigIsmMetadata.sol)
284
+ * @param _message Formatted Hyperlane message (see Message.sol).
285
+ */
286
+ function _verifyValidatorSignatures(
287
+ bytes calldata _metadata,
288
+ bytes calldata _message
289
+ ) internal view returns (bool) {
290
+ uint8 _threshold = _metadata.threshold();
291
+ bytes32 _digest;
292
+ {
293
+ uint32 _origin = _message.origin();
294
+
295
+ bytes32 _commitment = keccak256(
296
+ abi.encodePacked(_threshold, _metadata.validators())
297
+ );
298
+ // Ensures the validator set encoded in the metadata matches
299
+ // what we've stored on chain.
300
+ // NB: An empty validator set in `_metadata` will result in a
301
+ // non-zero computed commitment, and this check will fail
302
+ // as the commitment in storage will be zero.
303
+ require(_commitment == commitment[_origin], "!commitment");
304
+ _digest = _getCheckpointDigest(_metadata, _origin);
305
+ }
306
+ uint256 _validatorCount = _metadata.validatorCount();
307
+ uint256 _validatorIndex = 0;
308
+ // Assumes that signatures are ordered by validator
309
+ for (uint256 i = 0; i < _threshold; ++i) {
310
+ address _signer = ECDSA.recover(_digest, _metadata.signatureAt(i));
311
+ // Loop through remaining validators until we find a match
312
+ for (
313
+ ;
314
+ _validatorIndex < _validatorCount &&
315
+ _signer != _metadata.validatorAt(_validatorIndex);
316
+ ++_validatorIndex
317
+ ) {}
318
+ // Fail if we never found a match
319
+ require(_validatorIndex < _validatorCount, "!threshold");
320
+ ++_validatorIndex;
321
+ }
322
+ return true;
323
+ }
324
+
325
+ /**
326
+ * @notice Returns the domain hash that validators are expected to use
327
+ * when signing checkpoints.
328
+ * @param _origin The origin domain of the checkpoint.
329
+ * @param _originMailbox The address of the origin mailbox as bytes32.
330
+ * @return The domain hash.
331
+ */
332
+ function _getDomainHash(uint32 _origin, bytes32 _originMailbox)
333
+ internal
334
+ pure
335
+ returns (bytes32)
336
+ {
337
+ // Including the origin mailbox address in the signature allows the slashing
338
+ // protocol to enroll multiple mailboxes. Otherwise, a valid signature for
339
+ // mailbox A would be indistinguishable from a fraudulent signature for mailbox
340
+ // B.
341
+ // The slashing protocol should slash if validators sign attestations for
342
+ // anything other than a whitelisted mailbox.
343
+ return
344
+ keccak256(abi.encodePacked(_origin, _originMailbox, "HYPERLANE"));
345
+ }
346
+
347
+ /**
348
+ * @notice Returns the digest validators are expected to sign when signing checkpoints.
349
+ * @param _metadata ABI encoded module metadata (see MultisigIsmMetadata.sol)
350
+ * @param _origin The origin domain of the checkpoint.
351
+ * @return The digest of the checkpoint.
352
+ */
353
+ function _getCheckpointDigest(bytes calldata _metadata, uint32 _origin)
354
+ internal
355
+ pure
356
+ returns (bytes32)
357
+ {
358
+ bytes32 _domainHash = _getDomainHash(
359
+ _origin,
360
+ _metadata.originMailbox()
361
+ );
362
+ return
363
+ ECDSA.toEthSignedMessageHash(
364
+ keccak256(
365
+ abi.encodePacked(
366
+ _domainHash,
367
+ _metadata.root(),
368
+ _metadata.index()
369
+ )
370
+ )
371
+ );
372
+ }
373
+ }