@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
@@ -3,30 +3,35 @@ pragma solidity >=0.6.11;
3
3
 
4
4
  // ============ Internal Imports ============
5
5
  import {IInterchainGasPaymaster} from "../interfaces/IInterchainGasPaymaster.sol";
6
- import {IOutbox} from "../interfaces/IOutbox.sol";
7
- import {IAbacusConnectionManager} from "../interfaces/IAbacusConnectionManager.sol";
6
+ import {ISpecifiesInterchainSecurityModule, IInterchainSecurityModule} from "../interfaces/IInterchainSecurityModule.sol";
7
+ import {IMailbox} from "../interfaces/IMailbox.sol";
8
8
 
9
9
  // ============ External Imports ============
10
10
  import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
11
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
11
12
 
12
- abstract contract AbacusConnectionClient is OwnableUpgradeable {
13
+ abstract contract HyperlaneConnectionClient is
14
+ OwnableUpgradeable,
15
+ ISpecifiesInterchainSecurityModule
16
+ {
13
17
  // ============ Mutable Storage ============
14
18
 
15
- IAbacusConnectionManager public abacusConnectionManager;
19
+ IMailbox public mailbox;
16
20
  // Interchain Gas Paymaster contract. The relayer associated with this contract
17
- // must be willing to relay messages dispatched from the current Outbox contract,
21
+ // must be willing to relay messages dispatched from the current Mailbox contract,
18
22
  // otherwise payments made to the paymaster will not result in relayed messages.
19
23
  IInterchainGasPaymaster public interchainGasPaymaster;
20
24
 
25
+ IInterchainSecurityModule public interchainSecurityModule;
26
+
21
27
  uint256[48] private __GAP; // gap for upgrade safety
22
28
 
23
29
  // ============ Events ============
24
-
25
30
  /**
26
- * @notice Emitted when a new abacusConnectionManager is set.
27
- * @param abacusConnectionManager The address of the abacusConnectionManager contract
31
+ * @notice Emitted when a new mailbox is set.
32
+ * @param mailbox The address of the mailbox contract
28
33
  */
29
- event AbacusConnectionManagerSet(address indexed abacusConnectionManager);
34
+ event MailboxSet(address indexed mailbox);
30
35
 
31
36
  /**
32
37
  * @notice Emitted when a new Interchain Gas Paymaster is set.
@@ -34,45 +39,64 @@ abstract contract AbacusConnectionClient is OwnableUpgradeable {
34
39
  */
35
40
  event InterchainGasPaymasterSet(address indexed interchainGasPaymaster);
36
41
 
42
+ event InterchainSecurityModuleSet(address indexed module);
43
+
37
44
  // ============ Modifiers ============
38
45
 
39
46
  /**
40
- * @notice Only accept messages from an Abacus Inbox contract
47
+ * @notice Only accept messages from an Hyperlane Mailbox contract
41
48
  */
42
- modifier onlyInbox() {
43
- require(_isInbox(msg.sender), "!inbox");
49
+ modifier onlyMailbox() {
50
+ require(msg.sender == address(mailbox), "!mailbox");
51
+ _;
52
+ }
53
+
54
+ /**
55
+ * @notice Only accept addresses that at least have contract code
56
+ */
57
+ modifier onlyContract(address _contract) {
58
+ require(Address.isContract(_contract), "!contract");
44
59
  _;
45
60
  }
46
61
 
47
62
  // ======== Initializer =========
48
63
 
49
- function __AbacusConnectionClient_initialize(
50
- address _abacusConnectionManager
51
- ) internal onlyInitializing {
52
- _setAbacusConnectionManager(_abacusConnectionManager);
64
+ function __HyperlaneConnectionClient_initialize(address _mailbox)
65
+ internal
66
+ onlyInitializing
67
+ {
68
+ _setMailbox(_mailbox);
53
69
  __Ownable_init();
54
70
  }
55
71
 
56
- function __AbacusConnectionClient_initialize(
57
- address _abacusConnectionManager,
72
+ function __HyperlaneConnectionClient_initialize(
73
+ address _mailbox,
58
74
  address _interchainGasPaymaster
59
75
  ) internal onlyInitializing {
60
76
  _setInterchainGasPaymaster(_interchainGasPaymaster);
61
- __AbacusConnectionClient_initialize(_abacusConnectionManager);
77
+ __HyperlaneConnectionClient_initialize(_mailbox);
78
+ }
79
+
80
+ function __HyperlaneConnectionClient_initialize(
81
+ address _mailbox,
82
+ address _interchainGasPaymaster,
83
+ address _interchainSecurityModule
84
+ ) internal onlyInitializing {
85
+ _setInterchainSecurityModule(_interchainSecurityModule);
86
+ __HyperlaneConnectionClient_initialize(
87
+ _mailbox,
88
+ _interchainGasPaymaster
89
+ );
62
90
  }
63
91
 
64
92
  // ============ External functions ============
65
93
 
66
94
  /**
67
- * @notice Sets the address of the application's AbacusConnectionManager.
68
- * @param _abacusConnectionManager The address of the AbacusConnectionManager contract.
95
+ * @notice Sets the address of the application's Mailbox.
96
+ * @param _mailbox The address of the Mailbox contract.
69
97
  */
70
- function setAbacusConnectionManager(address _abacusConnectionManager)
71
- external
72
- virtual
73
- onlyOwner
74
- {
75
- _setAbacusConnectionManager(_abacusConnectionManager);
98
+ function setMailbox(address _mailbox) external virtual onlyOwner {
99
+ _setMailbox(_mailbox);
76
100
  }
77
101
 
78
102
  /**
@@ -87,6 +111,14 @@ abstract contract AbacusConnectionClient is OwnableUpgradeable {
87
111
  _setInterchainGasPaymaster(_interchainGasPaymaster);
88
112
  }
89
113
 
114
+ function setInterchainSecurityModule(address _module)
115
+ external
116
+ virtual
117
+ onlyOwner
118
+ {
119
+ _setInterchainSecurityModule(_module);
120
+ }
121
+
90
122
  // ============ Internal functions ============
91
123
 
92
124
  /**
@@ -95,6 +127,7 @@ abstract contract AbacusConnectionClient is OwnableUpgradeable {
95
127
  */
96
128
  function _setInterchainGasPaymaster(address _interchainGasPaymaster)
97
129
  internal
130
+ onlyContract(_interchainGasPaymaster)
98
131
  {
99
132
  interchainGasPaymaster = IInterchainGasPaymaster(
100
133
  _interchainGasPaymaster
@@ -103,39 +136,19 @@ abstract contract AbacusConnectionClient is OwnableUpgradeable {
103
136
  }
104
137
 
105
138
  /**
106
- * @notice Modify the contract the Application uses to validate Inbox contracts
107
- * @param _abacusConnectionManager The address of the abacusConnectionManager contract
108
- */
109
- function _setAbacusConnectionManager(address _abacusConnectionManager)
110
- internal
111
- {
112
- abacusConnectionManager = IAbacusConnectionManager(
113
- _abacusConnectionManager
114
- );
115
- emit AbacusConnectionManagerSet(_abacusConnectionManager);
116
- }
117
-
118
- /**
119
- * @notice Get the local Outbox contract from the abacusConnectionManager
120
- * @return The local Outbox contract
121
- */
122
- function _outbox() internal view returns (IOutbox) {
123
- return abacusConnectionManager.outbox();
124
- }
125
-
126
- /**
127
- * @notice Determine whether _potentialInbox is an enrolled Inbox from the abacusConnectionManager
128
- * @return True if _potentialInbox is an enrolled Inbox
139
+ * @notice Modify the contract the Application uses to validate Mailbox contracts
140
+ * @param _mailbox The address of the mailbox contract
129
141
  */
130
- function _isInbox(address _potentialInbox) internal view returns (bool) {
131
- return abacusConnectionManager.isInbox(_potentialInbox);
142
+ function _setMailbox(address _mailbox) internal onlyContract(_mailbox) {
143
+ mailbox = IMailbox(_mailbox);
144
+ emit MailboxSet(_mailbox);
132
145
  }
133
146
 
134
- /**
135
- * @notice Get the local domain from the abacusConnectionManager
136
- * @return The local domain
137
- */
138
- function _localDomain() internal view virtual returns (uint32) {
139
- return abacusConnectionManager.localDomain();
147
+ function _setInterchainSecurityModule(address _module)
148
+ internal
149
+ onlyContract(_module)
150
+ {
151
+ interchainSecurityModule = IInterchainSecurityModule(_module);
152
+ emit InterchainSecurityModuleSet(_module);
140
153
  }
141
154
  }
@@ -16,11 +16,15 @@ contract InterchainGasPaymaster is IInterchainGasPaymaster, OwnableUpgradeable {
16
16
 
17
17
  /**
18
18
  * @notice Emitted when a payment is made for a message's gas costs.
19
- * @param outbox The address of the Outbox contract.
20
- * @param leafIndex The index of the message in the Outbox merkle tree.
21
- * @param amount The amount of native tokens paid.
19
+ * @param messageId The ID of the message to pay for.
20
+ * @param gasAmount The amount of destination gas paid for.
21
+ * @param payment The amount of native tokens paid.
22
22
  */
23
- event GasPayment(address indexed outbox, uint256 leafIndex, uint256 amount);
23
+ event GasPayment(
24
+ bytes32 indexed messageId,
25
+ uint256 gasAmount,
26
+ uint256 payment
27
+ );
24
28
 
25
29
  // ============ Constructor ============
26
30
 
@@ -38,21 +42,24 @@ contract InterchainGasPaymaster is IInterchainGasPaymaster, OwnableUpgradeable {
38
42
  /**
39
43
  * @notice Deposits msg.value as a payment for the relaying of a message
40
44
  * to its destination chain.
41
- * @param _outbox The address of the Outbox contract.
42
- * @param _leafIndex The index of the message in the Outbox merkle tree.
45
+ * @param _messageId The ID of the message to pay for.
43
46
  * @param _destinationDomain The domain of the message's destination chain.
47
+ * @param _gasAmount The amount of destination gas to pay for. Currently unused.
48
+ * @param _refundAddress The address to refund any overpayment to. Currently unused.
44
49
  */
45
- function payGasFor(
46
- address _outbox,
47
- uint256 _leafIndex,
48
- uint32 _destinationDomain
50
+ function payForGas(
51
+ bytes32 _messageId,
52
+ uint32 _destinationDomain,
53
+ uint256 _gasAmount,
54
+ address _refundAddress
49
55
  ) external payable override {
50
56
  // Silence compiler warning. The NatSpec @param requires the parameter to be named.
51
- // While not used at the moment, future versions of the paymaster may conditionally
52
- // forward payments depending on the destination domain.
57
+ // While not used at the moment, future versions of the paymaster have behavior specific
58
+ // to the destination domain and refund overpayments to the _refundAddress.
53
59
  _destinationDomain;
60
+ _refundAddress;
54
61
 
55
- emit GasPayment(_outbox, _leafIndex, msg.value);
62
+ emit GasPayment(_messageId, _gasAmount, msg.value);
56
63
  }
57
64
 
58
65
  /**
@@ -2,92 +2,292 @@
2
2
  pragma solidity >=0.8.0;
3
3
 
4
4
  // ============ Internal Imports ============
5
+ import {Versioned} from "./upgrade/Versioned.sol";
6
+ import {MerkleLib} from "./libs/Merkle.sol";
7
+ import {Message} from "./libs/Message.sol";
8
+ import {TypeCasts} from "./libs/TypeCasts.sol";
9
+ import {IMessageRecipient} from "../interfaces/IMessageRecipient.sol";
10
+ import {IInterchainSecurityModule, ISpecifiesInterchainSecurityModule} from "../interfaces/IInterchainSecurityModule.sol";
5
11
  import {IMailbox} from "../interfaces/IMailbox.sol";
12
+ import {PausableReentrancyGuardUpgradeable} from "./PausableReentrancyGuard.sol";
13
+
6
14
  // ============ External Imports ============
7
- import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
8
15
  import {Address} from "@openzeppelin/contracts/utils/Address.sol";
16
+ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
17
+
18
+ contract Mailbox is
19
+ IMailbox,
20
+ OwnableUpgradeable,
21
+ PausableReentrancyGuardUpgradeable,
22
+ Versioned
23
+ {
24
+ // ============ Libraries ============
25
+
26
+ using MerkleLib for MerkleLib.Tree;
27
+ using Message for bytes;
28
+ using TypeCasts for bytes32;
29
+ using TypeCasts for address;
9
30
 
10
- /**
11
- * @title Mailbox
12
- * @author Celo Labs Inc.
13
- * @notice Shared utilities between Outbox and Inbox.
14
- */
15
- abstract contract Mailbox is IMailbox, OwnableUpgradeable {
16
- // ============ Immutable Variables ============
31
+ // ============ Constants ============
17
32
 
33
+ // Maximum bytes per message = 2 KiB (somewhat arbitrarily set to begin)
34
+ uint256 public constant MAX_MESSAGE_BODY_BYTES = 2 * 2**10;
18
35
  // Domain of chain on which the contract is deployed
19
- uint32 public immutable override localDomain;
36
+ uint32 public immutable localDomain;
20
37
 
21
- // ============ Public Variables ============
38
+ // ============ Public Storage ============
22
39
 
23
- // Address of the validator manager contract.
24
- address public validatorManager;
40
+ // The default ISM, used if the recipient fails to specify one.
41
+ IInterchainSecurityModule public defaultIsm;
42
+ // An incremental merkle tree used to store outbound message IDs.
43
+ MerkleLib.Tree public tree;
44
+ // Mapping of message ID to whether or not that message has been delivered.
45
+ mapping(bytes32 => bool) public delivered;
25
46
 
26
47
  // ============ Upgrade Gap ============
27
48
 
28
49
  // gap for upgrade safety
29
- uint256[49] private __GAP;
50
+ uint256[47] private __GAP;
30
51
 
31
52
  // ============ Events ============
32
53
 
33
54
  /**
34
- * @notice Emitted when the validator manager contract is changed
35
- * @param validatorManager The address of the new validatorManager
55
+ * @notice Emitted when the default ISM is updated
56
+ * @param module The new default ISM
36
57
  */
37
- event ValidatorManagerSet(address validatorManager);
58
+ event DefaultIsmSet(address indexed module);
38
59
 
39
- // ============ Modifiers ============
60
+ /**
61
+ * @notice Emitted when a new message is dispatched via Hyperlane
62
+ * @param sender The address that dispatched the message
63
+ * @param destination The destination domain of the message
64
+ * @param recipient The message recipient address on `destination`
65
+ * @param message Raw bytes of message
66
+ */
67
+ event Dispatch(
68
+ address indexed sender,
69
+ uint32 indexed destination,
70
+ bytes32 indexed recipient,
71
+ bytes message
72
+ );
40
73
 
41
74
  /**
42
- * @notice Ensures that a function is called by the validator manager contract.
75
+ * @notice Emitted when a new message is dispatched via Hyperlane
76
+ * @param messageId The unique message identifier
43
77
  */
44
- modifier onlyValidatorManager() {
45
- require(msg.sender == validatorManager, "!validatorManager");
46
- _;
47
- }
78
+ event DispatchId(bytes32 indexed messageId);
79
+
80
+ /**
81
+ * @notice Emitted when a Hyperlane message is processed
82
+ * @param messageId The unique message identifier
83
+ */
84
+ event ProcessId(bytes32 indexed messageId);
85
+
86
+ /**
87
+ * @notice Emitted when a Hyperlane message is delivered
88
+ * @param origin The origin domain of the message
89
+ * @param sender The message sender address on `origin`
90
+ * @param recipient The address that handled the message
91
+ */
92
+ event Process(
93
+ uint32 indexed origin,
94
+ bytes32 indexed sender,
95
+ address indexed recipient
96
+ );
97
+
98
+ /**
99
+ * @notice Emitted when Mailbox is paused
100
+ */
101
+ event Paused();
102
+
103
+ /**
104
+ * @notice Emitted when Mailbox is unpaused
105
+ */
106
+ event Unpaused();
48
107
 
49
108
  // ============ Constructor ============
50
109
 
110
+ // solhint-disable-next-line no-empty-blocks
51
111
  constructor(uint32 _localDomain) {
52
112
  localDomain = _localDomain;
53
113
  }
54
114
 
55
115
  // ============ Initializer ============
56
116
 
57
- function __Mailbox_initialize(address _validatorManager)
58
- internal
59
- onlyInitializing
60
- {
61
- // initialize owner
117
+ function initialize(address _defaultIsm) external initializer {
118
+ __PausableReentrancyGuard_init();
62
119
  __Ownable_init();
63
- _setValidatorManager(_validatorManager);
120
+ _setDefaultIsm(_defaultIsm);
64
121
  }
65
122
 
66
123
  // ============ External Functions ============
67
124
 
68
125
  /**
69
- * @notice Set a new validator manager contract
70
- * @dev Mailbox(es) will initially be initialized using a trusted validator manager contract;
71
- * we will progressively decentralize by swapping the trusted contract with a new implementation
72
- * that implements Validator bonding & slashing, and rules for Validator selection & rotation
73
- * @param _validatorManager the new validator manager contract
126
+ * @notice Sets the default ISM for the Mailbox.
127
+ * @param _module The new default ISM. Must be a contract.
74
128
  */
75
- function setValidatorManager(address _validatorManager) external onlyOwner {
76
- _setValidatorManager(_validatorManager);
129
+ function setDefaultIsm(address _module) external onlyOwner {
130
+ _setDefaultIsm(_module);
77
131
  }
78
132
 
79
- // ============ Internal Functions ============
133
+ /**
134
+ * @notice Dispatches a message to the destination domain & recipient.
135
+ * @param _destinationDomain Domain of destination chain
136
+ * @param _recipientAddress Address of recipient on destination chain as bytes32
137
+ * @param _messageBody Raw bytes content of message body
138
+ * @return The message ID inserted into the Mailbox's merkle tree
139
+ */
140
+ function dispatch(
141
+ uint32 _destinationDomain,
142
+ bytes32 _recipientAddress,
143
+ bytes calldata _messageBody
144
+ ) external override notPaused returns (bytes32) {
145
+ require(_messageBody.length <= MAX_MESSAGE_BODY_BYTES, "msg too long");
146
+ // Format the message into packed bytes.
147
+ bytes memory _message = Message.formatMessage(
148
+ VERSION,
149
+ count(),
150
+ localDomain,
151
+ msg.sender.addressToBytes32(),
152
+ _destinationDomain,
153
+ _recipientAddress,
154
+ _messageBody
155
+ );
156
+
157
+ // Insert the message ID into the merkle tree.
158
+ bytes32 _id = _message.id();
159
+ tree.insert(_id);
160
+ emit Dispatch(
161
+ msg.sender,
162
+ _destinationDomain,
163
+ _recipientAddress,
164
+ _message
165
+ );
166
+ emit DispatchId(_id);
167
+ return _id;
168
+ }
80
169
 
81
170
  /**
82
- * @notice Set the validator manager
83
- * @param _validatorManager Address of the validator manager
171
+ * @notice Attempts to deliver `_message` to its recipient. Verifies
172
+ * `_message` via the recipient's ISM using the provided `_metadata`.
173
+ * @param _metadata Metadata used by the ISM to verify `_message`.
174
+ * @param _message Formatted Hyperlane message (refer to Message.sol).
84
175
  */
85
- function _setValidatorManager(address _validatorManager) internal {
86
- require(
87
- Address.isContract(_validatorManager),
88
- "!contract validatorManager"
176
+ function process(bytes calldata _metadata, bytes calldata _message)
177
+ external
178
+ override
179
+ nonReentrantAndNotPaused
180
+ {
181
+ // Check that the message was intended for this mailbox.
182
+ require(_message.version() == VERSION, "!version");
183
+ require(_message.destination() == localDomain, "!destination");
184
+
185
+ // Check that the message hasn't already been delivered.
186
+ bytes32 _id = _message.id();
187
+ require(delivered[_id] == false, "delivered");
188
+ delivered[_id] = true;
189
+
190
+ // Verify the message via the ISM.
191
+ IInterchainSecurityModule _ism = _recipientIsm(
192
+ ISpecifiesInterchainSecurityModule(_message.recipientAddress())
89
193
  );
90
- validatorManager = _validatorManager;
91
- emit ValidatorManagerSet(_validatorManager);
194
+ require(_ism.verify(_metadata, _message), "!module");
195
+
196
+ // Deliver the message to the recipient.
197
+ uint32 origin = _message.origin();
198
+ bytes32 sender = _message.sender();
199
+ address recipient = _message.recipientAddress();
200
+ IMessageRecipient(recipient).handle(origin, sender, _message.body());
201
+ emit Process(origin, sender, recipient);
202
+ emit ProcessId(_id);
203
+ }
204
+
205
+ // ============ Public Functions ============
206
+
207
+ /**
208
+ * @notice Calculates and returns tree's current root
209
+ */
210
+ function root() public view returns (bytes32) {
211
+ return tree.root();
212
+ }
213
+
214
+ /**
215
+ * @notice Returns the number of inserted leaves in the tree
216
+ */
217
+ function count() public view returns (uint32) {
218
+ // count cannot exceed 2**TREE_DEPTH, see MerkleLib.sol
219
+ return uint32(tree.count);
220
+ }
221
+
222
+ /**
223
+ * @notice Returns a checkpoint representing the current merkle tree.
224
+ * @return root The root of the Mailbox's merkle tree.
225
+ * @return index The index of the last element in the tree.
226
+ */
227
+ function latestCheckpoint() public view returns (bytes32, uint32) {
228
+ return (root(), count() - 1);
229
+ }
230
+
231
+ /**
232
+ * @notice Pauses mailbox and prevents further dispatch/process calls
233
+ * @dev Only `owner` can pause the mailbox.
234
+ */
235
+ function pause() external onlyOwner {
236
+ _pause();
237
+ emit Paused();
238
+ }
239
+
240
+ /**
241
+ * @notice Unpauses mailbox and allows for message processing.
242
+ * @dev Only `owner` can unpause the mailbox.
243
+ */
244
+ function unpause() external onlyOwner {
245
+ _unpause();
246
+ emit Unpaused();
247
+ }
248
+
249
+ /**
250
+ * @notice Returns whether mailbox is paused.
251
+ */
252
+ function isPaused() external view returns (bool) {
253
+ return _isPaused();
254
+ }
255
+
256
+ // ============ Internal Functions ============
257
+
258
+ /**
259
+ * @notice Sets the default ISM for the Mailbox.
260
+ * @param _module The new default ISM. Must be a contract.
261
+ */
262
+ function _setDefaultIsm(address _module) internal {
263
+ require(Address.isContract(_module), "!contract");
264
+ defaultIsm = IInterchainSecurityModule(_module);
265
+ emit DefaultIsmSet(_module);
266
+ }
267
+
268
+ /**
269
+ * @notice Returns the ISM to use for the recipient, defaulting to the
270
+ * default ISM if none is specified.
271
+ * @param _recipient The message recipient whose ISM should be returned.
272
+ * @return The ISM to use for `_recipient`.
273
+ */
274
+ function _recipientIsm(ISpecifiesInterchainSecurityModule _recipient)
275
+ internal
276
+ view
277
+ returns (IInterchainSecurityModule)
278
+ {
279
+ // Use a default interchainSecurityModule if one is not specified by the
280
+ // recipient.
281
+ // This is useful for backwards compatibility and for convenience as
282
+ // recipients are not mandated to specify an ISM.
283
+ try _recipient.interchainSecurityModule() returns (
284
+ IInterchainSecurityModule _val
285
+ ) {
286
+ // If the recipient specifies a zero address, use the default ISM.
287
+ if (address(_val) != address(0)) {
288
+ return _val;
289
+ }
290
+ } catch {}
291
+ return defaultIsm;
92
292
  }
93
293
  }
@@ -0,0 +1,69 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
+
6
+ // adapted from "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol";
7
+ abstract contract PausableReentrancyGuardUpgradeable is Initializable {
8
+ uint256 private constant _NOT_ENTERED = 1;
9
+ uint256 private constant _ENTERED = 2;
10
+ uint256 private constant _PAUSED = 3;
11
+
12
+ uint256 private _status;
13
+
14
+ /**
15
+ * @dev MUST be called for `nonReentrant` to not always revert
16
+ */
17
+ function __PausableReentrancyGuard_init() internal onlyInitializing {
18
+ _status = _NOT_ENTERED;
19
+ }
20
+
21
+ function _isPaused() internal view returns (bool) {
22
+ return _status == _PAUSED;
23
+ }
24
+
25
+ function _pause() internal notPaused {
26
+ _status = _PAUSED;
27
+ }
28
+
29
+ function _unpause() internal {
30
+ require(_isPaused(), "!paused");
31
+ _status = _NOT_ENTERED;
32
+ }
33
+
34
+ /**
35
+ * @dev Prevents a contract from being entered when paused.
36
+ */
37
+ modifier notPaused() {
38
+ require(!_isPaused(), "paused");
39
+ _;
40
+ }
41
+
42
+ /**
43
+ * @dev Prevents a contract from calling itself, directly or indirectly.
44
+ * Calling a `nonReentrant` function from another `nonReentrant`
45
+ * function is not supported. It is possible to prevent this from happening
46
+ * by making the `nonReentrant` function external, and making it call a
47
+ * `private` function that does the actual work.
48
+ */
49
+ modifier nonReentrantAndNotPaused() {
50
+ // status must have been initialized
51
+ require(_status == _NOT_ENTERED, "reentrant call (or paused)");
52
+
53
+ // Any calls to nonReentrant after this point will fail
54
+ _status = _ENTERED;
55
+
56
+ _;
57
+
58
+ // By storing the original value once again, a refund is triggered (see
59
+ // https://eips.ethereum.org/EIPS/eip-2200)
60
+ _status = _NOT_ENTERED;
61
+ }
62
+
63
+ /**
64
+ * @dev This empty reserved space is put in place to allow future versions to add new
65
+ * variables without shifting down storage in the inheritance chain.
66
+ * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps
67
+ */
68
+ uint256[49] private __gap;
69
+ }