@hyperlane-xyz/core 0.5.4-2 → 0.5.5

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 (482) hide show
  1. package/contracts/{HyperlaneConnectionClient.sol → AbacusConnectionClient.sol} +56 -69
  2. package/contracts/AbacusConnectionManager.sol +145 -0
  3. package/contracts/Inbox.sol +148 -0
  4. package/contracts/InterchainGasPaymaster.sol +11 -9
  5. package/contracts/Mailbox.sol +44 -179
  6. package/contracts/MerkleTreeManager.sol +32 -0
  7. package/contracts/Outbox.sol +191 -0
  8. package/contracts/Router.sol +45 -36
  9. package/contracts/libs/Message.sol +66 -107
  10. package/contracts/middleware/InterchainAccountRouter.sol +15 -6
  11. package/contracts/middleware/InterchainQueryRouter.sol +28 -9
  12. package/contracts/middleware/liquidity-layer/LiquidityLayerRouter.sol +3 -2
  13. package/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.sol +2 -1
  14. package/contracts/middleware/liquidity-layer/adapters/PortalAdapter.sol +215 -0
  15. package/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.sol +87 -0
  16. package/contracts/mock/MockHyperlaneEnvironment.sol +47 -10
  17. package/contracts/mock/MockInbox.sol +52 -0
  18. package/contracts/mock/MockInterchainAccountRouter.sol +18 -4
  19. package/contracts/mock/MockOutbox.sol +30 -0
  20. package/contracts/mock/MockPortalBridge.sol +89 -0
  21. package/contracts/test/TestAbacusConnectionClient.sol +23 -0
  22. package/contracts/test/TestInbox.sol +54 -0
  23. package/contracts/test/TestMailbox.sol +4 -34
  24. package/contracts/test/TestMerkle.sol +4 -9
  25. package/contracts/test/TestMessage.sol +12 -24
  26. package/contracts/test/TestMultisigValidatorManager.sol +26 -0
  27. package/contracts/test/TestOutbox.sol +46 -0
  28. package/contracts/test/TestSendReceiver.sol +15 -6
  29. package/contracts/test/TestValidatorManager.sol +21 -0
  30. package/contracts/validator-manager/InboxValidatorManager.sol +58 -0
  31. package/contracts/validator-manager/MultisigValidatorManager.sol +271 -0
  32. package/contracts/validator-manager/OutboxValidatorManager.sol +244 -0
  33. package/dist/contracts/{OwnableSpecifiesISM.d.ts → AbacusConnectionClient.d.ts} +65 -30
  34. package/dist/contracts/AbacusConnectionClient.d.ts.map +1 -0
  35. package/dist/contracts/AbacusConnectionClient.js +4 -0
  36. package/dist/contracts/AbacusConnectionClient.js.map +1 -0
  37. package/dist/contracts/AbacusConnectionManager.d.ts +213 -0
  38. package/dist/contracts/AbacusConnectionManager.d.ts.map +1 -0
  39. package/dist/contracts/AbacusConnectionManager.js +4 -0
  40. package/dist/contracts/AbacusConnectionManager.js.map +1 -0
  41. package/dist/contracts/Inbox.d.ts +207 -0
  42. package/dist/contracts/Inbox.d.ts.map +1 -0
  43. package/dist/contracts/{OwnableSpecifiesISM.js → Inbox.js} +1 -1
  44. package/dist/contracts/Inbox.js.map +1 -0
  45. package/dist/contracts/InterchainGasPaymaster.d.ts +13 -11
  46. package/dist/contracts/InterchainGasPaymaster.d.ts.map +1 -1
  47. package/dist/contracts/Mailbox.d.ts +28 -151
  48. package/dist/contracts/Mailbox.d.ts.map +1 -1
  49. package/dist/contracts/MerkleTreeManager.d.ts +53 -0
  50. package/dist/contracts/MerkleTreeManager.d.ts.map +1 -0
  51. package/dist/contracts/MerkleTreeManager.js +4 -0
  52. package/dist/contracts/MerkleTreeManager.js.map +1 -0
  53. package/dist/contracts/Outbox.d.ts +331 -0
  54. package/dist/contracts/Outbox.d.ts.map +1 -0
  55. package/dist/contracts/Outbox.js +4 -0
  56. package/dist/contracts/Outbox.js.map +1 -0
  57. package/dist/contracts/Router.d.ts +32 -81
  58. package/dist/contracts/Router.d.ts.map +1 -1
  59. package/dist/contracts/index.d.ts +7 -0
  60. package/dist/contracts/index.d.ts.map +1 -1
  61. package/dist/contracts/middleware/InterchainAccountRouter.d.ts +56 -89
  62. package/dist/contracts/middleware/InterchainAccountRouter.d.ts.map +1 -1
  63. package/dist/contracts/middleware/InterchainQueryRouter.d.ts +55 -88
  64. package/dist/contracts/middleware/InterchainQueryRouter.d.ts.map +1 -1
  65. package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts +37 -86
  66. package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts.map +1 -1
  67. package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts +32 -81
  68. package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts.map +1 -1
  69. package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.d.ts +378 -0
  70. package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.d.ts.map +1 -0
  71. package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.js +4 -0
  72. package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.js.map +1 -0
  73. package/dist/contracts/middleware/liquidity-layer/adapters/index.d.ts +1 -0
  74. package/dist/contracts/middleware/liquidity-layer/adapters/index.d.ts.map +1 -1
  75. package/dist/contracts/middleware/liquidity-layer/interfaces/index.d.ts +2 -0
  76. package/dist/contracts/middleware/liquidity-layer/interfaces/index.d.ts.map +1 -1
  77. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.d.ts +148 -0
  78. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.d.ts.map +1 -0
  79. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.js +4 -0
  80. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.js.map +1 -0
  81. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts +2 -0
  82. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts.map +1 -0
  83. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/index.js +3 -0
  84. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/index.js.map +1 -0
  85. package/dist/contracts/middleware/token-bridge/TokenBridgeRouter.d.ts +291 -0
  86. package/dist/contracts/middleware/token-bridge/TokenBridgeRouter.d.ts.map +1 -0
  87. package/dist/contracts/middleware/token-bridge/TokenBridgeRouter.js +4 -0
  88. package/dist/contracts/middleware/token-bridge/TokenBridgeRouter.js.map +1 -0
  89. package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.d.ts +416 -0
  90. package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.d.ts.map +1 -0
  91. package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.js +4 -0
  92. package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.js.map +1 -0
  93. package/dist/contracts/middleware/token-bridge/adapters/index.d.ts +2 -0
  94. package/dist/contracts/middleware/token-bridge/adapters/index.d.ts.map +1 -0
  95. package/dist/contracts/middleware/token-bridge/adapters/index.js +3 -0
  96. package/dist/contracts/middleware/token-bridge/adapters/index.js.map +1 -0
  97. package/dist/contracts/middleware/token-bridge/index.d.ts +6 -0
  98. package/dist/contracts/middleware/token-bridge/index.d.ts.map +1 -0
  99. package/dist/contracts/middleware/token-bridge/index.js +4 -0
  100. package/dist/contracts/middleware/token-bridge/index.js.map +1 -0
  101. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.d.ts +67 -0
  102. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.d.ts.map +1 -0
  103. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.js +4 -0
  104. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.js.map +1 -0
  105. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.d.ts +51 -0
  106. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.d.ts.map +1 -0
  107. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.js +4 -0
  108. package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.js.map +1 -0
  109. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.d.ts +78 -0
  110. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.d.ts.map +1 -0
  111. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.js +4 -0
  112. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.js.map +1 -0
  113. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.d.ts +59 -0
  114. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.d.ts.map +1 -0
  115. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.js +4 -0
  116. package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.js.map +1 -0
  117. package/dist/contracts/middleware/token-bridge/interfaces/circle/index.d.ts +3 -0
  118. package/dist/contracts/middleware/token-bridge/interfaces/circle/index.d.ts.map +1 -0
  119. package/dist/contracts/middleware/token-bridge/interfaces/circle/index.js +3 -0
  120. package/dist/contracts/middleware/token-bridge/interfaces/circle/index.js.map +1 -0
  121. package/dist/contracts/middleware/token-bridge/interfaces/index.d.ts +5 -0
  122. package/dist/contracts/middleware/token-bridge/interfaces/index.d.ts.map +1 -0
  123. package/dist/contracts/middleware/token-bridge/interfaces/index.js +4 -0
  124. package/dist/contracts/middleware/token-bridge/interfaces/index.js.map +1 -0
  125. package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts +33 -9
  126. package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts.map +1 -1
  127. package/dist/contracts/mock/MockInbox.d.ts +67 -0
  128. package/dist/contracts/mock/MockInbox.d.ts.map +1 -0
  129. package/dist/contracts/mock/MockInbox.js +4 -0
  130. package/dist/contracts/mock/MockInbox.js.map +1 -0
  131. package/dist/contracts/mock/MockInterchainAccountRouter.d.ts +24 -8
  132. package/dist/contracts/mock/MockInterchainAccountRouter.d.ts.map +1 -1
  133. package/dist/contracts/mock/MockOutbox.d.ts +51 -0
  134. package/dist/contracts/mock/MockOutbox.d.ts.map +1 -0
  135. package/dist/contracts/mock/MockOutbox.js +4 -0
  136. package/dist/contracts/mock/MockOutbox.js.map +1 -0
  137. package/dist/contracts/mock/MockPortalBridge.d.ts +164 -0
  138. package/dist/contracts/mock/MockPortalBridge.d.ts.map +1 -0
  139. package/dist/contracts/mock/MockPortalBridge.js +4 -0
  140. package/dist/contracts/mock/MockPortalBridge.js.map +1 -0
  141. package/dist/contracts/mock/index.d.ts +3 -0
  142. package/dist/contracts/mock/index.d.ts.map +1 -1
  143. package/dist/contracts/test/TestAbacusConnectionClient.d.ts +209 -0
  144. package/dist/contracts/test/TestAbacusConnectionClient.d.ts.map +1 -0
  145. package/dist/contracts/test/TestAbacusConnectionClient.js +4 -0
  146. package/dist/contracts/test/TestAbacusConnectionClient.js.map +1 -0
  147. package/dist/contracts/test/TestHyperlaneConnectionClient.d.ts +5 -5
  148. package/dist/contracts/test/TestHyperlaneConnectionClient.d.ts.map +1 -1
  149. package/dist/contracts/test/TestInbox.d.ts +263 -0
  150. package/dist/contracts/test/TestInbox.d.ts.map +1 -0
  151. package/dist/contracts/test/TestInbox.js +4 -0
  152. package/dist/contracts/test/TestInbox.js.map +1 -0
  153. package/dist/contracts/test/TestMailbox.d.ts +33 -164
  154. package/dist/contracts/test/TestMailbox.d.ts.map +1 -1
  155. package/dist/contracts/test/TestMessage.d.ts +10 -30
  156. package/dist/contracts/test/TestMessage.d.ts.map +1 -1
  157. package/dist/contracts/test/TestMultisigValidatorManager.d.ts +247 -0
  158. package/dist/contracts/test/TestMultisigValidatorManager.d.ts.map +1 -0
  159. package/dist/contracts/test/TestMultisigValidatorManager.js +4 -0
  160. package/dist/contracts/test/TestMultisigValidatorManager.js.map +1 -0
  161. package/dist/contracts/test/TestOutbox.d.ts +371 -0
  162. package/dist/contracts/test/TestOutbox.d.ts.map +1 -0
  163. package/dist/contracts/test/TestOutbox.js +4 -0
  164. package/dist/contracts/test/TestOutbox.js.map +1 -0
  165. package/dist/contracts/test/TestRouter.d.ts +32 -81
  166. package/dist/contracts/test/TestRouter.d.ts.map +1 -1
  167. package/dist/contracts/test/TestTokenBridgeMessageRecipient.d.ts +72 -0
  168. package/dist/contracts/test/TestTokenBridgeMessageRecipient.d.ts.map +1 -0
  169. package/dist/contracts/test/TestTokenBridgeMessageRecipient.js +4 -0
  170. package/dist/contracts/test/TestTokenBridgeMessageRecipient.js.map +1 -0
  171. package/dist/contracts/test/TestValidatorManager.d.ts +58 -0
  172. package/dist/contracts/test/TestValidatorManager.d.ts.map +1 -0
  173. package/dist/contracts/test/TestValidatorManager.js +4 -0
  174. package/dist/contracts/test/TestValidatorManager.js.map +1 -0
  175. package/dist/contracts/test/index.d.ts +5 -0
  176. package/dist/contracts/test/index.d.ts.map +1 -1
  177. package/dist/contracts/validator-manager/InboxValidatorManager.d.ts +263 -0
  178. package/dist/contracts/validator-manager/InboxValidatorManager.d.ts.map +1 -0
  179. package/dist/contracts/validator-manager/InboxValidatorManager.js +4 -0
  180. package/dist/contracts/validator-manager/InboxValidatorManager.js.map +1 -0
  181. package/dist/contracts/validator-manager/MultisigValidatorManager.d.ts +239 -0
  182. package/dist/contracts/validator-manager/MultisigValidatorManager.d.ts.map +1 -0
  183. package/dist/contracts/validator-manager/MultisigValidatorManager.js +4 -0
  184. package/dist/contracts/validator-manager/MultisigValidatorManager.js.map +1 -0
  185. package/dist/contracts/validator-manager/OutboxValidatorManager.d.ts +335 -0
  186. package/dist/contracts/validator-manager/OutboxValidatorManager.d.ts.map +1 -0
  187. package/dist/contracts/validator-manager/OutboxValidatorManager.js +4 -0
  188. package/dist/contracts/validator-manager/OutboxValidatorManager.js.map +1 -0
  189. package/dist/contracts/validator-manager/index.d.ts +4 -0
  190. package/dist/contracts/validator-manager/index.d.ts.map +1 -0
  191. package/dist/contracts/validator-manager/index.js +3 -0
  192. package/dist/contracts/validator-manager/index.js.map +1 -0
  193. package/dist/factories/contracts/AbacusConnectionClient__factory.d.ts +43 -0
  194. package/dist/factories/contracts/AbacusConnectionClient__factory.d.ts.map +1 -0
  195. package/dist/factories/contracts/AbacusConnectionClient__factory.js +161 -0
  196. package/dist/factories/contracts/AbacusConnectionClient__factory.js.map +1 -0
  197. package/dist/factories/contracts/AbacusConnectionManager__factory.d.ts +55 -0
  198. package/dist/factories/contracts/AbacusConnectionManager__factory.d.ts.map +1 -0
  199. package/dist/factories/contracts/AbacusConnectionManager__factory.js +276 -0
  200. package/dist/factories/contracts/AbacusConnectionManager__factory.js.map +1 -0
  201. package/dist/factories/contracts/Inbox__factory.d.ts +59 -0
  202. package/dist/factories/contracts/Inbox__factory.d.ts.map +1 -0
  203. package/dist/factories/contracts/Inbox__factory.js +278 -0
  204. package/dist/factories/contracts/Inbox__factory.js.map +1 -0
  205. package/dist/factories/contracts/InterchainGasPaymaster__factory.d.ts +1 -1
  206. package/dist/factories/contracts/InterchainGasPaymaster__factory.d.ts.map +1 -1
  207. package/dist/factories/contracts/InterchainGasPaymaster__factory.js +18 -7
  208. package/dist/factories/contracts/InterchainGasPaymaster__factory.js.map +1 -1
  209. package/dist/factories/contracts/Mailbox__factory.d.ts +13 -29
  210. package/dist/factories/contracts/Mailbox__factory.d.ts.map +1 -1
  211. package/dist/factories/contracts/Mailbox__factory.js +11 -239
  212. package/dist/factories/contracts/Mailbox__factory.js.map +1 -1
  213. package/dist/factories/contracts/MerkleTreeManager__factory.d.ts +31 -0
  214. package/dist/factories/contracts/MerkleTreeManager__factory.d.ts.map +1 -0
  215. package/dist/factories/contracts/MerkleTreeManager__factory.js +67 -0
  216. package/dist/factories/contracts/MerkleTreeManager__factory.js.map +1 -0
  217. package/dist/factories/contracts/Outbox__factory.d.ts +59 -0
  218. package/dist/factories/contracts/Outbox__factory.d.ts.map +1 -0
  219. package/dist/factories/contracts/Outbox__factory.js +415 -0
  220. package/dist/factories/contracts/Outbox__factory.js.map +1 -0
  221. package/dist/factories/contracts/Router__factory.d.ts.map +1 -1
  222. package/dist/factories/contracts/Router__factory.js +26 -83
  223. package/dist/factories/contracts/Router__factory.js.map +1 -1
  224. package/dist/factories/contracts/index.d.ts +6 -0
  225. package/dist/factories/contracts/index.d.ts.map +1 -1
  226. package/dist/factories/contracts/index.js +12 -1
  227. package/dist/factories/contracts/index.js.map +1 -1
  228. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
  229. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts.map +1 -1
  230. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +58 -86
  231. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js.map +1 -1
  232. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
  233. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts.map +1 -1
  234. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +68 -91
  235. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js.map +1 -1
  236. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
  237. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts.map +1 -1
  238. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +31 -88
  239. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js.map +1 -1
  240. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
  241. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts.map +1 -1
  242. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +31 -88
  243. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js.map +1 -1
  244. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +48 -0
  245. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts.map +1 -0
  246. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +540 -0
  247. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js.map +1 -0
  248. package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.d.ts +1 -0
  249. package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.d.ts.map +1 -1
  250. package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.js +3 -1
  251. package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.js.map +1 -1
  252. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.d.ts +1 -0
  253. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.d.ts.map +1 -1
  254. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.js +2 -1
  255. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.js.map +1 -1
  256. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.d.ts +56 -0
  257. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.d.ts.map +1 -0
  258. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.js +204 -0
  259. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.js.map +1 -0
  260. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts +2 -0
  261. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts.map +1 -0
  262. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.js +9 -0
  263. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.js.map +1 -0
  264. package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.d.ts +48 -0
  265. package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.d.ts.map +1 -0
  266. package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.js +380 -0
  267. package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.js.map +1 -0
  268. package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.d.ts +48 -0
  269. package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.d.ts.map +1 -0
  270. package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.js +584 -0
  271. package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.js.map +1 -0
  272. package/dist/factories/contracts/middleware/token-bridge/adapters/index.d.ts +2 -0
  273. package/dist/factories/contracts/middleware/token-bridge/adapters/index.d.ts.map +1 -0
  274. package/dist/factories/contracts/middleware/token-bridge/adapters/index.js +9 -0
  275. package/dist/factories/contracts/middleware/token-bridge/adapters/index.js.map +1 -0
  276. package/dist/factories/contracts/middleware/token-bridge/index.d.ts +4 -0
  277. package/dist/factories/contracts/middleware/token-bridge/index.d.ts.map +1 -0
  278. package/dist/factories/contracts/middleware/token-bridge/index.js +34 -0
  279. package/dist/factories/contracts/middleware/token-bridge/index.js.map +1 -0
  280. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.d.ts +23 -0
  281. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.d.ts.map +1 -0
  282. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.js +91 -0
  283. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.js.map +1 -0
  284. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.d.ts +19 -0
  285. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.d.ts.map +1 -0
  286. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.js +51 -0
  287. package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.js.map +1 -0
  288. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.d.ts +36 -0
  289. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.d.ts.map +1 -0
  290. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.js +104 -0
  291. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.js.map +1 -0
  292. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.d.ts +23 -0
  293. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.d.ts.map +1 -0
  294. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.js +61 -0
  295. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.js.map +1 -0
  296. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.d.ts +3 -0
  297. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.d.ts.map +1 -0
  298. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.js +11 -0
  299. package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.js.map +1 -0
  300. package/dist/factories/contracts/middleware/token-bridge/interfaces/index.d.ts +4 -0
  301. package/dist/factories/contracts/middleware/token-bridge/interfaces/index.d.ts.map +1 -0
  302. package/dist/factories/contracts/middleware/token-bridge/interfaces/index.js +35 -0
  303. package/dist/factories/contracts/middleware/token-bridge/interfaces/index.js.map +1 -0
  304. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
  305. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -1
  306. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +60 -3
  307. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -1
  308. package/dist/factories/contracts/mock/MockInbox__factory.d.ts +31 -0
  309. package/dist/factories/contracts/mock/MockInbox__factory.d.ts.map +1 -0
  310. package/dist/factories/contracts/mock/MockInbox__factory.js +76 -0
  311. package/dist/factories/contracts/mock/MockInbox__factory.js.map +1 -0
  312. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.d.ts +1 -1
  313. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.d.ts.map +1 -1
  314. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.js +33 -4
  315. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.js.map +1 -1
  316. package/dist/factories/contracts/mock/MockOutbox__factory.d.ts +45 -0
  317. package/dist/factories/contracts/mock/MockOutbox__factory.d.ts.map +1 -0
  318. package/dist/factories/contracts/mock/MockOutbox__factory.js +86 -0
  319. package/dist/factories/contracts/mock/MockOutbox__factory.js.map +1 -0
  320. package/dist/factories/contracts/mock/MockPortalBridge__factory.d.ts +79 -0
  321. package/dist/factories/contracts/mock/MockPortalBridge__factory.d.ts.map +1 -0
  322. package/dist/factories/contracts/mock/MockPortalBridge__factory.js +296 -0
  323. package/dist/factories/contracts/mock/MockPortalBridge__factory.js.map +1 -0
  324. package/dist/factories/contracts/mock/index.d.ts +3 -0
  325. package/dist/factories/contracts/mock/index.d.ts.map +1 -1
  326. package/dist/factories/contracts/mock/index.js +7 -1
  327. package/dist/factories/contracts/mock/index.js.map +1 -1
  328. package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.d.ts +48 -0
  329. package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.d.ts.map +1 -0
  330. package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.js +242 -0
  331. package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.js.map +1 -0
  332. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.d.ts +1 -1
  333. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js +2 -2
  334. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js.map +1 -1
  335. package/dist/factories/contracts/test/TestInbox__factory.d.ts +59 -0
  336. package/dist/factories/contracts/test/TestInbox__factory.d.ts.map +1 -0
  337. package/dist/factories/contracts/test/TestInbox__factory.js +371 -0
  338. package/dist/factories/contracts/test/TestInbox__factory.js.map +1 -0
  339. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +8 -1
  340. package/dist/factories/contracts/test/TestMailbox__factory.d.ts.map +1 -1
  341. package/dist/factories/contracts/test/TestMailbox__factory.js +13 -235
  342. package/dist/factories/contracts/test/TestMailbox__factory.js.map +1 -1
  343. package/dist/factories/contracts/test/TestMerkle__factory.d.ts +1 -1
  344. package/dist/factories/contracts/test/TestMerkle__factory.js +1 -1
  345. package/dist/factories/contracts/test/TestMessage__factory.d.ts +1 -1
  346. package/dist/factories/contracts/test/TestMessage__factory.d.ts.map +1 -1
  347. package/dist/factories/contracts/test/TestMessage__factory.js +7 -40
  348. package/dist/factories/contracts/test/TestMessage__factory.js.map +1 -1
  349. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.d.ts +59 -0
  350. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.d.ts.map +1 -0
  351. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.js +349 -0
  352. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.js.map +1 -0
  353. package/dist/factories/contracts/test/TestOutbox__factory.d.ts +59 -0
  354. package/dist/factories/contracts/test/TestOutbox__factory.d.ts.map +1 -0
  355. package/dist/factories/contracts/test/TestOutbox__factory.js +483 -0
  356. package/dist/factories/contracts/test/TestOutbox__factory.js.map +1 -0
  357. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
  358. package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
  359. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  360. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  361. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  362. package/dist/factories/contracts/test/TestRouter__factory.d.ts.map +1 -1
  363. package/dist/factories/contracts/test/TestRouter__factory.js +31 -88
  364. package/dist/factories/contracts/test/TestRouter__factory.js.map +1 -1
  365. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
  366. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts.map +1 -1
  367. package/dist/factories/contracts/test/TestSendReceiver__factory.js +2 -2
  368. package/dist/factories/contracts/test/TestSendReceiver__factory.js.map +1 -1
  369. package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.d.ts +44 -0
  370. package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.d.ts.map +1 -0
  371. package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.js +111 -0
  372. package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.js.map +1 -0
  373. package/dist/factories/contracts/test/TestValidatorManager__factory.d.ts +31 -0
  374. package/dist/factories/contracts/test/TestValidatorManager__factory.d.ts.map +1 -0
  375. package/dist/factories/contracts/test/TestValidatorManager__factory.js +79 -0
  376. package/dist/factories/contracts/test/TestValidatorManager__factory.js.map +1 -0
  377. package/dist/factories/contracts/test/index.d.ts +5 -0
  378. package/dist/factories/contracts/test/index.d.ts.map +1 -1
  379. package/dist/factories/contracts/test/index.js +11 -1
  380. package/dist/factories/contracts/test/index.js.map +1 -1
  381. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.d.ts +59 -0
  382. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.d.ts.map +1 -0
  383. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.js +373 -0
  384. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.js.map +1 -0
  385. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.d.ts +36 -0
  386. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.d.ts.map +1 -0
  387. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.js +286 -0
  388. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.js.map +1 -0
  389. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.d.ts +59 -0
  390. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.d.ts.map +1 -0
  391. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.js +560 -0
  392. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.js.map +1 -0
  393. package/dist/factories/contracts/validator-manager/index.d.ts +4 -0
  394. package/dist/factories/contracts/validator-manager/index.d.ts.map +1 -0
  395. package/dist/factories/contracts/validator-manager/index.js +13 -0
  396. package/dist/factories/contracts/validator-manager/index.js.map +1 -0
  397. package/dist/factories/interfaces/IAbacusConnectionManager__factory.d.ts +23 -0
  398. package/dist/factories/interfaces/IAbacusConnectionManager__factory.d.ts.map +1 -0
  399. package/dist/factories/interfaces/IAbacusConnectionManager__factory.js +63 -0
  400. package/dist/factories/interfaces/IAbacusConnectionManager__factory.js.map +1 -0
  401. package/dist/factories/interfaces/IInbox__factory.d.ts +29 -0
  402. package/dist/factories/interfaces/IInbox__factory.d.ts.map +1 -0
  403. package/dist/factories/interfaces/IInbox__factory.js +90 -0
  404. package/dist/factories/interfaces/IInbox__factory.js.map +1 -0
  405. package/dist/factories/interfaces/IInterchainAccountRouter__factory.d.ts.map +1 -1
  406. package/dist/factories/interfaces/IInterchainAccountRouter__factory.js +31 -2
  407. package/dist/factories/interfaces/IInterchainAccountRouter__factory.js.map +1 -1
  408. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.d.ts.map +1 -1
  409. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js +8 -3
  410. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js.map +1 -1
  411. package/dist/factories/interfaces/IInterchainQueryRouter__factory.d.ts.map +1 -1
  412. package/dist/factories/interfaces/IInterchainQueryRouter__factory.js +38 -4
  413. package/dist/factories/interfaces/IInterchainQueryRouter__factory.js.map +1 -1
  414. package/dist/factories/interfaces/IMailbox__factory.d.ts +1 -5
  415. package/dist/factories/interfaces/IMailbox__factory.d.ts.map +1 -1
  416. package/dist/factories/interfaces/IMailbox__factory.js +3 -81
  417. package/dist/factories/interfaces/IMailbox__factory.js.map +1 -1
  418. package/dist/factories/interfaces/IMultisigValidatorManager__factory.d.ts +19 -0
  419. package/dist/factories/interfaces/IMultisigValidatorManager__factory.d.ts.map +1 -0
  420. package/dist/factories/interfaces/IMultisigValidatorManager__factory.js +57 -0
  421. package/dist/factories/interfaces/IMultisigValidatorManager__factory.js.map +1 -0
  422. package/dist/factories/interfaces/IOutbox__factory.d.ts +23 -0
  423. package/dist/factories/interfaces/IOutbox__factory.d.ts.map +1 -0
  424. package/dist/factories/interfaces/IOutbox__factory.js +155 -0
  425. package/dist/factories/interfaces/IOutbox__factory.js.map +1 -0
  426. package/dist/factories/interfaces/index.d.ts +4 -0
  427. package/dist/factories/interfaces/index.d.ts.map +1 -1
  428. package/dist/factories/interfaces/index.js +9 -1
  429. package/dist/factories/interfaces/index.js.map +1 -1
  430. package/dist/index.d.ts +44 -0
  431. package/dist/index.d.ts.map +1 -1
  432. package/dist/index.js +46 -2
  433. package/dist/index.js.map +1 -1
  434. package/dist/interfaces/IAbacusConnectionManager.d.ts +59 -0
  435. package/dist/interfaces/IAbacusConnectionManager.d.ts.map +1 -0
  436. package/dist/interfaces/IAbacusConnectionManager.js +4 -0
  437. package/dist/interfaces/IAbacusConnectionManager.js.map +1 -0
  438. package/dist/interfaces/IInbox.d.ts +83 -0
  439. package/dist/interfaces/IInbox.d.ts.map +1 -0
  440. package/dist/interfaces/IInbox.js +4 -0
  441. package/dist/interfaces/IInbox.js.map +1 -0
  442. package/dist/interfaces/IInterchainAccountRouter.d.ts +24 -8
  443. package/dist/interfaces/IInterchainAccountRouter.d.ts.map +1 -1
  444. package/dist/interfaces/IInterchainGasPaymaster.d.ts +7 -7
  445. package/dist/interfaces/IInterchainGasPaymaster.d.ts.map +1 -1
  446. package/dist/interfaces/IInterchainQueryRouter.d.ts +19 -3
  447. package/dist/interfaces/IInterchainQueryRouter.d.ts.map +1 -1
  448. package/dist/interfaces/IMailbox.d.ts +10 -58
  449. package/dist/interfaces/IMailbox.d.ts.map +1 -1
  450. package/dist/interfaces/IMultisigValidatorManager.d.ts +59 -0
  451. package/dist/interfaces/IMultisigValidatorManager.d.ts.map +1 -0
  452. package/dist/interfaces/IMultisigValidatorManager.js +4 -0
  453. package/dist/interfaces/IMultisigValidatorManager.js.map +1 -0
  454. package/dist/interfaces/IOutbox.d.ts +148 -0
  455. package/dist/interfaces/IOutbox.d.ts.map +1 -0
  456. package/dist/interfaces/IOutbox.js +4 -0
  457. package/dist/interfaces/IOutbox.js.map +1 -0
  458. package/dist/interfaces/index.d.ts +4 -0
  459. package/dist/interfaces/index.d.ts.map +1 -1
  460. package/interfaces/IAbacusConnectionManager.sol +12 -0
  461. package/interfaces/IInbox.sol +16 -0
  462. package/interfaces/IInterchainAccountRouter.sol +7 -1
  463. package/interfaces/IInterchainGasPaymaster.sol +5 -3
  464. package/interfaces/IInterchainQueryRouter.sol +9 -2
  465. package/interfaces/IMailbox.sol +2 -15
  466. package/interfaces/IMultisigValidatorManager.sol +11 -0
  467. package/interfaces/IOutbox.sol +27 -0
  468. package/package.json +3 -4
  469. package/contracts/isms/MultisigIsm.sol +0 -340
  470. package/contracts/libs/MultisigIsmMetadata.sol +0 -187
  471. package/contracts/mock/MockMailbox.sol +0 -79
  472. package/contracts/test/TestHyperlaneConnectionClient.sol +0 -14
  473. package/contracts/test/TestIsm.sol +0 -20
  474. package/contracts/test/TestMultisigIsm.sol +0 -23
  475. package/dist/contracts/OwnableSpecifiesISM.d.ts.map +0 -1
  476. package/dist/contracts/OwnableSpecifiesISM.js.map +0 -1
  477. package/dist/factories/contracts/OwnableSpecifiesISM__factory.d.ts +0 -55
  478. package/dist/factories/contracts/OwnableSpecifiesISM__factory.d.ts.map +0 -1
  479. package/dist/factories/contracts/OwnableSpecifiesISM__factory.js +0 -145
  480. package/dist/factories/contracts/OwnableSpecifiesISM__factory.js.map +0 -1
  481. package/interfaces/IInterchainSecurityModule.sol +0 -16
  482. package/interfaces/IMultisigIsm.sol +0 -18
@@ -1,7 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.13;
3
3
 
4
- import "./MockMailbox.sol";
4
+ import "./MockOutbox.sol";
5
+ import "./MockInbox.sol";
6
+ import "../AbacusConnectionManager.sol";
5
7
  import "../middleware/InterchainQueryRouter.sol";
6
8
 
7
9
  import {TypeCasts} from "../libs/TypeCasts.sol";
@@ -10,30 +12,57 @@ contract MockHyperlaneEnvironment {
10
12
  uint32 originDomain;
11
13
  uint32 destinationDomain;
12
14
 
13
- mapping(uint32 => MockMailbox) public mailboxes;
15
+ mapping(uint32 => MockOutbox) public outboxes;
16
+ mapping(uint32 => MockInbox) public inboxes;
17
+ mapping(uint32 => AbacusConnectionManager) public connectionManagers;
14
18
  mapping(uint32 => InterchainQueryRouter) public queryRouters;
15
19
 
16
20
  constructor(uint32 _originDomain, uint32 _destinationDomain) {
17
21
  originDomain = _originDomain;
18
22
  destinationDomain = _destinationDomain;
19
23
 
20
- MockMailbox originMailbox = new MockMailbox(_originDomain);
21
- MockMailbox destinationMailbox = new MockMailbox(_destinationDomain);
24
+ MockInbox originInbox = new MockInbox();
25
+ MockOutbox originOutbox = new MockOutbox(
26
+ _originDomain,
27
+ address(originInbox)
28
+ );
29
+
30
+ MockInbox destinationInbox = new MockInbox();
31
+ MockOutbox destinationOutbox = new MockOutbox(
32
+ _destinationDomain,
33
+ address(destinationInbox)
34
+ );
35
+
36
+ outboxes[_originDomain] = originOutbox;
37
+ outboxes[_destinationDomain] = destinationOutbox;
38
+ inboxes[_originDomain] = destinationInbox;
39
+ inboxes[_destinationDomain] = originInbox;
22
40
 
23
- mailboxes[_originDomain] = originMailbox;
24
- mailboxes[_destinationDomain] = destinationMailbox;
41
+ AbacusConnectionManager originManager = new AbacusConnectionManager();
42
+ AbacusConnectionManager destinationManager = new AbacusConnectionManager();
43
+
44
+ originManager.setOutbox(address(originOutbox));
45
+ destinationManager.enrollInbox(
46
+ _destinationDomain,
47
+ address(originInbox)
48
+ );
49
+ destinationManager.setOutbox(address(destinationOutbox));
50
+ originManager.enrollInbox(_originDomain, address(destinationInbox));
51
+
52
+ connectionManagers[_originDomain] = originManager;
53
+ connectionManagers[_destinationDomain] = destinationManager;
25
54
 
26
55
  InterchainQueryRouter originQueryRouter = new InterchainQueryRouter();
27
56
  InterchainQueryRouter destinationQueryRouter = new InterchainQueryRouter();
28
57
 
29
58
  originQueryRouter.initialize(
30
59
  address(this),
31
- address(originMailbox),
60
+ address(originManager),
32
61
  address(0)
33
62
  );
34
63
  destinationQueryRouter.initialize(
35
64
  address(this),
36
- address(destinationMailbox),
65
+ address(destinationManager),
37
66
  address(0)
38
67
  );
39
68
 
@@ -50,11 +79,19 @@ contract MockHyperlaneEnvironment {
50
79
  queryRouters[_destinationDomain] = destinationQueryRouter;
51
80
  }
52
81
 
82
+ function connectionManager(uint32 _domain)
83
+ public
84
+ view
85
+ returns (AbacusConnectionManager)
86
+ {
87
+ return connectionManagers[_domain];
88
+ }
89
+
53
90
  function processNextPendingMessage() public {
54
- mailboxes[destinationDomain].processNextInboundMessage();
91
+ inboxes[destinationDomain].processNextPendingMessage();
55
92
  }
56
93
 
57
94
  function processNextPendingMessageFromDestination() public {
58
- mailboxes[originDomain].processNextInboundMessage();
95
+ inboxes[originDomain].processNextPendingMessage();
59
96
  }
60
97
  }
@@ -0,0 +1,52 @@
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
+ }
@@ -38,17 +38,31 @@ contract MockInterchainAccountRouter is IInterchainAccountRouter {
38
38
  originDomain = _originDomain;
39
39
  }
40
40
 
41
- function dispatch(uint32, Call[] calldata calls)
42
- external
43
- returns (bytes32)
41
+ function dispatch(uint32 _destinationDomain, Call[] calldata calls)
42
+ public
43
+ returns (uint256)
44
44
  {
45
+ return _dispatch(_destinationDomain, calls);
46
+ }
47
+
48
+ function dispatch(
49
+ uint32 _destinationDomain,
50
+ address target,
51
+ bytes calldata data
52
+ ) external returns (uint256) {
53
+ Call[] memory calls = new Call[](1);
54
+ calls[0] = Call({to: target, data: data});
55
+ return _dispatch(_destinationDomain, calls);
56
+ }
57
+
58
+ function _dispatch(uint32, Call[] memory calls) internal returns (uint256) {
45
59
  pendingCalls[totalCalls] = PendingCall(
46
60
  originDomain,
47
61
  msg.sender,
48
62
  abi.encode(calls)
49
63
  );
50
64
  totalCalls += 1;
51
- return keccak256(abi.encodePacked(totalCalls));
65
+ return totalCalls;
52
66
  }
53
67
 
54
68
  function getInterchainAccount(uint32 _origin, address _sender)
@@ -0,0 +1,30 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.0;
3
+
4
+ import {MockInbox} from "./MockInbox.sol";
5
+ import {TypeCasts} from "../libs/TypeCasts.sol";
6
+
7
+ contract MockOutbox {
8
+ MockInbox inbox;
9
+ uint32 domain;
10
+ using TypeCasts for address;
11
+
12
+ constructor(uint32 _domain, address _inbox) {
13
+ domain = _domain;
14
+ inbox = MockInbox(_inbox);
15
+ }
16
+
17
+ function dispatch(
18
+ uint32,
19
+ bytes32 _recipientAddress,
20
+ bytes calldata _messageBody
21
+ ) external returns (uint256) {
22
+ inbox.addPendingMessage(
23
+ domain,
24
+ msg.sender.addressToBytes32(),
25
+ _recipientAddress,
26
+ _messageBody
27
+ );
28
+ return 1;
29
+ }
30
+ }
@@ -0,0 +1,89 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.13;
3
+
4
+ import {IPortalTokenBridge} from "../middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.sol";
5
+ import {MockToken} from "./MockToken.sol";
6
+ import {TypeCasts} from "../libs/TypeCasts.sol";
7
+
8
+ contract MockPortalBridge is IPortalTokenBridge {
9
+ uint256 nextNonce = 0;
10
+ MockToken token;
11
+
12
+ constructor(MockToken _token) {
13
+ token = _token;
14
+ }
15
+
16
+ function transferTokensWithPayload(
17
+ address,
18
+ uint256 amount,
19
+ uint16,
20
+ bytes32,
21
+ uint32,
22
+ bytes memory
23
+ ) external payable returns (uint64 sequence) {
24
+ nextNonce = nextNonce + 1;
25
+ token.transferFrom(msg.sender, address(this), amount);
26
+ token.burn(amount);
27
+ return uint64(nextNonce);
28
+ }
29
+
30
+ function wrappedAsset(uint16, bytes32) external view returns (address) {
31
+ return address(token);
32
+ }
33
+
34
+ function isWrappedAsset(address) external pure returns (bool) {
35
+ return true;
36
+ }
37
+
38
+ function completeTransferWithPayload(bytes memory encodedVm)
39
+ external
40
+ returns (bytes memory)
41
+ {
42
+ (uint32 _originDomain, uint224 _nonce, uint256 _amount) = abi.decode(
43
+ encodedVm,
44
+ (uint32, uint224, uint256)
45
+ );
46
+
47
+ token.mint(msg.sender, _amount);
48
+ // Format it so that parseTransferWithPayload returns the desired payload
49
+ return
50
+ abi.encode(
51
+ TypeCasts.addressToBytes32(address(token)),
52
+ adapterData(_originDomain, _nonce, address(token))
53
+ );
54
+ }
55
+
56
+ function parseTransferWithPayload(bytes memory encoded)
57
+ external
58
+ pure
59
+ returns (TransferWithPayload memory transfer)
60
+ {
61
+ (bytes32 tokenAddress, bytes memory payload) = abi.decode(
62
+ encoded,
63
+ (bytes32, bytes)
64
+ );
65
+ transfer.payload = payload;
66
+ transfer.tokenAddress = tokenAddress;
67
+ }
68
+
69
+ function adapterData(
70
+ uint32 _originDomain,
71
+ uint224 _nonce,
72
+ address _token
73
+ ) public pure returns (bytes memory) {
74
+ return
75
+ abi.encode(
76
+ _originDomain,
77
+ _nonce,
78
+ TypeCasts.addressToBytes32(_token)
79
+ );
80
+ }
81
+
82
+ function mockPortalVaa(
83
+ uint32 _originDomain,
84
+ uint224 _nonce,
85
+ uint256 _amount
86
+ ) public pure returns (bytes memory) {
87
+ return abi.encode(_originDomain, _nonce, _amount);
88
+ }
89
+ }
@@ -0,0 +1,23 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.6.11;
3
+ import {IOutbox} from "../../interfaces/IOutbox.sol";
4
+
5
+ import "../AbacusConnectionClient.sol";
6
+
7
+ contract TestAbacusConnectionClient is AbacusConnectionClient {
8
+ function initialize(address _abacusConnectionManager) external initializer {
9
+ __AbacusConnectionClient_initialize(_abacusConnectionManager);
10
+ }
11
+
12
+ function outbox() external view returns (IOutbox) {
13
+ return _outbox();
14
+ }
15
+
16
+ function isInbox(address _potentialInbox) external view returns (bool) {
17
+ return _isInbox(_potentialInbox);
18
+ }
19
+
20
+ function localDomain() external view returns (uint32) {
21
+ return _localDomain();
22
+ }
23
+ }
@@ -0,0 +1,54 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import "../Inbox.sol";
5
+
6
+ contract TestInbox is Inbox {
7
+ using Message for bytes32;
8
+ using TypeCasts for bytes32;
9
+
10
+ constructor(uint32 _localDomain) Inbox(_localDomain) {} // solhint-disable-line no-empty-blocks
11
+
12
+ function testBranchRoot(
13
+ bytes32 leaf,
14
+ bytes32[32] calldata proof,
15
+ uint256 index
16
+ ) external pure returns (bytes32) {
17
+ return MerkleLib.branchRoot(leaf, proof, index);
18
+ }
19
+
20
+ function testProcess(bytes calldata _message, uint256 leafIndex) external {
21
+ bytes32 _messageHash = keccak256(abi.encodePacked(_message, leafIndex));
22
+ _process(_message, _messageHash);
23
+ }
24
+
25
+ function testHandle(
26
+ uint32 origin,
27
+ bytes32 sender,
28
+ bytes32 recipient,
29
+ bytes calldata body
30
+ ) external {
31
+ IMessageRecipient(recipient.bytes32ToAddress()).handle(
32
+ origin,
33
+ sender,
34
+ body
35
+ );
36
+ }
37
+
38
+ function setMessageStatus(bytes32 _leaf, MessageStatus status) external {
39
+ messages[_leaf] = status;
40
+ }
41
+
42
+ function getRevertMsg(bytes calldata _res)
43
+ internal
44
+ pure
45
+ returns (string memory)
46
+ {
47
+ // If the _res length is less than 68, then the transaction failed
48
+ // silently (without a revert message)
49
+ if (_res.length < 68) return "Transaction reverted silently";
50
+
51
+ // Remove the selector (first 4 bytes) and decode revert string
52
+ return abi.decode(_res[4:], (string));
53
+ }
54
+ }
@@ -1,42 +1,12 @@
1
1
  // SPDX-License-Identifier: MIT OR Apache-2.0
2
2
  pragma solidity >=0.8.0;
3
3
 
4
- import {Mailbox} from "../Mailbox.sol";
5
- import {TypeCasts} from "../libs/TypeCasts.sol";
6
- import {MerkleLib} from "../libs/Merkle.sol";
7
- import {IMessageRecipient} from "../../interfaces/IMessageRecipient.sol";
4
+ import "../Mailbox.sol";
8
5
 
9
6
  contract TestMailbox is Mailbox {
10
- using TypeCasts for bytes32;
7
+ constructor(uint32 _localDomain) Mailbox(_localDomain) {}
11
8
 
12
- constructor(uint32 _localDomain) Mailbox(_localDomain) {} // solhint-disable-line no-empty-blocks
13
-
14
- function proof() external view returns (bytes32[32] memory) {
15
- bytes32[32] memory _zeroes = MerkleLib.zeroHashes();
16
- uint256 _index = tree.count - 1;
17
- bytes32[32] memory _proof;
18
-
19
- for (uint256 i = 0; i < 32; i++) {
20
- uint256 _ithBit = (_index >> i) & 0x01;
21
- if (_ithBit == 1) {
22
- _proof[i] = tree.branch[i];
23
- } else {
24
- _proof[i] = _zeroes[i];
25
- }
26
- }
27
- return _proof;
28
- }
29
-
30
- function testHandle(
31
- uint32 _origin,
32
- bytes32 _sender,
33
- bytes32 _recipient,
34
- bytes calldata _body
35
- ) external {
36
- IMessageRecipient(_recipient.bytes32ToAddress()).handle(
37
- _origin,
38
- _sender,
39
- _body
40
- );
9
+ function initialize(address _validatorManager) external initializer {
10
+ __Mailbox_initialize(_validatorManager);
41
11
  }
42
12
  }
@@ -1,14 +1,13 @@
1
1
  // SPDX-License-Identifier: MIT OR Apache-2.0
2
2
  pragma solidity >=0.8.0;
3
- import {MerkleLib} from "../libs/Merkle.sol";
4
3
 
5
- contract TestMerkle {
6
- using MerkleLib for MerkleLib.Tree;
4
+ import "../MerkleTreeManager.sol";
7
5
 
8
- MerkleLib.Tree public tree;
6
+ contract TestMerkle is MerkleTreeManager {
7
+ using MerkleLib for MerkleLib.Tree;
9
8
 
10
9
  // solhint-disable-next-line no-empty-blocks
11
- constructor() {}
10
+ constructor() MerkleTreeManager() {}
12
11
 
13
12
  function insert(bytes32 _node) external {
14
13
  tree.insert(_node);
@@ -28,8 +27,4 @@ contract TestMerkle {
28
27
  function count() public view returns (uint256) {
29
28
  return tree.count;
30
29
  }
31
-
32
- function root() public view returns (bytes32) {
33
- return tree.root();
34
- }
35
30
  }
@@ -6,28 +6,12 @@ import {Message} from "../libs/Message.sol";
6
6
  contract TestMessage {
7
7
  using Message for bytes;
8
8
 
9
- function version(bytes calldata _message)
10
- external
11
- pure
12
- returns (uint32 _version)
13
- {
14
- return _message.version();
15
- }
16
-
17
- function nonce(bytes calldata _message)
18
- external
19
- pure
20
- returns (uint256 _nonce)
21
- {
22
- return _message.nonce();
23
- }
24
-
25
9
  function body(bytes calldata _message)
26
10
  external
27
11
  pure
28
12
  returns (bytes calldata _body)
29
13
  {
30
- return _message.body();
14
+ (, , , , _body) = _message.destructure();
31
15
  }
32
16
 
33
17
  function origin(bytes calldata _message)
@@ -35,7 +19,7 @@ contract TestMessage {
35
19
  pure
36
20
  returns (uint32 _origin)
37
21
  {
38
- return _message.origin();
22
+ (_origin, , , , ) = _message.destructure();
39
23
  }
40
24
 
41
25
  function sender(bytes calldata _message)
@@ -43,7 +27,7 @@ contract TestMessage {
43
27
  pure
44
28
  returns (bytes32 _sender)
45
29
  {
46
- return _message.sender();
30
+ (, _sender, , , ) = _message.destructure();
47
31
  }
48
32
 
49
33
  function destination(bytes calldata _message)
@@ -51,7 +35,7 @@ contract TestMessage {
51
35
  pure
52
36
  returns (uint32 _destination)
53
37
  {
54
- return _message.destination();
38
+ (, , _destination, , ) = _message.destructure();
55
39
  }
56
40
 
57
41
  function recipient(bytes calldata _message)
@@ -59,7 +43,7 @@ contract TestMessage {
59
43
  pure
60
44
  returns (bytes32 _recipient)
61
45
  {
62
- return _message.recipient();
46
+ (, , , _recipient, ) = _message.destructure();
63
47
  }
64
48
 
65
49
  function recipientAddress(bytes calldata _message)
@@ -67,10 +51,14 @@ contract TestMessage {
67
51
  pure
68
52
  returns (address _recipient)
69
53
  {
70
- return _message.recipientAddress();
54
+ (, , , _recipient, ) = _message.destructureAddresses();
71
55
  }
72
56
 
73
- function id(bytes calldata _message) external pure returns (bytes32) {
74
- return _message.id();
57
+ function leaf(bytes calldata _message, uint256 _leafIndex)
58
+ external
59
+ pure
60
+ returns (bytes32)
61
+ {
62
+ return _message.leaf(_leafIndex);
75
63
  }
76
64
  }
@@ -0,0 +1,26 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {MultisigValidatorManager} from "../validator-manager/MultisigValidatorManager.sol";
5
+
6
+ /**
7
+ * This contract exists to test MultisigValidatorManager.sol, which is abstract
8
+ * and cannot be deployed directly.
9
+ */
10
+ contract TestMultisigValidatorManager is MultisigValidatorManager {
11
+ // solhint-disable-next-line no-empty-blocks
12
+ constructor(
13
+ uint32 _domain,
14
+ address[] memory _validators,
15
+ uint256 _threshold
16
+ ) MultisigValidatorManager(_domain, _validators, _threshold) {}
17
+
18
+ /**
19
+ * @notice Hash of domain concatenated with "ABACUS".
20
+ * @dev This is a public getter of _domainHash to test with.
21
+ * @param _domain The domain to hash.
22
+ */
23
+ function getDomainHash(uint32 _domain) external pure returns (bytes32) {
24
+ return _domainHash(_domain);
25
+ }
26
+ }
@@ -0,0 +1,46 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ // ============ Internal Imports ============
5
+ import "../Outbox.sol";
6
+ import {MerkleLib} from "../libs/Merkle.sol";
7
+
8
+ contract TestOutbox is Outbox {
9
+ constructor(uint32 _localDomain) Outbox(_localDomain) {} // solhint-disable-line no-empty-blocks
10
+
11
+ /**
12
+ * @notice Set the validator manager
13
+ * @param _validatorManager Address of the validator manager
14
+ */
15
+ function testSetValidatorManager(address _validatorManager) external {
16
+ validatorManager = _validatorManager;
17
+ }
18
+
19
+ function proof() external view returns (bytes32[32] memory) {
20
+ bytes32[32] memory _zeroes = MerkleLib.zeroHashes();
21
+ uint256 _index = tree.count - 1;
22
+ bytes32[32] memory _proof;
23
+
24
+ for (uint256 i = 0; i < 32; i++) {
25
+ uint256 _ithBit = (_index >> i) & 0x01;
26
+ if (_ithBit == 1) {
27
+ _proof[i] = tree.branch[i];
28
+ } else {
29
+ _proof[i] = _zeroes[i];
30
+ }
31
+ }
32
+ return _proof;
33
+ }
34
+
35
+ function branch() external view returns (bytes32[32] memory) {
36
+ return tree.branch;
37
+ }
38
+
39
+ function branchRoot(
40
+ bytes32 _item,
41
+ bytes32[32] memory _branch,
42
+ uint256 _index
43
+ ) external pure returns (bytes32) {
44
+ return MerkleLib.branchRoot(_item, _branch, _index);
45
+ }
46
+ }
@@ -5,7 +5,7 @@ import {TypeCasts} from "../libs/TypeCasts.sol";
5
5
 
6
6
  import {IInterchainGasPaymaster} from "../../interfaces/IInterchainGasPaymaster.sol";
7
7
  import {IMessageRecipient} from "../../interfaces/IMessageRecipient.sol";
8
- import {IMailbox} from "../../interfaces/IMailbox.sol";
8
+ import {IOutbox} from "../../interfaces/IOutbox.sol";
9
9
 
10
10
  contract TestSendReceiver is IMessageRecipient {
11
11
  using TypeCasts for address;
@@ -13,12 +13,12 @@ contract TestSendReceiver is IMessageRecipient {
13
13
  event Handled(bytes32 blockHash);
14
14
 
15
15
  function dispatchToSelf(
16
- IMailbox _outbox,
16
+ IOutbox _outbox,
17
17
  IInterchainGasPaymaster _paymaster,
18
18
  uint32 _destinationDomain,
19
19
  bytes calldata _messageBody
20
20
  ) external payable {
21
- bytes32 _messageId = _outbox.dispatch(
21
+ uint256 _leafIndex = _outbox.dispatch(
22
22
  _destinationDomain,
23
23
  address(this).addressToBytes32(),
24
24
  _messageBody
@@ -28,14 +28,23 @@ contract TestSendReceiver is IMessageRecipient {
28
28
  if (_blockHashNum % 5 == 0) {
29
29
  // Pay in two separate calls, resulting in 2 distinct events
30
30
  uint256 _half = _value / 2;
31
- _paymaster.payGasFor{value: _half}(_messageId, _destinationDomain);
31
+ _paymaster.payGasFor{value: _half}(
32
+ address(_outbox),
33
+ _leafIndex,
34
+ _destinationDomain
35
+ );
32
36
  _paymaster.payGasFor{value: _value - _half}(
33
- _messageId,
37
+ address(_outbox),
38
+ _leafIndex,
34
39
  _destinationDomain
35
40
  );
36
41
  } else {
37
42
  // Pay the entire msg.value in one call
38
- _paymaster.payGasFor{value: _value}(_messageId, _destinationDomain);
43
+ _paymaster.payGasFor{value: _value}(
44
+ address(_outbox),
45
+ _leafIndex,
46
+ _destinationDomain
47
+ );
39
48
  }
40
49
  }
41
50
 
@@ -0,0 +1,21 @@
1
+ // SPDX-License-Identifier: MIT OR Apache-2.0
2
+ pragma solidity >=0.8.0;
3
+
4
+ import {IInbox} from "../../interfaces/IInbox.sol";
5
+
6
+ /**
7
+ * Intended for testing Inbox.sol, which requires its validator manager
8
+ * to be a contract.
9
+ */
10
+ contract TestValidatorManager {
11
+ function process(
12
+ IInbox _inbox,
13
+ bytes32 _root,
14
+ uint256 _index,
15
+ bytes calldata _message,
16
+ bytes32[32] calldata _proof,
17
+ uint256 _leafIndex
18
+ ) external {
19
+ _inbox.process(_root, _index, _message, _proof, _leafIndex);
20
+ }
21
+ }