@hyperlane-xyz/core 0.5.3 → 0.5.4-0

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 (614) hide show
  1. package/contracts/Call.sol +7 -0
  2. package/contracts/{AbacusConnectionClient.sol → HyperlaneConnectionClient.sol} +69 -56
  3. package/contracts/InterchainGasPaymaster.sol +9 -11
  4. package/contracts/Mailbox.sol +179 -44
  5. package/contracts/OwnableMulticall.sol +1 -5
  6. package/contracts/Router.sol +21 -45
  7. package/contracts/isms/MultisigIsm.sol +340 -0
  8. package/contracts/libs/Message.sol +107 -66
  9. package/contracts/libs/MultisigIsmMetadata.sol +187 -0
  10. package/contracts/middleware/InterchainAccountRouter.sol +9 -6
  11. package/contracts/middleware/InterchainQueryRouter.sol +15 -9
  12. package/contracts/middleware/{token-bridge/TokenBridgeRouter.sol → liquidity-layer/LiquidityLayerRouter.sol} +16 -17
  13. package/contracts/middleware/{token-bridge → liquidity-layer}/adapters/CircleBridgeAdapter.sol +14 -16
  14. package/contracts/middleware/{token-bridge/interfaces/ITokenBridgeAdapter.sol → liquidity-layer/interfaces/ILiquidityLayerAdapter.sol} +1 -1
  15. package/contracts/middleware/{token-bridge/interfaces/ITokenBridgeMessageRecipient.sol → liquidity-layer/interfaces/ILiquidityLayerMessageRecipient.sol} +1 -1
  16. package/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleBridge.sol +0 -0
  17. package/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleMessageTransmitter.sol +0 -0
  18. package/contracts/mock/MockCircleBridge.sol +38 -0
  19. package/contracts/mock/MockCircleMessageTransmitter.sol +43 -0
  20. package/contracts/mock/MockHyperlaneEnvironment.sol +60 -0
  21. package/contracts/mock/MockInterchainAccountRouter.sol +98 -0
  22. package/contracts/mock/MockMailbox.sol +79 -0
  23. package/contracts/test/TestHyperlaneConnectionClient.sol +14 -0
  24. package/contracts/test/TestIsm.sol +20 -0
  25. package/contracts/test/{TestTokenBridgeMessageRecipient.sol → TestLiquidityLayerMessageRecipient.sol} +2 -2
  26. package/contracts/test/TestMailbox.sol +34 -4
  27. package/contracts/test/TestMerkle.sol +9 -4
  28. package/contracts/test/TestMessage.sol +24 -12
  29. package/contracts/test/TestMultisigIsm.sol +23 -0
  30. package/contracts/test/TestQuerySender.sol +72 -0
  31. package/contracts/test/TestSendReceiver.sol +6 -15
  32. package/contracts/test/TestTokenRecipient.sol +2 -2
  33. package/dist/contracts/{AbacusConnectionClient.d.ts → HyperlaneConnectionClient.d.ts} +69 -36
  34. package/dist/contracts/HyperlaneConnectionClient.d.ts.map +1 -0
  35. package/dist/contracts/HyperlaneConnectionClient.js +4 -0
  36. package/dist/contracts/HyperlaneConnectionClient.js.map +1 -0
  37. package/dist/contracts/InterchainGasPaymaster.d.ts +11 -13
  38. package/dist/contracts/InterchainGasPaymaster.d.ts.map +1 -1
  39. package/dist/contracts/Mailbox.d.ts +151 -28
  40. package/dist/contracts/Mailbox.d.ts.map +1 -1
  41. package/dist/contracts/OwnableSpecifiesISM.d.ts +134 -0
  42. package/dist/contracts/OwnableSpecifiesISM.d.ts.map +1 -0
  43. package/dist/contracts/{middleware/token-bridge/TokenBridgeRouter.js → OwnableSpecifiesISM.js} +1 -1
  44. package/dist/contracts/OwnableSpecifiesISM.js.map +1 -0
  45. package/dist/contracts/Router.d.ts +65 -32
  46. package/dist/contracts/Router.d.ts.map +1 -1
  47. package/dist/contracts/index.d.ts +3 -7
  48. package/dist/contracts/index.d.ts.map +1 -1
  49. package/dist/contracts/isms/MultisigIsm.d.ts +235 -0
  50. package/dist/contracts/isms/MultisigIsm.d.ts.map +1 -0
  51. package/dist/contracts/{Inbox.js → isms/MultisigIsm.js} +1 -1
  52. package/dist/contracts/isms/MultisigIsm.js.map +1 -0
  53. package/dist/contracts/isms/index.d.ts +2 -0
  54. package/dist/contracts/isms/index.d.ts.map +1 -0
  55. package/dist/contracts/{middleware/token-bridge/adapters → isms}/index.js +0 -0
  56. package/dist/contracts/isms/index.js.map +1 -0
  57. package/dist/contracts/middleware/InterchainAccountRouter.d.ts +71 -38
  58. package/dist/contracts/middleware/InterchainAccountRouter.d.ts.map +1 -1
  59. package/dist/contracts/middleware/InterchainQueryRouter.d.ts +72 -39
  60. package/dist/contracts/middleware/InterchainQueryRouter.d.ts.map +1 -1
  61. package/dist/contracts/middleware/index.d.ts +2 -2
  62. package/dist/contracts/middleware/index.d.ts.map +1 -1
  63. package/dist/contracts/middleware/{token-bridge/TokenBridgeRouter.d.ts → liquidity-layer/LiquidityLayerRouter.d.ts} +103 -70
  64. package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts.map +1 -0
  65. package/dist/contracts/{MerkleTreeManager.js → middleware/liquidity-layer/LiquidityLayerRouter.js} +1 -1
  66. package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.js.map +1 -0
  67. package/dist/contracts/middleware/{token-bridge → liquidity-layer}/adapters/CircleBridgeAdapter.d.ts +78 -45
  68. package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts.map +1 -0
  69. package/dist/contracts/middleware/{token-bridge → liquidity-layer}/adapters/CircleBridgeAdapter.js +0 -0
  70. package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.js.map +1 -0
  71. package/dist/contracts/middleware/{token-bridge → liquidity-layer}/adapters/index.d.ts +0 -0
  72. package/dist/contracts/middleware/liquidity-layer/adapters/index.d.ts.map +1 -0
  73. package/dist/contracts/middleware/{token-bridge/interfaces/circle → liquidity-layer/adapters}/index.js +0 -0
  74. package/dist/contracts/middleware/liquidity-layer/adapters/index.js.map +1 -0
  75. package/dist/contracts/middleware/{token-bridge → liquidity-layer}/index.d.ts +1 -1
  76. package/dist/contracts/middleware/liquidity-layer/index.d.ts.map +1 -0
  77. package/dist/contracts/middleware/{token-bridge → liquidity-layer}/index.js +0 -0
  78. package/dist/contracts/middleware/liquidity-layer/index.js.map +1 -0
  79. package/dist/contracts/middleware/{token-bridge/interfaces/ITokenBridgeAdapter.d.ts → liquidity-layer/interfaces/ILiquidityLayerAdapter.d.ts} +4 -4
  80. package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter.d.ts.map +1 -0
  81. package/dist/contracts/{AbacusConnectionClient.js → middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter.js} +1 -1
  82. package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter.js.map +1 -0
  83. package/dist/contracts/middleware/{token-bridge/interfaces/ITokenBridgeMessageRecipient.d.ts → liquidity-layer/interfaces/ILiquidityLayerMessageRecipient.d.ts} +4 -4
  84. package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient.d.ts.map +1 -0
  85. package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient.js +4 -0
  86. package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient.js.map +1 -0
  87. package/dist/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleBridge.d.ts +0 -0
  88. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge.d.ts.map +1 -0
  89. package/dist/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleBridge.js +0 -0
  90. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge.js.map +1 -0
  91. package/dist/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleMessageTransmitter.d.ts +0 -0
  92. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.d.ts.map +1 -0
  93. package/dist/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleMessageTransmitter.js +0 -0
  94. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.js.map +1 -0
  95. package/dist/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/index.d.ts +0 -0
  96. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/index.d.ts.map +1 -0
  97. package/dist/contracts/{validator-manager → middleware/liquidity-layer/interfaces/circle}/index.js +0 -0
  98. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/index.js.map +1 -0
  99. package/dist/contracts/middleware/liquidity-layer/interfaces/index.d.ts +5 -0
  100. package/dist/contracts/middleware/liquidity-layer/interfaces/index.d.ts.map +1 -0
  101. package/dist/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/index.js +0 -0
  102. package/dist/contracts/middleware/liquidity-layer/interfaces/index.js.map +1 -0
  103. package/dist/contracts/mock/MockCircleBridge.d.ts +86 -0
  104. package/dist/contracts/mock/MockCircleBridge.d.ts.map +1 -0
  105. package/dist/contracts/mock/MockCircleBridge.js +4 -0
  106. package/dist/contracts/mock/MockCircleBridge.js.map +1 -0
  107. package/dist/contracts/mock/MockCircleMessageTransmitter.d.ts +77 -0
  108. package/dist/contracts/mock/MockCircleMessageTransmitter.d.ts.map +1 -0
  109. package/dist/contracts/mock/MockCircleMessageTransmitter.js +4 -0
  110. package/dist/contracts/mock/MockCircleMessageTransmitter.js.map +1 -0
  111. package/dist/contracts/mock/{MockInbox.d.ts → MockHyperlaneEnvironment.d.ts} +33 -17
  112. package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts.map +1 -0
  113. package/dist/contracts/{AbacusConnectionManager.js → mock/MockHyperlaneEnvironment.js} +1 -1
  114. package/dist/contracts/mock/MockHyperlaneEnvironment.js.map +1 -0
  115. package/dist/contracts/mock/MockInterchainAccountRouter.d.ts +124 -0
  116. package/dist/contracts/mock/MockInterchainAccountRouter.d.ts.map +1 -0
  117. package/dist/contracts/mock/MockInterchainAccountRouter.js +4 -0
  118. package/dist/contracts/mock/MockInterchainAccountRouter.js.map +1 -0
  119. package/dist/contracts/mock/MockMailbox.d.ts +185 -0
  120. package/dist/contracts/mock/MockMailbox.d.ts.map +1 -0
  121. package/dist/contracts/mock/MockMailbox.js +4 -0
  122. package/dist/contracts/mock/MockMailbox.js.map +1 -0
  123. package/dist/contracts/mock/index.d.ts +5 -3
  124. package/dist/contracts/mock/index.d.ts.map +1 -1
  125. package/dist/contracts/test/{TestAbacusConnectionClient.d.ts → TestHyperlaneConnectionClient.d.ts} +69 -52
  126. package/dist/contracts/test/TestHyperlaneConnectionClient.d.ts.map +1 -0
  127. package/dist/contracts/test/TestHyperlaneConnectionClient.js +4 -0
  128. package/dist/contracts/test/TestHyperlaneConnectionClient.js.map +1 -0
  129. package/dist/contracts/test/TestIsm.d.ts +67 -0
  130. package/dist/contracts/test/TestIsm.d.ts.map +1 -0
  131. package/dist/contracts/{Outbox.js → test/TestIsm.js} +1 -1
  132. package/dist/contracts/test/TestIsm.js.map +1 -0
  133. package/dist/contracts/test/{TestTokenBridgeMessageRecipient.d.ts → TestLiquidityLayerMessageRecipient.d.ts} +4 -4
  134. package/dist/contracts/test/TestLiquidityLayerMessageRecipient.d.ts.map +1 -0
  135. package/dist/contracts/test/TestLiquidityLayerMessageRecipient.js +4 -0
  136. package/dist/contracts/test/TestLiquidityLayerMessageRecipient.js.map +1 -0
  137. package/dist/contracts/test/TestMailbox.d.ts +164 -33
  138. package/dist/contracts/test/TestMailbox.d.ts.map +1 -1
  139. package/dist/contracts/test/TestMessage.d.ts +30 -10
  140. package/dist/contracts/test/TestMessage.d.ts.map +1 -1
  141. package/dist/contracts/test/TestMultisigIsm.d.ts +251 -0
  142. package/dist/contracts/test/TestMultisigIsm.d.ts.map +1 -0
  143. package/dist/contracts/test/TestMultisigIsm.js +4 -0
  144. package/dist/contracts/test/TestMultisigIsm.js.map +1 -0
  145. package/dist/contracts/test/TestQuerySender.d.ts +215 -0
  146. package/dist/contracts/test/TestQuerySender.d.ts.map +1 -0
  147. package/dist/contracts/test/TestQuerySender.js +4 -0
  148. package/dist/contracts/test/TestQuerySender.js.map +1 -0
  149. package/dist/contracts/test/TestRouter.d.ts +65 -32
  150. package/dist/contracts/test/TestRouter.d.ts.map +1 -1
  151. package/dist/contracts/test/index.d.ts +5 -6
  152. package/dist/contracts/test/index.d.ts.map +1 -1
  153. package/dist/factories/contracts/{AbacusConnectionClient__factory.d.ts → HyperlaneConnectionClient__factory.d.ts} +5 -5
  154. package/dist/factories/contracts/HyperlaneConnectionClient__factory.d.ts.map +1 -0
  155. package/dist/factories/contracts/{AbacusConnectionClient__factory.js → HyperlaneConnectionClient__factory.js} +61 -22
  156. package/dist/factories/contracts/HyperlaneConnectionClient__factory.js.map +1 -0
  157. package/dist/factories/contracts/InterchainGasPaymaster__factory.d.ts +1 -1
  158. package/dist/factories/contracts/InterchainGasPaymaster__factory.d.ts.map +1 -1
  159. package/dist/factories/contracts/InterchainGasPaymaster__factory.js +7 -18
  160. package/dist/factories/contracts/InterchainGasPaymaster__factory.js.map +1 -1
  161. package/dist/factories/contracts/Mailbox__factory.d.ts +29 -13
  162. package/dist/factories/contracts/Mailbox__factory.d.ts.map +1 -1
  163. package/dist/factories/contracts/Mailbox__factory.js +239 -11
  164. package/dist/factories/contracts/Mailbox__factory.js.map +1 -1
  165. package/dist/factories/contracts/OwnableMulticall__factory.d.ts +1 -1
  166. package/dist/factories/contracts/OwnableMulticall__factory.js +1 -1
  167. package/dist/factories/contracts/OwnableSpecifiesISM__factory.d.ts +55 -0
  168. package/dist/factories/contracts/OwnableSpecifiesISM__factory.d.ts.map +1 -0
  169. package/dist/factories/contracts/OwnableSpecifiesISM__factory.js +145 -0
  170. package/dist/factories/contracts/OwnableSpecifiesISM__factory.js.map +1 -0
  171. package/dist/factories/contracts/Router__factory.d.ts.map +1 -1
  172. package/dist/factories/contracts/Router__factory.js +65 -26
  173. package/dist/factories/contracts/Router__factory.js.map +1 -1
  174. package/dist/factories/contracts/index.d.ts +2 -6
  175. package/dist/factories/contracts/index.d.ts.map +1 -1
  176. package/dist/factories/contracts/index.js +4 -12
  177. package/dist/factories/contracts/index.js.map +1 -1
  178. package/dist/factories/contracts/isms/MultisigIsm__factory.d.ts +55 -0
  179. package/dist/factories/contracts/isms/MultisigIsm__factory.d.ts.map +1 -0
  180. package/dist/factories/contracts/isms/MultisigIsm__factory.js +363 -0
  181. package/dist/factories/contracts/isms/MultisigIsm__factory.js.map +1 -0
  182. package/dist/factories/contracts/isms/index.d.ts +2 -0
  183. package/dist/factories/contracts/isms/index.d.ts.map +1 -0
  184. package/dist/factories/contracts/isms/index.js +9 -0
  185. package/dist/factories/contracts/isms/index.js.map +1 -0
  186. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -12
  187. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts.map +1 -1
  188. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +78 -33
  189. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js.map +1 -1
  190. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -12
  191. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts.map +1 -1
  192. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +81 -30
  193. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js.map +1 -1
  194. package/dist/factories/contracts/middleware/index.d.ts +1 -1
  195. package/dist/factories/contracts/middleware/index.d.ts.map +1 -1
  196. package/dist/factories/contracts/middleware/index.js +2 -2
  197. package/dist/factories/contracts/middleware/index.js.map +1 -1
  198. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +48 -0
  199. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts.map +1 -0
  200. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +419 -0
  201. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js.map +1 -0
  202. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +48 -0
  203. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts.map +1 -0
  204. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +623 -0
  205. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js.map +1 -0
  206. package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/adapters/index.d.ts +0 -0
  207. package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.d.ts.map +1 -0
  208. package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/adapters/index.js +0 -0
  209. package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.js.map +1 -0
  210. package/dist/factories/contracts/middleware/liquidity-layer/index.d.ts +4 -0
  211. package/dist/factories/contracts/middleware/liquidity-layer/index.d.ts.map +1 -0
  212. package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/index.js +3 -3
  213. package/dist/factories/contracts/middleware/liquidity-layer/index.js.map +1 -0
  214. package/dist/factories/{interfaces/IAbacusConnectionManager__factory.d.ts → contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter__factory.d.ts} +5 -5
  215. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter__factory.d.ts.map +1 -0
  216. package/dist/factories/contracts/middleware/{token-bridge/interfaces/ITokenBridgeAdapter__factory.js → liquidity-layer/interfaces/ILiquidityLayerAdapter__factory.js} +5 -5
  217. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter__factory.js.map +1 -0
  218. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient__factory.d.ts +19 -0
  219. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient__factory.d.ts.map +1 -0
  220. package/dist/factories/contracts/middleware/{token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.js → liquidity-layer/interfaces/ILiquidityLayerMessageRecipient__factory.js} +5 -5
  221. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient__factory.js.map +1 -0
  222. package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleBridge__factory.d.ts +1 -1
  223. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge__factory.d.ts.map +1 -0
  224. package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleBridge__factory.js +0 -0
  225. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge__factory.js.map +1 -0
  226. package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleMessageTransmitter__factory.d.ts +1 -1
  227. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter__factory.d.ts.map +1 -0
  228. package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleMessageTransmitter__factory.js +0 -0
  229. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter__factory.js.map +1 -0
  230. package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/index.d.ts +0 -0
  231. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/index.d.ts.map +1 -0
  232. package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/index.js +0 -0
  233. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/index.js.map +1 -0
  234. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.d.ts +4 -0
  235. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.d.ts.map +1 -0
  236. package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/index.js +5 -5
  237. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.js.map +1 -0
  238. package/dist/factories/contracts/mock/MockCircleBridge__factory.d.ts +59 -0
  239. package/dist/factories/contracts/mock/MockCircleBridge__factory.d.ts.map +1 -0
  240. package/dist/factories/contracts/mock/MockCircleBridge__factory.js +151 -0
  241. package/dist/factories/contracts/mock/MockCircleBridge__factory.js.map +1 -0
  242. package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.d.ts +45 -0
  243. package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.d.ts.map +1 -0
  244. package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.js +142 -0
  245. package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.js.map +1 -0
  246. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +45 -0
  247. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -0
  248. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +109 -0
  249. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -0
  250. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.d.ts +69 -0
  251. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.d.ts.map +1 -0
  252. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.js +181 -0
  253. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.js.map +1 -0
  254. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +45 -0
  255. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts.map +1 -0
  256. package/dist/factories/contracts/mock/MockMailbox__factory.js +252 -0
  257. package/dist/factories/contracts/mock/MockMailbox__factory.js.map +1 -0
  258. package/dist/factories/contracts/mock/index.d.ts +5 -3
  259. package/dist/factories/contracts/mock/index.d.ts.map +1 -1
  260. package/dist/factories/contracts/mock/index.js +11 -7
  261. package/dist/factories/contracts/mock/index.js.map +1 -1
  262. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.d.ts +55 -0
  263. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.d.ts.map +1 -0
  264. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js +249 -0
  265. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js.map +1 -0
  266. package/dist/factories/contracts/test/TestIsm__factory.d.ts +35 -0
  267. package/dist/factories/contracts/test/TestIsm__factory.d.ts.map +1 -0
  268. package/dist/factories/contracts/test/TestIsm__factory.js +91 -0
  269. package/dist/factories/contracts/test/TestIsm__factory.js.map +1 -0
  270. package/dist/factories/contracts/test/{TestTokenBridgeMessageRecipient__factory.d.ts → TestLiquidityLayerMessageRecipient__factory.d.ts} +11 -11
  271. package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.d.ts.map +1 -0
  272. package/dist/factories/contracts/test/{TestTokenBridgeMessageRecipient__factory.js → TestLiquidityLayerMessageRecipient__factory.js} +7 -7
  273. package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.js.map +1 -0
  274. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -8
  275. package/dist/factories/contracts/test/TestMailbox__factory.d.ts.map +1 -1
  276. package/dist/factories/contracts/test/TestMailbox__factory.js +235 -13
  277. package/dist/factories/contracts/test/TestMailbox__factory.js.map +1 -1
  278. package/dist/factories/contracts/test/TestMerkle__factory.d.ts +1 -1
  279. package/dist/factories/contracts/test/TestMerkle__factory.js +1 -1
  280. package/dist/factories/contracts/test/TestMessage__factory.d.ts +1 -1
  281. package/dist/factories/contracts/test/TestMessage__factory.d.ts.map +1 -1
  282. package/dist/factories/contracts/test/TestMessage__factory.js +40 -7
  283. package/dist/factories/contracts/test/TestMessage__factory.js.map +1 -1
  284. package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts +48 -0
  285. package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts.map +1 -0
  286. package/dist/factories/contracts/test/TestMultisigIsm__factory.js +406 -0
  287. package/dist/factories/contracts/test/TestMultisigIsm__factory.js.map +1 -0
  288. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +55 -0
  289. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts.map +1 -0
  290. package/dist/factories/contracts/test/TestQuerySender__factory.js +253 -0
  291. package/dist/factories/contracts/test/TestQuerySender__factory.js.map +1 -0
  292. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  293. package/dist/factories/contracts/test/TestQuery__factory.d.ts.map +1 -1
  294. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  295. package/dist/factories/contracts/test/TestQuery__factory.js.map +1 -1
  296. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  297. package/dist/factories/contracts/test/TestRouter__factory.d.ts.map +1 -1
  298. package/dist/factories/contracts/test/TestRouter__factory.js +70 -31
  299. package/dist/factories/contracts/test/TestRouter__factory.js.map +1 -1
  300. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
  301. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts.map +1 -1
  302. package/dist/factories/contracts/test/TestSendReceiver__factory.js +2 -2
  303. package/dist/factories/contracts/test/TestSendReceiver__factory.js.map +1 -1
  304. package/dist/factories/contracts/test/TestTokenRecipient__factory.d.ts +1 -1
  305. package/dist/factories/contracts/test/TestTokenRecipient__factory.js +1 -1
  306. package/dist/factories/contracts/test/index.d.ts +5 -6
  307. package/dist/factories/contracts/test/index.d.ts.map +1 -1
  308. package/dist/factories/contracts/test/index.js +11 -13
  309. package/dist/factories/contracts/test/index.js.map +1 -1
  310. package/dist/factories/interfaces/IInterchainAccountRouter__factory.d.ts +33 -0
  311. package/dist/factories/interfaces/IInterchainAccountRouter__factory.d.ts.map +1 -0
  312. package/dist/factories/interfaces/IInterchainAccountRouter__factory.js +78 -0
  313. package/dist/factories/interfaces/IInterchainAccountRouter__factory.js.map +1 -0
  314. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.d.ts.map +1 -1
  315. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js +3 -8
  316. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js.map +1 -1
  317. package/dist/factories/interfaces/IInterchainQueryRouter__factory.d.ts +33 -0
  318. package/dist/factories/interfaces/IInterchainQueryRouter__factory.d.ts.map +1 -0
  319. package/dist/factories/interfaces/IInterchainQueryRouter__factory.js +100 -0
  320. package/dist/factories/interfaces/IInterchainQueryRouter__factory.js.map +1 -0
  321. package/dist/factories/{contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.d.ts → interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule__factory.d.ts} +5 -5
  322. package/dist/factories/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule__factory.d.ts.map +1 -0
  323. package/dist/factories/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule__factory.js +42 -0
  324. package/dist/factories/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule__factory.js.map +1 -0
  325. package/dist/factories/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule__factory.d.ts +19 -0
  326. package/dist/factories/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule__factory.d.ts.map +1 -0
  327. package/dist/factories/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule__factory.js +31 -0
  328. package/dist/factories/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule__factory.js.map +1 -0
  329. package/dist/factories/interfaces/IInterchainSecurityModule.sol/index.d.ts +3 -0
  330. package/dist/factories/interfaces/IInterchainSecurityModule.sol/index.d.ts.map +1 -0
  331. package/dist/factories/interfaces/IInterchainSecurityModule.sol/index.js +11 -0
  332. package/dist/factories/interfaces/IInterchainSecurityModule.sol/index.js.map +1 -0
  333. package/dist/factories/interfaces/IMailbox__factory.d.ts +5 -1
  334. package/dist/factories/interfaces/IMailbox__factory.d.ts.map +1 -1
  335. package/dist/factories/interfaces/IMailbox__factory.js +81 -3
  336. package/dist/factories/interfaces/IMailbox__factory.js.map +1 -1
  337. package/dist/factories/interfaces/{IOutbox__factory.d.ts → IMultisigIsm__factory.d.ts} +5 -5
  338. package/dist/factories/interfaces/IMultisigIsm__factory.d.ts.map +1 -0
  339. package/dist/factories/interfaces/{IInbox__factory.js → IMultisigIsm__factory.js} +55 -41
  340. package/dist/factories/interfaces/IMultisigIsm__factory.js.map +1 -0
  341. package/dist/factories/interfaces/index.d.ts +4 -4
  342. package/dist/factories/interfaces/index.d.ts.map +1 -1
  343. package/dist/factories/interfaces/index.js +31 -9
  344. package/dist/factories/interfaces/index.js.map +1 -1
  345. package/dist/index.d.ts +46 -54
  346. package/dist/index.d.ts.map +1 -1
  347. package/dist/index.js +45 -53
  348. package/dist/index.js.map +1 -1
  349. package/dist/interfaces/IInterchainAccountRouter.d.ts +67 -0
  350. package/dist/interfaces/IInterchainAccountRouter.d.ts.map +1 -0
  351. package/dist/interfaces/IInterchainAccountRouter.js +4 -0
  352. package/dist/interfaces/IInterchainAccountRouter.js.map +1 -0
  353. package/dist/interfaces/IInterchainGasPaymaster.d.ts +7 -7
  354. package/dist/interfaces/IInterchainGasPaymaster.d.ts.map +1 -1
  355. package/dist/interfaces/IInterchainQueryRouter.d.ts +75 -0
  356. package/dist/interfaces/IInterchainQueryRouter.d.ts.map +1 -0
  357. package/dist/interfaces/IInterchainQueryRouter.js +4 -0
  358. package/dist/interfaces/IInterchainQueryRouter.js.map +1 -0
  359. package/dist/{contracts/mock/MockOutbox.d.ts → interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule.d.ts} +14 -14
  360. package/dist/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule.d.ts.map +1 -0
  361. package/dist/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule.js +4 -0
  362. package/dist/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule.js.map +1 -0
  363. package/dist/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule.d.ts +43 -0
  364. package/dist/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule.d.ts.map +1 -0
  365. package/dist/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule.js +4 -0
  366. package/dist/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule.js.map +1 -0
  367. package/dist/interfaces/IInterchainSecurityModule.sol/index.d.ts +3 -0
  368. package/dist/interfaces/IInterchainSecurityModule.sol/index.d.ts.map +1 -0
  369. package/dist/interfaces/IInterchainSecurityModule.sol/index.js +3 -0
  370. package/dist/interfaces/IInterchainSecurityModule.sol/index.js.map +1 -0
  371. package/dist/interfaces/IMailbox.d.ts +58 -10
  372. package/dist/interfaces/IMailbox.d.ts.map +1 -1
  373. package/dist/interfaces/IMultisigIsm.d.ts +75 -0
  374. package/dist/interfaces/IMultisigIsm.d.ts.map +1 -0
  375. package/dist/interfaces/IMultisigIsm.js +4 -0
  376. package/dist/interfaces/IMultisigIsm.js.map +1 -0
  377. package/dist/interfaces/index.d.ts +5 -4
  378. package/dist/interfaces/index.d.ts.map +1 -1
  379. package/dist/interfaces/index.js +1 -0
  380. package/dist/interfaces/index.js.map +1 -1
  381. package/interfaces/IInterchainAccountRouter.sol +15 -0
  382. package/interfaces/IInterchainGasPaymaster.sol +3 -5
  383. package/interfaces/IInterchainQueryRouter.sol +18 -0
  384. package/interfaces/IInterchainSecurityModule.sol +16 -0
  385. package/interfaces/IMailbox.sol +15 -2
  386. package/interfaces/IMultisigIsm.sol +18 -0
  387. package/package.json +4 -3
  388. package/contracts/AbacusConnectionManager.sol +0 -145
  389. package/contracts/Inbox.sol +0 -148
  390. package/contracts/MerkleTreeManager.sol +0 -32
  391. package/contracts/Outbox.sol +0 -191
  392. package/contracts/mock/MockInbox.sol +0 -52
  393. package/contracts/mock/MockOutbox.sol +0 -30
  394. package/contracts/mock/MockTokenBridgeAdapter.sol +0 -46
  395. package/contracts/test/TestAbacusConnectionClient.sol +0 -23
  396. package/contracts/test/TestInbox.sol +0 -54
  397. package/contracts/test/TestMultisigValidatorManager.sol +0 -26
  398. package/contracts/test/TestOutbox.sol +0 -46
  399. package/contracts/test/TestValidatorManager.sol +0 -21
  400. package/contracts/validator-manager/InboxValidatorManager.sol +0 -58
  401. package/contracts/validator-manager/MultisigValidatorManager.sol +0 -271
  402. package/contracts/validator-manager/OutboxValidatorManager.sol +0 -244
  403. package/dist/contracts/AbacusConnectionClient.d.ts.map +0 -1
  404. package/dist/contracts/AbacusConnectionClient.js.map +0 -1
  405. package/dist/contracts/AbacusConnectionManager.d.ts +0 -213
  406. package/dist/contracts/AbacusConnectionManager.d.ts.map +0 -1
  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/token-bridge/TokenBridgeRouter.d.ts.map +0 -1
  418. package/dist/contracts/middleware/token-bridge/TokenBridgeRouter.js.map +0 -1
  419. package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.d.ts.map +0 -1
  420. package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.js.map +0 -1
  421. package/dist/contracts/middleware/token-bridge/adapters/index.d.ts.map +0 -1
  422. package/dist/contracts/middleware/token-bridge/adapters/index.js.map +0 -1
  423. package/dist/contracts/middleware/token-bridge/index.d.ts.map +0 -1
  424. package/dist/contracts/middleware/token-bridge/index.js.map +0 -1
  425. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.d.ts.map +0 -1
  426. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.js +0 -4
  427. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.js.map +0 -1
  428. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.d.ts.map +0 -1
  429. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.js +0 -4
  430. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.js.map +0 -1
  431. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.d.ts.map +0 -1
  432. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.js.map +0 -1
  433. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.d.ts.map +0 -1
  434. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.js.map +0 -1
  435. package/dist/contracts/middleware/token-bridge/interfaces/circle/index.d.ts.map +0 -1
  436. package/dist/contracts/middleware/token-bridge/interfaces/circle/index.js.map +0 -1
  437. package/dist/contracts/middleware/token-bridge/interfaces/index.d.ts +0 -5
  438. package/dist/contracts/middleware/token-bridge/interfaces/index.d.ts.map +0 -1
  439. package/dist/contracts/middleware/token-bridge/interfaces/index.js.map +0 -1
  440. package/dist/contracts/mock/MockInbox.d.ts.map +0 -1
  441. package/dist/contracts/mock/MockInbox.js +0 -4
  442. package/dist/contracts/mock/MockInbox.js.map +0 -1
  443. package/dist/contracts/mock/MockOutbox.d.ts.map +0 -1
  444. package/dist/contracts/mock/MockOutbox.js +0 -4
  445. package/dist/contracts/mock/MockOutbox.js.map +0 -1
  446. package/dist/contracts/mock/MockTokenBridgeAdapter.d.ts +0 -99
  447. package/dist/contracts/mock/MockTokenBridgeAdapter.d.ts.map +0 -1
  448. package/dist/contracts/mock/MockTokenBridgeAdapter.js +0 -4
  449. package/dist/contracts/mock/MockTokenBridgeAdapter.js.map +0 -1
  450. package/dist/contracts/test/TestAbacusConnectionClient.d.ts.map +0 -1
  451. package/dist/contracts/test/TestAbacusConnectionClient.js +0 -4
  452. package/dist/contracts/test/TestAbacusConnectionClient.js.map +0 -1
  453. package/dist/contracts/test/TestInbox.d.ts +0 -263
  454. package/dist/contracts/test/TestInbox.d.ts.map +0 -1
  455. package/dist/contracts/test/TestInbox.js +0 -4
  456. package/dist/contracts/test/TestInbox.js.map +0 -1
  457. package/dist/contracts/test/TestMultisigValidatorManager.d.ts +0 -247
  458. package/dist/contracts/test/TestMultisigValidatorManager.d.ts.map +0 -1
  459. package/dist/contracts/test/TestMultisigValidatorManager.js +0 -4
  460. package/dist/contracts/test/TestMultisigValidatorManager.js.map +0 -1
  461. package/dist/contracts/test/TestOutbox.d.ts +0 -371
  462. package/dist/contracts/test/TestOutbox.d.ts.map +0 -1
  463. package/dist/contracts/test/TestOutbox.js +0 -4
  464. package/dist/contracts/test/TestOutbox.js.map +0 -1
  465. package/dist/contracts/test/TestTokenBridgeMessageRecipient.d.ts.map +0 -1
  466. package/dist/contracts/test/TestTokenBridgeMessageRecipient.js +0 -4
  467. package/dist/contracts/test/TestTokenBridgeMessageRecipient.js.map +0 -1
  468. package/dist/contracts/test/TestValidatorManager.d.ts +0 -58
  469. package/dist/contracts/test/TestValidatorManager.d.ts.map +0 -1
  470. package/dist/contracts/test/TestValidatorManager.js +0 -4
  471. package/dist/contracts/test/TestValidatorManager.js.map +0 -1
  472. package/dist/contracts/validator-manager/InboxValidatorManager.d.ts +0 -263
  473. package/dist/contracts/validator-manager/InboxValidatorManager.d.ts.map +0 -1
  474. package/dist/contracts/validator-manager/InboxValidatorManager.js +0 -4
  475. package/dist/contracts/validator-manager/InboxValidatorManager.js.map +0 -1
  476. package/dist/contracts/validator-manager/MultisigValidatorManager.d.ts +0 -239
  477. package/dist/contracts/validator-manager/MultisigValidatorManager.d.ts.map +0 -1
  478. package/dist/contracts/validator-manager/MultisigValidatorManager.js +0 -4
  479. package/dist/contracts/validator-manager/MultisigValidatorManager.js.map +0 -1
  480. package/dist/contracts/validator-manager/OutboxValidatorManager.d.ts +0 -335
  481. package/dist/contracts/validator-manager/OutboxValidatorManager.d.ts.map +0 -1
  482. package/dist/contracts/validator-manager/OutboxValidatorManager.js +0 -4
  483. package/dist/contracts/validator-manager/OutboxValidatorManager.js.map +0 -1
  484. package/dist/contracts/validator-manager/index.d.ts +0 -4
  485. package/dist/contracts/validator-manager/index.d.ts.map +0 -1
  486. package/dist/contracts/validator-manager/index.js.map +0 -1
  487. package/dist/factories/contracts/AbacusConnectionClient__factory.d.ts.map +0 -1
  488. package/dist/factories/contracts/AbacusConnectionClient__factory.js.map +0 -1
  489. package/dist/factories/contracts/AbacusConnectionManager__factory.d.ts +0 -55
  490. package/dist/factories/contracts/AbacusConnectionManager__factory.d.ts.map +0 -1
  491. package/dist/factories/contracts/AbacusConnectionManager__factory.js +0 -276
  492. package/dist/factories/contracts/AbacusConnectionManager__factory.js.map +0 -1
  493. package/dist/factories/contracts/Inbox__factory.d.ts +0 -59
  494. package/dist/factories/contracts/Inbox__factory.d.ts.map +0 -1
  495. package/dist/factories/contracts/Inbox__factory.js +0 -278
  496. package/dist/factories/contracts/Inbox__factory.js.map +0 -1
  497. package/dist/factories/contracts/MerkleTreeManager__factory.d.ts +0 -31
  498. package/dist/factories/contracts/MerkleTreeManager__factory.d.ts.map +0 -1
  499. package/dist/factories/contracts/MerkleTreeManager__factory.js +0 -67
  500. package/dist/factories/contracts/MerkleTreeManager__factory.js.map +0 -1
  501. package/dist/factories/contracts/Outbox__factory.d.ts +0 -59
  502. package/dist/factories/contracts/Outbox__factory.d.ts.map +0 -1
  503. package/dist/factories/contracts/Outbox__factory.js +0 -415
  504. package/dist/factories/contracts/Outbox__factory.js.map +0 -1
  505. package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.d.ts +0 -48
  506. package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.d.ts.map +0 -1
  507. package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.js +0 -380
  508. package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.js.map +0 -1
  509. package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.d.ts +0 -48
  510. package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.d.ts.map +0 -1
  511. package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.js +0 -584
  512. package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.js.map +0 -1
  513. package/dist/factories/contracts/middleware/token-bridge/adapters/index.d.ts.map +0 -1
  514. package/dist/factories/contracts/middleware/token-bridge/adapters/index.js.map +0 -1
  515. package/dist/factories/contracts/middleware/token-bridge/index.d.ts +0 -4
  516. package/dist/factories/contracts/middleware/token-bridge/index.d.ts.map +0 -1
  517. package/dist/factories/contracts/middleware/token-bridge/index.js.map +0 -1
  518. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.d.ts.map +0 -1
  519. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.js.map +0 -1
  520. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.d.ts +0 -19
  521. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.d.ts.map +0 -1
  522. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.js.map +0 -1
  523. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.d.ts.map +0 -1
  524. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.js.map +0 -1
  525. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.d.ts.map +0 -1
  526. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.js.map +0 -1
  527. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.d.ts.map +0 -1
  528. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.js.map +0 -1
  529. package/dist/factories/contracts/middleware/token-bridge/interfaces/index.d.ts +0 -4
  530. package/dist/factories/contracts/middleware/token-bridge/interfaces/index.d.ts.map +0 -1
  531. package/dist/factories/contracts/middleware/token-bridge/interfaces/index.js.map +0 -1
  532. package/dist/factories/contracts/mock/MockInbox__factory.d.ts +0 -31
  533. package/dist/factories/contracts/mock/MockInbox__factory.d.ts.map +0 -1
  534. package/dist/factories/contracts/mock/MockInbox__factory.js +0 -76
  535. package/dist/factories/contracts/mock/MockInbox__factory.js.map +0 -1
  536. package/dist/factories/contracts/mock/MockOutbox__factory.d.ts +0 -45
  537. package/dist/factories/contracts/mock/MockOutbox__factory.d.ts.map +0 -1
  538. package/dist/factories/contracts/mock/MockOutbox__factory.js +0 -86
  539. package/dist/factories/contracts/mock/MockOutbox__factory.js.map +0 -1
  540. package/dist/factories/contracts/mock/MockTokenBridgeAdapter__factory.d.ts +0 -45
  541. package/dist/factories/contracts/mock/MockTokenBridgeAdapter__factory.d.ts.map +0 -1
  542. package/dist/factories/contracts/mock/MockTokenBridgeAdapter__factory.js +0 -170
  543. package/dist/factories/contracts/mock/MockTokenBridgeAdapter__factory.js.map +0 -1
  544. package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.d.ts +0 -48
  545. package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.d.ts.map +0 -1
  546. package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.js +0 -242
  547. package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.js.map +0 -1
  548. package/dist/factories/contracts/test/TestInbox__factory.d.ts +0 -59
  549. package/dist/factories/contracts/test/TestInbox__factory.d.ts.map +0 -1
  550. package/dist/factories/contracts/test/TestInbox__factory.js +0 -371
  551. package/dist/factories/contracts/test/TestInbox__factory.js.map +0 -1
  552. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.d.ts +0 -59
  553. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.d.ts.map +0 -1
  554. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.js +0 -349
  555. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.js.map +0 -1
  556. package/dist/factories/contracts/test/TestOutbox__factory.d.ts +0 -59
  557. package/dist/factories/contracts/test/TestOutbox__factory.d.ts.map +0 -1
  558. package/dist/factories/contracts/test/TestOutbox__factory.js +0 -483
  559. package/dist/factories/contracts/test/TestOutbox__factory.js.map +0 -1
  560. package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.d.ts.map +0 -1
  561. package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.js.map +0 -1
  562. package/dist/factories/contracts/test/TestValidatorManager__factory.d.ts +0 -31
  563. package/dist/factories/contracts/test/TestValidatorManager__factory.d.ts.map +0 -1
  564. package/dist/factories/contracts/test/TestValidatorManager__factory.js +0 -79
  565. package/dist/factories/contracts/test/TestValidatorManager__factory.js.map +0 -1
  566. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.d.ts +0 -59
  567. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.d.ts.map +0 -1
  568. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.js +0 -373
  569. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.js.map +0 -1
  570. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.d.ts +0 -36
  571. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.d.ts.map +0 -1
  572. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.js +0 -286
  573. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.js.map +0 -1
  574. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.d.ts +0 -59
  575. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.d.ts.map +0 -1
  576. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.js +0 -560
  577. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.js.map +0 -1
  578. package/dist/factories/contracts/validator-manager/index.d.ts +0 -4
  579. package/dist/factories/contracts/validator-manager/index.d.ts.map +0 -1
  580. package/dist/factories/contracts/validator-manager/index.js +0 -13
  581. package/dist/factories/contracts/validator-manager/index.js.map +0 -1
  582. package/dist/factories/interfaces/IAbacusConnectionManager__factory.d.ts.map +0 -1
  583. package/dist/factories/interfaces/IAbacusConnectionManager__factory.js +0 -63
  584. package/dist/factories/interfaces/IAbacusConnectionManager__factory.js.map +0 -1
  585. package/dist/factories/interfaces/IInbox__factory.d.ts +0 -29
  586. package/dist/factories/interfaces/IInbox__factory.d.ts.map +0 -1
  587. package/dist/factories/interfaces/IInbox__factory.js.map +0 -1
  588. package/dist/factories/interfaces/IMultisigValidatorManager__factory.d.ts +0 -19
  589. package/dist/factories/interfaces/IMultisigValidatorManager__factory.d.ts.map +0 -1
  590. package/dist/factories/interfaces/IMultisigValidatorManager__factory.js +0 -57
  591. package/dist/factories/interfaces/IMultisigValidatorManager__factory.js.map +0 -1
  592. package/dist/factories/interfaces/IOutbox__factory.d.ts.map +0 -1
  593. package/dist/factories/interfaces/IOutbox__factory.js +0 -155
  594. package/dist/factories/interfaces/IOutbox__factory.js.map +0 -1
  595. package/dist/interfaces/IAbacusConnectionManager.d.ts +0 -59
  596. package/dist/interfaces/IAbacusConnectionManager.d.ts.map +0 -1
  597. package/dist/interfaces/IAbacusConnectionManager.js +0 -4
  598. package/dist/interfaces/IAbacusConnectionManager.js.map +0 -1
  599. package/dist/interfaces/IInbox.d.ts +0 -83
  600. package/dist/interfaces/IInbox.d.ts.map +0 -1
  601. package/dist/interfaces/IInbox.js +0 -4
  602. package/dist/interfaces/IInbox.js.map +0 -1
  603. package/dist/interfaces/IMultisigValidatorManager.d.ts +0 -59
  604. package/dist/interfaces/IMultisigValidatorManager.d.ts.map +0 -1
  605. package/dist/interfaces/IMultisigValidatorManager.js +0 -4
  606. package/dist/interfaces/IMultisigValidatorManager.js.map +0 -1
  607. package/dist/interfaces/IOutbox.d.ts +0 -148
  608. package/dist/interfaces/IOutbox.d.ts.map +0 -1
  609. package/dist/interfaces/IOutbox.js +0 -4
  610. package/dist/interfaces/IOutbox.js.map +0 -1
  611. package/interfaces/IAbacusConnectionManager.sol +0 -12
  612. package/interfaces/IInbox.sol +0 -16
  613. package/interfaces/IMultisigValidatorManager.sol +0 -11
  614. package/interfaces/IOutbox.sol +0 -27
@@ -0,0 +1,18 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.6.11;
3
+
4
+ import {Call} from "../contracts/Call.sol";
5
+
6
+ interface IInterchainQueryRouter {
7
+ function query(
8
+ uint32 _destinationDomain,
9
+ Call calldata call,
10
+ bytes calldata callback
11
+ ) external returns (bytes32);
12
+
13
+ function query(
14
+ uint32 _destinationDomain,
15
+ Call[] calldata calls,
16
+ bytes[] calldata callbacks
17
+ ) external returns (bytes32);
18
+ }
@@ -0,0 +1,16 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.6.11;
3
+
4
+ interface IInterchainSecurityModule {
5
+ // Called by the Mailbox to determine whether or not the message should be accepted.
6
+ function verify(bytes calldata _metadata, bytes calldata _message)
7
+ external
8
+ returns (bool);
9
+ }
10
+
11
+ interface ISpecifiesInterchainSecurityModule {
12
+ function interchainSecurityModule()
13
+ external
14
+ view
15
+ returns (IInterchainSecurityModule);
16
+ }
@@ -1,8 +1,21 @@
1
1
  // SPDX-License-Identifier: MIT OR Apache-2.0
2
- pragma solidity >=0.6.11;
2
+ pragma solidity >=0.8.0;
3
3
 
4
4
  interface IMailbox {
5
5
  function localDomain() external view returns (uint32);
6
6
 
7
- function validatorManager() external view returns (address);
7
+ function dispatch(
8
+ uint32 _destinationDomain,
9
+ bytes32 _recipientAddress,
10
+ bytes calldata _messageBody
11
+ ) external returns (bytes32);
12
+
13
+ function process(bytes calldata _metadata, bytes calldata _message)
14
+ external;
15
+
16
+ function count() external view returns (uint32);
17
+
18
+ function root() external view returns (bytes32);
19
+
20
+ function latestCheckpoint() external view returns (bytes32, uint32);
8
21
  }
@@ -0,0 +1,18 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.6.0;
3
+
4
+ import {IInterchainSecurityModule} from "./IInterchainSecurityModule.sol";
5
+
6
+ interface IMultisigIsm is IInterchainSecurityModule {
7
+ function isEnrolled(uint32 _domain, address _validator)
8
+ external
9
+ view
10
+ returns (bool);
11
+
12
+ function threshold(uint32 _domain) external view returns (uint256);
13
+
14
+ function validators(uint32 _domain)
15
+ external
16
+ view
17
+ returns (address[] memory);
18
+ }
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@hyperlane-xyz/core",
3
3
  "description": "Core solidity contracts for Hyperlane",
4
- "version": "0.5.3",
4
+ "version": "0.5.4-0",
5
5
  "dependencies": {
6
- "@hyperlane-xyz/utils": "0.5.3",
6
+ "@hyperlane-xyz/utils": "0.5.4-0",
7
7
  "@openzeppelin/contracts": "^4.6.0",
8
8
  "@openzeppelin/contracts-upgradeable": "^4.6.0"
9
9
  },
@@ -49,5 +49,6 @@
49
49
  "prettier": "prettier --write ./contracts ./interfaces ./test",
50
50
  "test": "hardhat test"
51
51
  },
52
- "types": "dist/index.d.ts"
52
+ "types": "dist/index.d.ts",
53
+ "stableVersion": "0.5.3"
53
54
  }
@@ -1,145 +0,0 @@
1
- // SPDX-License-Identifier: MIT OR Apache-2.0
2
- pragma solidity >=0.8.0;
3
- pragma abicoder v2;
4
-
5
- // ============ Internal Imports ============
6
- import {IOutbox} from "../interfaces/IOutbox.sol";
7
- import {IAbacusConnectionManager} from "../interfaces/IAbacusConnectionManager.sol";
8
-
9
- // ============ External Imports ============
10
- import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
11
- import {Address} from "@openzeppelin/contracts/utils/Address.sol";
12
- import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
13
-
14
- /**
15
- * @title AbacusConnectionManager
16
- * @author Celo Labs Inc.
17
- * @notice Manages a registry of local Inbox contracts for remote Outbox
18
- * domains.
19
- */
20
- contract AbacusConnectionManager is IAbacusConnectionManager, Ownable {
21
- using EnumerableSet for EnumerableSet.AddressSet;
22
-
23
- // ============ Public Storage ============
24
-
25
- // Outbox contract
26
- IOutbox public override outbox;
27
- // local Inbox address => remote Outbox domain
28
- mapping(address => uint32) public inboxToDomain;
29
- // remote Outbox domain => local Inbox addresses
30
- mapping(uint32 => EnumerableSet.AddressSet) domainToInboxes;
31
-
32
- // ============ Events ============
33
-
34
- /**
35
- * @notice Emitted when a new Outbox is set.
36
- * @param outbox the address of the Outbox
37
- */
38
- event OutboxSet(address indexed outbox);
39
-
40
- /**
41
- * @notice Emitted when a new Inbox is enrolled / added
42
- * @param domain the remote domain of the Outbox contract for the Inbox
43
- * @param inbox the address of the Inbox
44
- */
45
- event InboxEnrolled(uint32 indexed domain, address inbox);
46
-
47
- /**
48
- * @notice Emitted when a new Inbox is un-enrolled / removed
49
- * @param domain the remote domain of the Outbox contract for the Inbox
50
- * @param inbox the address of the Inbox
51
- */
52
- event InboxUnenrolled(uint32 indexed domain, address inbox);
53
-
54
- // ============ Constructor ============
55
-
56
- // solhint-disable-next-line no-empty-blocks
57
- constructor() Ownable() {}
58
-
59
- // ============ External Functions ============
60
-
61
- /**
62
- * @notice Sets the address of the local Outbox contract.
63
- * @param _outbox The address of the new local Outbox contract.
64
- */
65
- function setOutbox(address _outbox) external onlyOwner {
66
- require(Address.isContract(_outbox), "outbox !contract");
67
- outbox = IOutbox(_outbox);
68
- emit OutboxSet(_outbox);
69
- }
70
-
71
- /**
72
- * @notice Allow Owner to enroll Inbox contract
73
- * @param _domain the remote domain of the Outbox contract for the Inbox
74
- * @param _inbox the address of the Inbox
75
- */
76
- function enrollInbox(uint32 _domain, address _inbox) external onlyOwner {
77
- require(Address.isContract(_inbox), "inbox !contract");
78
- require(!isInbox(_inbox), "already inbox");
79
- // add inbox and domain to two-way mapping
80
- inboxToDomain[_inbox] = _domain;
81
- domainToInboxes[_domain].add(_inbox);
82
- emit InboxEnrolled(_domain, _inbox);
83
- }
84
-
85
- /**
86
- * @notice Allow Owner to un-enroll Inbox contract
87
- * @param _inbox the address of the Inbox
88
- */
89
- function unenrollInbox(address _inbox) external onlyOwner {
90
- _unenrollInbox(_inbox);
91
- }
92
-
93
- /**
94
- * @notice Query local domain from Outbox
95
- * @return local domain
96
- */
97
- function localDomain() external view override returns (uint32) {
98
- return outbox.localDomain();
99
- }
100
-
101
- /**
102
- * @notice Returns the Inbox addresses for a given remote domain
103
- * @return inboxes An array of addresses of the Inboxes
104
- */
105
- function getInboxes(uint32 remoteDomain)
106
- external
107
- view
108
- returns (address[] memory)
109
- {
110
- EnumerableSet.AddressSet storage _inboxes = domainToInboxes[
111
- remoteDomain
112
- ];
113
- uint256 length = _inboxes.length();
114
- address[] memory ret = new address[](length);
115
- for (uint256 i = 0; i < length; i += 1) {
116
- ret[i] = _inboxes.at(i);
117
- }
118
- return ret;
119
- }
120
-
121
- // ============ Public Functions ============
122
-
123
- /**
124
- * @notice Check whether _inbox is enrolled
125
- * @param _inbox the inbox to check for enrollment
126
- * @return TRUE iff _inbox is enrolled
127
- */
128
- function isInbox(address _inbox) public view override returns (bool) {
129
- return inboxToDomain[_inbox] != 0;
130
- }
131
-
132
- // ============ Internal Functions ============
133
-
134
- /**
135
- * @notice Remove the inbox from the two-way mappings
136
- * @param _inbox inbox to un-enroll
137
- */
138
- function _unenrollInbox(address _inbox) internal {
139
- uint32 _currentDomain = inboxToDomain[_inbox];
140
- require(domainToInboxes[_currentDomain].remove(_inbox), "not enrolled");
141
- domainToInboxes[_currentDomain].remove(_inbox);
142
- inboxToDomain[_inbox] = 0;
143
- emit InboxUnenrolled(_currentDomain, _inbox);
144
- }
145
- }
@@ -1,148 +0,0 @@
1
- // SPDX-License-Identifier: MIT OR Apache-2.0
2
- pragma solidity >=0.8.0;
3
-
4
- // ============ Internal Imports ============
5
- import {Versioned} from "./upgrade/Versioned.sol";
6
- import {Mailbox} from "./Mailbox.sol";
7
- import {MerkleLib} from "./libs/Merkle.sol";
8
- import {Message} from "./libs/Message.sol";
9
- import {TypeCasts} from "./libs/TypeCasts.sol";
10
- import {IMessageRecipient} from "../interfaces/IMessageRecipient.sol";
11
- import {IInbox} from "../interfaces/IInbox.sol";
12
-
13
- // ============ External Imports ============
14
- import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol";
15
-
16
- /**
17
- * @title Inbox
18
- * @author Celo Labs Inc.
19
- * @notice Track root updates on Outbox, prove and dispatch messages to end
20
- * recipients.
21
- */
22
- contract Inbox is IInbox, ReentrancyGuardUpgradeable, Versioned, Mailbox {
23
- // ============ Libraries ============
24
-
25
- using MerkleLib for MerkleLib.Tree;
26
- using Message for bytes;
27
- using TypeCasts for bytes32;
28
-
29
- // ============ Enums ============
30
-
31
- // Status of Message:
32
- // 0 - None - message has not been processed
33
- // 1 - Processed - message has been dispatched to recipient
34
- enum MessageStatus {
35
- None,
36
- Processed
37
- }
38
-
39
- // ============ Public Storage ============
40
-
41
- // Domain of outbox chain
42
- uint32 public override remoteDomain;
43
- // Mapping of message leaves to MessageStatus
44
- mapping(bytes32 => MessageStatus) public messages;
45
-
46
- // ============ Upgrade Gap ============
47
-
48
- // gap for upgrade safety
49
- uint256[48] private __GAP;
50
-
51
- // ============ Events ============
52
-
53
- /**
54
- * @notice Emitted when message is processed
55
- * @dev This event allows watchers to observe the merkle proof they need
56
- * to prove fraud on the Outbox.
57
- * @param messageHash Hash of message that was processed.
58
- */
59
- event Process(bytes32 indexed messageHash);
60
-
61
- // ============ Constructor ============
62
-
63
- // solhint-disable-next-line no-empty-blocks
64
- constructor(uint32 _localDomain) Mailbox(_localDomain) {}
65
-
66
- // ============ Initializer ============
67
-
68
- function initialize(uint32 _remoteDomain, address _validatorManager)
69
- external
70
- initializer
71
- {
72
- __ReentrancyGuard_init();
73
- __Mailbox_initialize(_validatorManager);
74
- remoteDomain = _remoteDomain;
75
- }
76
-
77
- // ============ External Functions ============
78
-
79
- /**
80
- * @notice Attempts to process the provided formatted `message`. Performs
81
- * verification against root of the proof
82
- * @dev Called by the validator manager, which is responsible for verifying a
83
- * quorum of validator signatures on the checkpoint.
84
- * @dev Reverts if verification of the message fails.
85
- * @param _root The merkle root of the checkpoint used to prove message inclusion.
86
- * @param _index The index of the checkpoint used to prove message inclusion.
87
- * @param _message Formatted message (refer to Mailbox.sol Message library)
88
- * @param _proof Merkle proof of inclusion for message's leaf
89
- * @param _leafIndex Index of leaf in outbox's merkle tree
90
- */
91
- function process(
92
- bytes32 _root,
93
- uint256 _index,
94
- bytes calldata _message,
95
- bytes32[32] calldata _proof,
96
- uint256 _leafIndex
97
- ) external override nonReentrant onlyValidatorManager {
98
- require(_index >= _leafIndex, "!index");
99
- bytes32 _messageHash = _message.leaf(_leafIndex);
100
- // ensure that message has not been processed
101
- require(
102
- messages[_messageHash] == MessageStatus.None,
103
- "!MessageStatus.None"
104
- );
105
- // calculate the expected root based on the proof
106
- bytes32 _calculatedRoot = MerkleLib.branchRoot(
107
- _messageHash,
108
- _proof,
109
- _leafIndex
110
- );
111
- // verify the merkle proof
112
- require(_calculatedRoot == _root, "!proof");
113
- _process(_message, _messageHash);
114
- }
115
-
116
- // ============ Internal Functions ============
117
-
118
- /**
119
- * @notice Marks a message as processed and calls handle on the recipient
120
- * @dev Internal function that can be called by contracts like TestInbox
121
- * @param _message Formatted message (refer to Mailbox.sol Message library)
122
- * @param _messageHash keccak256 hash of the message
123
- */
124
- function _process(bytes calldata _message, bytes32 _messageHash) internal {
125
- (
126
- uint32 origin,
127
- bytes32 sender,
128
- uint32 destination,
129
- bytes32 recipient,
130
- bytes calldata body
131
- ) = _message.destructure();
132
-
133
- // ensure message came from the correct domain
134
- require(origin == remoteDomain, "!origin");
135
- // ensure message was meant for this domain
136
- require(destination == localDomain, "!destination");
137
-
138
- // update message status as processed
139
- messages[_messageHash] = MessageStatus.Processed;
140
-
141
- IMessageRecipient(recipient.bytes32ToAddress()).handle(
142
- origin,
143
- sender,
144
- body
145
- );
146
- emit Process(_messageHash);
147
- }
148
- }
@@ -1,32 +0,0 @@
1
- // SPDX-License-Identifier: MIT OR Apache-2.0
2
- pragma solidity >=0.8.0;
3
-
4
- // ============ Internal Imports ============
5
- import {MerkleLib} from "./libs/Merkle.sol";
6
-
7
- /**
8
- * @title MerkleTreeManager
9
- * @author Celo Labs Inc.
10
- * @notice Contains a Merkle tree instance and
11
- * exposes view functions for the tree.
12
- */
13
- contract MerkleTreeManager {
14
- // ============ Libraries ============
15
-
16
- using MerkleLib for MerkleLib.Tree;
17
- MerkleLib.Tree public tree;
18
-
19
- // ============ Upgrade Gap ============
20
-
21
- // gap for upgrade safety
22
- uint256[49] private __GAP;
23
-
24
- // ============ Public Functions ============
25
-
26
- /**
27
- * @notice Calculates and returns tree's current root
28
- */
29
- function root() public view returns (bytes32) {
30
- return tree.root();
31
- }
32
- }
@@ -1,191 +0,0 @@
1
- // SPDX-License-Identifier: MIT OR Apache-2.0
2
- pragma solidity >=0.8.0;
3
-
4
- // ============ Internal Imports ============
5
- import {Versioned} from "./upgrade/Versioned.sol";
6
- import {Mailbox} from "./Mailbox.sol";
7
- import {MerkleLib} from "./libs/Merkle.sol";
8
- import {Message} from "./libs/Message.sol";
9
- import {TypeCasts} from "./libs/TypeCasts.sol";
10
- import {MerkleTreeManager} from "./MerkleTreeManager.sol";
11
- import {IOutbox} from "../interfaces/IOutbox.sol";
12
-
13
- /**
14
- * @title Outbox
15
- * @author Celo Labs Inc.
16
- * @notice Accepts messages to be dispatched to remote chains,
17
- * constructs a Merkle tree of the messages,
18
- * and accepts signatures from a bonded Validator
19
- * which notarize the Merkle tree roots.
20
- * Accepts submissions of fraudulent signatures
21
- * by the Validator and slashes the Validator in this case.
22
- */
23
- contract Outbox is IOutbox, Versioned, MerkleTreeManager, Mailbox {
24
- // ============ Libraries ============
25
-
26
- using MerkleLib for MerkleLib.Tree;
27
- using TypeCasts for address;
28
-
29
- // ============ Constants ============
30
-
31
- // Maximum bytes per message = 2 KiB
32
- // (somewhat arbitrarily set to begin)
33
- uint256 public constant MAX_MESSAGE_BODY_BYTES = 2 * 2**10;
34
-
35
- // ============ Enums ============
36
-
37
- // States:
38
- // 0 - UnInitialized - before initialize function is called
39
- // note: the contract is initialized at deploy time, so it should never be in this state
40
- // 1 - Active - as long as the contract has not become fraudulent
41
- // 2 - Failed - after a valid fraud proof has been submitted;
42
- // contract will no longer accept updates or new messages
43
- enum States {
44
- UnInitialized,
45
- Active,
46
- Failed
47
- }
48
-
49
- // ============ Public Storage Variables ============
50
-
51
- // Cached checkpoints, mapping root => leaf index.
52
- // Cached checkpoints must have index > 0 as the presence of such
53
- // a checkpoint cannot be distinguished from its absence.
54
- mapping(bytes32 => uint256) public cachedCheckpoints;
55
- // The latest cached root
56
- bytes32 public latestCachedRoot;
57
- // Current state of contract
58
- States public state;
59
-
60
- // ============ Upgrade Gap ============
61
-
62
- // gap for upgrade safety
63
- uint256[47] private __GAP;
64
-
65
- // ============ Events ============
66
-
67
- /**
68
- * @notice Emitted when a checkpoint is cached.
69
- * @param root Merkle root
70
- * @param index Leaf index
71
- */
72
- event CheckpointCached(bytes32 indexed root, uint256 indexed index);
73
-
74
- /**
75
- * @notice Emitted when a new message is dispatched via Abacus
76
- * @param leafIndex Index of message's leaf in merkle tree
77
- * @param message Raw bytes of message
78
- */
79
- event Dispatch(uint256 indexed leafIndex, bytes message);
80
-
81
- event Fail();
82
-
83
- // ============ Constructor ============
84
-
85
- constructor(uint32 _localDomain) Mailbox(_localDomain) {} // solhint-disable-line no-empty-blocks
86
-
87
- // ============ Initializer ============
88
-
89
- function initialize(address _validatorManager) external initializer {
90
- __Mailbox_initialize(_validatorManager);
91
- state = States.Active;
92
- }
93
-
94
- // ============ Modifiers ============
95
-
96
- /**
97
- * @notice Ensures that contract state != FAILED when the function is called
98
- */
99
- modifier notFailed() {
100
- require(state != States.Failed, "failed state");
101
- _;
102
- }
103
-
104
- // ============ External Functions ============
105
-
106
- /**
107
- * @notice Dispatch the message it to the destination domain & recipient
108
- * @dev Format the message, insert its hash into Merkle tree,
109
- * and emit `Dispatch` event with message information.
110
- * @param _destinationDomain Domain of destination chain
111
- * @param _recipientAddress Address of recipient on destination chain as bytes32
112
- * @param _messageBody Raw bytes content of message
113
- * @return The leaf index of the dispatched message's hash in the Merkle tree.
114
- */
115
- function dispatch(
116
- uint32 _destinationDomain,
117
- bytes32 _recipientAddress,
118
- bytes calldata _messageBody
119
- ) external override notFailed returns (uint256) {
120
- require(_messageBody.length <= MAX_MESSAGE_BODY_BYTES, "msg too long");
121
- // The leaf has not been inserted yet at this point
122
- uint256 _leafIndex = count();
123
- // format the message into packed bytes
124
- bytes memory _message = Message.formatMessage(
125
- localDomain,
126
- msg.sender.addressToBytes32(),
127
- _destinationDomain,
128
- _recipientAddress,
129
- _messageBody
130
- );
131
- // insert the hashed message into the Merkle tree
132
- bytes32 _messageHash = keccak256(
133
- abi.encodePacked(_message, _leafIndex)
134
- );
135
- tree.insert(_messageHash);
136
- emit Dispatch(_leafIndex, _message);
137
- return _leafIndex;
138
- }
139
-
140
- /**
141
- * @notice Caches the current merkle root and index.
142
- * @dev emits CheckpointCached event
143
- */
144
- function cacheCheckpoint() external override notFailed {
145
- (bytes32 _root, uint256 _index) = latestCheckpoint();
146
- require(_index > 0, "!index");
147
- cachedCheckpoints[_root] = _index;
148
- latestCachedRoot = _root;
149
- emit CheckpointCached(_root, _index);
150
- }
151
-
152
- /**
153
- * @notice Set contract state to FAILED.
154
- * @dev Called by the validator manager when fraud is proven.
155
- */
156
- function fail() external override onlyValidatorManager {
157
- // set contract to FAILED
158
- state = States.Failed;
159
- emit Fail();
160
- }
161
-
162
- /**
163
- * @notice Returns the latest entry in the checkpoint cache.
164
- * @return root Latest cached root
165
- * @return index Latest cached index
166
- */
167
- function latestCachedCheckpoint()
168
- external
169
- view
170
- returns (bytes32 root, uint256 index)
171
- {
172
- root = latestCachedRoot;
173
- index = cachedCheckpoints[root];
174
- }
175
-
176
- /**
177
- * @notice Returns the number of inserted leaves in the tree
178
- */
179
- function count() public view returns (uint256) {
180
- return tree.count;
181
- }
182
-
183
- /**
184
- * @notice Returns a checkpoint representing the current merkle tree.
185
- * @return root The root of the Outbox's merkle tree.
186
- * @return index The index of the last element in the tree.
187
- */
188
- function latestCheckpoint() public view returns (bytes32, uint256) {
189
- return (root(), count() - 1);
190
- }
191
- }
@@ -1,52 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.0;
3
-
4
- import {TypeCasts} from "../libs/TypeCasts.sol";
5
- import {IMessageRecipient} from "../../interfaces/IMessageRecipient.sol";
6
-
7
- contract MockInbox {
8
- using TypeCasts for bytes32;
9
-
10
- struct PendingMessage {
11
- uint32 originDomain;
12
- bytes32 sender;
13
- bytes32 recipient;
14
- bytes messageBody;
15
- }
16
-
17
- mapping(uint256 => PendingMessage) pendingMessages;
18
- uint256 totalMessages = 0;
19
- uint256 messageProcessed = 0;
20
-
21
- function addPendingMessage(
22
- uint32 _originDomain,
23
- bytes32 _sender,
24
- bytes32 _recipient,
25
- bytes memory _messageBody
26
- ) external {
27
- pendingMessages[totalMessages] = PendingMessage(
28
- _originDomain,
29
- _sender,
30
- _recipient,
31
- _messageBody
32
- );
33
- totalMessages += 1;
34
- }
35
-
36
- function processNextPendingMessage() public {
37
- PendingMessage memory pendingMessage = pendingMessages[
38
- messageProcessed
39
- ];
40
-
41
- address recipient = pendingMessage.recipient.bytes32ToAddress();
42
-
43
- IMessageRecipient(recipient).handle(
44
- // This is completely arbitrary and consumers should not rely
45
- // on domain handling in the mock mailbox contracts.
46
- pendingMessage.originDomain,
47
- pendingMessage.sender,
48
- pendingMessage.messageBody
49
- );
50
- messageProcessed += 1;
51
- }
52
- }