@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,78 @@
1
+ # IValidatorAnnounce
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/interfaces/IValidatorAnnounce.sol)
3
+
4
+
5
+ ## Functions
6
+ ### localDomain
7
+
8
+ Returns the local domain for validator announcements
9
+
10
+
11
+ ```solidity
12
+ function localDomain() external view returns (uint32);
13
+ ```
14
+
15
+ ### mailbox
16
+
17
+ Returns the mailbox contract for validator announcements
18
+
19
+
20
+ ```solidity
21
+ function mailbox() external view returns (address);
22
+ ```
23
+
24
+ ### getAnnouncedValidators
25
+
26
+ Returns a list of validators that have made announcements
27
+
28
+
29
+ ```solidity
30
+ function getAnnouncedValidators() external view returns (address[] memory);
31
+ ```
32
+
33
+ ### getAnnouncedStorageLocations
34
+
35
+ Returns a list of all announced storage locations for `validators`
36
+
37
+
38
+ ```solidity
39
+ function getAnnouncedStorageLocations(address[] calldata _validators) external view returns (string[][] memory);
40
+ ```
41
+ **Parameters**
42
+
43
+ |Name|Type|Description|
44
+ |----|----|-----------|
45
+ |`_validators`|`address[]`|The list of validators to get storage locations for|
46
+
47
+ **Returns**
48
+
49
+ |Name|Type|Description|
50
+ |----|----|-----------|
51
+ |`<none>`|`string[][]`|A list of announced storage locations|
52
+
53
+
54
+ ### announce
55
+
56
+ Announces a validator signature storage location
57
+
58
+
59
+ ```solidity
60
+ function announce(address _validator, string calldata _storageLocation, bytes calldata _signature)
61
+ external
62
+ returns (bool);
63
+ ```
64
+ **Parameters**
65
+
66
+ |Name|Type|Description|
67
+ |----|----|-----------|
68
+ |`_validator`|`address`||
69
+ |`_storageLocation`|`string`|Information encoding the location of signed checkpoints|
70
+ |`_signature`|`bytes`|The signed validator announcement|
71
+
72
+ **Returns**
73
+
74
+ |Name|Type|Description|
75
+ |----|----|-----------|
76
+ |`<none>`|`bool`|True upon success|
77
+
78
+
@@ -0,0 +1,17 @@
1
+
2
+
3
+ # Contents
4
+ - [hooks](/contracts/interfaces/hooks)
5
+ - [isms](/contracts/interfaces/isms)
6
+ - [middleware](/contracts/interfaces/middleware)
7
+ - [IGasOracle](IGasOracle.sol/interface.IGasOracle.md)
8
+ - [IHyperlaneConnectionClient](IHyperlaneConnectionClient.sol/interface.IHyperlaneConnectionClient.md)
9
+ - [IInterchainGasPaymaster](IInterchainGasPaymaster.sol/interface.IInterchainGasPaymaster.md)
10
+ - [IInterchainSecurityModule](IInterchainSecurityModule.sol/interface.IInterchainSecurityModule.md)
11
+ - [ISpecifiesInterchainSecurityModule](IInterchainSecurityModule.sol/interface.ISpecifiesInterchainSecurityModule.md)
12
+ - [ILiquidityLayerMessageRecipient](ILiquidityLayerMessageRecipient.sol/interface.ILiquidityLayerMessageRecipient.md)
13
+ - [ILiquidityLayerRouter](ILiquidityLayerRouter.sol/interface.ILiquidityLayerRouter.md)
14
+ - [IMailbox](IMailbox.sol/interface.IMailbox.md)
15
+ - [IMessageRecipient](IMessageRecipient.sol/interface.IMessageRecipient.md)
16
+ - [IRouter](IRouter.sol/interface.IRouter.md)
17
+ - [IValidatorAnnounce](IValidatorAnnounce.sol/interface.IValidatorAnnounce.md)
@@ -0,0 +1,12 @@
1
+ # IMessageHook
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/interfaces/hooks/IMessageHook.sol)
3
+
4
+
5
+ ## Functions
6
+ ### postDispatch
7
+
8
+
9
+ ```solidity
10
+ function postDispatch(uint32 _destination, bytes32 _messageId) external payable returns (uint256);
11
+ ```
12
+
@@ -0,0 +1,4 @@
1
+
2
+
3
+ # Contents
4
+ - [IMessageHook](IMessageHook.sol/interface.IMessageHook.md)
@@ -0,0 +1,36 @@
1
+ # IAggregationIsm
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/interfaces/isms/IAggregationIsm.sol)
3
+
4
+ **Inherits:**
5
+ [IInterchainSecurityModule](/contracts/interfaces/IInterchainSecurityModule.sol/interface.IInterchainSecurityModule.md)
6
+
7
+
8
+ ## Functions
9
+ ### modulesAndThreshold
10
+
11
+ Returns the set of modules responsible for verifying _message
12
+ and the number of modules that must verify
13
+
14
+ *Can change based on the content of _message*
15
+
16
+
17
+ ```solidity
18
+ function modulesAndThreshold(bytes calldata _message)
19
+ external
20
+ view
21
+ returns (address[] memory modules, uint8 threshold);
22
+ ```
23
+ **Parameters**
24
+
25
+ |Name|Type|Description|
26
+ |----|----|-----------|
27
+ |`_message`|`bytes`|Hyperlane formatted interchain message|
28
+
29
+ **Returns**
30
+
31
+ |Name|Type|Description|
32
+ |----|----|-----------|
33
+ |`modules`|`address[]`|The array of ISM addresses|
34
+ |`threshold`|`uint8`|The number of modules needed to verify|
35
+
36
+
@@ -0,0 +1,36 @@
1
+ # IMultisigIsm
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/interfaces/isms/IMultisigIsm.sol)
3
+
4
+ **Inherits:**
5
+ [IInterchainSecurityModule](/contracts/interfaces/IInterchainSecurityModule.sol/interface.IInterchainSecurityModule.md)
6
+
7
+
8
+ ## Functions
9
+ ### validatorsAndThreshold
10
+
11
+ Returns the set of validators responsible for verifying _message
12
+ and the number of signatures required
13
+
14
+ *Can change based on the content of _message*
15
+
16
+
17
+ ```solidity
18
+ function validatorsAndThreshold(bytes calldata _message)
19
+ external
20
+ view
21
+ returns (address[] memory validators, uint8 threshold);
22
+ ```
23
+ **Parameters**
24
+
25
+ |Name|Type|Description|
26
+ |----|----|-----------|
27
+ |`_message`|`bytes`|Hyperlane formatted interchain message|
28
+
29
+ **Returns**
30
+
31
+ |Name|Type|Description|
32
+ |----|----|-----------|
33
+ |`validators`|`address[]`|The array of validator addresses|
34
+ |`threshold`|`uint8`|The number of validator signatures needed|
35
+
36
+
@@ -0,0 +1,31 @@
1
+ # IRoutingIsm
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/interfaces/isms/IRoutingIsm.sol)
3
+
4
+ **Inherits:**
5
+ [IInterchainSecurityModule](/contracts/interfaces/IInterchainSecurityModule.sol/interface.IInterchainSecurityModule.md)
6
+
7
+
8
+ ## Functions
9
+ ### route
10
+
11
+ Returns the ISM responsible for verifying _message
12
+
13
+ *Can change based on the content of _message*
14
+
15
+
16
+ ```solidity
17
+ function route(bytes calldata _message) external view returns (IInterchainSecurityModule);
18
+ ```
19
+ **Parameters**
20
+
21
+ |Name|Type|Description|
22
+ |----|----|-----------|
23
+ |`_message`|`bytes`|Formatted Hyperlane message (see Message.sol).|
24
+
25
+ **Returns**
26
+
27
+ |Name|Type|Description|
28
+ |----|----|-----------|
29
+ |`<none>`|`IInterchainSecurityModule`|module The ISM to use to verify _message|
30
+
31
+
@@ -0,0 +1,6 @@
1
+
2
+
3
+ # Contents
4
+ - [IAggregationIsm](IAggregationIsm.sol/interface.IAggregationIsm.md)
5
+ - [IMultisigIsm](IMultisigIsm.sol/interface.IMultisigIsm.md)
6
+ - [IRoutingIsm](IRoutingIsm.sol/interface.IRoutingIsm.md)
@@ -0,0 +1,64 @@
1
+ # IInterchainAccountRouter
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/interfaces/middleware/IInterchainAccountRouter.sol)
3
+
4
+
5
+ ## Functions
6
+ ### callRemote
7
+
8
+
9
+ ```solidity
10
+ function callRemote(uint32 _destination, address _to, uint256 _value, bytes calldata _data)
11
+ external
12
+ returns (bytes32);
13
+ ```
14
+
15
+ ### callRemote
16
+
17
+
18
+ ```solidity
19
+ function callRemote(uint32 _destination, CallLib.Call[] calldata calls) external returns (bytes32);
20
+ ```
21
+
22
+ ### callRemoteWithOverrides
23
+
24
+
25
+ ```solidity
26
+ function callRemoteWithOverrides(uint32 _destination, bytes32 _router, bytes32 _ism, CallLib.Call[] calldata calls)
27
+ external
28
+ returns (bytes32);
29
+ ```
30
+
31
+ ### getLocalInterchainAccount
32
+
33
+
34
+ ```solidity
35
+ function getLocalInterchainAccount(uint32 _origin, bytes32 _router, bytes32 _owner, address _ism)
36
+ external
37
+ view
38
+ returns (OwnableMulticall);
39
+ ```
40
+
41
+ ### getLocalInterchainAccount
42
+
43
+
44
+ ```solidity
45
+ function getLocalInterchainAccount(uint32 _origin, address _router, address _owner, address _ism)
46
+ external
47
+ view
48
+ returns (OwnableMulticall);
49
+ ```
50
+
51
+ ### getRemoteInterchainAccount
52
+
53
+
54
+ ```solidity
55
+ function getRemoteInterchainAccount(address _router, address _owner, address _ism) external view returns (address);
56
+ ```
57
+
58
+ ### getRemoteInterchainAccount
59
+
60
+
61
+ ```solidity
62
+ function getRemoteInterchainAccount(uint32 _destination, address _owner) external view returns (address);
63
+ ```
64
+
@@ -0,0 +1,21 @@
1
+ # IInterchainQueryRouter
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/interfaces/middleware/IInterchainQueryRouter.sol)
3
+
4
+
5
+ ## Functions
6
+ ### query
7
+
8
+
9
+ ```solidity
10
+ function query(uint32 _destination, address _to, bytes memory _data, bytes memory _callback)
11
+ external
12
+ returns (bytes32);
13
+ ```
14
+
15
+ ### query
16
+
17
+
18
+ ```solidity
19
+ function query(uint32 _destination, CallLib.StaticCallWithCallback[] calldata calls) external returns (bytes32);
20
+ ```
21
+
@@ -0,0 +1,5 @@
1
+
2
+
3
+ # Contents
4
+ - [IInterchainAccountRouter](IInterchainAccountRouter.sol/interface.IInterchainAccountRouter.md)
5
+ - [IInterchainQueryRouter](IInterchainQueryRouter.sol/interface.IInterchainQueryRouter.md)
@@ -0,0 +1,7 @@
1
+
2
+
3
+ # Contents
4
+ - [aggregation](/contracts/isms/aggregation)
5
+ - [multisig](/contracts/isms/multisig)
6
+ - [native](/contracts/isms/native)
7
+ - [routing](/contracts/isms/routing)
@@ -0,0 +1,60 @@
1
+ # AbstractAggregationIsm
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/isms/aggregation/AbstractAggregationIsm.sol)
3
+
4
+ **Inherits:**
5
+ [IAggregationIsm](/contracts/interfaces/isms/IAggregationIsm.sol/interface.IAggregationIsm.md)
6
+
7
+ Manages per-domain m-of-n ISM sets that are used to verify
8
+ interchain messages.
9
+
10
+
11
+ ## State Variables
12
+ ### moduleType
13
+
14
+ ```solidity
15
+ uint8 public constant moduleType = uint8(IInterchainSecurityModule.Types.AGGREGATION);
16
+ ```
17
+
18
+
19
+ ## Functions
20
+ ### modulesAndThreshold
21
+
22
+ Returns the set of ISMs responsible for verifying _message
23
+ and the number of ISMs that must verify
24
+
25
+ *Can change based on the content of _message*
26
+
27
+
28
+ ```solidity
29
+ function modulesAndThreshold(bytes calldata _message) public view virtual returns (address[] memory, uint8);
30
+ ```
31
+ **Parameters**
32
+
33
+ |Name|Type|Description|
34
+ |----|----|-----------|
35
+ |`_message`|`bytes`|Hyperlane formatted interchain message|
36
+
37
+ **Returns**
38
+
39
+ |Name|Type|Description|
40
+ |----|----|-----------|
41
+ |`<none>`|`address[]`|modules The array of ISM addresses|
42
+ |`<none>`|`uint8`|threshold The number of ISMs needed to verify|
43
+
44
+
45
+ ### verify
46
+
47
+ Requires that m-of-n ISMs verify the provided interchain message.
48
+
49
+
50
+ ```solidity
51
+ function verify(bytes calldata _metadata, bytes calldata _message) public returns (bool);
52
+ ```
53
+ **Parameters**
54
+
55
+ |Name|Type|Description|
56
+ |----|----|-----------|
57
+ |`_metadata`|`bytes`|ABI encoded module metadata (see AggregationIsmMetadata.sol)|
58
+ |`_message`|`bytes`|Formatted Hyperlane message (see Message.sol).|
59
+
60
+
@@ -0,0 +1,6 @@
1
+
2
+
3
+ # Contents
4
+ - [AbstractAggregationIsm](AbstractAggregationIsm.sol/abstract.AbstractAggregationIsm.md)
5
+ - [StaticAggregationIsm](StaticAggregationIsm.sol/contract.StaticAggregationIsm.md)
6
+ - [StaticAggregationIsmFactory](StaticAggregationIsmFactory.sol/contract.StaticAggregationIsmFactory.md)
@@ -0,0 +1,30 @@
1
+ # StaticAggregationIsm
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/isms/aggregation/StaticAggregationIsm.sol)
3
+
4
+ **Inherits:**
5
+ [AbstractAggregationIsm](/contracts/isms/aggregation/AbstractAggregationIsm.sol/abstract.AbstractAggregationIsm.md)
6
+
7
+ Manages per-domain m-of-n ISM sets that are used to verify
8
+ interchain messages.
9
+
10
+
11
+ ## Functions
12
+ ### modulesAndThreshold
13
+
14
+ Returns the set of ISMs responsible for verifying _message
15
+ and the number of ISMs that must verify
16
+
17
+ *Can change based on the content of _message*
18
+
19
+
20
+ ```solidity
21
+ function modulesAndThreshold(bytes calldata) public view virtual override returns (address[] memory, uint8);
22
+ ```
23
+ **Returns**
24
+
25
+ |Name|Type|Description|
26
+ |----|----|-----------|
27
+ |`<none>`|`address[]`|modules The array of ISM addresses|
28
+ |`<none>`|`uint8`|threshold The number of ISMs needed to verify|
29
+
30
+
@@ -0,0 +1,15 @@
1
+ # StaticAggregationIsmFactory
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/isms/aggregation/StaticAggregationIsmFactory.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 virtual override returns (address);
14
+ ```
15
+
@@ -0,0 +1,78 @@
1
+ # AbstractMerkleRootMultisigIsm
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.sol)
3
+
4
+ **Inherits:**
5
+ [AbstractMultisigIsm](/contracts/isms/multisig/AbstractMultisigIsm.sol/abstract.AbstractMultisigIsm.md)
6
+
7
+ This ISM allows using a newer signed checkpoint (say #33) to prove existence of an older message (#22) in the validators' MerkleTree.
8
+ This guarantees censorship resistance as validators cannot hide a message
9
+ by refusing to sign its checkpoint but later signing a checkpoint for a newer message.
10
+ If validators decide to censor a message, they are left with only one option — to not produce checkpoints at all.
11
+ Otherwise, the very next signed checkpoint (#33) can be used by any relayer to prove the previous message inclusion using this ISM.
12
+ This is censorship resistance is missing in the sibling implementation `AbstractMessageIdMultisigIsm`,
13
+ since it can only verify messages having the corresponding checkpoints.
14
+
15
+ *Provides the default implementation of verifying signatures over a checkpoint and the message inclusion in that checkpoint.
16
+ This abstract contract can be overridden for customizing the `validatorsAndThreshold()` (static or dynamic).*
17
+
18
+ *May be adapted in future to support batch message verification against a single root.*
19
+
20
+
21
+ ## State Variables
22
+ ### moduleType
23
+
24
+ ```solidity
25
+ uint8 public constant moduleType = uint8(IInterchainSecurityModule.Types.MERKLE_ROOT_MULTISIG);
26
+ ```
27
+
28
+
29
+ ## Functions
30
+ ### digest
31
+
32
+ Returns the digest to be used for signature verification.
33
+
34
+
35
+ ```solidity
36
+ function digest(bytes calldata _metadata, bytes calldata _message) internal pure override returns (bytes32);
37
+ ```
38
+ **Parameters**
39
+
40
+ |Name|Type|Description|
41
+ |----|----|-----------|
42
+ |`_metadata`|`bytes`|ABI encoded module metadata|
43
+ |`_message`|`bytes`|Formatted Hyperlane message (see Message.sol).|
44
+
45
+ **Returns**
46
+
47
+ |Name|Type|Description|
48
+ |----|----|-----------|
49
+ |`<none>`|`bytes32`|digest The digest to be signed by validators|
50
+
51
+
52
+ ### signatureAt
53
+
54
+ Returns the signature at a given index from the metadata.
55
+
56
+
57
+ ```solidity
58
+ function signatureAt(bytes calldata _metadata, uint256 _index)
59
+ internal
60
+ pure
61
+ virtual
62
+ override
63
+ returns (bytes memory signature);
64
+ ```
65
+ **Parameters**
66
+
67
+ |Name|Type|Description|
68
+ |----|----|-----------|
69
+ |`_metadata`|`bytes`|ABI encoded module metadata|
70
+ |`_index`|`uint256`|The index of the signature to return|
71
+
72
+ **Returns**
73
+
74
+ |Name|Type|Description|
75
+ |----|----|-----------|
76
+ |`signature`|`bytes`|Packed encoding of signature (65 bytes)|
77
+
78
+
@@ -0,0 +1,69 @@
1
+ # AbstractMessageIdMultisigIsm
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/isms/multisig/AbstractMessageIdMultisigIsm.sol)
3
+
4
+ **Inherits:**
5
+ [AbstractMultisigIsm](/contracts/isms/multisig/AbstractMultisigIsm.sol/abstract.AbstractMultisigIsm.md)
6
+
7
+ This ISM minimizes gas/performance overhead of the checkpoints verification by compromising on the censorship resistance.
8
+ For censorship resistance consider using `AbstractMerkleRootMultisigIsm`.
9
+ If the validators (`validatorsAndThreshold`) skip messages by not sign checkpoints for them,
10
+ the relayers will not be able to aggregate a quorum of signatures sufficient to deliver these messages via this ISM.
11
+ Integrations are free to choose the trade-off between the censorship resistance and the gas/processing overhead.
12
+
13
+ *Provides the default implementation of verifying signatures over a checkpoint related to a specific message ID.
14
+ This abstract contract can be customized to change the `validatorsAndThreshold()` (static or dynamic).*
15
+
16
+
17
+ ## State Variables
18
+ ### moduleType
19
+
20
+ ```solidity
21
+ uint8 public constant moduleType = uint8(IInterchainSecurityModule.Types.MESSAGE_ID_MULTISIG);
22
+ ```
23
+
24
+
25
+ ## Functions
26
+ ### digest
27
+
28
+ Returns the digest to be used for signature verification.
29
+
30
+
31
+ ```solidity
32
+ function digest(bytes calldata _metadata, bytes calldata _message) internal pure override returns (bytes32);
33
+ ```
34
+ **Parameters**
35
+
36
+ |Name|Type|Description|
37
+ |----|----|-----------|
38
+ |`_metadata`|`bytes`|ABI encoded module metadata|
39
+ |`_message`|`bytes`|Formatted Hyperlane message (see Message.sol).|
40
+
41
+ **Returns**
42
+
43
+ |Name|Type|Description|
44
+ |----|----|-----------|
45
+ |`<none>`|`bytes32`|digest The digest to be signed by validators|
46
+
47
+
48
+ ### signatureAt
49
+
50
+ Returns the signature at a given index from the metadata.
51
+
52
+
53
+ ```solidity
54
+ function signatureAt(bytes calldata _metadata, uint256 _index) internal pure virtual override returns (bytes memory);
55
+ ```
56
+ **Parameters**
57
+
58
+ |Name|Type|Description|
59
+ |----|----|-----------|
60
+ |`_metadata`|`bytes`|ABI encoded module metadata|
61
+ |`_index`|`uint256`|The index of the signature to return|
62
+
63
+ **Returns**
64
+
65
+ |Name|Type|Description|
66
+ |----|----|-----------|
67
+ |`<none>`|`bytes`|signature Packed encoding of signature (65 bytes)|
68
+
69
+