@hyperlane-xyz/core 1.3.7 → 1.3.8-beta0
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.
- package/README.md +6 -4
- package/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.sol +10 -4
- package/contracts/isms/multisig/AbstractMessageIdMultisigIsm.sol +8 -3
- package/dist/contracts/CheckpointFraudProofs.d.ts +103 -0
- package/dist/contracts/CheckpointFraudProofs.d.ts.map +1 -0
- package/dist/contracts/CheckpointFraudProofs.js +4 -0
- package/dist/contracts/CheckpointFraudProofs.js.map +1 -0
- package/dist/contracts/index.d.ts +1 -0
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/libs/TestMerkle.sol/MerkleTree.d.ts +77 -0
- package/dist/contracts/libs/TestMerkle.sol/MerkleTree.d.ts.map +1 -0
- package/dist/contracts/libs/TestMerkle.sol/MerkleTree.js +4 -0
- package/dist/contracts/libs/TestMerkle.sol/MerkleTree.js.map +1 -0
- package/dist/contracts/libs/TestMerkle.sol/index.d.ts +2 -0
- package/dist/contracts/libs/TestMerkle.sol/index.d.ts.map +1 -0
- package/dist/contracts/libs/TestMerkle.sol/index.js +3 -0
- package/dist/contracts/libs/TestMerkle.sol/index.js.map +1 -0
- package/dist/contracts/libs/index.d.ts +2 -0
- package/dist/contracts/libs/index.d.ts.map +1 -1
- package/dist/contracts/libs/index.js +1 -0
- package/dist/contracts/libs/index.js.map +1 -1
- package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts +45 -0
- package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts.map +1 -0
- package/dist/factories/contracts/CheckpointFraudProofs__factory.js +231 -0
- package/dist/factories/contracts/CheckpointFraudProofs__factory.js.map +1 -0
- package/dist/factories/contracts/index.d.ts +1 -0
- package/dist/factories/contracts/index.d.ts.map +1 -1
- package/dist/factories/contracts/index.js +3 -1
- package/dist/factories/contracts/index.js.map +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/libs/TestMerkle.sol/MerkleTree__factory.d.ts +41 -0
- package/dist/factories/contracts/libs/TestMerkle.sol/MerkleTree__factory.d.ts.map +1 -0
- package/dist/factories/contracts/libs/TestMerkle.sol/MerkleTree__factory.js +151 -0
- package/dist/factories/contracts/libs/TestMerkle.sol/MerkleTree__factory.js.map +1 -0
- package/dist/factories/contracts/libs/TestMerkle.sol/index.d.ts +2 -0
- package/dist/factories/contracts/libs/TestMerkle.sol/index.d.ts.map +1 -0
- package/dist/factories/contracts/libs/TestMerkle.sol/index.js +9 -0
- package/dist/factories/contracts/libs/TestMerkle.sol/index.js.map +1 -0
- package/dist/factories/contracts/libs/index.d.ts +1 -0
- package/dist/factories/contracts/libs/index.d.ts.map +1 -1
- package/dist/factories/contracts/libs/index.js +25 -1
- package/dist/factories/contracts/libs/index.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/docs/book.css +13 -0
- package/docs/book.toml +12 -0
- package/docs/solidity.min.js +74 -0
- package/docs/src/README.md +15 -0
- package/docs/src/SUMMARY.md +128 -0
- package/docs/src/contracts/GasRouter.sol/abstract.GasRouter.md +124 -0
- package/docs/src/contracts/HyperlaneConnectionClient.sol/abstract.HyperlaneConnectionClient.md +191 -0
- package/docs/src/contracts/Mailbox.sol/contract.Mailbox.md +251 -0
- package/docs/src/contracts/OwnableMulticall.sol/contract.OwnableMulticall.md +41 -0
- package/docs/src/contracts/PausableReentrancyGuard.sol/abstract.PausableReentrancyGuardUpgradeable.md +100 -0
- package/docs/src/contracts/README.md +19 -0
- package/docs/src/contracts/Router.sol/abstract.Router.md +255 -0
- package/docs/src/contracts/ValidatorAnnounce.sol/contract.ValidatorAnnounce.md +117 -0
- package/docs/src/contracts/hooks/OptimismMessageHook.sol/contract.OptimismMessageHook.md +71 -0
- package/docs/src/contracts/hooks/README.md +4 -0
- package/docs/src/contracts/igps/InterchainGasPaymaster.sol/contract.InterchainGasPaymaster.md +231 -0
- package/docs/src/contracts/igps/OverheadIgp.sol/contract.OverheadIgp.md +161 -0
- package/docs/src/contracts/igps/README.md +6 -0
- package/docs/src/contracts/igps/gas-oracles/README.md +4 -0
- package/docs/src/contracts/igps/gas-oracles/StorageGasOracle.sol/contract.StorageGasOracle.md +114 -0
- package/docs/src/contracts/interfaces/IGasOracle.sol/interface.IGasOracle.md +25 -0
- package/docs/src/contracts/interfaces/IHyperlaneConnectionClient.sol/interface.IHyperlaneConnectionClient.md +43 -0
- package/docs/src/contracts/interfaces/IInterchainGasPaymaster.sol/interface.IInterchainGasPaymaster.md +33 -0
- package/docs/src/contracts/interfaces/IInterchainSecurityModule.sol/interface.IInterchainSecurityModule.md +55 -0
- package/docs/src/contracts/interfaces/IInterchainSecurityModule.sol/interface.ISpecifiesInterchainSecurityModule.md +12 -0
- package/docs/src/contracts/interfaces/ILiquidityLayerMessageRecipient.sol/interface.ILiquidityLayerMessageRecipient.md +13 -0
- package/docs/src/contracts/interfaces/ILiquidityLayerRouter.sol/interface.ILiquidityLayerRouter.md +19 -0
- package/docs/src/contracts/interfaces/IMailbox.sol/interface.IMailbox.md +103 -0
- package/docs/src/contracts/interfaces/IMessageRecipient.sol/interface.IMessageRecipient.md +12 -0
- package/docs/src/contracts/interfaces/IRouter.sol/interface.IRouter.md +33 -0
- package/docs/src/contracts/interfaces/IValidatorAnnounce.sol/interface.IValidatorAnnounce.md +78 -0
- package/docs/src/contracts/interfaces/README.md +17 -0
- package/docs/src/contracts/interfaces/hooks/IMessageHook.sol/interface.IMessageHook.md +12 -0
- package/docs/src/contracts/interfaces/hooks/README.md +4 -0
- package/docs/src/contracts/interfaces/isms/IAggregationIsm.sol/interface.IAggregationIsm.md +36 -0
- package/docs/src/contracts/interfaces/isms/IMultisigIsm.sol/interface.IMultisigIsm.md +36 -0
- package/docs/src/contracts/interfaces/isms/IRoutingIsm.sol/interface.IRoutingIsm.md +31 -0
- package/docs/src/contracts/interfaces/isms/README.md +6 -0
- package/docs/src/contracts/interfaces/middleware/IInterchainAccountRouter.sol/interface.IInterchainAccountRouter.md +64 -0
- package/docs/src/contracts/interfaces/middleware/IInterchainQueryRouter.sol/interface.IInterchainQueryRouter.md +21 -0
- package/docs/src/contracts/interfaces/middleware/README.md +5 -0
- package/docs/src/contracts/isms/README.md +7 -0
- package/docs/src/contracts/isms/aggregation/AbstractAggregationIsm.sol/abstract.AbstractAggregationIsm.md +60 -0
- package/docs/src/contracts/isms/aggregation/README.md +6 -0
- package/docs/src/contracts/isms/aggregation/StaticAggregationIsm.sol/contract.StaticAggregationIsm.md +30 -0
- package/docs/src/contracts/isms/aggregation/StaticAggregationIsmFactory.sol/contract.StaticAggregationIsmFactory.md +15 -0
- package/docs/src/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.sol/abstract.AbstractMerkleRootMultisigIsm.md +78 -0
- package/docs/src/contracts/isms/multisig/AbstractMessageIdMultisigIsm.sol/abstract.AbstractMessageIdMultisigIsm.md +69 -0
- package/docs/src/contracts/isms/multisig/AbstractMultisigIsm.sol/abstract.AbstractMultisigIsm.md +102 -0
- package/docs/src/contracts/isms/multisig/LegacyMultisigIsm.sol/contract.LegacyMultisigIsm.md +355 -0
- package/docs/src/contracts/isms/multisig/README.md +12 -0
- package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/abstract.AbstractMetaProxyMultisigIsm.md +36 -0
- package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMerkleRootMultisigIsm.md +11 -0
- package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMerkleRootMultisigIsmFactory.md +15 -0
- package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMessageIdMultisigIsm.md +10 -0
- package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMessageIdMultisigIsmFactory.md +15 -0
- package/docs/src/contracts/isms/native/AbstractNativeISM.sol/abstract.AbstractNativeISM.md +44 -0
- package/docs/src/contracts/isms/native/OptimismISM.sol/contract.OptimismISM.md +66 -0
- package/docs/src/contracts/isms/native/README.md +5 -0
- package/docs/src/contracts/isms/routing/AbstractRoutingIsm.sol/abstract.AbstractRoutingIsm.md +55 -0
- package/docs/src/contracts/isms/routing/DomainRoutingIsm.sol/contract.DomainRoutingIsm.md +112 -0
- package/docs/src/contracts/isms/routing/DomainRoutingIsmFactory.sol/contract.DomainRoutingIsmFactory.md +47 -0
- package/docs/src/contracts/isms/routing/InterchainAccountIsm.sol/contract.InterchainAccountIsm.md +44 -0
- package/docs/src/contracts/isms/routing/README.md +7 -0
- package/docs/src/contracts/libs/Call.sol/library.CallLib.md +124 -0
- package/docs/src/contracts/libs/CheckpointLib.sol/library.CheckpointLib.md +61 -0
- package/docs/src/contracts/libs/EnumerableMapExtended.sol/library.EnumerableMapExtended.md +63 -0
- package/docs/src/contracts/libs/LegacyCheckpointLib.sol/library.LegacyCheckpointLib.md +55 -0
- package/docs/src/contracts/libs/Merkle.sol/library.MerkleLib.md +354 -0
- package/docs/src/contracts/libs/Message.sol/library.Message.md +304 -0
- package/docs/src/contracts/libs/MetaProxy.sol/library.MetaProxy.md +36 -0
- package/docs/src/contracts/libs/MinimalProxy.sol/library.MinimalProxy.md +34 -0
- package/docs/src/contracts/libs/README.md +16 -0
- package/docs/src/contracts/libs/StaticMOfNAddressSetFactory.sol/abstract.StaticMOfNAddressSetFactory.md +123 -0
- package/docs/src/contracts/libs/TestMerkle.sol/contract.MerkleTree.md +66 -0
- package/docs/src/contracts/libs/TypeCasts.sol/library.TypeCasts.md +19 -0
- package/docs/src/contracts/libs/ValidatorAnnouncements.sol/library.ValidatorAnnouncements.md +31 -0
- package/docs/src/contracts/libs/isms/AggregationIsmMetadata.sol/library.AggregationIsmMetadata.md +97 -0
- package/docs/src/contracts/libs/isms/LegacyMultisigIsmMetadata.sol/library.LegacyMultisigIsmMetadata.md +296 -0
- package/docs/src/contracts/libs/isms/MerkleRootMultisigIsmMetadata.sol/library.MerkleRootMultisigIsmMetadata.md +177 -0
- package/docs/src/contracts/libs/isms/MessageIdMultisigIsmMetadata.sol/library.MessageIdMultisigIsmMetadata.md +109 -0
- package/docs/src/contracts/libs/isms/README.md +7 -0
- package/docs/src/contracts/libs/middleware/InterchainAccountMessage.sol/library.InterchainAccountMessage.md +134 -0
- package/docs/src/contracts/libs/middleware/InterchainQueryMessage.sol/library.InterchainQueryMessage.md +203 -0
- package/docs/src/contracts/libs/middleware/README.md +5 -0
- package/docs/src/contracts/middleware/InterchainAccountRouter.sol/contract.InterchainAccountRouter.md +545 -0
- package/docs/src/contracts/middleware/InterchainQueryRouter.sol/contract.InterchainQueryRouter.md +119 -0
- package/docs/src/contracts/middleware/README.md +6 -0
- package/docs/src/contracts/middleware/liquidity-layer/LiquidityLayerRouter.sol/contract.LiquidityLayerRouter.md +81 -0
- package/docs/src/contracts/middleware/liquidity-layer/README.md +6 -0
- package/docs/src/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.sol/contract.CircleBridgeAdapter.md +197 -0
- package/docs/src/contracts/middleware/liquidity-layer/adapters/PortalAdapter.sol/contract.PortalAdapter.md +189 -0
- package/docs/src/contracts/middleware/liquidity-layer/adapters/README.md +5 -0
- package/docs/src/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter.sol/interface.ILiquidityLayerAdapter.md +23 -0
- package/docs/src/contracts/middleware/liquidity-layer/interfaces/README.md +6 -0
- package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.sol/interface.ICircleMessageTransmitter.md +54 -0
- package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger.sol/interface.ITokenMessenger.md +92 -0
- package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/README.md +5 -0
- package/docs/src/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.sol/interface.IPortalTokenBridge.md +131 -0
- package/docs/src/contracts/middleware/liquidity-layer/interfaces/portal/README.md +4 -0
- package/docs/src/contracts/mock/MockCircleMessageTransmitter.sol/contract.MockCircleMessageTransmitter.md +58 -0
- package/docs/src/contracts/mock/MockCircleTokenMessenger.sol/contract.MockCircleTokenMessenger.md +44 -0
- package/docs/src/contracts/mock/MockHyperlaneEnvironment.sol/contract.MockHyperlaneEnvironment.md +69 -0
- package/docs/src/contracts/mock/MockMailbox.sol/contract.MockMailbox.md +137 -0
- package/docs/src/contracts/mock/MockPortalBridge.sol/contract.MockPortalBridge.md +82 -0
- package/docs/src/contracts/mock/MockToken.sol/contract.MockToken.md +22 -0
- package/docs/src/contracts/mock/README.md +9 -0
- package/docs/src/contracts/test/LightTestRecipient.sol/contract.LightTestRecipient.md +15 -0
- package/docs/src/contracts/test/README.md +20 -0
- package/docs/src/contracts/test/TestGasRouter.sol/contract.TestGasRouter.md +27 -0
- package/docs/src/contracts/test/TestHyperlaneConnectionClient.sol/contract.TestHyperlaneConnectionClient.md +29 -0
- package/docs/src/contracts/test/TestInterchainGasPaymaster.sol/contract.TestInterchainGasPaymaster.md +30 -0
- package/docs/src/contracts/test/TestLegacyMultisigIsm.sol/contract.TestLegacyMultisigIsm.md +15 -0
- package/docs/src/contracts/test/TestLiquidityLayerMessageRecipient.sol/contract.TestLiquidityLayerMessageRecipient.md +23 -0
- package/docs/src/contracts/test/TestMailbox.sol/contract.TestMailbox.md +29 -0
- package/docs/src/contracts/test/TestMerkle.sol/contract.TestMerkle.md +50 -0
- package/docs/src/contracts/test/TestMessage.sol/contract.TestMessage.md +68 -0
- package/docs/src/contracts/test/TestMultisigIsm.sol/contract.TestMultisigIsm.md +51 -0
- package/docs/src/contracts/test/TestQuery.sol/contract.TestQuery.md +45 -0
- package/docs/src/contracts/test/TestQuerySender.sol/contract.TestQuerySender.md +128 -0
- package/docs/src/contracts/test/TestRecipient.sol/contract.TestRecipient.md +78 -0
- package/docs/src/contracts/test/TestRouter.sol/contract.TestRouter.md +63 -0
- package/docs/src/contracts/test/TestSendReceiver.sol/contract.TestSendReceiver.md +49 -0
- package/docs/src/contracts/test/TestTokenRecipient.sol/contract.TestTokenRecipient.md +80 -0
- package/docs/src/contracts/test/bad-recipient/BadRecipient1.sol/contract.BadRecipient1.md +15 -0
- package/docs/src/contracts/test/bad-recipient/BadRecipient2.sol/contract.BadRecipient2.md +12 -0
- package/docs/src/contracts/test/bad-recipient/BadRecipient3.sol/contract.BadRecipient3.md +15 -0
- package/docs/src/contracts/test/bad-recipient/BadRecipient5.sol/contract.BadRecipient5.md +15 -0
- package/docs/src/contracts/test/bad-recipient/BadRecipient6.sol/contract.BadRecipient6.md +15 -0
- package/docs/src/contracts/test/bad-recipient/README.md +8 -0
- package/docs/src/contracts/upgrade/README.md +4 -0
- package/docs/src/contracts/upgrade/Versioned.sol/contract.Versioned.md +14 -0
- package/package.json +8 -5
|
@@ -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
|
+
|
package/docs/src/contracts/isms/multisig/AbstractMultisigIsm.sol/abstract.AbstractMultisigIsm.md
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# AbstractMultisigIsm
|
|
2
|
+
[Git Source](https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/60f321f452052881dce4e22999022e11fc117456/contracts/isms/multisig/AbstractMultisigIsm.sol)
|
|
3
|
+
|
|
4
|
+
**Inherits:**
|
|
5
|
+
[IMultisigIsm](/contracts/interfaces/isms/IMultisigIsm.sol/interface.IMultisigIsm.md)
|
|
6
|
+
|
|
7
|
+
Manages per-domain m-of-n Validator sets that are used to verify
|
|
8
|
+
interchain messages.
|
|
9
|
+
|
|
10
|
+
*See ./AbstractMerkleRootMultisigIsm.sol and ./AbstractMessageIdMultisigIsm.sol
|
|
11
|
+
for concrete implementations of `digest` and `signatureAt`.*
|
|
12
|
+
|
|
13
|
+
*See ./StaticMultisigIsm.sol for concrete implementations.*
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
## Functions
|
|
17
|
+
### validatorsAndThreshold
|
|
18
|
+
|
|
19
|
+
Returns the set of validators responsible for verifying _message
|
|
20
|
+
and the number of signatures required
|
|
21
|
+
|
|
22
|
+
*Can change based on the content of _message*
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
```solidity
|
|
26
|
+
function validatorsAndThreshold(bytes calldata _message) public view virtual returns (address[] memory, uint8);
|
|
27
|
+
```
|
|
28
|
+
**Parameters**
|
|
29
|
+
|
|
30
|
+
|Name|Type|Description|
|
|
31
|
+
|----|----|-----------|
|
|
32
|
+
|`_message`|`bytes`|Hyperlane formatted interchain message|
|
|
33
|
+
|
|
34
|
+
**Returns**
|
|
35
|
+
|
|
36
|
+
|Name|Type|Description|
|
|
37
|
+
|----|----|-----------|
|
|
38
|
+
|`<none>`|`address[]`|validators The array of validator addresses|
|
|
39
|
+
|`<none>`|`uint8`|threshold The number of validator signatures needed|
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
### digest
|
|
43
|
+
|
|
44
|
+
Returns the digest to be used for signature verification.
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
```solidity
|
|
48
|
+
function digest(bytes calldata _metadata, bytes calldata _message) internal view virtual returns (bytes32);
|
|
49
|
+
```
|
|
50
|
+
**Parameters**
|
|
51
|
+
|
|
52
|
+
|Name|Type|Description|
|
|
53
|
+
|----|----|-----------|
|
|
54
|
+
|`_metadata`|`bytes`|ABI encoded module metadata|
|
|
55
|
+
|`_message`|`bytes`|Formatted Hyperlane message (see Message.sol).|
|
|
56
|
+
|
|
57
|
+
**Returns**
|
|
58
|
+
|
|
59
|
+
|Name|Type|Description|
|
|
60
|
+
|----|----|-----------|
|
|
61
|
+
|`<none>`|`bytes32`|digest The digest to be signed by validators|
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
### signatureAt
|
|
65
|
+
|
|
66
|
+
Returns the signature at a given index from the metadata.
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
```solidity
|
|
70
|
+
function signatureAt(bytes calldata _metadata, uint256 _index) internal pure virtual returns (bytes memory);
|
|
71
|
+
```
|
|
72
|
+
**Parameters**
|
|
73
|
+
|
|
74
|
+
|Name|Type|Description|
|
|
75
|
+
|----|----|-----------|
|
|
76
|
+
|`_metadata`|`bytes`|ABI encoded module metadata|
|
|
77
|
+
|`_index`|`uint256`|The index of the signature to return|
|
|
78
|
+
|
|
79
|
+
**Returns**
|
|
80
|
+
|
|
81
|
+
|Name|Type|Description|
|
|
82
|
+
|----|----|-----------|
|
|
83
|
+
|`<none>`|`bytes`|signature Packed encoding of signature (65 bytes)|
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
### verify
|
|
87
|
+
|
|
88
|
+
Requires that m-of-n validators verify a merkle root,
|
|
89
|
+
and verifies a me∑rkle proof of `_message` against that root.
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
```solidity
|
|
93
|
+
function verify(bytes calldata _metadata, bytes calldata _message) public view returns (bool);
|
|
94
|
+
```
|
|
95
|
+
**Parameters**
|
|
96
|
+
|
|
97
|
+
|Name|Type|Description|
|
|
98
|
+
|----|----|-----------|
|
|
99
|
+
|`_metadata`|`bytes`|ABI encoded module metadata|
|
|
100
|
+
|`_message`|`bytes`|Formatted Hyperlane message (see Message.sol).|
|
|
101
|
+
|
|
102
|
+
|