@hyperlane-xyz/core 1.3.7 → 1.3.8

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 (280) hide show
  1. package/README.md +6 -4
  2. package/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.sol +30 -0
  3. package/contracts/hooks/ERC5164MessageHook.sol +95 -0
  4. package/contracts/hooks/OptimismMessageHook.sol +3 -1
  5. package/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.sol +10 -4
  6. package/contracts/isms/multisig/AbstractMessageIdMultisigIsm.sol +8 -3
  7. package/contracts/isms/native/AbstractNativeISM.sol +17 -6
  8. package/contracts/isms/native/ERC5164ISM.sol +75 -0
  9. package/contracts/isms/native/OptimismISM.sol +15 -4
  10. package/contracts/mock/MockERC5164.sol +26 -0
  11. package/dist/contracts/CheckpointFraudProofs.d.ts +103 -0
  12. package/dist/contracts/CheckpointFraudProofs.d.ts.map +1 -0
  13. package/dist/contracts/CheckpointFraudProofs.js +4 -0
  14. package/dist/contracts/CheckpointFraudProofs.js.map +1 -0
  15. package/dist/contracts/hooks/ERC5164/index.d.ts +3 -0
  16. package/dist/contracts/hooks/ERC5164/index.d.ts.map +1 -0
  17. package/dist/contracts/hooks/ERC5164/index.js +4 -0
  18. package/dist/contracts/hooks/ERC5164/index.js.map +1 -0
  19. package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.d.ts +72 -0
  20. package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.d.ts.map +1 -0
  21. package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.js +4 -0
  22. package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.js.map +1 -0
  23. package/dist/contracts/hooks/ERC5164/interfaces/index.d.ts +2 -0
  24. package/dist/contracts/hooks/ERC5164/interfaces/index.d.ts.map +1 -0
  25. package/dist/contracts/hooks/ERC5164/interfaces/index.js +3 -0
  26. package/dist/contracts/hooks/ERC5164/interfaces/index.js.map +1 -0
  27. package/dist/contracts/hooks/ERC5164MessageHook.d.ts +75 -0
  28. package/dist/contracts/hooks/ERC5164MessageHook.d.ts.map +1 -0
  29. package/dist/contracts/hooks/ERC5164MessageHook.js +4 -0
  30. package/dist/contracts/hooks/ERC5164MessageHook.js.map +1 -0
  31. package/dist/contracts/hooks/index.d.ts +3 -0
  32. package/dist/contracts/hooks/index.d.ts.map +1 -1
  33. package/dist/contracts/hooks/index.js +1 -0
  34. package/dist/contracts/hooks/index.js.map +1 -1
  35. package/dist/contracts/isms/native/AbstractNativeISM.d.ts +10 -10
  36. package/dist/contracts/isms/native/AbstractNativeISM.d.ts.map +1 -1
  37. package/dist/contracts/isms/native/ERC5164ISM.d.ts +107 -0
  38. package/dist/contracts/isms/native/ERC5164ISM.d.ts.map +1 -0
  39. package/dist/contracts/isms/native/ERC5164ISM.js +4 -0
  40. package/dist/contracts/isms/native/ERC5164ISM.js.map +1 -0
  41. package/dist/contracts/isms/native/OptimismISM.d.ts +17 -17
  42. package/dist/contracts/isms/native/OptimismISM.d.ts.map +1 -1
  43. package/dist/contracts/isms/native/index.d.ts +1 -0
  44. package/dist/contracts/isms/native/index.d.ts.map +1 -1
  45. package/dist/contracts/libs/TestMerkle.sol/MerkleTree.d.ts +77 -0
  46. package/dist/contracts/libs/TestMerkle.sol/MerkleTree.d.ts.map +1 -0
  47. package/dist/contracts/libs/TestMerkle.sol/MerkleTree.js +4 -0
  48. package/dist/contracts/libs/TestMerkle.sol/MerkleTree.js.map +1 -0
  49. package/dist/contracts/libs/TestMerkle.sol/index.d.ts +2 -0
  50. package/dist/contracts/libs/TestMerkle.sol/index.d.ts.map +1 -0
  51. package/dist/contracts/libs/TestMerkle.sol/index.js +3 -0
  52. package/dist/contracts/libs/TestMerkle.sol/index.js.map +1 -0
  53. package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.d.ts +72 -0
  54. package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.d.ts.map +1 -0
  55. package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.js +4 -0
  56. package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.js.map +1 -0
  57. package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.d.ts +44 -0
  58. package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.d.ts.map +1 -0
  59. package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.js +4 -0
  60. package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.js.map +1 -0
  61. package/dist/contracts/mock/MockERC5164.sol/index.d.ts +3 -0
  62. package/dist/contracts/mock/MockERC5164.sol/index.d.ts.map +1 -0
  63. package/dist/contracts/mock/MockERC5164.sol/index.js +3 -0
  64. package/dist/contracts/mock/MockERC5164.sol/index.js.map +1 -0
  65. package/dist/contracts/mock/index.d.ts +2 -0
  66. package/dist/contracts/mock/index.d.ts.map +1 -1
  67. package/dist/contracts/mock/index.js +1 -0
  68. package/dist/contracts/mock/index.js.map +1 -1
  69. package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts +45 -0
  70. package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts.map +1 -0
  71. package/dist/factories/contracts/CheckpointFraudProofs__factory.js +231 -0
  72. package/dist/factories/contracts/CheckpointFraudProofs__factory.js.map +1 -0
  73. package/dist/factories/contracts/hooks/ERC5164/index.d.ts +2 -0
  74. package/dist/factories/contracts/hooks/ERC5164/index.d.ts.map +1 -0
  75. package/dist/factories/contracts/hooks/ERC5164/index.js +31 -0
  76. package/dist/factories/contracts/hooks/ERC5164/index.js.map +1 -0
  77. package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.d.ts +36 -0
  78. package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.d.ts.map +1 -0
  79. package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.js +84 -0
  80. package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.js.map +1 -0
  81. package/dist/factories/contracts/hooks/ERC5164/interfaces/index.d.ts +2 -0
  82. package/dist/factories/contracts/hooks/ERC5164/interfaces/index.d.ts.map +1 -0
  83. package/dist/factories/contracts/hooks/ERC5164/interfaces/index.js +9 -0
  84. package/dist/factories/contracts/hooks/ERC5164/interfaces/index.js.map +1 -0
  85. package/dist/factories/contracts/hooks/ERC5164MessageHook__factory.d.ts +45 -0
  86. package/dist/factories/contracts/hooks/ERC5164MessageHook__factory.d.ts.map +1 -0
  87. package/dist/factories/contracts/hooks/ERC5164MessageHook__factory.js +125 -0
  88. package/dist/factories/contracts/hooks/ERC5164MessageHook__factory.js.map +1 -0
  89. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts +1 -1
  90. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts.map +1 -1
  91. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js +1 -1
  92. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js.map +1 -1
  93. package/dist/factories/contracts/hooks/index.d.ts +2 -0
  94. package/dist/factories/contracts/hooks/index.d.ts.map +1 -1
  95. package/dist/factories/contracts/hooks/index.js +27 -1
  96. package/dist/factories/contracts/hooks/index.js.map +1 -1
  97. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
  98. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
  99. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +1 -1
  100. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +1 -1
  101. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
  102. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
  103. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +1 -1
  104. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +1 -1
  105. package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.d.ts.map +1 -1
  106. package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.js +4 -9
  107. package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.js.map +1 -1
  108. package/dist/factories/contracts/isms/native/ERC5164ISM__factory.d.ts +59 -0
  109. package/dist/factories/contracts/isms/native/ERC5164ISM__factory.d.ts.map +1 -0
  110. package/dist/factories/contracts/isms/native/ERC5164ISM__factory.js +171 -0
  111. package/dist/factories/contracts/isms/native/ERC5164ISM__factory.js.map +1 -0
  112. package/dist/factories/contracts/isms/native/OptimismISM__factory.d.ts +1 -1
  113. package/dist/factories/contracts/isms/native/OptimismISM__factory.d.ts.map +1 -1
  114. package/dist/factories/contracts/isms/native/OptimismISM__factory.js +7 -12
  115. package/dist/factories/contracts/isms/native/OptimismISM__factory.js.map +1 -1
  116. package/dist/factories/contracts/isms/native/index.d.ts +1 -0
  117. package/dist/factories/contracts/isms/native/index.d.ts.map +1 -1
  118. package/dist/factories/contracts/isms/native/index.js +3 -1
  119. package/dist/factories/contracts/isms/native/index.js.map +1 -1
  120. package/dist/factories/contracts/libs/TestMerkle.sol/MerkleTree__factory.d.ts +41 -0
  121. package/dist/factories/contracts/libs/TestMerkle.sol/MerkleTree__factory.d.ts.map +1 -0
  122. package/dist/factories/contracts/libs/TestMerkle.sol/MerkleTree__factory.js +151 -0
  123. package/dist/factories/contracts/libs/TestMerkle.sol/MerkleTree__factory.js.map +1 -0
  124. package/dist/factories/contracts/libs/TestMerkle.sol/index.d.ts +2 -0
  125. package/dist/factories/contracts/libs/TestMerkle.sol/index.d.ts.map +1 -0
  126. package/dist/factories/contracts/libs/TestMerkle.sol/index.js +9 -0
  127. package/dist/factories/contracts/libs/TestMerkle.sol/index.js.map +1 -0
  128. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.d.ts +48 -0
  129. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.d.ts.map +1 -0
  130. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.js +107 -0
  131. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.js.map +1 -0
  132. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.d.ts +31 -0
  133. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.d.ts.map +1 -0
  134. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.js +60 -0
  135. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.js.map +1 -0
  136. package/dist/factories/contracts/mock/MockERC5164.sol/index.d.ts +3 -0
  137. package/dist/factories/contracts/mock/MockERC5164.sol/index.d.ts.map +1 -0
  138. package/dist/factories/contracts/mock/MockERC5164.sol/index.js +11 -0
  139. package/dist/factories/contracts/mock/MockERC5164.sol/index.js.map +1 -0
  140. package/dist/factories/contracts/mock/index.d.ts +1 -0
  141. package/dist/factories/contracts/mock/index.d.ts.map +1 -1
  142. package/dist/factories/contracts/mock/index.js +25 -1
  143. package/dist/factories/contracts/mock/index.js.map +1 -1
  144. package/dist/index.d.ts +10 -0
  145. package/dist/index.d.ts.map +1 -1
  146. package/dist/index.js +13 -3
  147. package/dist/index.js.map +1 -1
  148. package/docs/book.css +13 -0
  149. package/docs/book.toml +12 -0
  150. package/docs/solidity.min.js +74 -0
  151. package/docs/src/README.md +15 -0
  152. package/docs/src/SUMMARY.md +128 -0
  153. package/docs/src/contracts/GasRouter.sol/abstract.GasRouter.md +124 -0
  154. package/docs/src/contracts/HyperlaneConnectionClient.sol/abstract.HyperlaneConnectionClient.md +191 -0
  155. package/docs/src/contracts/Mailbox.sol/contract.Mailbox.md +251 -0
  156. package/docs/src/contracts/OwnableMulticall.sol/contract.OwnableMulticall.md +41 -0
  157. package/docs/src/contracts/PausableReentrancyGuard.sol/abstract.PausableReentrancyGuardUpgradeable.md +100 -0
  158. package/docs/src/contracts/README.md +19 -0
  159. package/docs/src/contracts/Router.sol/abstract.Router.md +255 -0
  160. package/docs/src/contracts/ValidatorAnnounce.sol/contract.ValidatorAnnounce.md +117 -0
  161. package/docs/src/contracts/hooks/OptimismMessageHook.sol/contract.OptimismMessageHook.md +71 -0
  162. package/docs/src/contracts/hooks/README.md +4 -0
  163. package/docs/src/contracts/igps/InterchainGasPaymaster.sol/contract.InterchainGasPaymaster.md +231 -0
  164. package/docs/src/contracts/igps/OverheadIgp.sol/contract.OverheadIgp.md +161 -0
  165. package/docs/src/contracts/igps/README.md +6 -0
  166. package/docs/src/contracts/igps/gas-oracles/README.md +4 -0
  167. package/docs/src/contracts/igps/gas-oracles/StorageGasOracle.sol/contract.StorageGasOracle.md +114 -0
  168. package/docs/src/contracts/interfaces/IGasOracle.sol/interface.IGasOracle.md +25 -0
  169. package/docs/src/contracts/interfaces/IHyperlaneConnectionClient.sol/interface.IHyperlaneConnectionClient.md +43 -0
  170. package/docs/src/contracts/interfaces/IInterchainGasPaymaster.sol/interface.IInterchainGasPaymaster.md +33 -0
  171. package/docs/src/contracts/interfaces/IInterchainSecurityModule.sol/interface.IInterchainSecurityModule.md +55 -0
  172. package/docs/src/contracts/interfaces/IInterchainSecurityModule.sol/interface.ISpecifiesInterchainSecurityModule.md +12 -0
  173. package/docs/src/contracts/interfaces/ILiquidityLayerMessageRecipient.sol/interface.ILiquidityLayerMessageRecipient.md +13 -0
  174. package/docs/src/contracts/interfaces/ILiquidityLayerRouter.sol/interface.ILiquidityLayerRouter.md +19 -0
  175. package/docs/src/contracts/interfaces/IMailbox.sol/interface.IMailbox.md +103 -0
  176. package/docs/src/contracts/interfaces/IMessageRecipient.sol/interface.IMessageRecipient.md +12 -0
  177. package/docs/src/contracts/interfaces/IRouter.sol/interface.IRouter.md +33 -0
  178. package/docs/src/contracts/interfaces/IValidatorAnnounce.sol/interface.IValidatorAnnounce.md +78 -0
  179. package/docs/src/contracts/interfaces/README.md +17 -0
  180. package/docs/src/contracts/interfaces/hooks/IMessageHook.sol/interface.IMessageHook.md +12 -0
  181. package/docs/src/contracts/interfaces/hooks/README.md +4 -0
  182. package/docs/src/contracts/interfaces/isms/IAggregationIsm.sol/interface.IAggregationIsm.md +36 -0
  183. package/docs/src/contracts/interfaces/isms/IMultisigIsm.sol/interface.IMultisigIsm.md +36 -0
  184. package/docs/src/contracts/interfaces/isms/IRoutingIsm.sol/interface.IRoutingIsm.md +31 -0
  185. package/docs/src/contracts/interfaces/isms/README.md +6 -0
  186. package/docs/src/contracts/interfaces/middleware/IInterchainAccountRouter.sol/interface.IInterchainAccountRouter.md +64 -0
  187. package/docs/src/contracts/interfaces/middleware/IInterchainQueryRouter.sol/interface.IInterchainQueryRouter.md +21 -0
  188. package/docs/src/contracts/interfaces/middleware/README.md +5 -0
  189. package/docs/src/contracts/isms/README.md +7 -0
  190. package/docs/src/contracts/isms/aggregation/AbstractAggregationIsm.sol/abstract.AbstractAggregationIsm.md +60 -0
  191. package/docs/src/contracts/isms/aggregation/README.md +6 -0
  192. package/docs/src/contracts/isms/aggregation/StaticAggregationIsm.sol/contract.StaticAggregationIsm.md +30 -0
  193. package/docs/src/contracts/isms/aggregation/StaticAggregationIsmFactory.sol/contract.StaticAggregationIsmFactory.md +15 -0
  194. package/docs/src/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.sol/abstract.AbstractMerkleRootMultisigIsm.md +78 -0
  195. package/docs/src/contracts/isms/multisig/AbstractMessageIdMultisigIsm.sol/abstract.AbstractMessageIdMultisigIsm.md +69 -0
  196. package/docs/src/contracts/isms/multisig/AbstractMultisigIsm.sol/abstract.AbstractMultisigIsm.md +102 -0
  197. package/docs/src/contracts/isms/multisig/LegacyMultisigIsm.sol/contract.LegacyMultisigIsm.md +355 -0
  198. package/docs/src/contracts/isms/multisig/README.md +12 -0
  199. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/abstract.AbstractMetaProxyMultisigIsm.md +36 -0
  200. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMerkleRootMultisigIsm.md +11 -0
  201. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMerkleRootMultisigIsmFactory.md +15 -0
  202. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMessageIdMultisigIsm.md +10 -0
  203. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMessageIdMultisigIsmFactory.md +15 -0
  204. package/docs/src/contracts/isms/native/AbstractNativeISM.sol/abstract.AbstractNativeISM.md +44 -0
  205. package/docs/src/contracts/isms/native/OptimismISM.sol/contract.OptimismISM.md +66 -0
  206. package/docs/src/contracts/isms/native/README.md +5 -0
  207. package/docs/src/contracts/isms/routing/AbstractRoutingIsm.sol/abstract.AbstractRoutingIsm.md +55 -0
  208. package/docs/src/contracts/isms/routing/DomainRoutingIsm.sol/contract.DomainRoutingIsm.md +112 -0
  209. package/docs/src/contracts/isms/routing/DomainRoutingIsmFactory.sol/contract.DomainRoutingIsmFactory.md +47 -0
  210. package/docs/src/contracts/isms/routing/InterchainAccountIsm.sol/contract.InterchainAccountIsm.md +44 -0
  211. package/docs/src/contracts/isms/routing/README.md +7 -0
  212. package/docs/src/contracts/libs/Call.sol/library.CallLib.md +124 -0
  213. package/docs/src/contracts/libs/CheckpointLib.sol/library.CheckpointLib.md +61 -0
  214. package/docs/src/contracts/libs/EnumerableMapExtended.sol/library.EnumerableMapExtended.md +63 -0
  215. package/docs/src/contracts/libs/LegacyCheckpointLib.sol/library.LegacyCheckpointLib.md +55 -0
  216. package/docs/src/contracts/libs/Merkle.sol/library.MerkleLib.md +354 -0
  217. package/docs/src/contracts/libs/Message.sol/library.Message.md +304 -0
  218. package/docs/src/contracts/libs/MetaProxy.sol/library.MetaProxy.md +36 -0
  219. package/docs/src/contracts/libs/MinimalProxy.sol/library.MinimalProxy.md +34 -0
  220. package/docs/src/contracts/libs/README.md +16 -0
  221. package/docs/src/contracts/libs/StaticMOfNAddressSetFactory.sol/abstract.StaticMOfNAddressSetFactory.md +123 -0
  222. package/docs/src/contracts/libs/TestMerkle.sol/contract.MerkleTree.md +66 -0
  223. package/docs/src/contracts/libs/TypeCasts.sol/library.TypeCasts.md +19 -0
  224. package/docs/src/contracts/libs/ValidatorAnnouncements.sol/library.ValidatorAnnouncements.md +31 -0
  225. package/docs/src/contracts/libs/isms/AggregationIsmMetadata.sol/library.AggregationIsmMetadata.md +97 -0
  226. package/docs/src/contracts/libs/isms/LegacyMultisigIsmMetadata.sol/library.LegacyMultisigIsmMetadata.md +296 -0
  227. package/docs/src/contracts/libs/isms/MerkleRootMultisigIsmMetadata.sol/library.MerkleRootMultisigIsmMetadata.md +177 -0
  228. package/docs/src/contracts/libs/isms/MessageIdMultisigIsmMetadata.sol/library.MessageIdMultisigIsmMetadata.md +109 -0
  229. package/docs/src/contracts/libs/isms/README.md +7 -0
  230. package/docs/src/contracts/libs/middleware/InterchainAccountMessage.sol/library.InterchainAccountMessage.md +134 -0
  231. package/docs/src/contracts/libs/middleware/InterchainQueryMessage.sol/library.InterchainQueryMessage.md +203 -0
  232. package/docs/src/contracts/libs/middleware/README.md +5 -0
  233. package/docs/src/contracts/middleware/InterchainAccountRouter.sol/contract.InterchainAccountRouter.md +545 -0
  234. package/docs/src/contracts/middleware/InterchainQueryRouter.sol/contract.InterchainQueryRouter.md +119 -0
  235. package/docs/src/contracts/middleware/README.md +6 -0
  236. package/docs/src/contracts/middleware/liquidity-layer/LiquidityLayerRouter.sol/contract.LiquidityLayerRouter.md +81 -0
  237. package/docs/src/contracts/middleware/liquidity-layer/README.md +6 -0
  238. package/docs/src/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.sol/contract.CircleBridgeAdapter.md +197 -0
  239. package/docs/src/contracts/middleware/liquidity-layer/adapters/PortalAdapter.sol/contract.PortalAdapter.md +189 -0
  240. package/docs/src/contracts/middleware/liquidity-layer/adapters/README.md +5 -0
  241. package/docs/src/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter.sol/interface.ILiquidityLayerAdapter.md +23 -0
  242. package/docs/src/contracts/middleware/liquidity-layer/interfaces/README.md +6 -0
  243. package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.sol/interface.ICircleMessageTransmitter.md +54 -0
  244. package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger.sol/interface.ITokenMessenger.md +92 -0
  245. package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/README.md +5 -0
  246. package/docs/src/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.sol/interface.IPortalTokenBridge.md +131 -0
  247. package/docs/src/contracts/middleware/liquidity-layer/interfaces/portal/README.md +4 -0
  248. package/docs/src/contracts/mock/MockCircleMessageTransmitter.sol/contract.MockCircleMessageTransmitter.md +58 -0
  249. package/docs/src/contracts/mock/MockCircleTokenMessenger.sol/contract.MockCircleTokenMessenger.md +44 -0
  250. package/docs/src/contracts/mock/MockHyperlaneEnvironment.sol/contract.MockHyperlaneEnvironment.md +69 -0
  251. package/docs/src/contracts/mock/MockMailbox.sol/contract.MockMailbox.md +137 -0
  252. package/docs/src/contracts/mock/MockPortalBridge.sol/contract.MockPortalBridge.md +82 -0
  253. package/docs/src/contracts/mock/MockToken.sol/contract.MockToken.md +22 -0
  254. package/docs/src/contracts/mock/README.md +9 -0
  255. package/docs/src/contracts/test/LightTestRecipient.sol/contract.LightTestRecipient.md +15 -0
  256. package/docs/src/contracts/test/README.md +20 -0
  257. package/docs/src/contracts/test/TestGasRouter.sol/contract.TestGasRouter.md +27 -0
  258. package/docs/src/contracts/test/TestHyperlaneConnectionClient.sol/contract.TestHyperlaneConnectionClient.md +29 -0
  259. package/docs/src/contracts/test/TestInterchainGasPaymaster.sol/contract.TestInterchainGasPaymaster.md +30 -0
  260. package/docs/src/contracts/test/TestLegacyMultisigIsm.sol/contract.TestLegacyMultisigIsm.md +15 -0
  261. package/docs/src/contracts/test/TestLiquidityLayerMessageRecipient.sol/contract.TestLiquidityLayerMessageRecipient.md +23 -0
  262. package/docs/src/contracts/test/TestMailbox.sol/contract.TestMailbox.md +29 -0
  263. package/docs/src/contracts/test/TestMerkle.sol/contract.TestMerkle.md +50 -0
  264. package/docs/src/contracts/test/TestMessage.sol/contract.TestMessage.md +68 -0
  265. package/docs/src/contracts/test/TestMultisigIsm.sol/contract.TestMultisigIsm.md +51 -0
  266. package/docs/src/contracts/test/TestQuery.sol/contract.TestQuery.md +45 -0
  267. package/docs/src/contracts/test/TestQuerySender.sol/contract.TestQuerySender.md +128 -0
  268. package/docs/src/contracts/test/TestRecipient.sol/contract.TestRecipient.md +78 -0
  269. package/docs/src/contracts/test/TestRouter.sol/contract.TestRouter.md +63 -0
  270. package/docs/src/contracts/test/TestSendReceiver.sol/contract.TestSendReceiver.md +49 -0
  271. package/docs/src/contracts/test/TestTokenRecipient.sol/contract.TestTokenRecipient.md +80 -0
  272. package/docs/src/contracts/test/bad-recipient/BadRecipient1.sol/contract.BadRecipient1.md +15 -0
  273. package/docs/src/contracts/test/bad-recipient/BadRecipient2.sol/contract.BadRecipient2.md +12 -0
  274. package/docs/src/contracts/test/bad-recipient/BadRecipient3.sol/contract.BadRecipient3.md +15 -0
  275. package/docs/src/contracts/test/bad-recipient/BadRecipient5.sol/contract.BadRecipient5.md +15 -0
  276. package/docs/src/contracts/test/bad-recipient/BadRecipient6.sol/contract.BadRecipient6.md +15 -0
  277. package/docs/src/contracts/test/bad-recipient/README.md +8 -0
  278. package/docs/src/contracts/upgrade/README.md +4 -0
  279. package/docs/src/contracts/upgrade/Versioned.sol/contract.Versioned.md +14 -0
  280. package/package.json +6 -4
@@ -0,0 +1,102 @@
1
+ # AbstractMultisigIsm
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/isms/multisig/AbstractMultisigIsm.sol)
3
+
4
+ **Inherits:**
5
+ [IMultisigIsm](/contracts/interfaces/isms/IMultisigIsm.sol/interface.IMultisigIsm.md)
6
+
7
+ Manages per-domain m-of-n Validator sets that are used to verify
8
+ interchain messages.
9
+
10
+ *See ./AbstractMerkleRootMultisigIsm.sol and ./AbstractMessageIdMultisigIsm.sol
11
+ for concrete implementations of `digest` and `signatureAt`.*
12
+
13
+ *See ./StaticMultisigIsm.sol for concrete implementations.*
14
+
15
+
16
+ ## Functions
17
+ ### validatorsAndThreshold
18
+
19
+ Returns the set of validators responsible for verifying _message
20
+ and the number of signatures required
21
+
22
+ *Can change based on the content of _message*
23
+
24
+
25
+ ```solidity
26
+ function validatorsAndThreshold(bytes calldata _message) public view virtual returns (address[] memory, uint8);
27
+ ```
28
+ **Parameters**
29
+
30
+ |Name|Type|Description|
31
+ |----|----|-----------|
32
+ |`_message`|`bytes`|Hyperlane formatted interchain message|
33
+
34
+ **Returns**
35
+
36
+ |Name|Type|Description|
37
+ |----|----|-----------|
38
+ |`<none>`|`address[]`|validators The array of validator addresses|
39
+ |`<none>`|`uint8`|threshold The number of validator signatures needed|
40
+
41
+
42
+ ### digest
43
+
44
+ Returns the digest to be used for signature verification.
45
+
46
+
47
+ ```solidity
48
+ function digest(bytes calldata _metadata, bytes calldata _message) internal view virtual returns (bytes32);
49
+ ```
50
+ **Parameters**
51
+
52
+ |Name|Type|Description|
53
+ |----|----|-----------|
54
+ |`_metadata`|`bytes`|ABI encoded module metadata|
55
+ |`_message`|`bytes`|Formatted Hyperlane message (see Message.sol).|
56
+
57
+ **Returns**
58
+
59
+ |Name|Type|Description|
60
+ |----|----|-----------|
61
+ |`<none>`|`bytes32`|digest The digest to be signed by validators|
62
+
63
+
64
+ ### signatureAt
65
+
66
+ Returns the signature at a given index from the metadata.
67
+
68
+
69
+ ```solidity
70
+ function signatureAt(bytes calldata _metadata, uint256 _index) internal pure virtual returns (bytes memory);
71
+ ```
72
+ **Parameters**
73
+
74
+ |Name|Type|Description|
75
+ |----|----|-----------|
76
+ |`_metadata`|`bytes`|ABI encoded module metadata|
77
+ |`_index`|`uint256`|The index of the signature to return|
78
+
79
+ **Returns**
80
+
81
+ |Name|Type|Description|
82
+ |----|----|-----------|
83
+ |`<none>`|`bytes`|signature Packed encoding of signature (65 bytes)|
84
+
85
+
86
+ ### verify
87
+
88
+ Requires that m-of-n validators verify a merkle root,
89
+ and verifies a me∑rkle proof of `_message` against that root.
90
+
91
+
92
+ ```solidity
93
+ function verify(bytes calldata _metadata, bytes calldata _message) public view returns (bool);
94
+ ```
95
+ **Parameters**
96
+
97
+ |Name|Type|Description|
98
+ |----|----|-----------|
99
+ |`_metadata`|`bytes`|ABI encoded module metadata|
100
+ |`_message`|`bytes`|Formatted Hyperlane message (see Message.sol).|
101
+
102
+
@@ -0,0 +1,355 @@
1
+ # LegacyMultisigIsm
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/isms/multisig/LegacyMultisigIsm.sol)
3
+
4
+ **Inherits:**
5
+ [IMultisigIsm](/contracts/interfaces/isms/IMultisigIsm.sol/interface.IMultisigIsm.md), Ownable
6
+
7
+ Manages an ownable set of validators that ECDSA sign checkpoints to
8
+ reach a quorum.
9
+
10
+
11
+ ## State Variables
12
+ ### moduleType
13
+
14
+ ```solidity
15
+ uint8 public constant moduleType = uint8(IInterchainSecurityModule.Types.LEGACY_MULTISIG);
16
+ ```
17
+
18
+
19
+ ### threshold
20
+ The validator threshold for each remote domain.
21
+
22
+
23
+ ```solidity
24
+ mapping(uint32 => uint8) public threshold;
25
+ ```
26
+
27
+
28
+ ### validatorSet
29
+ The validator set for each remote domain.
30
+
31
+
32
+ ```solidity
33
+ mapping(uint32 => EnumerableSet.AddressSet) private validatorSet;
34
+ ```
35
+
36
+
37
+ ### commitment
38
+ A succinct commitment to the validator set and threshold for each remote
39
+ domain.
40
+
41
+
42
+ ```solidity
43
+ mapping(uint32 => bytes32) public commitment;
44
+ ```
45
+
46
+
47
+ ## Functions
48
+ ### constructor
49
+
50
+
51
+ ```solidity
52
+ constructor() Ownable;
53
+ ```
54
+
55
+ ### enrollValidators
56
+
57
+ Enrolls multiple validators into a validator set.
58
+
59
+ *Reverts if `_validator` is already in the validator set.*
60
+
61
+ *_validators[i] are the validators to enroll for _domains[i].*
62
+
63
+
64
+ ```solidity
65
+ function enrollValidators(uint32[] calldata _domains, address[][] calldata _validators) external onlyOwner;
66
+ ```
67
+ **Parameters**
68
+
69
+ |Name|Type|Description|
70
+ |----|----|-----------|
71
+ |`_domains`|`uint32[]`|The remote domains of the validator sets.|
72
+ |`_validators`|`address[][]`|The validators to add to the validator sets.|
73
+
74
+
75
+ ### enrollValidator
76
+
77
+ Enrolls a validator into a validator set.
78
+
79
+ *Reverts if `_validator` is already in the validator set.*
80
+
81
+
82
+ ```solidity
83
+ function enrollValidator(uint32 _domain, address _validator) external onlyOwner;
84
+ ```
85
+ **Parameters**
86
+
87
+ |Name|Type|Description|
88
+ |----|----|-----------|
89
+ |`_domain`|`uint32`|The remote domain of the validator set.|
90
+ |`_validator`|`address`|The validator to add to the validator set.|
91
+
92
+
93
+ ### unenrollValidator
94
+
95
+ Unenrolls a validator from a validator set.
96
+
97
+ *Reverts if `_validator` is not in the validator set.*
98
+
99
+
100
+ ```solidity
101
+ function unenrollValidator(uint32 _domain, address _validator) external onlyOwner;
102
+ ```
103
+ **Parameters**
104
+
105
+ |Name|Type|Description|
106
+ |----|----|-----------|
107
+ |`_domain`|`uint32`|The remote domain of the validator set.|
108
+ |`_validator`|`address`|The validator to remove from the validator set.|
109
+
110
+
111
+ ### setThresholds
112
+
113
+ Sets the quorum threshold for multiple domains.
114
+
115
+
116
+ ```solidity
117
+ function setThresholds(uint32[] calldata _domains, uint8[] calldata _thresholds) external onlyOwner;
118
+ ```
119
+ **Parameters**
120
+
121
+ |Name|Type|Description|
122
+ |----|----|-----------|
123
+ |`_domains`|`uint32[]`|The remote domains of the validator sets.|
124
+ |`_thresholds`|`uint8[]`|The new quorum thresholds.|
125
+
126
+
127
+ ### isEnrolled
128
+
129
+ Returns whether an address is enrolled in a validator set.
130
+
131
+
132
+ ```solidity
133
+ function isEnrolled(uint32 _domain, address _address) external view returns (bool);
134
+ ```
135
+ **Parameters**
136
+
137
+ |Name|Type|Description|
138
+ |----|----|-----------|
139
+ |`_domain`|`uint32`|The remote domain of the validator set.|
140
+ |`_address`|`address`|The address to test for set membership.|
141
+
142
+ **Returns**
143
+
144
+ |Name|Type|Description|
145
+ |----|----|-----------|
146
+ |`<none>`|`bool`|True if the address is enrolled, false otherwise.|
147
+
148
+
149
+ ### setThreshold
150
+
151
+ Sets the quorum threshold.
152
+
153
+
154
+ ```solidity
155
+ function setThreshold(uint32 _domain, uint8 _threshold) public onlyOwner;
156
+ ```
157
+ **Parameters**
158
+
159
+ |Name|Type|Description|
160
+ |----|----|-----------|
161
+ |`_domain`|`uint32`|The remote domain of the validator set.|
162
+ |`_threshold`|`uint8`|The new quorum threshold.|
163
+
164
+
165
+ ### verify
166
+
167
+ Verifies that a quorum of the origin domain's validators signed
168
+ a checkpoint, and verifies the merkle proof of `_message` against that
169
+ checkpoint.
170
+
171
+
172
+ ```solidity
173
+ function verify(bytes calldata _metadata, bytes calldata _message) external view returns (bool);
174
+ ```
175
+ **Parameters**
176
+
177
+ |Name|Type|Description|
178
+ |----|----|-----------|
179
+ |`_metadata`|`bytes`|ABI encoded module metadata (see LegacyMultisigIsmMetadata.sol)|
180
+ |`_message`|`bytes`|Formatted Hyperlane message (see Message.sol).|
181
+
182
+
183
+ ### validators
184
+
185
+ Gets the current validator set
186
+
187
+
188
+ ```solidity
189
+ function validators(uint32 _domain) public view returns (address[] memory);
190
+ ```
191
+ **Parameters**
192
+
193
+ |Name|Type|Description|
194
+ |----|----|-----------|
195
+ |`_domain`|`uint32`|The remote domain of the validator set.|
196
+
197
+ **Returns**
198
+
199
+ |Name|Type|Description|
200
+ |----|----|-----------|
201
+ |`<none>`|`address[]`|The addresses of the validator set.|
202
+
203
+
204
+ ### validatorsAndThreshold
205
+
206
+ Returns the set of validators responsible for verifying _message
207
+ and the number of signatures required
208
+
209
+ *Can change based on the content of _message*
210
+
211
+
212
+ ```solidity
213
+ function validatorsAndThreshold(bytes calldata _message) external view returns (address[] memory, uint8);
214
+ ```
215
+ **Parameters**
216
+
217
+ |Name|Type|Description|
218
+ |----|----|-----------|
219
+ |`_message`|`bytes`|Hyperlane formatted interchain message|
220
+
221
+ **Returns**
222
+
223
+ |Name|Type|Description|
224
+ |----|----|-----------|
225
+ |`<none>`|`address[]`|validators The array of validator addresses|
226
+ |`<none>`|`uint8`|threshold The number of validator signatures needed|
227
+
228
+
229
+ ### validatorCount
230
+
231
+ Returns the number of validators enrolled in the validator set.
232
+
233
+
234
+ ```solidity
235
+ function validatorCount(uint32 _domain) public view returns (uint256);
236
+ ```
237
+ **Parameters**
238
+
239
+ |Name|Type|Description|
240
+ |----|----|-----------|
241
+ |`_domain`|`uint32`|The remote domain of the validator set.|
242
+
243
+ **Returns**
244
+
245
+ |Name|Type|Description|
246
+ |----|----|-----------|
247
+ |`<none>`|`uint256`|The number of validators enrolled in the validator set.|
248
+
249
+
250
+ ### _enrollValidator
251
+
252
+ Enrolls a validator into a validator set.
253
+
254
+ *Reverts if `_validator` is already in the validator set.*
255
+
256
+
257
+ ```solidity
258
+ function _enrollValidator(uint32 _domain, address _validator) internal;
259
+ ```
260
+ **Parameters**
261
+
262
+ |Name|Type|Description|
263
+ |----|----|-----------|
264
+ |`_domain`|`uint32`|The remote domain of the validator set.|
265
+ |`_validator`|`address`|The validator to add to the validator set.|
266
+
267
+
268
+ ### _updateCommitment
269
+
270
+ Updates the commitment to the validator set for `_domain`.
271
+
272
+
273
+ ```solidity
274
+ function _updateCommitment(uint32 _domain) internal returns (bytes32);
275
+ ```
276
+ **Parameters**
277
+
278
+ |Name|Type|Description|
279
+ |----|----|-----------|
280
+ |`_domain`|`uint32`|The remote domain of the validator set.|
281
+
282
+ **Returns**
283
+
284
+ |Name|Type|Description|
285
+ |----|----|-----------|
286
+ |`<none>`|`bytes32`|The commitment to the validator set for `_domain`.|
287
+
288
+
289
+ ### _verifyMerkleProof
290
+
291
+ Verifies the merkle proof of `_message` against the provided
292
+ checkpoint.
293
+
294
+
295
+ ```solidity
296
+ function _verifyMerkleProof(bytes calldata _metadata, bytes calldata _message) internal pure returns (bool);
297
+ ```
298
+ **Parameters**
299
+
300
+ |Name|Type|Description|
301
+ |----|----|-----------|
302
+ |`_metadata`|`bytes`|ABI encoded module metadata (see LegacyMultisigIsmMetadata.sol)|
303
+ |`_message`|`bytes`|Formatted Hyperlane message (see Message.sol).|
304
+
305
+
306
+ ### _verifyValidatorSignatures
307
+
308
+ Verifies that a quorum of the origin domain's validators signed
309
+ the provided checkpoint.
310
+
311
+
312
+ ```solidity
313
+ function _verifyValidatorSignatures(bytes calldata _metadata, bytes calldata _message) internal view returns (bool);
314
+ ```
315
+ **Parameters**
316
+
317
+ |Name|Type|Description|
318
+ |----|----|-----------|
319
+ |`_metadata`|`bytes`|ABI encoded module metadata (see LegacyMultisigIsmMetadata.sol)|
320
+ |`_message`|`bytes`|Formatted Hyperlane message (see Message.sol).|
321
+
322
+
323
+ ## Events
324
+ ### ValidatorEnrolled
325
+ Emitted when a validator is enrolled in a validator set.
326
+
327
+
328
+ ```solidity
329
+ event ValidatorEnrolled(uint32 indexed domain, address indexed validator, uint256 validatorCount);
330
+ ```
331
+
332
+ ### ValidatorUnenrolled
333
+ Emitted when a validator is unenrolled from a validator set.
334
+
335
+
336
+ ```solidity
337
+ event ValidatorUnenrolled(uint32 indexed domain, address indexed validator, uint256 validatorCount);
338
+ ```
339
+
340
+ ### ThresholdSet
341
+ Emitted when the quorum threshold is set.
342
+
343
+
344
+ ```solidity
345
+ event ThresholdSet(uint32 indexed domain, uint8 threshold);
346
+ ```
347
+
348
+ ### CommitmentUpdated
349
+ Emitted when the validator set or threshold changes.
350
+
351
+
352
+ ```solidity
353
+ event CommitmentUpdated(uint32 domain, bytes32 commitment);
354
+ ```
355
+
@@ -0,0 +1,12 @@
1
+
2
+
3
+ # Contents
4
+ - [AbstractMerkleRootMultisigIsm](AbstractMerkleRootMultisigIsm.sol/abstract.AbstractMerkleRootMultisigIsm.md)
5
+ - [AbstractMessageIdMultisigIsm](AbstractMessageIdMultisigIsm.sol/abstract.AbstractMessageIdMultisigIsm.md)
6
+ - [AbstractMultisigIsm](AbstractMultisigIsm.sol/abstract.AbstractMultisigIsm.md)
7
+ - [LegacyMultisigIsm](LegacyMultisigIsm.sol/contract.LegacyMultisigIsm.md)
8
+ - [AbstractMetaProxyMultisigIsm](StaticMultisigIsm.sol/abstract.AbstractMetaProxyMultisigIsm.md)
9
+ - [StaticMerkleRootMultisigIsm](StaticMultisigIsm.sol/contract.StaticMerkleRootMultisigIsm.md)
10
+ - [StaticMessageIdMultisigIsm](StaticMultisigIsm.sol/contract.StaticMessageIdMultisigIsm.md)
11
+ - [StaticMerkleRootMultisigIsmFactory](StaticMultisigIsm.sol/contract.StaticMerkleRootMultisigIsmFactory.md)
12
+ - [StaticMessageIdMultisigIsmFactory](StaticMultisigIsm.sol/contract.StaticMessageIdMultisigIsmFactory.md)
@@ -0,0 +1,36 @@
1
+ # AbstractMetaProxyMultisigIsm
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/isms/multisig/StaticMultisigIsm.sol)
3
+
4
+ **Inherits:**
5
+ [AbstractMultisigIsm](/contracts/isms/multisig/AbstractMultisigIsm.sol/abstract.AbstractMultisigIsm.md)
6
+
7
+ Manages per-domain m-of-n Validator set that is used
8
+ to verify interchain messages.
9
+
10
+
11
+ ## Functions
12
+ ### validatorsAndThreshold
13
+
14
+ Returns the set of validators responsible for verifying _message
15
+ and the number of signatures required
16
+
17
+ *Can change based on the content of _message*
18
+
19
+
20
+ ```solidity
21
+ function validatorsAndThreshold(bytes calldata) public pure override returns (address[] memory, uint8);
22
+ ```
23
+ **Parameters**
24
+
25
+ |Name|Type|Description|
26
+ |----|----|-----------|
27
+ |`<none>`|`bytes`||
28
+
29
+ **Returns**
30
+
31
+ |Name|Type|Description|
32
+ |----|----|-----------|
33
+ |`<none>`|`address[]`|validators The array of validator addresses|
34
+ |`<none>`|`uint8`|threshold The number of validator signatures needed|
35
+
36
+
@@ -0,0 +1,11 @@
1
+ # StaticMerkleRootMultisigIsm
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/isms/multisig/StaticMultisigIsm.sol)
3
+
4
+ **Inherits:**
5
+ [AbstractMerkleRootMultisigIsm](/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.sol/abstract.AbstractMerkleRootMultisigIsm.md), [AbstractMetaProxyMultisigIsm](/contracts/isms/multisig/StaticMultisigIsm.sol/abstract.AbstractMetaProxyMultisigIsm.md)
6
+
7
+ Manages per-domain m-of-n validator set that is used
8
+ to verify interchain messages using a merkle root signature quorum
9
+ and merkle proof of inclusion.
10
+
11
+
@@ -0,0 +1,15 @@
1
+ # StaticMerkleRootMultisigIsmFactory
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/isms/multisig/StaticMultisigIsm.sol)
3
+
4
+ **Inherits:**
5
+ [StaticMOfNAddressSetFactory](/contracts/libs/StaticMOfNAddressSetFactory.sol/abstract.StaticMOfNAddressSetFactory.md)
6
+
7
+
8
+ ## Functions
9
+ ### _deployImplementation
10
+
11
+
12
+ ```solidity
13
+ function _deployImplementation() internal override returns (address);
14
+ ```
15
+
@@ -0,0 +1,10 @@
1
+ # StaticMessageIdMultisigIsm
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/isms/multisig/StaticMultisigIsm.sol)
3
+
4
+ **Inherits:**
5
+ [AbstractMessageIdMultisigIsm](/contracts/isms/multisig/AbstractMessageIdMultisigIsm.sol/abstract.AbstractMessageIdMultisigIsm.md), [AbstractMetaProxyMultisigIsm](/contracts/isms/multisig/StaticMultisigIsm.sol/abstract.AbstractMetaProxyMultisigIsm.md)
6
+
7
+ Manages per-domain m-of-n validator set that is used
8
+ to verify interchain messages using a message ID signature quorum.
9
+
10
+
@@ -0,0 +1,15 @@
1
+ # StaticMessageIdMultisigIsmFactory
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/isms/multisig/StaticMultisigIsm.sol)
3
+
4
+ **Inherits:**
5
+ [StaticMOfNAddressSetFactory](/contracts/libs/StaticMOfNAddressSetFactory.sol/abstract.StaticMOfNAddressSetFactory.md)
6
+
7
+
8
+ ## Functions
9
+ ### _deployImplementation
10
+
11
+
12
+ ```solidity
13
+ function _deployImplementation() internal override returns (address);
14
+ ```
15
+
@@ -0,0 +1,44 @@
1
+ # AbstractNativeISM
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/isms/native/AbstractNativeISM.sol)
3
+
4
+ **Inherits:**
5
+ [IInterchainSecurityModule](/contracts/interfaces/IInterchainSecurityModule.sol/interface.IInterchainSecurityModule.md), Initializable
6
+
7
+ Uses the native bridges to verify interchain messages.
8
+
9
+ *In the future, the hook might be moved inside the Mailbox which doesn't require storage mappings for senders.
10
+ for more details see https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/2381*
11
+
12
+
13
+ ## State Variables
14
+ ### verifiedMessageIds
15
+
16
+ ```solidity
17
+ mapping(bytes32 => mapping(address => bool)) public verifiedMessageIds;
18
+ ```
19
+
20
+
21
+ ## Functions
22
+ ### verify
23
+
24
+ Verify a message was received by ISM.
25
+
26
+
27
+ ```solidity
28
+ function verify(bytes calldata, bytes calldata _message) external view returns (bool);
29
+ ```
30
+ **Parameters**
31
+
32
+ |Name|Type|Description|
33
+ |----|----|-----------|
34
+ |`<none>`|`bytes`||
35
+ |`_message`|`bytes`|Message to verify.|
36
+
37
+
38
+ ## Events
39
+ ### ReceivedMessage
40
+
41
+ ```solidity
42
+ event ReceivedMessage(address indexed sender, bytes32 indexed messageId);
43
+ ```
44
+
@@ -0,0 +1,66 @@
1
+ # OptimismISM
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/isms/native/OptimismISM.sol)
3
+
4
+ **Inherits:**
5
+ CrossChainEnabledOptimism, [AbstractNativeISM](/contracts/isms/native/AbstractNativeISM.sol/abstract.AbstractNativeISM.md)
6
+
7
+ Uses the native Optimism bridge to verify interchain messages.
8
+
9
+
10
+ ## State Variables
11
+ ### moduleType
12
+
13
+ ```solidity
14
+ uint8 public constant moduleType = uint8(IInterchainSecurityModule.Types.NULL);
15
+ ```
16
+
17
+
18
+ ### l1Hook
19
+
20
+ ```solidity
21
+ address public l1Hook;
22
+ ```
23
+
24
+
25
+ ## Functions
26
+ ### isAuthorized
27
+
28
+ Check if sender is authorized to message `verifyMessageId`.
29
+
30
+
31
+ ```solidity
32
+ modifier isAuthorized();
33
+ ```
34
+
35
+ ### constructor
36
+
37
+
38
+ ```solidity
39
+ constructor(address _l2Messenger) CrossChainEnabledOptimism(_l2Messenger);
40
+ ```
41
+
42
+ ### setOptimismHook
43
+
44
+
45
+ ```solidity
46
+ function setOptimismHook(address _l1Hook) external initializer;
47
+ ```
48
+
49
+ ### verifyMessageId
50
+
51
+ Receive a message from the L2 messenger.
52
+
53
+ *Only callable by the L2 messenger.*
54
+
55
+
56
+ ```solidity
57
+ function verifyMessageId(address _sender, bytes32 _messageId) external isAuthorized;
58
+ ```
59
+ **Parameters**
60
+
61
+ |Name|Type|Description|
62
+ |----|----|-----------|
63
+ |`_sender`|`address`|Address of the sender.|
64
+ |`_messageId`|`bytes32`|Hyperlane ID for the message.|
65
+
66
+
@@ -0,0 +1,5 @@
1
+
2
+
3
+ # Contents
4
+ - [AbstractNativeISM](AbstractNativeISM.sol/abstract.AbstractNativeISM.md)
5
+ - [OptimismISM](OptimismISM.sol/contract.OptimismISM.md)