@hyperlane-xyz/core 1.4.0 → 1.4.2

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 (210) hide show
  1. package/contracts/interfaces/IInterchainSecurityModule.sol +2 -2
  2. package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
  3. package/dist/factories/contracts/Mailbox__factory.js +1 -1
  4. package/dist/factories/contracts/ValidatorAnnounce__factory.d.ts +1 -1
  5. package/dist/factories/contracts/ValidatorAnnounce__factory.js +1 -1
  6. package/dist/factories/contracts/hooks/ERC5164/ERC5164MessageHook__factory.d.ts +1 -1
  7. package/dist/factories/contracts/hooks/ERC5164/ERC5164MessageHook__factory.js +1 -1
  8. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts +1 -1
  9. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js +1 -1
  10. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
  11. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
  12. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
  13. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
  14. package/dist/factories/contracts/isms/hook/ERC5164ISM__factory.d.ts +1 -1
  15. package/dist/factories/contracts/isms/hook/ERC5164ISM__factory.js +1 -1
  16. package/dist/factories/contracts/isms/hook/optimism/OptimismISM__factory.d.ts +1 -1
  17. package/dist/factories/contracts/isms/hook/optimism/OptimismISM__factory.js +1 -1
  18. package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.d.ts +1 -1
  19. package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.js +1 -1
  20. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
  21. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
  22. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +1 -1
  23. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +1 -1
  24. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
  25. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
  26. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +1 -1
  27. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +1 -1
  28. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory__factory.d.ts +1 -1
  29. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory__factory.js +1 -1
  30. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
  31. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
  32. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
  33. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
  34. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
  35. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
  36. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
  37. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
  38. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
  39. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +1 -1
  40. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
  41. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +1 -1
  42. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +1 -1
  43. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +1 -1
  44. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
  45. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
  46. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +1 -1
  47. package/dist/factories/contracts/mock/MockMailbox__factory.js +1 -1
  48. package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts +1 -1
  49. package/dist/factories/contracts/test/LightTestRecipient__factory.js +1 -1
  50. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
  51. package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -1
  52. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.d.ts +1 -1
  53. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js +1 -1
  54. package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.d.ts +1 -1
  55. package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.js +1 -1
  56. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
  57. package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
  58. package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts +1 -1
  59. package/dist/factories/contracts/test/TestMultisigIsm__factory.js +1 -1
  60. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  61. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  62. package/dist/factories/contracts/test/TestRecipient__factory.d.ts +1 -1
  63. package/dist/factories/contracts/test/TestRecipient__factory.js +1 -1
  64. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  65. package/dist/factories/contracts/test/TestRouter__factory.js +1 -1
  66. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
  67. package/dist/factories/contracts/test/TestSendReceiver__factory.js +1 -1
  68. package/docs/book.css +13 -0
  69. package/docs/book.toml +12 -0
  70. package/docs/solidity.min.js +74 -0
  71. package/docs/src/README.md +15 -0
  72. package/docs/src/SUMMARY.md +139 -0
  73. package/docs/src/contracts/GasRouter.sol/abstract.GasRouter.md +124 -0
  74. package/docs/src/contracts/HyperlaneConnectionClient.sol/abstract.HyperlaneConnectionClient.md +191 -0
  75. package/docs/src/contracts/Mailbox.sol/contract.Mailbox.md +251 -0
  76. package/docs/src/contracts/OwnableMulticall.sol/contract.OwnableMulticall.md +41 -0
  77. package/docs/src/contracts/PausableReentrancyGuard.sol/abstract.PausableReentrancyGuardUpgradeable.md +100 -0
  78. package/docs/src/contracts/README.md +19 -0
  79. package/docs/src/contracts/Router.sol/abstract.Router.md +255 -0
  80. package/docs/src/contracts/ValidatorAnnounce.sol/contract.ValidatorAnnounce.md +117 -0
  81. package/docs/src/contracts/hooks/ERC5164/ERC5164MessageHook.sol/contract.ERC5164MessageHook.md +64 -0
  82. package/docs/src/contracts/hooks/ERC5164/README.md +5 -0
  83. package/docs/src/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.sol/interface.IMessageDispatcher.md +25 -0
  84. package/docs/src/contracts/hooks/ERC5164/interfaces/README.md +4 -0
  85. package/docs/src/contracts/hooks/OptimismMessageHook.sol/contract.OptimismMessageHook.md +71 -0
  86. package/docs/src/contracts/hooks/README.md +5 -0
  87. package/docs/src/contracts/igps/InterchainGasPaymaster.sol/contract.InterchainGasPaymaster.md +231 -0
  88. package/docs/src/contracts/igps/OverheadIgp.sol/contract.OverheadIgp.md +161 -0
  89. package/docs/src/contracts/igps/README.md +6 -0
  90. package/docs/src/contracts/igps/gas-oracles/README.md +4 -0
  91. package/docs/src/contracts/igps/gas-oracles/StorageGasOracle.sol/contract.StorageGasOracle.md +114 -0
  92. package/docs/src/contracts/interfaces/IGasOracle.sol/interface.IGasOracle.md +25 -0
  93. package/docs/src/contracts/interfaces/IHyperlaneConnectionClient.sol/interface.IHyperlaneConnectionClient.md +43 -0
  94. package/docs/src/contracts/interfaces/IInterchainGasPaymaster.sol/interface.IInterchainGasPaymaster.md +33 -0
  95. package/docs/src/contracts/interfaces/IInterchainSecurityModule.sol/interface.IInterchainSecurityModule.md +55 -0
  96. package/docs/src/contracts/interfaces/IInterchainSecurityModule.sol/interface.ISpecifiesInterchainSecurityModule.md +12 -0
  97. package/docs/src/contracts/interfaces/ILiquidityLayerMessageRecipient.sol/interface.ILiquidityLayerMessageRecipient.md +13 -0
  98. package/docs/src/contracts/interfaces/ILiquidityLayerRouter.sol/interface.ILiquidityLayerRouter.md +19 -0
  99. package/docs/src/contracts/interfaces/IMailbox.sol/interface.IMailbox.md +103 -0
  100. package/docs/src/contracts/interfaces/IMessageRecipient.sol/interface.IMessageRecipient.md +12 -0
  101. package/docs/src/contracts/interfaces/IRouter.sol/interface.IRouter.md +33 -0
  102. package/docs/src/contracts/interfaces/IValidatorAnnounce.sol/interface.IValidatorAnnounce.md +78 -0
  103. package/docs/src/contracts/interfaces/README.md +17 -0
  104. package/docs/src/contracts/interfaces/hooks/IMessageHook.sol/interface.IMessageHook.md +12 -0
  105. package/docs/src/contracts/interfaces/hooks/README.md +4 -0
  106. package/docs/src/contracts/interfaces/isms/IAggregationIsm.sol/interface.IAggregationIsm.md +36 -0
  107. package/docs/src/contracts/interfaces/isms/IMultisigIsm.sol/interface.IMultisigIsm.md +36 -0
  108. package/docs/src/contracts/interfaces/isms/IRoutingIsm.sol/interface.IRoutingIsm.md +31 -0
  109. package/docs/src/contracts/interfaces/isms/README.md +6 -0
  110. package/docs/src/contracts/interfaces/middleware/IInterchainAccountRouter.sol/interface.IInterchainAccountRouter.md +64 -0
  111. package/docs/src/contracts/interfaces/middleware/IInterchainQueryRouter.sol/interface.IInterchainQueryRouter.md +21 -0
  112. package/docs/src/contracts/interfaces/middleware/README.md +5 -0
  113. package/docs/src/contracts/isms/README.md +7 -0
  114. package/docs/src/contracts/isms/aggregation/AbstractAggregationIsm.sol/abstract.AbstractAggregationIsm.md +60 -0
  115. package/docs/src/contracts/isms/aggregation/README.md +6 -0
  116. package/docs/src/contracts/isms/aggregation/StaticAggregationIsm.sol/contract.StaticAggregationIsm.md +30 -0
  117. package/docs/src/contracts/isms/aggregation/StaticAggregationIsmFactory.sol/contract.StaticAggregationIsmFactory.md +15 -0
  118. package/docs/src/contracts/isms/hook/AbstractHookISM.sol/abstract.AbstractHookISM.md +44 -0
  119. package/docs/src/contracts/isms/hook/CrossChainEnabled.sol/abstract.CrossChainEnabled.md +74 -0
  120. package/docs/src/contracts/isms/hook/ERC5164ISM.sol/contract.ERC5164ISM.md +57 -0
  121. package/docs/src/contracts/isms/hook/README.md +7 -0
  122. package/docs/src/contracts/isms/hook/optimism/CrossChainEnabledOptimism.sol/abstract.CrossChainEnabledOptimism.md +53 -0
  123. package/docs/src/contracts/isms/hook/optimism/LibOptimism.sol/library.LibOptimism.md +39 -0
  124. package/docs/src/contracts/isms/hook/optimism/OptimismISM.sol/contract.OptimismISM.md +66 -0
  125. package/docs/src/contracts/isms/hook/optimism/README.md +6 -0
  126. package/docs/src/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.sol/abstract.AbstractMerkleRootMultisigIsm.md +78 -0
  127. package/docs/src/contracts/isms/multisig/AbstractMessageIdMultisigIsm.sol/abstract.AbstractMessageIdMultisigIsm.md +69 -0
  128. package/docs/src/contracts/isms/multisig/AbstractMultisigIsm.sol/abstract.AbstractMultisigIsm.md +102 -0
  129. package/docs/src/contracts/isms/multisig/LegacyMultisigIsm.sol/contract.LegacyMultisigIsm.md +355 -0
  130. package/docs/src/contracts/isms/multisig/README.md +12 -0
  131. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/abstract.AbstractMetaProxyMultisigIsm.md +36 -0
  132. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMerkleRootMultisigIsm.md +11 -0
  133. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMerkleRootMultisigIsmFactory.md +15 -0
  134. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMessageIdMultisigIsm.md +10 -0
  135. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMessageIdMultisigIsmFactory.md +15 -0
  136. package/docs/src/contracts/isms/routing/AbstractRoutingIsm.sol/abstract.AbstractRoutingIsm.md +55 -0
  137. package/docs/src/contracts/isms/routing/DomainRoutingIsm.sol/contract.DomainRoutingIsm.md +112 -0
  138. package/docs/src/contracts/isms/routing/DomainRoutingIsmFactory.sol/contract.DomainRoutingIsmFactory.md +47 -0
  139. package/docs/src/contracts/isms/routing/InterchainAccountIsm.sol/contract.InterchainAccountIsm.md +44 -0
  140. package/docs/src/contracts/isms/routing/README.md +7 -0
  141. package/docs/src/contracts/libs/Call.sol/library.CallLib.md +124 -0
  142. package/docs/src/contracts/libs/CheckpointLib.sol/library.CheckpointLib.md +61 -0
  143. package/docs/src/contracts/libs/EnumerableMapExtended.sol/library.EnumerableMapExtended.md +63 -0
  144. package/docs/src/contracts/libs/LegacyCheckpointLib.sol/library.LegacyCheckpointLib.md +55 -0
  145. package/docs/src/contracts/libs/Merkle.sol/library.MerkleLib.md +354 -0
  146. package/docs/src/contracts/libs/Message.sol/library.Message.md +304 -0
  147. package/docs/src/contracts/libs/MetaProxy.sol/library.MetaProxy.md +36 -0
  148. package/docs/src/contracts/libs/MinimalProxy.sol/library.MinimalProxy.md +34 -0
  149. package/docs/src/contracts/libs/README.md +16 -0
  150. package/docs/src/contracts/libs/StaticMOfNAddressSetFactory.sol/abstract.StaticMOfNAddressSetFactory.md +123 -0
  151. package/docs/src/contracts/libs/TypeCasts.sol/library.TypeCasts.md +19 -0
  152. package/docs/src/contracts/libs/ValidatorAnnouncements.sol/library.ValidatorAnnouncements.md +31 -0
  153. package/docs/src/contracts/libs/isms/AggregationIsmMetadata.sol/library.AggregationIsmMetadata.md +97 -0
  154. package/docs/src/contracts/libs/isms/LegacyMultisigIsmMetadata.sol/library.LegacyMultisigIsmMetadata.md +296 -0
  155. package/docs/src/contracts/libs/isms/MerkleRootMultisigIsmMetadata.sol/library.MerkleRootMultisigIsmMetadata.md +177 -0
  156. package/docs/src/contracts/libs/isms/MessageIdMultisigIsmMetadata.sol/library.MessageIdMultisigIsmMetadata.md +109 -0
  157. package/docs/src/contracts/libs/isms/README.md +7 -0
  158. package/docs/src/contracts/libs/middleware/InterchainAccountMessage.sol/library.InterchainAccountMessage.md +134 -0
  159. package/docs/src/contracts/libs/middleware/InterchainQueryMessage.sol/library.InterchainQueryMessage.md +203 -0
  160. package/docs/src/contracts/libs/middleware/README.md +5 -0
  161. package/docs/src/contracts/middleware/InterchainAccountRouter.sol/contract.InterchainAccountRouter.md +542 -0
  162. package/docs/src/contracts/middleware/InterchainQueryRouter.sol/contract.InterchainQueryRouter.md +119 -0
  163. package/docs/src/contracts/middleware/README.md +6 -0
  164. package/docs/src/contracts/middleware/liquidity-layer/LiquidityLayerRouter.sol/contract.LiquidityLayerRouter.md +81 -0
  165. package/docs/src/contracts/middleware/liquidity-layer/README.md +6 -0
  166. package/docs/src/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.sol/contract.CircleBridgeAdapter.md +197 -0
  167. package/docs/src/contracts/middleware/liquidity-layer/adapters/PortalAdapter.sol/contract.PortalAdapter.md +189 -0
  168. package/docs/src/contracts/middleware/liquidity-layer/adapters/README.md +5 -0
  169. package/docs/src/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter.sol/interface.ILiquidityLayerAdapter.md +23 -0
  170. package/docs/src/contracts/middleware/liquidity-layer/interfaces/README.md +6 -0
  171. package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.sol/interface.ICircleMessageTransmitter.md +54 -0
  172. package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger.sol/interface.ITokenMessenger.md +92 -0
  173. package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/README.md +5 -0
  174. package/docs/src/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.sol/interface.IPortalTokenBridge.md +131 -0
  175. package/docs/src/contracts/middleware/liquidity-layer/interfaces/portal/README.md +4 -0
  176. package/docs/src/contracts/mock/MockCircleMessageTransmitter.sol/contract.MockCircleMessageTransmitter.md +58 -0
  177. package/docs/src/contracts/mock/MockCircleTokenMessenger.sol/contract.MockCircleTokenMessenger.md +44 -0
  178. package/docs/src/contracts/mock/MockERC5164.sol/contract.MockMessageDispatcher.md +15 -0
  179. package/docs/src/contracts/mock/MockERC5164.sol/contract.MockMessageExecutor.md +11 -0
  180. package/docs/src/contracts/mock/MockHyperlaneEnvironment.sol/contract.MockHyperlaneEnvironment.md +69 -0
  181. package/docs/src/contracts/mock/MockMailbox.sol/contract.MockMailbox.md +137 -0
  182. package/docs/src/contracts/mock/MockPortalBridge.sol/contract.MockPortalBridge.md +82 -0
  183. package/docs/src/contracts/mock/MockToken.sol/contract.MockToken.md +22 -0
  184. package/docs/src/contracts/mock/README.md +11 -0
  185. package/docs/src/contracts/test/LightTestRecipient.sol/contract.LightTestRecipient.md +15 -0
  186. package/docs/src/contracts/test/README.md +20 -0
  187. package/docs/src/contracts/test/TestGasRouter.sol/contract.TestGasRouter.md +27 -0
  188. package/docs/src/contracts/test/TestHyperlaneConnectionClient.sol/contract.TestHyperlaneConnectionClient.md +29 -0
  189. package/docs/src/contracts/test/TestInterchainGasPaymaster.sol/contract.TestInterchainGasPaymaster.md +30 -0
  190. package/docs/src/contracts/test/TestLegacyMultisigIsm.sol/contract.TestLegacyMultisigIsm.md +15 -0
  191. package/docs/src/contracts/test/TestLiquidityLayerMessageRecipient.sol/contract.TestLiquidityLayerMessageRecipient.md +23 -0
  192. package/docs/src/contracts/test/TestMailbox.sol/contract.TestMailbox.md +29 -0
  193. package/docs/src/contracts/test/TestMerkle.sol/contract.TestMerkle.md +50 -0
  194. package/docs/src/contracts/test/TestMessage.sol/contract.TestMessage.md +68 -0
  195. package/docs/src/contracts/test/TestMultisigIsm.sol/contract.TestMultisigIsm.md +51 -0
  196. package/docs/src/contracts/test/TestQuery.sol/contract.TestQuery.md +45 -0
  197. package/docs/src/contracts/test/TestQuerySender.sol/contract.TestQuerySender.md +128 -0
  198. package/docs/src/contracts/test/TestRecipient.sol/contract.TestRecipient.md +78 -0
  199. package/docs/src/contracts/test/TestRouter.sol/contract.TestRouter.md +63 -0
  200. package/docs/src/contracts/test/TestSendReceiver.sol/contract.TestSendReceiver.md +49 -0
  201. package/docs/src/contracts/test/TestTokenRecipient.sol/contract.TestTokenRecipient.md +80 -0
  202. package/docs/src/contracts/test/bad-recipient/BadRecipient1.sol/contract.BadRecipient1.md +15 -0
  203. package/docs/src/contracts/test/bad-recipient/BadRecipient2.sol/contract.BadRecipient2.md +12 -0
  204. package/docs/src/contracts/test/bad-recipient/BadRecipient3.sol/contract.BadRecipient3.md +15 -0
  205. package/docs/src/contracts/test/bad-recipient/BadRecipient5.sol/contract.BadRecipient5.md +15 -0
  206. package/docs/src/contracts/test/bad-recipient/BadRecipient6.sol/contract.BadRecipient6.md +15 -0
  207. package/docs/src/contracts/test/bad-recipient/README.md +8 -0
  208. package/docs/src/contracts/upgrade/README.md +4 -0
  209. package/docs/src/contracts/upgrade/Versioned.sol/contract.Versioned.md +14 -0
  210. package/package.json +3 -3
@@ -0,0 +1,355 @@
1
+ # LegacyMultisigIsm
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/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/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/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/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/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/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/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/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/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/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/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,55 @@
1
+ # AbstractRoutingIsm
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/contracts/isms/routing/AbstractRoutingIsm.sol)
3
+
4
+ **Inherits:**
5
+ [IRoutingIsm](/contracts/interfaces/isms/IRoutingIsm.sol/interface.IRoutingIsm.md)
6
+
7
+
8
+ ## State Variables
9
+ ### moduleType
10
+
11
+ ```solidity
12
+ uint8 public constant moduleType = uint8(IInterchainSecurityModule.Types.ROUTING);
13
+ ```
14
+
15
+
16
+ ## Functions
17
+ ### route
18
+
19
+ Returns the ISM responsible for verifying _message
20
+
21
+ *Can change based on the content of _message*
22
+
23
+
24
+ ```solidity
25
+ function route(bytes calldata _message) public view virtual returns (IInterchainSecurityModule);
26
+ ```
27
+ **Parameters**
28
+
29
+ |Name|Type|Description|
30
+ |----|----|-----------|
31
+ |`_message`|`bytes`|Formatted Hyperlane message (see Message.sol).|
32
+
33
+ **Returns**
34
+
35
+ |Name|Type|Description|
36
+ |----|----|-----------|
37
+ |`<none>`|`IInterchainSecurityModule`|module The ISM to use to verify _message|
38
+
39
+
40
+ ### verify
41
+
42
+ Routes _metadata and _message to the correct ISM
43
+
44
+
45
+ ```solidity
46
+ function verify(bytes calldata _metadata, bytes calldata _message) public returns (bool);
47
+ ```
48
+ **Parameters**
49
+
50
+ |Name|Type|Description|
51
+ |----|----|-----------|
52
+ |`_metadata`|`bytes`|ABI encoded module metadata|
53
+ |`_message`|`bytes`|Formatted Hyperlane message (see Message.sol).|
54
+
55
+
@@ -0,0 +1,112 @@
1
+ # DomainRoutingIsm
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/contracts/isms/routing/DomainRoutingIsm.sol)
3
+
4
+ **Inherits:**
5
+ [AbstractRoutingIsm](/contracts/isms/routing/AbstractRoutingIsm.sol/abstract.AbstractRoutingIsm.md), OwnableUpgradeable
6
+
7
+
8
+ ## State Variables
9
+ ### modules
10
+
11
+ ```solidity
12
+ mapping(uint32 => IInterchainSecurityModule) public modules;
13
+ ```
14
+
15
+
16
+ ## Functions
17
+ ### initialize
18
+
19
+
20
+ ```solidity
21
+ function initialize(address _owner) public initializer;
22
+ ```
23
+ **Parameters**
24
+
25
+ |Name|Type|Description|
26
+ |----|----|-----------|
27
+ |`_owner`|`address`|The owner of the contract.|
28
+
29
+
30
+ ### initialize
31
+
32
+ Sets the ISMs to be used for the specified origin domains
33
+
34
+
35
+ ```solidity
36
+ function initialize(address _owner, uint32[] calldata _domains, IInterchainSecurityModule[] calldata _modules)
37
+ public
38
+ initializer;
39
+ ```
40
+ **Parameters**
41
+
42
+ |Name|Type|Description|
43
+ |----|----|-----------|
44
+ |`_owner`|`address`|The owner of the contract.|
45
+ |`_domains`|`uint32[]`|The origin domains|
46
+ |`_modules`|`IInterchainSecurityModule[]`|The ISMs to use to verify messages|
47
+
48
+
49
+ ### set
50
+
51
+ Sets the ISM to be used for the specified origin domain
52
+
53
+
54
+ ```solidity
55
+ function set(uint32 _domain, IInterchainSecurityModule _module) external onlyOwner;
56
+ ```
57
+ **Parameters**
58
+
59
+ |Name|Type|Description|
60
+ |----|----|-----------|
61
+ |`_domain`|`uint32`|The origin domain|
62
+ |`_module`|`IInterchainSecurityModule`|The ISM to use to verify messages|
63
+
64
+
65
+ ### route
66
+
67
+ Returns the ISM responsible for verifying _message
68
+
69
+ *Can change based on the content of _message*
70
+
71
+
72
+ ```solidity
73
+ function route(bytes calldata _message) public view virtual override returns (IInterchainSecurityModule);
74
+ ```
75
+ **Parameters**
76
+
77
+ |Name|Type|Description|
78
+ |----|----|-----------|
79
+ |`_message`|`bytes`|Formatted Hyperlane message (see Message.sol).|
80
+
81
+ **Returns**
82
+
83
+ |Name|Type|Description|
84
+ |----|----|-----------|
85
+ |`<none>`|`IInterchainSecurityModule`|module The ISM to use to verify _message|
86
+
87
+
88
+ ### _set
89
+
90
+ Sets the ISM to be used for the specified origin domain
91
+
92
+
93
+ ```solidity
94
+ function _set(uint32 _domain, IInterchainSecurityModule _module) internal;
95
+ ```
96
+ **Parameters**
97
+
98
+ |Name|Type|Description|
99
+ |----|----|-----------|
100
+ |`_domain`|`uint32`|The origin domain|
101
+ |`_module`|`IInterchainSecurityModule`|The ISM to use to verify messages|
102
+
103
+
104
+ ## Events
105
+ ### ModuleSet
106
+ Emitted when a module is set for a domain
107
+
108
+
109
+ ```solidity
110
+ event ModuleSet(uint32 indexed domain, IInterchainSecurityModule module);
111
+ ```
112
+
@@ -0,0 +1,47 @@
1
+ # DomainRoutingIsmFactory
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/contracts/isms/routing/DomainRoutingIsmFactory.sol)
3
+
4
+
5
+ ## State Variables
6
+ ### _implementation
7
+
8
+ ```solidity
9
+ address private immutable _implementation;
10
+ ```
11
+
12
+
13
+ ## Functions
14
+ ### constructor
15
+
16
+
17
+ ```solidity
18
+ constructor();
19
+ ```
20
+
21
+ ### deploy
22
+
23
+ Deploys and initializes a DomainRoutingIsm using a minimal proxy
24
+
25
+
26
+ ```solidity
27
+ function deploy(uint32[] calldata _domains, IInterchainSecurityModule[] calldata _modules)
28
+ external
29
+ returns (DomainRoutingIsm);
30
+ ```
31
+ **Parameters**
32
+
33
+ |Name|Type|Description|
34
+ |----|----|-----------|
35
+ |`_domains`|`uint32[]`|The origin domains|
36
+ |`_modules`|`IInterchainSecurityModule[]`|The ISMs to use to verify messages|
37
+
38
+
39
+ ## Events
40
+ ### ModuleDeployed
41
+ Emitted when a routing module is deployed
42
+
43
+
44
+ ```solidity
45
+ event ModuleDeployed(DomainRoutingIsm module);
46
+ ```
47
+