@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,340 +0,0 @@
1
- // SPDX-License-Identifier: MIT OR Apache-2.0
2
- pragma solidity >=0.8.0;
3
-
4
- // ============ External Imports ============
5
- import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
6
- import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
7
- import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
8
-
9
- // ============ Internal Imports ============
10
- import {IMultisigIsm} from "../../interfaces/IMultisigIsm.sol";
11
- import {Message} from "../libs/Message.sol";
12
- import {MultisigIsmMetadata} from "../libs/MultisigIsmMetadata.sol";
13
- import {MerkleLib} from "../libs/Merkle.sol";
14
-
15
- /**
16
- * @title MultisigIsm
17
- * @notice Manages an ownable set of validators that ECDSA sign checkpoints to
18
- * reach a quorum.
19
- */
20
- contract MultisigIsm is IMultisigIsm, Ownable {
21
- // ============ Libraries ============
22
-
23
- using EnumerableSet for EnumerableSet.AddressSet;
24
- using Message for bytes;
25
- using MultisigIsmMetadata for bytes;
26
- using MerkleLib for MerkleLib.Tree;
27
-
28
- // ============ Mutable Storage ============
29
-
30
- /// @notice The validator threshold for each remote domain.
31
- mapping(uint32 => uint256) public threshold;
32
-
33
- /// @notice The validator set for each remote domain.
34
- mapping(uint32 => EnumerableSet.AddressSet) private validatorSet;
35
-
36
- /// @notice A succinct commitment to the validator set and threshold for each remote
37
- /// domain.
38
- mapping(uint32 => bytes32) public commitment;
39
-
40
- // ============ Events ============
41
-
42
- /**
43
- * @notice Emitted when a validator is enrolled in a validator set.
44
- * @param domain The remote domain of the validator set.
45
- * @param validator The address of the validator.
46
- * @param validatorCount The number of enrolled validators in the validator set.
47
- * @param commitment A commitment to the validator set and threshold.
48
- */
49
- event ValidatorEnrolled(
50
- uint32 indexed domain,
51
- address indexed validator,
52
- uint256 validatorCount,
53
- bytes32 commitment
54
- );
55
-
56
- /**
57
- * @notice Emitted when a validator is unenrolled from a validator set.
58
- * @param domain The remote domain of the validator set.
59
- * @param validator The address of the validator.
60
- * @param validatorCount The number of enrolled validators in the validator set.
61
- * @param commitment A commitment to the validator set and threshold.
62
- */
63
- event ValidatorUnenrolled(
64
- uint32 indexed domain,
65
- address indexed validator,
66
- uint256 validatorCount,
67
- bytes32 commitment
68
- );
69
-
70
- /**
71
- * @notice Emitted when the quorum threshold is set.
72
- * @param domain The remote domain of the validator set.
73
- * @param threshold The new quorum threshold.
74
- * @param commitment A commitment to the validator set and threshold.
75
- */
76
- event ThresholdSet(
77
- uint32 indexed domain,
78
- uint256 threshold,
79
- bytes32 commitment
80
- );
81
-
82
- // ============ Constructor ============
83
-
84
- // solhint-disable-next-line no-empty-blocks
85
- constructor() Ownable() {}
86
-
87
- // ============ External Functions ============
88
-
89
- /**
90
- * @notice Enrolls a validator into a validator set.
91
- * @dev Reverts if `_validator` is already in the validator set.
92
- * @param _domain The remote domain of the validator set.
93
- * @param _validator The validator to add to the validator set.
94
- */
95
- function enrollValidator(uint32 _domain, address _validator)
96
- external
97
- onlyOwner
98
- {
99
- require(_validator != address(0), "zero address");
100
- require(validatorSet[_domain].add(_validator), "already enrolled");
101
- bytes32 _commitment = _updateCommitment(_domain);
102
- emit ValidatorEnrolled(
103
- _domain,
104
- _validator,
105
- validatorCount(_domain),
106
- _commitment
107
- );
108
- }
109
-
110
- /**
111
- * @notice Unenrolls a validator from a validator set.
112
- * @dev Reverts if `_validator` is not in the validator set.
113
- * @param _domain The remote domain of the validator set.
114
- * @param _validator The validator to remove from the validator set.
115
- */
116
- function unenrollValidator(uint32 _domain, address _validator)
117
- external
118
- onlyOwner
119
- {
120
- require(validatorSet[_domain].remove(_validator), "!enrolled");
121
- uint256 _validatorCount = validatorCount(_domain);
122
- require(
123
- _validatorCount >= threshold[_domain],
124
- "violates quorum threshold"
125
- );
126
- bytes32 _commitment = _updateCommitment(_domain);
127
- emit ValidatorUnenrolled(
128
- _domain,
129
- _validator,
130
- _validatorCount,
131
- _commitment
132
- );
133
- }
134
-
135
- /**
136
- * @notice Sets the quorum threshold.
137
- * @param _domain The remote domain of the validator set.
138
- * @param _threshold The new quorum threshold.
139
- */
140
- function setThreshold(uint32 _domain, uint256 _threshold)
141
- external
142
- onlyOwner
143
- {
144
- require(
145
- _threshold > 0 && _threshold <= validatorCount(_domain),
146
- "!range"
147
- );
148
- threshold[_domain] = _threshold;
149
- bytes32 _commitment = _updateCommitment(_domain);
150
- emit ThresholdSet(_domain, _threshold, _commitment);
151
- }
152
-
153
- /**
154
- * @notice Returns whether an address is enrolled in a validator set.
155
- * @param _domain The remote domain of the validator set.
156
- * @param _address The address to test for set membership.
157
- * @return True if the address is enrolled, false otherwise.
158
- */
159
- function isEnrolled(uint32 _domain, address _address)
160
- external
161
- view
162
- returns (bool)
163
- {
164
- EnumerableSet.AddressSet storage _validatorSet = validatorSet[_domain];
165
- return _validatorSet.contains(_address);
166
- }
167
-
168
- // ============ Public Functions ============
169
-
170
- /**
171
- * @notice Verifies that a quorum of the origin domain's validators signed
172
- * a checkpoint, and verifies the merkle proof of `_message` against that
173
- * checkpoint.
174
- * @param _metadata ABI encoded module metadata (see MultisigIsmMetadata.sol)
175
- * @param _message Formatted Hyperlane message (see Message.sol).
176
- */
177
- function verify(bytes calldata _metadata, bytes calldata _message)
178
- public
179
- view
180
- returns (bool)
181
- {
182
- require(_verifyMerkleProof(_metadata, _message), "!merkle");
183
- require(_verifyValidatorSignatures(_metadata, _message), "!sigs");
184
- return true;
185
- }
186
-
187
- /**
188
- * @notice Gets the current validator set
189
- * @param _domain The remote domain of the validator set.
190
- * @return The addresses of the validator set.
191
- */
192
- function validators(uint32 _domain) public view returns (address[] memory) {
193
- EnumerableSet.AddressSet storage _validatorSet = validatorSet[_domain];
194
- uint256 _validatorCount = _validatorSet.length();
195
- address[] memory _validators = new address[](_validatorCount);
196
- for (uint256 i = 0; i < _validatorCount; i++) {
197
- _validators[i] = _validatorSet.at(i);
198
- }
199
- return _validators;
200
- }
201
-
202
- /**
203
- * @notice Returns the number of validators enrolled in the validator set.
204
- * @param _domain The remote domain of the validator set.
205
- * @return The number of validators enrolled in the validator set.
206
- */
207
- function validatorCount(uint32 _domain) public view returns (uint256) {
208
- return validatorSet[_domain].length();
209
- }
210
-
211
- // ============ Internal Functions ============
212
-
213
- /**
214
- * @notice Updates the commitment to the validator set for `_domain`.
215
- * @param _domain The remote domain of the validator set.
216
- * @return The commitment to the validator set for `_domain`.
217
- */
218
- function _updateCommitment(uint32 _domain) internal returns (bytes32) {
219
- address[] memory _validators = validators(_domain);
220
- uint256 _threshold = threshold[_domain];
221
- bytes32 _commitment = keccak256(
222
- abi.encodePacked(_threshold, _validators)
223
- );
224
- commitment[_domain] = _commitment;
225
- return _commitment;
226
- }
227
-
228
- /**
229
- * @notice Verifies the merkle proof of `_message` against the provided
230
- * checkpoint.
231
- * @param _metadata ABI encoded module metadata (see MultisigIsmMetadata.sol)
232
- * @param _message Formatted Hyperlane message (see Message.sol).
233
- */
234
- function _verifyMerkleProof(
235
- bytes calldata _metadata,
236
- bytes calldata _message
237
- ) internal pure returns (bool) {
238
- // calculate the expected root based on the proof
239
- bytes32 _calculatedRoot = MerkleLib.branchRoot(
240
- _message.id(),
241
- _metadata.proof(),
242
- _message.nonce()
243
- );
244
- return _calculatedRoot == _metadata.root();
245
- }
246
-
247
- /**
248
- * @notice Verifies that a quorum of the origin domain's validators signed
249
- * the provided checkpoint.
250
- * @param _metadata ABI encoded module metadata (see MultisigIsmMetadata.sol)
251
- * @param _message Formatted Hyperlane message (see Message.sol).
252
- */
253
- function _verifyValidatorSignatures(
254
- bytes calldata _metadata,
255
- bytes calldata _message
256
- ) internal view returns (bool) {
257
- uint256 _threshold = _metadata.threshold();
258
- bytes32 _digest;
259
- {
260
- uint32 _origin = _message.origin();
261
-
262
- bytes32 _commitment = keccak256(
263
- abi.encodePacked(_threshold, _metadata.validators())
264
- );
265
- // Ensures the validator set encoded in the metadata matches
266
- // what we've stored on chain.
267
- // NB: An empty validator set in `_metadata` will result in a
268
- // non-zero computed commitment, and this check will fail
269
- // as the commitment in storage will be zero.
270
- require(_commitment == commitment[_origin], "!commitment");
271
- _digest = _getCheckpointDigest(_metadata, _origin);
272
- }
273
- uint256 _validatorCount = _metadata.validatorCount();
274
- uint256 _validatorIndex = 0;
275
- // Assumes that signatures are ordered by validator
276
- for (uint256 i = 0; i < _threshold; ++i) {
277
- address _signer = ECDSA.recover(_digest, _metadata.signatureAt(i));
278
- // Loop through remaining validators until we find a match
279
- for (
280
- ;
281
- _validatorIndex < _validatorCount &&
282
- _signer != _metadata.validatorAt(_validatorIndex);
283
- ++_validatorIndex
284
- ) {}
285
- // Fail if we never found a match
286
- require(_validatorIndex < _validatorCount, "!threshold");
287
- ++_validatorIndex;
288
- }
289
- return true;
290
- }
291
-
292
- /**
293
- * @notice Returns the domain hash that validators are expected to use
294
- * when signing checkpoints.
295
- * @param _origin The origin domain of the checkpoint.
296
- * @param _originMailbox The address of the origin mailbox as bytes32.
297
- * @return The domain hash.
298
- */
299
- function _getDomainHash(uint32 _origin, bytes32 _originMailbox)
300
- internal
301
- pure
302
- returns (bytes32)
303
- {
304
- // Including the origin mailbox address in the signature allows the slashing
305
- // protocol to enroll multiple mailboxes. Otherwise, a valid signature for
306
- // mailbox A would be indistinguishable from a fraudulent signature for mailbox
307
- // B.
308
- // The slashing protocol should slash if validators sign attestations for
309
- // anything other than a whitelisted mailbox.
310
- return
311
- keccak256(abi.encodePacked(_origin, _originMailbox, "HYPERLANE"));
312
- }
313
-
314
- /**
315
- * @notice Returns the digest validators are expected to sign when signing checkpoints.
316
- * @param _metadata ABI encoded module metadata (see MultisigIsmMetadata.sol)
317
- * @param _origin The origin domain of the checkpoint.
318
- * @return The digest of the checkpoint.
319
- */
320
- function _getCheckpointDigest(bytes calldata _metadata, uint32 _origin)
321
- internal
322
- pure
323
- returns (bytes32)
324
- {
325
- bytes32 _domainHash = _getDomainHash(
326
- _origin,
327
- _metadata.originMailbox()
328
- );
329
- return
330
- ECDSA.toEthSignedMessageHash(
331
- keccak256(
332
- abi.encodePacked(
333
- _domainHash,
334
- _metadata.root(),
335
- _metadata.index()
336
- )
337
- )
338
- );
339
- }
340
- }
@@ -1,187 +0,0 @@
1
- // SPDX-License-Identifier: MIT OR Apache-2.0
2
- pragma solidity >=0.8.0;
3
-
4
- /**
5
- * Format of metadata:
6
- * [ 0: 32] Merkle root
7
- * [ 32: 64] Root index
8
- * [ 64: 96] Origin mailbox address
9
- * [ 96:1120] Merkle proof
10
- * [1120:1152] Threshold
11
- * [1152:????] Validator signatures, 65 bytes each, length == Threshold
12
- * [????:????] Addresses of the entire validator set, left padded to bytes32
13
- */
14
- library MultisigIsmMetadata {
15
- uint256 private constant MERKLE_ROOT_OFFSET = 0;
16
- uint256 private constant MERKLE_INDEX_OFFSET = 32;
17
- uint256 private constant ORIGIN_MAILBOX_OFFSET = 64;
18
- uint256 private constant MERKLE_PROOF_OFFSET = 96;
19
- uint256 private constant THRESHOLD_OFFSET = 1120;
20
- uint256 private constant SIGNATURES_OFFSET = 1152;
21
- uint256 private constant SIGNATURE_LENGTH = 65;
22
-
23
- /**
24
- * @notice Returns the merkle root of the signed checkpoint.
25
- * @param _metadata ABI encoded Multisig ISM metadata.
26
- * @return Merkle root of the signed checkpoint
27
- */
28
- function root(bytes calldata _metadata) internal pure returns (bytes32) {
29
- return bytes32(_metadata[MERKLE_ROOT_OFFSET:MERKLE_INDEX_OFFSET]);
30
- }
31
-
32
- /**
33
- * @notice Returns the index of the signed checkpoint.
34
- * @param _metadata ABI encoded Multisig ISM metadata.
35
- * @return Index of the signed checkpoint
36
- */
37
- function index(bytes calldata _metadata) internal pure returns (uint256) {
38
- return
39
- uint256(
40
- bytes32(_metadata[MERKLE_INDEX_OFFSET:ORIGIN_MAILBOX_OFFSET])
41
- );
42
- }
43
-
44
- /**
45
- * @notice Returns the origin mailbox of the signed checkpoint as bytes32.
46
- * @param _metadata ABI encoded Multisig ISM metadata.
47
- * @return Origin mailbox of the signed checkpoint as bytes32
48
- */
49
- function originMailbox(bytes calldata _metadata)
50
- internal
51
- pure
52
- returns (bytes32)
53
- {
54
- return bytes32(_metadata[ORIGIN_MAILBOX_OFFSET:MERKLE_PROOF_OFFSET]);
55
- }
56
-
57
- /**
58
- * @notice Returns the merkle proof branch of the message.
59
- * @dev This appears to be more gas efficient than returning a calldata
60
- * slice and using that.
61
- * @param _metadata ABI encoded Multisig ISM metadata.
62
- * @return Merkle proof branch of the message.
63
- */
64
- function proof(bytes calldata _metadata)
65
- internal
66
- pure
67
- returns (bytes32[32] memory)
68
- {
69
- return
70
- abi.decode(
71
- _metadata[MERKLE_PROOF_OFFSET:THRESHOLD_OFFSET],
72
- (bytes32[32])
73
- );
74
- }
75
-
76
- /**
77
- * @notice Returns the number of required signatures. Verified against
78
- * the commitment stored in the module.
79
- * @param _metadata ABI encoded Multisig ISM metadata.
80
- * @return The number of required signatures.
81
- */
82
- function threshold(bytes calldata _metadata)
83
- internal
84
- pure
85
- returns (uint256)
86
- {
87
- return uint256(bytes32(_metadata[THRESHOLD_OFFSET:SIGNATURES_OFFSET]));
88
- }
89
-
90
- /**
91
- * @notice Returns the validator ECDSA signature at `_index`.
92
- * @dev Assumes signatures are sorted by validator
93
- * @dev Assumes `_metadata` encodes `threshold` signatures.
94
- * @dev Assumes `_index` is less than `threshold`
95
- * @param _metadata ABI encoded Multisig ISM metadata.
96
- * @param _index The index of the signature to return.
97
- * @return The validator ECDSA signature at `_index`.
98
- */
99
- function signatureAt(bytes calldata _metadata, uint256 _index)
100
- internal
101
- pure
102
- returns (bytes calldata)
103
- {
104
- uint256 _start = SIGNATURES_OFFSET + (_index * SIGNATURE_LENGTH);
105
- uint256 _end = _start + SIGNATURE_LENGTH;
106
- return _metadata[_start:_end];
107
- }
108
-
109
- /**
110
- * @notice Returns the validator address at `_index`.
111
- * @dev Assumes `_index` is less than the number of validators
112
- * @param _metadata ABI encoded Multisig ISM metadata.
113
- * @param _index The index of the validator to return.
114
- * @return The validator address at `_index`.
115
- */
116
- function validatorAt(bytes calldata _metadata, uint256 _index)
117
- internal
118
- pure
119
- returns (address)
120
- {
121
- // Validator addresses are left padded to bytes32 in order to match
122
- // abi.encodePacked(address[]).
123
- uint256 _start = _validatorsOffset(_metadata) + (_index * 32) + 12;
124
- uint256 _end = _start + 20;
125
- return address(bytes20(_metadata[_start:_end]));
126
- }
127
-
128
- /**
129
- * @notice Returns the validator set encoded as bytes. Verified against the
130
- * commitment stored in the module.
131
- * @dev Validator addresses are encoded as tightly packed array of bytes32,
132
- * sorted to match the enumerable set stored by the module.
133
- * @param _metadata ABI encoded Multisig ISM metadata.
134
- * @return The validator set encoded as bytes.
135
- */
136
- function validators(bytes calldata _metadata)
137
- internal
138
- pure
139
- returns (bytes calldata)
140
- {
141
- return _metadata[_validatorsOffset(_metadata):];
142
- }
143
-
144
- /**
145
- * @notice Returns the size of the validator set encoded in the metadata
146
- * @dev Validator addresses are encoded as tightly packed array of bytes32,
147
- * sorted to match the enumerable set stored by the module.
148
- * @param _metadata ABI encoded Multisig ISM metadata.
149
- * @return The size of the validator set encoded in the metadata
150
- */
151
- function commitment(bytes calldata _metadata)
152
- internal
153
- pure
154
- returns (uint256)
155
- {
156
- return (_metadata.length - _validatorsOffset(_metadata)) / 32;
157
- }
158
-
159
- /**
160
- * @notice Returns the size of the validator set encoded in the metadata
161
- * @dev Validator addresses are encoded as tightly packed array of bytes32,
162
- * sorted to match the enumerable set stored by the module.
163
- * @param _metadata ABI encoded Multisig ISM metadata.
164
- * @return The size of the validator set encoded in the metadata
165
- */
166
- function validatorCount(bytes calldata _metadata)
167
- internal
168
- pure
169
- returns (uint256)
170
- {
171
- return (_metadata.length - _validatorsOffset(_metadata)) / 32;
172
- }
173
-
174
- /**
175
- * @notice Returns the offset in bytes of the list of validators within
176
- * `_metadata`.
177
- * @param _metadata ABI encoded Multisig ISM metadata.
178
- * @return The index at which the list of validators starts
179
- */
180
- function _validatorsOffset(bytes calldata _metadata)
181
- private
182
- pure
183
- returns (uint256)
184
- {
185
- return SIGNATURES_OFFSET + (threshold(_metadata) * SIGNATURE_LENGTH);
186
- }
187
- }
@@ -1,79 +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 MockMailbox {
8
- using TypeCasts for address;
9
- using TypeCasts for bytes32;
10
- // Domain of chain on which the contract is deployed
11
- uint32 public immutable domain;
12
- uint32 public immutable version = 0;
13
-
14
- uint256 public outboundNonce = 0;
15
- uint256 public inboundUnprocessedNonce = 0;
16
- uint256 public inboundProcessedNonce = 0;
17
- mapping(uint32 => MockMailbox) public remoteMailboxes;
18
- mapping(uint256 => Message) public inboundMessages;
19
-
20
- struct Message {
21
- uint32 origin;
22
- address sender;
23
- address recipient;
24
- bytes body;
25
- }
26
-
27
- constructor(uint32 _domain) {
28
- domain = _domain;
29
- }
30
-
31
- function addRemoteMailbox(uint32 _domain, MockMailbox _mailbox) external {
32
- remoteMailboxes[_domain] = _mailbox;
33
- }
34
-
35
- function dispatch(
36
- uint32 _destinationDomain,
37
- bytes32 _recipientAddress,
38
- bytes calldata _messageBody
39
- ) external returns (bytes32) {
40
- MockMailbox _destinationMailbox = remoteMailboxes[_destinationDomain];
41
- require(
42
- address(_destinationMailbox) != address(0),
43
- "Missing remote mailbox"
44
- );
45
- _destinationMailbox.addInboundMessage(
46
- domain,
47
- msg.sender,
48
- _recipientAddress.bytes32ToAddress(),
49
- _messageBody
50
- );
51
- outboundNonce++;
52
- return bytes32(0);
53
- }
54
-
55
- function addInboundMessage(
56
- uint32 _origin,
57
- address _sender,
58
- address _recipient,
59
- bytes calldata _body
60
- ) external {
61
- inboundMessages[inboundUnprocessedNonce] = Message(
62
- _origin,
63
- _sender,
64
- _recipient,
65
- _body
66
- );
67
- inboundUnprocessedNonce++;
68
- }
69
-
70
- function processNextInboundMessage() public {
71
- Message memory _message = inboundMessages[inboundProcessedNonce];
72
- IMessageRecipient(_message.recipient).handle(
73
- _message.origin,
74
- _message.sender.addressToBytes32(),
75
- _message.body
76
- );
77
- inboundProcessedNonce++;
78
- }
79
- }
@@ -1,14 +0,0 @@
1
- // SPDX-License-Identifier: MIT OR Apache-2.0
2
- pragma solidity >=0.6.11;
3
- import {HyperlaneConnectionClient} from "../HyperlaneConnectionClient.sol";
4
- import {IMailbox} from "../../interfaces/IMailbox.sol";
5
-
6
- contract TestHyperlaneConnectionClient is HyperlaneConnectionClient {
7
- function initialize(address _abacusConnectionManager) external initializer {
8
- __HyperlaneConnectionClient_initialize(_abacusConnectionManager);
9
- }
10
-
11
- function localDomain() external view returns (uint32) {
12
- return mailbox.localDomain();
13
- }
14
- }
@@ -1,20 +0,0 @@
1
- // SPDX-License-Identifier: MIT OR Apache-2.0
2
- pragma solidity >=0.8.0;
3
-
4
- import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
5
-
6
- contract TestIsm is IInterchainSecurityModule {
7
- bool public accept;
8
-
9
- function setAccept(bool _val) external {
10
- accept = _val;
11
- }
12
-
13
- function verify(bytes calldata, bytes calldata)
14
- external
15
- view
16
- returns (bool)
17
- {
18
- return accept;
19
- }
20
- }
@@ -1,23 +0,0 @@
1
- // SPDX-License-Identifier: MIT OR Apache-2.0
2
- pragma solidity >=0.8.0;
3
-
4
- // ============ Internal Imports ============
5
- import {MultisigIsm} from "../isms/MultisigIsm.sol";
6
-
7
- contract TestMultisigIsm is MultisigIsm {
8
- function getDomainHash(uint32 _origin, bytes32 _originMailbox)
9
- external
10
- pure
11
- returns (bytes32)
12
- {
13
- return _getDomainHash(_origin, _originMailbox);
14
- }
15
-
16
- function getCheckpointDigest(bytes calldata _metadata, uint32 _origin)
17
- external
18
- pure
19
- returns (bytes32)
20
- {
21
- return _getCheckpointDigest(_metadata, _origin);
22
- }
23
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"OwnableSpecifiesISM.d.ts","sourceRoot":"","sources":["../../types/contracts/OwnableSpecifiesISM.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"OwnableSpecifiesISM.js","sourceRoot":"","sources":["../../types/contracts/OwnableSpecifiesISM.ts"],"names":[],"mappings":";AAAA,+CAA+C"}