@hyperlane-xyz/core 1.4.1 → 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 (143) hide show
  1. package/docs/book.css +13 -0
  2. package/docs/book.toml +12 -0
  3. package/docs/solidity.min.js +74 -0
  4. package/docs/src/README.md +15 -0
  5. package/docs/src/SUMMARY.md +139 -0
  6. package/docs/src/contracts/GasRouter.sol/abstract.GasRouter.md +124 -0
  7. package/docs/src/contracts/HyperlaneConnectionClient.sol/abstract.HyperlaneConnectionClient.md +191 -0
  8. package/docs/src/contracts/Mailbox.sol/contract.Mailbox.md +251 -0
  9. package/docs/src/contracts/OwnableMulticall.sol/contract.OwnableMulticall.md +41 -0
  10. package/docs/src/contracts/PausableReentrancyGuard.sol/abstract.PausableReentrancyGuardUpgradeable.md +100 -0
  11. package/docs/src/contracts/README.md +19 -0
  12. package/docs/src/contracts/Router.sol/abstract.Router.md +255 -0
  13. package/docs/src/contracts/ValidatorAnnounce.sol/contract.ValidatorAnnounce.md +117 -0
  14. package/docs/src/contracts/hooks/ERC5164/ERC5164MessageHook.sol/contract.ERC5164MessageHook.md +64 -0
  15. package/docs/src/contracts/hooks/ERC5164/README.md +5 -0
  16. package/docs/src/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.sol/interface.IMessageDispatcher.md +25 -0
  17. package/docs/src/contracts/hooks/ERC5164/interfaces/README.md +4 -0
  18. package/docs/src/contracts/hooks/OptimismMessageHook.sol/contract.OptimismMessageHook.md +71 -0
  19. package/docs/src/contracts/hooks/README.md +5 -0
  20. package/docs/src/contracts/igps/InterchainGasPaymaster.sol/contract.InterchainGasPaymaster.md +231 -0
  21. package/docs/src/contracts/igps/OverheadIgp.sol/contract.OverheadIgp.md +161 -0
  22. package/docs/src/contracts/igps/README.md +6 -0
  23. package/docs/src/contracts/igps/gas-oracles/README.md +4 -0
  24. package/docs/src/contracts/igps/gas-oracles/StorageGasOracle.sol/contract.StorageGasOracle.md +114 -0
  25. package/docs/src/contracts/interfaces/IGasOracle.sol/interface.IGasOracle.md +25 -0
  26. package/docs/src/contracts/interfaces/IHyperlaneConnectionClient.sol/interface.IHyperlaneConnectionClient.md +43 -0
  27. package/docs/src/contracts/interfaces/IInterchainGasPaymaster.sol/interface.IInterchainGasPaymaster.md +33 -0
  28. package/docs/src/contracts/interfaces/IInterchainSecurityModule.sol/interface.IInterchainSecurityModule.md +55 -0
  29. package/docs/src/contracts/interfaces/IInterchainSecurityModule.sol/interface.ISpecifiesInterchainSecurityModule.md +12 -0
  30. package/docs/src/contracts/interfaces/ILiquidityLayerMessageRecipient.sol/interface.ILiquidityLayerMessageRecipient.md +13 -0
  31. package/docs/src/contracts/interfaces/ILiquidityLayerRouter.sol/interface.ILiquidityLayerRouter.md +19 -0
  32. package/docs/src/contracts/interfaces/IMailbox.sol/interface.IMailbox.md +103 -0
  33. package/docs/src/contracts/interfaces/IMessageRecipient.sol/interface.IMessageRecipient.md +12 -0
  34. package/docs/src/contracts/interfaces/IRouter.sol/interface.IRouter.md +33 -0
  35. package/docs/src/contracts/interfaces/IValidatorAnnounce.sol/interface.IValidatorAnnounce.md +78 -0
  36. package/docs/src/contracts/interfaces/README.md +17 -0
  37. package/docs/src/contracts/interfaces/hooks/IMessageHook.sol/interface.IMessageHook.md +12 -0
  38. package/docs/src/contracts/interfaces/hooks/README.md +4 -0
  39. package/docs/src/contracts/interfaces/isms/IAggregationIsm.sol/interface.IAggregationIsm.md +36 -0
  40. package/docs/src/contracts/interfaces/isms/IMultisigIsm.sol/interface.IMultisigIsm.md +36 -0
  41. package/docs/src/contracts/interfaces/isms/IRoutingIsm.sol/interface.IRoutingIsm.md +31 -0
  42. package/docs/src/contracts/interfaces/isms/README.md +6 -0
  43. package/docs/src/contracts/interfaces/middleware/IInterchainAccountRouter.sol/interface.IInterchainAccountRouter.md +64 -0
  44. package/docs/src/contracts/interfaces/middleware/IInterchainQueryRouter.sol/interface.IInterchainQueryRouter.md +21 -0
  45. package/docs/src/contracts/interfaces/middleware/README.md +5 -0
  46. package/docs/src/contracts/isms/README.md +7 -0
  47. package/docs/src/contracts/isms/aggregation/AbstractAggregationIsm.sol/abstract.AbstractAggregationIsm.md +60 -0
  48. package/docs/src/contracts/isms/aggregation/README.md +6 -0
  49. package/docs/src/contracts/isms/aggregation/StaticAggregationIsm.sol/contract.StaticAggregationIsm.md +30 -0
  50. package/docs/src/contracts/isms/aggregation/StaticAggregationIsmFactory.sol/contract.StaticAggregationIsmFactory.md +15 -0
  51. package/docs/src/contracts/isms/hook/AbstractHookISM.sol/abstract.AbstractHookISM.md +44 -0
  52. package/docs/src/contracts/isms/hook/CrossChainEnabled.sol/abstract.CrossChainEnabled.md +74 -0
  53. package/docs/src/contracts/isms/hook/ERC5164ISM.sol/contract.ERC5164ISM.md +57 -0
  54. package/docs/src/contracts/isms/hook/README.md +7 -0
  55. package/docs/src/contracts/isms/hook/optimism/CrossChainEnabledOptimism.sol/abstract.CrossChainEnabledOptimism.md +53 -0
  56. package/docs/src/contracts/isms/hook/optimism/LibOptimism.sol/library.LibOptimism.md +39 -0
  57. package/docs/src/contracts/isms/hook/optimism/OptimismISM.sol/contract.OptimismISM.md +66 -0
  58. package/docs/src/contracts/isms/hook/optimism/README.md +6 -0
  59. package/docs/src/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.sol/abstract.AbstractMerkleRootMultisigIsm.md +78 -0
  60. package/docs/src/contracts/isms/multisig/AbstractMessageIdMultisigIsm.sol/abstract.AbstractMessageIdMultisigIsm.md +69 -0
  61. package/docs/src/contracts/isms/multisig/AbstractMultisigIsm.sol/abstract.AbstractMultisigIsm.md +102 -0
  62. package/docs/src/contracts/isms/multisig/LegacyMultisigIsm.sol/contract.LegacyMultisigIsm.md +355 -0
  63. package/docs/src/contracts/isms/multisig/README.md +12 -0
  64. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/abstract.AbstractMetaProxyMultisigIsm.md +36 -0
  65. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMerkleRootMultisigIsm.md +11 -0
  66. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMerkleRootMultisigIsmFactory.md +15 -0
  67. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMessageIdMultisigIsm.md +10 -0
  68. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMessageIdMultisigIsmFactory.md +15 -0
  69. package/docs/src/contracts/isms/routing/AbstractRoutingIsm.sol/abstract.AbstractRoutingIsm.md +55 -0
  70. package/docs/src/contracts/isms/routing/DomainRoutingIsm.sol/contract.DomainRoutingIsm.md +112 -0
  71. package/docs/src/contracts/isms/routing/DomainRoutingIsmFactory.sol/contract.DomainRoutingIsmFactory.md +47 -0
  72. package/docs/src/contracts/isms/routing/InterchainAccountIsm.sol/contract.InterchainAccountIsm.md +44 -0
  73. package/docs/src/contracts/isms/routing/README.md +7 -0
  74. package/docs/src/contracts/libs/Call.sol/library.CallLib.md +124 -0
  75. package/docs/src/contracts/libs/CheckpointLib.sol/library.CheckpointLib.md +61 -0
  76. package/docs/src/contracts/libs/EnumerableMapExtended.sol/library.EnumerableMapExtended.md +63 -0
  77. package/docs/src/contracts/libs/LegacyCheckpointLib.sol/library.LegacyCheckpointLib.md +55 -0
  78. package/docs/src/contracts/libs/Merkle.sol/library.MerkleLib.md +354 -0
  79. package/docs/src/contracts/libs/Message.sol/library.Message.md +304 -0
  80. package/docs/src/contracts/libs/MetaProxy.sol/library.MetaProxy.md +36 -0
  81. package/docs/src/contracts/libs/MinimalProxy.sol/library.MinimalProxy.md +34 -0
  82. package/docs/src/contracts/libs/README.md +16 -0
  83. package/docs/src/contracts/libs/StaticMOfNAddressSetFactory.sol/abstract.StaticMOfNAddressSetFactory.md +123 -0
  84. package/docs/src/contracts/libs/TypeCasts.sol/library.TypeCasts.md +19 -0
  85. package/docs/src/contracts/libs/ValidatorAnnouncements.sol/library.ValidatorAnnouncements.md +31 -0
  86. package/docs/src/contracts/libs/isms/AggregationIsmMetadata.sol/library.AggregationIsmMetadata.md +97 -0
  87. package/docs/src/contracts/libs/isms/LegacyMultisigIsmMetadata.sol/library.LegacyMultisigIsmMetadata.md +296 -0
  88. package/docs/src/contracts/libs/isms/MerkleRootMultisigIsmMetadata.sol/library.MerkleRootMultisigIsmMetadata.md +177 -0
  89. package/docs/src/contracts/libs/isms/MessageIdMultisigIsmMetadata.sol/library.MessageIdMultisigIsmMetadata.md +109 -0
  90. package/docs/src/contracts/libs/isms/README.md +7 -0
  91. package/docs/src/contracts/libs/middleware/InterchainAccountMessage.sol/library.InterchainAccountMessage.md +134 -0
  92. package/docs/src/contracts/libs/middleware/InterchainQueryMessage.sol/library.InterchainQueryMessage.md +203 -0
  93. package/docs/src/contracts/libs/middleware/README.md +5 -0
  94. package/docs/src/contracts/middleware/InterchainAccountRouter.sol/contract.InterchainAccountRouter.md +542 -0
  95. package/docs/src/contracts/middleware/InterchainQueryRouter.sol/contract.InterchainQueryRouter.md +119 -0
  96. package/docs/src/contracts/middleware/README.md +6 -0
  97. package/docs/src/contracts/middleware/liquidity-layer/LiquidityLayerRouter.sol/contract.LiquidityLayerRouter.md +81 -0
  98. package/docs/src/contracts/middleware/liquidity-layer/README.md +6 -0
  99. package/docs/src/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.sol/contract.CircleBridgeAdapter.md +197 -0
  100. package/docs/src/contracts/middleware/liquidity-layer/adapters/PortalAdapter.sol/contract.PortalAdapter.md +189 -0
  101. package/docs/src/contracts/middleware/liquidity-layer/adapters/README.md +5 -0
  102. package/docs/src/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter.sol/interface.ILiquidityLayerAdapter.md +23 -0
  103. package/docs/src/contracts/middleware/liquidity-layer/interfaces/README.md +6 -0
  104. package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.sol/interface.ICircleMessageTransmitter.md +54 -0
  105. package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger.sol/interface.ITokenMessenger.md +92 -0
  106. package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/README.md +5 -0
  107. package/docs/src/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.sol/interface.IPortalTokenBridge.md +131 -0
  108. package/docs/src/contracts/middleware/liquidity-layer/interfaces/portal/README.md +4 -0
  109. package/docs/src/contracts/mock/MockCircleMessageTransmitter.sol/contract.MockCircleMessageTransmitter.md +58 -0
  110. package/docs/src/contracts/mock/MockCircleTokenMessenger.sol/contract.MockCircleTokenMessenger.md +44 -0
  111. package/docs/src/contracts/mock/MockERC5164.sol/contract.MockMessageDispatcher.md +15 -0
  112. package/docs/src/contracts/mock/MockERC5164.sol/contract.MockMessageExecutor.md +11 -0
  113. package/docs/src/contracts/mock/MockHyperlaneEnvironment.sol/contract.MockHyperlaneEnvironment.md +69 -0
  114. package/docs/src/contracts/mock/MockMailbox.sol/contract.MockMailbox.md +137 -0
  115. package/docs/src/contracts/mock/MockPortalBridge.sol/contract.MockPortalBridge.md +82 -0
  116. package/docs/src/contracts/mock/MockToken.sol/contract.MockToken.md +22 -0
  117. package/docs/src/contracts/mock/README.md +11 -0
  118. package/docs/src/contracts/test/LightTestRecipient.sol/contract.LightTestRecipient.md +15 -0
  119. package/docs/src/contracts/test/README.md +20 -0
  120. package/docs/src/contracts/test/TestGasRouter.sol/contract.TestGasRouter.md +27 -0
  121. package/docs/src/contracts/test/TestHyperlaneConnectionClient.sol/contract.TestHyperlaneConnectionClient.md +29 -0
  122. package/docs/src/contracts/test/TestInterchainGasPaymaster.sol/contract.TestInterchainGasPaymaster.md +30 -0
  123. package/docs/src/contracts/test/TestLegacyMultisigIsm.sol/contract.TestLegacyMultisigIsm.md +15 -0
  124. package/docs/src/contracts/test/TestLiquidityLayerMessageRecipient.sol/contract.TestLiquidityLayerMessageRecipient.md +23 -0
  125. package/docs/src/contracts/test/TestMailbox.sol/contract.TestMailbox.md +29 -0
  126. package/docs/src/contracts/test/TestMerkle.sol/contract.TestMerkle.md +50 -0
  127. package/docs/src/contracts/test/TestMessage.sol/contract.TestMessage.md +68 -0
  128. package/docs/src/contracts/test/TestMultisigIsm.sol/contract.TestMultisigIsm.md +51 -0
  129. package/docs/src/contracts/test/TestQuery.sol/contract.TestQuery.md +45 -0
  130. package/docs/src/contracts/test/TestQuerySender.sol/contract.TestQuerySender.md +128 -0
  131. package/docs/src/contracts/test/TestRecipient.sol/contract.TestRecipient.md +78 -0
  132. package/docs/src/contracts/test/TestRouter.sol/contract.TestRouter.md +63 -0
  133. package/docs/src/contracts/test/TestSendReceiver.sol/contract.TestSendReceiver.md +49 -0
  134. package/docs/src/contracts/test/TestTokenRecipient.sol/contract.TestTokenRecipient.md +80 -0
  135. package/docs/src/contracts/test/bad-recipient/BadRecipient1.sol/contract.BadRecipient1.md +15 -0
  136. package/docs/src/contracts/test/bad-recipient/BadRecipient2.sol/contract.BadRecipient2.md +12 -0
  137. package/docs/src/contracts/test/bad-recipient/BadRecipient3.sol/contract.BadRecipient3.md +15 -0
  138. package/docs/src/contracts/test/bad-recipient/BadRecipient5.sol/contract.BadRecipient5.md +15 -0
  139. package/docs/src/contracts/test/bad-recipient/BadRecipient6.sol/contract.BadRecipient6.md +15 -0
  140. package/docs/src/contracts/test/bad-recipient/README.md +8 -0
  141. package/docs/src/contracts/upgrade/README.md +4 -0
  142. package/docs/src/contracts/upgrade/Versioned.sol/contract.Versioned.md +14 -0
  143. package/package.json +3 -3
@@ -0,0 +1,114 @@
1
+ # StorageGasOracle
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/contracts/igps/gas-oracles/StorageGasOracle.sol)
3
+
4
+ **Inherits:**
5
+ [IGasOracle](/contracts/interfaces/IGasOracle.sol/interface.IGasOracle.md), Ownable
6
+
7
+ A gas oracle that uses data stored within the contract.
8
+
9
+ *This contract is intended to be owned by an address that will
10
+ update the stored remote gas data.*
11
+
12
+
13
+ ## State Variables
14
+ ### remoteGasData
15
+ Keyed by remote domain, gas data on that remote domain.
16
+
17
+
18
+ ```solidity
19
+ mapping(uint32 => IGasOracle.RemoteGasData) public remoteGasData;
20
+ ```
21
+
22
+
23
+ ## Functions
24
+ ### getExchangeRateAndGasPrice
25
+
26
+ Returns the stored `remoteGasData` for the `_destinationDomain`.
27
+
28
+
29
+ ```solidity
30
+ function getExchangeRateAndGasPrice(uint32 _destinationDomain)
31
+ external
32
+ view
33
+ override
34
+ returns (uint128 tokenExchangeRate, uint128 gasPrice);
35
+ ```
36
+ **Parameters**
37
+
38
+ |Name|Type|Description|
39
+ |----|----|-----------|
40
+ |`_destinationDomain`|`uint32`|The destination domain.|
41
+
42
+ **Returns**
43
+
44
+ |Name|Type|Description|
45
+ |----|----|-----------|
46
+ |`tokenExchangeRate`|`uint128`|The exchange rate of the remote native token quoted in the local native token.|
47
+ |`gasPrice`|`uint128`|The gas price on the remote chain.|
48
+
49
+
50
+ ### setRemoteGasDataConfigs
51
+
52
+ Sets the remote gas data for many remotes at a time.
53
+
54
+
55
+ ```solidity
56
+ function setRemoteGasDataConfigs(RemoteGasDataConfig[] calldata _configs) external onlyOwner;
57
+ ```
58
+ **Parameters**
59
+
60
+ |Name|Type|Description|
61
+ |----|----|-----------|
62
+ |`_configs`|`RemoteGasDataConfig[]`|The configs to use when setting the remote gas data.|
63
+
64
+
65
+ ### setRemoteGasData
66
+
67
+ Sets the remote gas data using the values in `_config`.
68
+
69
+
70
+ ```solidity
71
+ function setRemoteGasData(RemoteGasDataConfig calldata _config) external onlyOwner;
72
+ ```
73
+ **Parameters**
74
+
75
+ |Name|Type|Description|
76
+ |----|----|-----------|
77
+ |`_config`|`RemoteGasDataConfig`|The config to use when setting the remote gas data.|
78
+
79
+
80
+ ### _setRemoteGasData
81
+
82
+ Sets the remote gas data using the values in `_config`.
83
+
84
+
85
+ ```solidity
86
+ function _setRemoteGasData(RemoteGasDataConfig calldata _config) internal;
87
+ ```
88
+ **Parameters**
89
+
90
+ |Name|Type|Description|
91
+ |----|----|-----------|
92
+ |`_config`|`RemoteGasDataConfig`|The config to use when setting the remote gas data.|
93
+
94
+
95
+ ## Events
96
+ ### RemoteGasDataSet
97
+ Emitted when an entry in `remoteGasData` is set.
98
+
99
+
100
+ ```solidity
101
+ event RemoteGasDataSet(uint32 indexed remoteDomain, uint128 tokenExchangeRate, uint128 gasPrice);
102
+ ```
103
+
104
+ ## Structs
105
+ ### RemoteGasDataConfig
106
+
107
+ ```solidity
108
+ struct RemoteGasDataConfig {
109
+ uint32 remoteDomain;
110
+ uint128 tokenExchangeRate;
111
+ uint128 gasPrice;
112
+ }
113
+ ```
114
+
@@ -0,0 +1,25 @@
1
+ # IGasOracle
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/contracts/interfaces/IGasOracle.sol)
3
+
4
+
5
+ ## Functions
6
+ ### getExchangeRateAndGasPrice
7
+
8
+
9
+ ```solidity
10
+ function getExchangeRateAndGasPrice(uint32 _destinationDomain)
11
+ external
12
+ view
13
+ returns (uint128 tokenExchangeRate, uint128 gasPrice);
14
+ ```
15
+
16
+ ## Structs
17
+ ### RemoteGasData
18
+
19
+ ```solidity
20
+ struct RemoteGasData {
21
+ uint128 tokenExchangeRate;
22
+ uint128 gasPrice;
23
+ }
24
+ ```
25
+
@@ -0,0 +1,43 @@
1
+ # IHyperlaneConnectionClient
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/contracts/interfaces/IHyperlaneConnectionClient.sol)
3
+
4
+ **Inherits:**
5
+ [ISpecifiesInterchainSecurityModule](/contracts/interfaces/IInterchainSecurityModule.sol/interface.ISpecifiesInterchainSecurityModule.md)
6
+
7
+
8
+ ## Functions
9
+ ### mailbox
10
+
11
+
12
+ ```solidity
13
+ function mailbox() external view returns (IMailbox);
14
+ ```
15
+
16
+ ### interchainGasPaymaster
17
+
18
+
19
+ ```solidity
20
+ function interchainGasPaymaster() external view returns (IInterchainGasPaymaster);
21
+ ```
22
+
23
+ ### setMailbox
24
+
25
+
26
+ ```solidity
27
+ function setMailbox(address) external;
28
+ ```
29
+
30
+ ### setInterchainGasPaymaster
31
+
32
+
33
+ ```solidity
34
+ function setInterchainGasPaymaster(address) external;
35
+ ```
36
+
37
+ ### setInterchainSecurityModule
38
+
39
+
40
+ ```solidity
41
+ function setInterchainSecurityModule(address) external;
42
+ ```
43
+
@@ -0,0 +1,33 @@
1
+ # IInterchainGasPaymaster
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/contracts/interfaces/IInterchainGasPaymaster.sol)
3
+
4
+ Manages payments on a source chain to cover gas costs of relaying
5
+ messages to destination chains.
6
+
7
+
8
+ ## Functions
9
+ ### payForGas
10
+
11
+
12
+ ```solidity
13
+ function payForGas(bytes32 _messageId, uint32 _destinationDomain, uint256 _gasAmount, address _refundAddress)
14
+ external
15
+ payable;
16
+ ```
17
+
18
+ ### quoteGasPayment
19
+
20
+
21
+ ```solidity
22
+ function quoteGasPayment(uint32 _destinationDomain, uint256 _gasAmount) external view returns (uint256);
23
+ ```
24
+
25
+ ## Events
26
+ ### GasPayment
27
+ Emitted when a payment is made for a message's gas costs.
28
+
29
+
30
+ ```solidity
31
+ event GasPayment(bytes32 indexed messageId, uint256 gasAmount, uint256 payment);
32
+ ```
33
+
@@ -0,0 +1,55 @@
1
+ # IInterchainSecurityModule
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/contracts/interfaces/IInterchainSecurityModule.sol)
3
+
4
+
5
+ ## Functions
6
+ ### moduleType
7
+
8
+ Returns an enum that represents the type of security model
9
+ encoded by this ISM.
10
+
11
+ *Relayers infer how to fetch and format metadata.*
12
+
13
+
14
+ ```solidity
15
+ function moduleType() external view returns (uint8);
16
+ ```
17
+
18
+ ### verify
19
+
20
+ Defines a security model responsible for verifying interchain
21
+ messages based on the provided metadata.
22
+
23
+
24
+ ```solidity
25
+ function verify(bytes calldata _metadata, bytes calldata _message) external returns (bool);
26
+ ```
27
+ **Parameters**
28
+
29
+ |Name|Type|Description|
30
+ |----|----|-----------|
31
+ |`_metadata`|`bytes`|Off-chain metadata provided by a relayer, specific to the security model encoded by the module (e.g. validator signatures)|
32
+ |`_message`|`bytes`|Hyperlane encoded interchain message|
33
+
34
+ **Returns**
35
+
36
+ |Name|Type|Description|
37
+ |----|----|-----------|
38
+ |`<none>`|`bool`|True if the message was verified|
39
+
40
+
41
+ ## Enums
42
+ ### Types
43
+
44
+ ```solidity
45
+ enum Types {
46
+ UNUSED,
47
+ ROUTING,
48
+ AGGREGATION,
49
+ LEGACY_MULTISIG,
50
+ MERKLE_ROOT_MULTISIG,
51
+ MESSAGE_ID_MULTISIG,
52
+ NULL
53
+ }
54
+ ```
55
+
@@ -0,0 +1,12 @@
1
+ # ISpecifiesInterchainSecurityModule
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/contracts/interfaces/IInterchainSecurityModule.sol)
3
+
4
+
5
+ ## Functions
6
+ ### interchainSecurityModule
7
+
8
+
9
+ ```solidity
10
+ function interchainSecurityModule() external view returns (IInterchainSecurityModule);
11
+ ```
12
+
@@ -0,0 +1,13 @@
1
+ # ILiquidityLayerMessageRecipient
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/contracts/interfaces/ILiquidityLayerMessageRecipient.sol)
3
+
4
+
5
+ ## Functions
6
+ ### handleWithTokens
7
+
8
+
9
+ ```solidity
10
+ function handleWithTokens(uint32 _origin, bytes32 _sender, bytes calldata _message, address _token, uint256 _amount)
11
+ external;
12
+ ```
13
+
@@ -0,0 +1,19 @@
1
+ # ILiquidityLayerRouter
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/contracts/interfaces/ILiquidityLayerRouter.sol)
3
+
4
+
5
+ ## Functions
6
+ ### dispatchWithTokens
7
+
8
+
9
+ ```solidity
10
+ function dispatchWithTokens(
11
+ uint32 _destinationDomain,
12
+ bytes32 _recipientAddress,
13
+ address _token,
14
+ uint256 _amount,
15
+ string calldata _bridge,
16
+ bytes calldata _messageBody
17
+ ) external returns (bytes32);
18
+ ```
19
+
@@ -0,0 +1,103 @@
1
+ # IMailbox
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/contracts/interfaces/IMailbox.sol)
3
+
4
+
5
+ ## Functions
6
+ ### localDomain
7
+
8
+
9
+ ```solidity
10
+ function localDomain() external view returns (uint32);
11
+ ```
12
+
13
+ ### delivered
14
+
15
+
16
+ ```solidity
17
+ function delivered(bytes32 messageId) external view returns (bool);
18
+ ```
19
+
20
+ ### defaultIsm
21
+
22
+
23
+ ```solidity
24
+ function defaultIsm() external view returns (IInterchainSecurityModule);
25
+ ```
26
+
27
+ ### dispatch
28
+
29
+
30
+ ```solidity
31
+ function dispatch(uint32 _destinationDomain, bytes32 _recipientAddress, bytes calldata _messageBody)
32
+ external
33
+ returns (bytes32);
34
+ ```
35
+
36
+ ### process
37
+
38
+
39
+ ```solidity
40
+ function process(bytes calldata _metadata, bytes calldata _message) external;
41
+ ```
42
+
43
+ ### count
44
+
45
+
46
+ ```solidity
47
+ function count() external view returns (uint32);
48
+ ```
49
+
50
+ ### root
51
+
52
+
53
+ ```solidity
54
+ function root() external view returns (bytes32);
55
+ ```
56
+
57
+ ### latestCheckpoint
58
+
59
+
60
+ ```solidity
61
+ function latestCheckpoint() external view returns (bytes32, uint32);
62
+ ```
63
+
64
+ ### recipientIsm
65
+
66
+
67
+ ```solidity
68
+ function recipientIsm(address _recipient) external view returns (IInterchainSecurityModule);
69
+ ```
70
+
71
+ ## Events
72
+ ### Dispatch
73
+ Emitted when a new message is dispatched via Hyperlane
74
+
75
+
76
+ ```solidity
77
+ event Dispatch(address indexed sender, uint32 indexed destination, bytes32 indexed recipient, bytes message);
78
+ ```
79
+
80
+ ### DispatchId
81
+ Emitted when a new message is dispatched via Hyperlane
82
+
83
+
84
+ ```solidity
85
+ event DispatchId(bytes32 indexed messageId);
86
+ ```
87
+
88
+ ### ProcessId
89
+ Emitted when a Hyperlane message is processed
90
+
91
+
92
+ ```solidity
93
+ event ProcessId(bytes32 indexed messageId);
94
+ ```
95
+
96
+ ### Process
97
+ Emitted when a Hyperlane message is delivered
98
+
99
+
100
+ ```solidity
101
+ event Process(uint32 indexed origin, bytes32 indexed sender, address indexed recipient);
102
+ ```
103
+
@@ -0,0 +1,12 @@
1
+ # IMessageRecipient
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/contracts/interfaces/IMessageRecipient.sol)
3
+
4
+
5
+ ## Functions
6
+ ### handle
7
+
8
+
9
+ ```solidity
10
+ function handle(uint32 _origin, bytes32 _sender, bytes calldata _message) external;
11
+ ```
12
+
@@ -0,0 +1,33 @@
1
+ # IRouter
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/contracts/interfaces/IRouter.sol)
3
+
4
+
5
+ ## Functions
6
+ ### domains
7
+
8
+
9
+ ```solidity
10
+ function domains() external view returns (uint32[] memory);
11
+ ```
12
+
13
+ ### routers
14
+
15
+
16
+ ```solidity
17
+ function routers(uint32 _domain) external view returns (bytes32);
18
+ ```
19
+
20
+ ### enrollRemoteRouter
21
+
22
+
23
+ ```solidity
24
+ function enrollRemoteRouter(uint32 _domain, bytes32 _router) external;
25
+ ```
26
+
27
+ ### enrollRemoteRouters
28
+
29
+
30
+ ```solidity
31
+ function enrollRemoteRouters(uint32[] calldata _domains, bytes32[] calldata _routers) external;
32
+ ```
33
+
@@ -0,0 +1,78 @@
1
+ # IValidatorAnnounce
2
+ [Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/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/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/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/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/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/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/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/a5209dbd9b0f5eb34e0bc9df2ba157dda2b454d3/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
+