@hyperlane-xyz/core 1.3.7 → 1.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -4
- package/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.sol +30 -0
- package/contracts/hooks/ERC5164MessageHook.sol +95 -0
- package/contracts/hooks/OptimismMessageHook.sol +3 -1
- package/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.sol +10 -4
- package/contracts/isms/multisig/AbstractMessageIdMultisigIsm.sol +8 -3
- package/contracts/isms/native/AbstractNativeISM.sol +17 -6
- package/contracts/isms/native/ERC5164ISM.sol +75 -0
- package/contracts/isms/native/OptimismISM.sol +15 -4
- package/contracts/mock/MockERC5164.sol +26 -0
- 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/hooks/ERC5164/index.d.ts +3 -0
- package/dist/contracts/hooks/ERC5164/index.d.ts.map +1 -0
- package/dist/contracts/hooks/ERC5164/index.js +4 -0
- package/dist/contracts/hooks/ERC5164/index.js.map +1 -0
- package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.d.ts +72 -0
- package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.d.ts.map +1 -0
- package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.js +4 -0
- package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.js.map +1 -0
- package/dist/contracts/hooks/ERC5164/interfaces/index.d.ts +2 -0
- package/dist/contracts/hooks/ERC5164/interfaces/index.d.ts.map +1 -0
- package/dist/contracts/hooks/ERC5164/interfaces/index.js +3 -0
- package/dist/contracts/hooks/ERC5164/interfaces/index.js.map +1 -0
- package/dist/contracts/hooks/ERC5164MessageHook.d.ts +75 -0
- package/dist/contracts/hooks/ERC5164MessageHook.d.ts.map +1 -0
- package/dist/contracts/hooks/ERC5164MessageHook.js +4 -0
- package/dist/contracts/hooks/ERC5164MessageHook.js.map +1 -0
- package/dist/contracts/hooks/index.d.ts +3 -0
- package/dist/contracts/hooks/index.d.ts.map +1 -1
- package/dist/contracts/hooks/index.js +1 -0
- package/dist/contracts/hooks/index.js.map +1 -1
- package/dist/contracts/isms/native/AbstractNativeISM.d.ts +10 -10
- package/dist/contracts/isms/native/AbstractNativeISM.d.ts.map +1 -1
- package/dist/contracts/isms/native/ERC5164ISM.d.ts +107 -0
- package/dist/contracts/isms/native/ERC5164ISM.d.ts.map +1 -0
- package/dist/contracts/isms/native/ERC5164ISM.js +4 -0
- package/dist/contracts/isms/native/ERC5164ISM.js.map +1 -0
- package/dist/contracts/isms/native/OptimismISM.d.ts +17 -17
- package/dist/contracts/isms/native/OptimismISM.d.ts.map +1 -1
- package/dist/contracts/isms/native/index.d.ts +1 -0
- package/dist/contracts/isms/native/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/mock/MockERC5164.sol/MockMessageDispatcher.d.ts +72 -0
- package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.d.ts.map +1 -0
- package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.js +4 -0
- package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.js.map +1 -0
- package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.d.ts +44 -0
- package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.d.ts.map +1 -0
- package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.js +4 -0
- package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.js.map +1 -0
- package/dist/contracts/mock/MockERC5164.sol/index.d.ts +3 -0
- package/dist/contracts/mock/MockERC5164.sol/index.d.ts.map +1 -0
- package/dist/contracts/mock/MockERC5164.sol/index.js +3 -0
- package/dist/contracts/mock/MockERC5164.sol/index.js.map +1 -0
- package/dist/contracts/mock/index.d.ts +2 -0
- package/dist/contracts/mock/index.d.ts.map +1 -1
- package/dist/contracts/mock/index.js +1 -0
- package/dist/contracts/mock/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/hooks/ERC5164/index.d.ts +2 -0
- package/dist/factories/contracts/hooks/ERC5164/index.d.ts.map +1 -0
- package/dist/factories/contracts/hooks/ERC5164/index.js +31 -0
- package/dist/factories/contracts/hooks/ERC5164/index.js.map +1 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.d.ts +36 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.d.ts.map +1 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.js +84 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.js.map +1 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/index.d.ts +2 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/index.d.ts.map +1 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/index.js +9 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/index.js.map +1 -0
- package/dist/factories/contracts/hooks/ERC5164MessageHook__factory.d.ts +45 -0
- package/dist/factories/contracts/hooks/ERC5164MessageHook__factory.d.ts.map +1 -0
- package/dist/factories/contracts/hooks/ERC5164MessageHook__factory.js +125 -0
- package/dist/factories/contracts/hooks/ERC5164MessageHook__factory.js.map +1 -0
- package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/index.d.ts +2 -0
- package/dist/factories/contracts/hooks/index.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/index.js +27 -1
- package/dist/factories/contracts/hooks/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/isms/native/AbstractNativeISM__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.js +4 -9
- package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.js.map +1 -1
- package/dist/factories/contracts/isms/native/ERC5164ISM__factory.d.ts +59 -0
- package/dist/factories/contracts/isms/native/ERC5164ISM__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/native/ERC5164ISM__factory.js +171 -0
- package/dist/factories/contracts/isms/native/ERC5164ISM__factory.js.map +1 -0
- package/dist/factories/contracts/isms/native/OptimismISM__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/native/OptimismISM__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/native/OptimismISM__factory.js +7 -12
- package/dist/factories/contracts/isms/native/OptimismISM__factory.js.map +1 -1
- package/dist/factories/contracts/isms/native/index.d.ts +1 -0
- package/dist/factories/contracts/isms/native/index.d.ts.map +1 -1
- package/dist/factories/contracts/isms/native/index.js +3 -1
- package/dist/factories/contracts/isms/native/index.js.map +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/mock/MockERC5164.sol/MockMessageDispatcher__factory.d.ts +48 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.js +107 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.js.map +1 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.d.ts +31 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.js +60 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.js.map +1 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/index.d.ts +3 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/index.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/index.js +11 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/index.js.map +1 -0
- package/dist/factories/contracts/mock/index.d.ts +1 -0
- package/dist/factories/contracts/mock/index.d.ts.map +1 -1
- package/dist/factories/contracts/mock/index.js +25 -1
- package/dist/factories/contracts/mock/index.js.map +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -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 +6 -4
package/README.md
CHANGED
|
@@ -4,10 +4,12 @@ On-chain implementations of Hyperlane in Solidity.
|
|
|
4
4
|
|
|
5
5
|
## Setup
|
|
6
6
|
|
|
7
|
-
- `
|
|
8
|
-
- `brew install jq` OR `sudo apt-get install jq`
|
|
7
|
+
- `yarn install`
|
|
9
8
|
|
|
10
9
|
## Build
|
|
11
10
|
|
|
12
|
-
- `
|
|
13
|
-
|
|
11
|
+
- `yarn build`
|
|
12
|
+
|
|
13
|
+
## Test
|
|
14
|
+
|
|
15
|
+
- `yarn test`
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @title ERC-5164: Cross-Chain Execution Standard
|
|
6
|
+
* @dev See https://eips.ethereum.org/EIPS/eip-5164
|
|
7
|
+
*/
|
|
8
|
+
interface IMessageDispatcher {
|
|
9
|
+
/**
|
|
10
|
+
* @notice Emitted when a message has successfully been dispatched to the executor chain.
|
|
11
|
+
* @param messageId ID uniquely identifying the message
|
|
12
|
+
* @param from Address that dispatched the message
|
|
13
|
+
* @param toChainId ID of the chain receiving the message
|
|
14
|
+
* @param to Address that will receive the message
|
|
15
|
+
* @param data Data that was dispatched
|
|
16
|
+
*/
|
|
17
|
+
event MessageDispatched(
|
|
18
|
+
bytes32 indexed messageId,
|
|
19
|
+
address indexed from,
|
|
20
|
+
uint256 indexed toChainId,
|
|
21
|
+
address to,
|
|
22
|
+
bytes data
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
function dispatchMessage(
|
|
26
|
+
uint256 toChainId,
|
|
27
|
+
address to,
|
|
28
|
+
bytes calldata data
|
|
29
|
+
) external returns (bytes32);
|
|
30
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
/*@@@@@@@ @@@@@@@@@
|
|
5
|
+
@@@@@@@@@ @@@@@@@@@
|
|
6
|
+
@@@@@@@@@ @@@@@@@@@
|
|
7
|
+
@@@@@@@@@ @@@@@@@@@
|
|
8
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
9
|
+
@@@@@ HYPERLANE @@@@@@@
|
|
10
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
11
|
+
@@@@@@@@@ @@@@@@@@@
|
|
12
|
+
@@@@@@@@@ @@@@@@@@@
|
|
13
|
+
@@@@@@@@@ @@@@@@@@@
|
|
14
|
+
@@@@@@@@@ @@@@@@@@*/
|
|
15
|
+
|
|
16
|
+
// ============ Internal Imports ============
|
|
17
|
+
import {TypeCasts} from "../libs/TypeCasts.sol";
|
|
18
|
+
import {IMessageHook} from "../interfaces/hooks/IMessageHook.sol";
|
|
19
|
+
import {IMessageDispatcher} from "./ERC5164/interfaces/IMessageDispatcher.sol";
|
|
20
|
+
import {ERC5164ISM} from "../isms/native/ERC5164ISM.sol";
|
|
21
|
+
|
|
22
|
+
// ============ External Imports ============
|
|
23
|
+
|
|
24
|
+
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @title 5164MessageHook
|
|
28
|
+
* @notice Message hook to inform the 5164 ISM of messages published through
|
|
29
|
+
* any of the 5164 adapters.
|
|
30
|
+
*/
|
|
31
|
+
contract ERC5164MessageHook is IMessageHook {
|
|
32
|
+
using TypeCasts for address;
|
|
33
|
+
// ============ Constants ============
|
|
34
|
+
|
|
35
|
+
// Domain of chain on which the ERC5164ISM is deployed
|
|
36
|
+
uint32 public immutable destinationDomain;
|
|
37
|
+
// Dispatcher used to send messages
|
|
38
|
+
IMessageDispatcher public immutable dispatcher;
|
|
39
|
+
// address for ERC5164ISM to verify messages
|
|
40
|
+
address public immutable ism;
|
|
41
|
+
|
|
42
|
+
// ============ Constructor ============
|
|
43
|
+
|
|
44
|
+
constructor(
|
|
45
|
+
uint32 _destinationDomain,
|
|
46
|
+
address _dispatcher,
|
|
47
|
+
address _ism
|
|
48
|
+
) {
|
|
49
|
+
require(
|
|
50
|
+
_destinationDomain != 0,
|
|
51
|
+
"ERC5164Hook: invalid destination domain"
|
|
52
|
+
);
|
|
53
|
+
require(_ism != address(0), "ERC5164Hook: invalid ISM");
|
|
54
|
+
destinationDomain = _destinationDomain;
|
|
55
|
+
|
|
56
|
+
require(
|
|
57
|
+
Address.isContract(_dispatcher),
|
|
58
|
+
"ERC5164Hook: invalid dispatcher"
|
|
59
|
+
);
|
|
60
|
+
dispatcher = IMessageDispatcher(_dispatcher);
|
|
61
|
+
ism = _ism;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// ============ External Functions ============
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @notice Hook to inform the ERC5164ISM of messages published through.
|
|
68
|
+
* @dev anyone can call this function, that's why we need to send msg.sender
|
|
69
|
+
* @param _destinationDomain The destination domain of the message.
|
|
70
|
+
* @param _messageId The message ID.
|
|
71
|
+
* @return gasOverhead The gas overhead for the function call on destination.
|
|
72
|
+
*/
|
|
73
|
+
function postDispatch(uint32 _destinationDomain, bytes32 _messageId)
|
|
74
|
+
public
|
|
75
|
+
payable
|
|
76
|
+
override
|
|
77
|
+
returns (uint256)
|
|
78
|
+
{
|
|
79
|
+
require(msg.value == 0, "ERC5164Hook: no value allowed");
|
|
80
|
+
require(
|
|
81
|
+
_destinationDomain == destinationDomain,
|
|
82
|
+
"ERC5164Hook: invalid destination domain"
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
bytes memory _payload = abi.encodeCall(
|
|
86
|
+
ERC5164ISM.verifyMessageId,
|
|
87
|
+
(msg.sender.addressToBytes32(), _messageId)
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
dispatcher.dispatchMessage(_destinationDomain, ism, _payload);
|
|
91
|
+
|
|
92
|
+
// EIP-5164 doesn't specify a gas overhead
|
|
93
|
+
return 0;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -16,6 +16,7 @@ pragma solidity >=0.8.0;
|
|
|
16
16
|
// ============ Internal Imports ============
|
|
17
17
|
import {IMessageHook} from "../interfaces/hooks/IMessageHook.sol";
|
|
18
18
|
import {OptimismISM} from "../isms/native/OptimismISM.sol";
|
|
19
|
+
import {TypeCasts} from "../libs/TypeCasts.sol";
|
|
19
20
|
|
|
20
21
|
// ============ External Imports ============
|
|
21
22
|
import {ICrossDomainMessenger} from "@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.sol";
|
|
@@ -27,6 +28,7 @@ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
|
27
28
|
* the native Optimism bridge.
|
|
28
29
|
*/
|
|
29
30
|
contract OptimismMessageHook is IMessageHook {
|
|
31
|
+
using TypeCasts for address;
|
|
30
32
|
// ============ Constants ============
|
|
31
33
|
|
|
32
34
|
// Domain of chain on which the optimism ISM is deployed
|
|
@@ -85,7 +87,7 @@ contract OptimismMessageHook is IMessageHook {
|
|
|
85
87
|
|
|
86
88
|
bytes memory _payload = abi.encodeCall(
|
|
87
89
|
OptimismISM.verifyMessageId,
|
|
88
|
-
(msg.sender, _messageId)
|
|
90
|
+
(msg.sender.addressToBytes32(), _messageId)
|
|
89
91
|
);
|
|
90
92
|
|
|
91
93
|
l1Messenger.sendMessage(ism, _payload, GAS_LIMIT);
|
|
@@ -10,10 +10,16 @@ import {MerkleLib} from "../../libs/Merkle.sol";
|
|
|
10
10
|
import {CheckpointLib} from "../../libs/CheckpointLib.sol";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* @title
|
|
14
|
-
* @notice
|
|
15
|
-
*
|
|
16
|
-
*
|
|
13
|
+
* @title `AbstractMerkleRootMultisigIsm` — multi-sig ISM with the validators-censorship resistance guarantee.
|
|
14
|
+
* @notice This ISM allows using a newer signed checkpoint (say #33) to prove existence of an older message (#22) in the validators' MerkleTree.
|
|
15
|
+
* This guarantees censorship resistance as validators cannot hide a message
|
|
16
|
+
* by refusing to sign its checkpoint but later signing a checkpoint for a newer message.
|
|
17
|
+
* If validators decide to censor a message, they are left with only one option — to not produce checkpoints at all.
|
|
18
|
+
* Otherwise, the very next signed checkpoint (#33) can be used by any relayer to prove the previous message inclusion using this ISM.
|
|
19
|
+
* This is censorship resistance is missing in the sibling implementation `AbstractMessageIdMultisigIsm`,
|
|
20
|
+
* since it can only verify messages having the corresponding checkpoints.
|
|
21
|
+
* @dev Provides the default implementation of verifying signatures over a checkpoint and the message inclusion in that checkpoint.
|
|
22
|
+
* This abstract contract can be overridden for customizing the `validatorsAndThreshold()` (static or dynamic).
|
|
17
23
|
* @dev May be adapted in future to support batch message verification against a single root.
|
|
18
24
|
*/
|
|
19
25
|
abstract contract AbstractMerkleRootMultisigIsm is AbstractMultisigIsm {
|
|
@@ -9,9 +9,14 @@ import {Message} from "../../libs/Message.sol";
|
|
|
9
9
|
import {CheckpointLib} from "../../libs/CheckpointLib.sol";
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* @title AbstractMessageIdMultisigIsm
|
|
13
|
-
* @notice
|
|
14
|
-
*
|
|
12
|
+
* @title `AbstractMessageIdMultisigIsm` — multi-sig ISM for the censorship-friendly validators.
|
|
13
|
+
* @notice This ISM minimizes gas/performance overhead of the checkpoints verification by compromising on the censorship resistance.
|
|
14
|
+
* For censorship resistance consider using `AbstractMerkleRootMultisigIsm`.
|
|
15
|
+
* If the validators (`validatorsAndThreshold`) skip messages by not sign checkpoints for them,
|
|
16
|
+
* the relayers will not be able to aggregate a quorum of signatures sufficient to deliver these messages via this ISM.
|
|
17
|
+
* Integrations are free to choose the trade-off between the censorship resistance and the gas/processing overhead.
|
|
18
|
+
* @dev Provides the default implementation of verifying signatures over a checkpoint related to a specific message ID.
|
|
19
|
+
* This abstract contract can be customized to change the `validatorsAndThreshold()` (static or dynamic).
|
|
15
20
|
*/
|
|
16
21
|
abstract contract AbstractMessageIdMultisigIsm is AbstractMultisigIsm {
|
|
17
22
|
// ============ Constants ============
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
2
|
pragma solidity >=0.8.0;
|
|
3
3
|
|
|
4
|
+
/*@@@@@@@ @@@@@@@@@
|
|
5
|
+
@@@@@@@@@ @@@@@@@@@
|
|
6
|
+
@@@@@@@@@ @@@@@@@@@
|
|
7
|
+
@@@@@@@@@ @@@@@@@@@
|
|
8
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
9
|
+
@@@@@ HYPERLANE @@@@@@@
|
|
10
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
11
|
+
@@@@@@@@@ @@@@@@@@@
|
|
12
|
+
@@@@@@@@@ @@@@@@@@@
|
|
13
|
+
@@@@@@@@@ @@@@@@@@@
|
|
14
|
+
@@@@@@@@@ @@@@@@@@*/
|
|
15
|
+
|
|
4
16
|
// ============ Internal Imports ============
|
|
5
17
|
|
|
6
18
|
import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
|
|
@@ -11,7 +23,6 @@ import {TypeCasts} from "../../libs/TypeCasts.sol";
|
|
|
11
23
|
|
|
12
24
|
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
|
|
13
25
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
14
|
-
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
15
26
|
|
|
16
27
|
/**
|
|
17
28
|
* @title ArbtractNativeISM
|
|
@@ -25,13 +36,13 @@ abstract contract AbstractNativeISM is
|
|
|
25
36
|
{
|
|
26
37
|
// ============ Public Storage ============
|
|
27
38
|
|
|
28
|
-
// mapping to check if the specific messageID from a specific sender
|
|
39
|
+
// mapping to check if the specific messageID is from a specific sender
|
|
29
40
|
// @dev anyone can send an untrusted messageId, so need to check for that while verifying
|
|
30
|
-
mapping(bytes32 =>
|
|
41
|
+
mapping(bytes32 => bytes32) public verifiedMessageIds;
|
|
31
42
|
|
|
32
43
|
// ============ Events ============
|
|
33
44
|
|
|
34
|
-
event ReceivedMessage(
|
|
45
|
+
event ReceivedMessage(bytes32 indexed sender, bytes32 indexed messageId);
|
|
35
46
|
|
|
36
47
|
// ============ External Functions ============
|
|
37
48
|
|
|
@@ -44,8 +55,8 @@ abstract contract AbstractNativeISM is
|
|
|
44
55
|
bytes calldata _message
|
|
45
56
|
) external view returns (bool) {
|
|
46
57
|
bytes32 _messageId = Message.id(_message);
|
|
47
|
-
|
|
58
|
+
bytes32 _messageSender = Message.sender(_message);
|
|
48
59
|
|
|
49
|
-
return verifiedMessageIds[_messageId]
|
|
60
|
+
return _messageSender == verifiedMessageIds[_messageId];
|
|
50
61
|
}
|
|
51
62
|
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
/*@@@@@@@ @@@@@@@@@
|
|
5
|
+
@@@@@@@@@ @@@@@@@@@
|
|
6
|
+
@@@@@@@@@ @@@@@@@@@
|
|
7
|
+
@@@@@@@@@ @@@@@@@@@
|
|
8
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
9
|
+
@@@@@ HYPERLANE @@@@@@@
|
|
10
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
11
|
+
@@@@@@@@@ @@@@@@@@@
|
|
12
|
+
@@@@@@@@@ @@@@@@@@@
|
|
13
|
+
@@@@@@@@@ @@@@@@@@@
|
|
14
|
+
@@@@@@@@@ @@@@@@@@*/
|
|
15
|
+
|
|
16
|
+
// ============ Internal Imports ============
|
|
17
|
+
|
|
18
|
+
import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
|
|
19
|
+
import {ERC5164MessageHook} from "../../hooks/ERC5164MessageHook.sol";
|
|
20
|
+
import {Message} from "../../libs/Message.sol";
|
|
21
|
+
import {TypeCasts} from "../../libs/TypeCasts.sol";
|
|
22
|
+
import {AbstractNativeISM} from "./AbstractNativeISM.sol";
|
|
23
|
+
|
|
24
|
+
// ============ External Imports ============
|
|
25
|
+
|
|
26
|
+
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @title ERC5164ISM
|
|
30
|
+
* @notice Uses the generic eip-5164 standard to verify interchain messages.
|
|
31
|
+
*/
|
|
32
|
+
contract ERC5164ISM is AbstractNativeISM {
|
|
33
|
+
// ============ Constants ============
|
|
34
|
+
|
|
35
|
+
uint8 public constant moduleType =
|
|
36
|
+
uint8(IInterchainSecurityModule.Types.NULL);
|
|
37
|
+
// corresponding 5164 executor address
|
|
38
|
+
address public immutable executor;
|
|
39
|
+
|
|
40
|
+
// ============ Modifiers ============
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* @notice Check if sender is authorized to message `verifyMessageId`.
|
|
44
|
+
*/
|
|
45
|
+
modifier isAuthorized() {
|
|
46
|
+
require(
|
|
47
|
+
msg.sender == executor,
|
|
48
|
+
"ERC5164ISM: sender is not the executor"
|
|
49
|
+
);
|
|
50
|
+
_;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// ============ Constructor ============
|
|
54
|
+
|
|
55
|
+
constructor(address _executor) {
|
|
56
|
+
require(Address.isContract(_executor), "ERC5164ISM: invalid executor");
|
|
57
|
+
executor = _executor;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// ============ External Functions ============
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* @notice Receive a message from the executor.
|
|
64
|
+
* @param _sender Left-padded address of the sender.
|
|
65
|
+
* @param _messageId Hyperlane ID for the message.
|
|
66
|
+
*/
|
|
67
|
+
function verifyMessageId(bytes32 _sender, bytes32 _messageId)
|
|
68
|
+
external
|
|
69
|
+
isAuthorized
|
|
70
|
+
{
|
|
71
|
+
verifiedMessageIds[_messageId] = _sender;
|
|
72
|
+
|
|
73
|
+
emit ReceivedMessage(_sender, _messageId);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
2
|
pragma solidity >=0.8.0;
|
|
3
3
|
|
|
4
|
+
/*@@@@@@@ @@@@@@@@@
|
|
5
|
+
@@@@@@@@@ @@@@@@@@@
|
|
6
|
+
@@@@@@@@@ @@@@@@@@@
|
|
7
|
+
@@@@@@@@@ @@@@@@@@@
|
|
8
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
9
|
+
@@@@@ HYPERLANE @@@@@@@
|
|
10
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
11
|
+
@@@@@@@@@ @@@@@@@@@
|
|
12
|
+
@@@@@@@@@ @@@@@@@@@
|
|
13
|
+
@@@@@@@@@ @@@@@@@@@
|
|
14
|
+
@@@@@@@@@ @@@@@@@@*/
|
|
15
|
+
|
|
4
16
|
// ============ Internal Imports ============
|
|
5
17
|
|
|
6
18
|
import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
|
|
@@ -22,7 +34,6 @@ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
|
22
34
|
contract OptimismISM is CrossChainEnabledOptimism, AbstractNativeISM {
|
|
23
35
|
// ============ Constants ============
|
|
24
36
|
|
|
25
|
-
// solhint-disable-next-line const-name-snakecase
|
|
26
37
|
uint8 public constant moduleType =
|
|
27
38
|
uint8(IInterchainSecurityModule.Types.NULL);
|
|
28
39
|
|
|
@@ -66,14 +77,14 @@ contract OptimismISM is CrossChainEnabledOptimism, AbstractNativeISM {
|
|
|
66
77
|
/**
|
|
67
78
|
* @notice Receive a message from the L2 messenger.
|
|
68
79
|
* @dev Only callable by the L2 messenger.
|
|
69
|
-
* @param _sender
|
|
80
|
+
* @param _sender Left-padded address of the sender.
|
|
70
81
|
* @param _messageId Hyperlane ID for the message.
|
|
71
82
|
*/
|
|
72
|
-
function verifyMessageId(
|
|
83
|
+
function verifyMessageId(bytes32 _sender, bytes32 _messageId)
|
|
73
84
|
external
|
|
74
85
|
isAuthorized
|
|
75
86
|
{
|
|
76
|
-
verifiedMessageIds[_messageId]
|
|
87
|
+
verifiedMessageIds[_messageId] = _sender;
|
|
77
88
|
|
|
78
89
|
emit ReceivedMessage(_sender, _messageId);
|
|
79
90
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT or Apache-2.0
|
|
2
|
+
pragma solidity ^0.8.13;
|
|
3
|
+
|
|
4
|
+
import {IMessageDispatcher} from "../hooks/ERC5164/interfaces/IMessageDispatcher.sol";
|
|
5
|
+
|
|
6
|
+
contract MockMessageDispatcher is IMessageDispatcher {
|
|
7
|
+
function dispatchMessage(
|
|
8
|
+
uint256 toChainId,
|
|
9
|
+
address to,
|
|
10
|
+
bytes calldata data
|
|
11
|
+
) external returns (bytes32) {
|
|
12
|
+
bytes32 messageId = keccak256(abi.encodePacked(toChainId, to, data));
|
|
13
|
+
|
|
14
|
+
// simulate a successful dispatch
|
|
15
|
+
emit MessageDispatched(messageId, msg.sender, toChainId, to, data);
|
|
16
|
+
|
|
17
|
+
return messageId;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
contract MockMessageExecutor {
|
|
22
|
+
event MessageIdExecuted(
|
|
23
|
+
uint256 indexed fromChainId,
|
|
24
|
+
bytes32 indexed messageId
|
|
25
|
+
);
|
|
26
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "../common";
|
|
2
|
+
import type { FunctionFragment, Result } from "@ethersproject/abi";
|
|
3
|
+
import type { Listener, Provider } from "@ethersproject/providers";
|
|
4
|
+
import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
|
|
5
|
+
export declare type CheckpointStruct = {
|
|
6
|
+
origin: BigNumberish;
|
|
7
|
+
originMailbox: BytesLike;
|
|
8
|
+
root: BytesLike;
|
|
9
|
+
index: BigNumberish;
|
|
10
|
+
messageId: BytesLike;
|
|
11
|
+
};
|
|
12
|
+
export declare type CheckpointStructOutput = [
|
|
13
|
+
number,
|
|
14
|
+
string,
|
|
15
|
+
string,
|
|
16
|
+
number,
|
|
17
|
+
string
|
|
18
|
+
] & {
|
|
19
|
+
origin: number;
|
|
20
|
+
originMailbox: string;
|
|
21
|
+
root: string;
|
|
22
|
+
index: number;
|
|
23
|
+
messageId: string;
|
|
24
|
+
};
|
|
25
|
+
export interface CheckpointFraudProofsInterface extends utils.Interface {
|
|
26
|
+
functions: {
|
|
27
|
+
"isFraudulentMessageId((uint32,bytes32,bytes32,uint32,bytes32),bytes32[32],bytes32)": FunctionFragment;
|
|
28
|
+
"isFraudulentRoot((uint32,bytes32,bytes32,uint32,bytes32),bytes32[32])": FunctionFragment;
|
|
29
|
+
"isPremature((uint32,bytes32,bytes32,uint32,bytes32))": FunctionFragment;
|
|
30
|
+
"storeLatestCheckpoint(address)": FunctionFragment;
|
|
31
|
+
"storedCheckpoint(address,bytes32)": FunctionFragment;
|
|
32
|
+
};
|
|
33
|
+
getFunction(nameOrSignatureOrTopic: "isFraudulentMessageId" | "isFraudulentRoot" | "isPremature" | "storeLatestCheckpoint" | "storedCheckpoint"): FunctionFragment;
|
|
34
|
+
encodeFunctionData(functionFragment: "isFraudulentMessageId", values: [CheckpointStruct, BytesLike[], BytesLike]): string;
|
|
35
|
+
encodeFunctionData(functionFragment: "isFraudulentRoot", values: [CheckpointStruct, BytesLike[]]): string;
|
|
36
|
+
encodeFunctionData(functionFragment: "isPremature", values: [CheckpointStruct]): string;
|
|
37
|
+
encodeFunctionData(functionFragment: "storeLatestCheckpoint", values: [string]): string;
|
|
38
|
+
encodeFunctionData(functionFragment: "storedCheckpoint", values: [string, BytesLike]): string;
|
|
39
|
+
decodeFunctionResult(functionFragment: "isFraudulentMessageId", data: BytesLike): Result;
|
|
40
|
+
decodeFunctionResult(functionFragment: "isFraudulentRoot", data: BytesLike): Result;
|
|
41
|
+
decodeFunctionResult(functionFragment: "isPremature", data: BytesLike): Result;
|
|
42
|
+
decodeFunctionResult(functionFragment: "storeLatestCheckpoint", data: BytesLike): Result;
|
|
43
|
+
decodeFunctionResult(functionFragment: "storedCheckpoint", data: BytesLike): Result;
|
|
44
|
+
events: {};
|
|
45
|
+
}
|
|
46
|
+
export interface CheckpointFraudProofs extends BaseContract {
|
|
47
|
+
connect(signerOrProvider: Signer | Provider | string): this;
|
|
48
|
+
attach(addressOrName: string): this;
|
|
49
|
+
deployed(): Promise<this>;
|
|
50
|
+
interface: CheckpointFraudProofsInterface;
|
|
51
|
+
queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
|
|
52
|
+
listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
|
|
53
|
+
listeners(eventName?: string): Array<Listener>;
|
|
54
|
+
removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
|
|
55
|
+
removeAllListeners(eventName?: string): this;
|
|
56
|
+
off: OnEvent<this>;
|
|
57
|
+
on: OnEvent<this>;
|
|
58
|
+
once: OnEvent<this>;
|
|
59
|
+
removeListener: OnEvent<this>;
|
|
60
|
+
functions: {
|
|
61
|
+
isFraudulentMessageId(checkpoint: CheckpointStruct, proof: BytesLike[], actualMessageId: BytesLike, overrides?: CallOverrides): Promise<[boolean]>;
|
|
62
|
+
isFraudulentRoot(checkpoint: CheckpointStruct, proof: BytesLike[], overrides?: CallOverrides): Promise<[boolean]>;
|
|
63
|
+
isPremature(checkpoint: CheckpointStruct, overrides?: CallOverrides): Promise<[boolean]>;
|
|
64
|
+
storeLatestCheckpoint(mailbox: string, overrides?: Overrides & {
|
|
65
|
+
from?: string | Promise<string>;
|
|
66
|
+
}): Promise<ContractTransaction>;
|
|
67
|
+
storedCheckpoint(arg0: string, arg1: BytesLike, overrides?: CallOverrides): Promise<[number]>;
|
|
68
|
+
};
|
|
69
|
+
isFraudulentMessageId(checkpoint: CheckpointStruct, proof: BytesLike[], actualMessageId: BytesLike, overrides?: CallOverrides): Promise<boolean>;
|
|
70
|
+
isFraudulentRoot(checkpoint: CheckpointStruct, proof: BytesLike[], overrides?: CallOverrides): Promise<boolean>;
|
|
71
|
+
isPremature(checkpoint: CheckpointStruct, overrides?: CallOverrides): Promise<boolean>;
|
|
72
|
+
storeLatestCheckpoint(mailbox: string, overrides?: Overrides & {
|
|
73
|
+
from?: string | Promise<string>;
|
|
74
|
+
}): Promise<ContractTransaction>;
|
|
75
|
+
storedCheckpoint(arg0: string, arg1: BytesLike, overrides?: CallOverrides): Promise<number>;
|
|
76
|
+
callStatic: {
|
|
77
|
+
isFraudulentMessageId(checkpoint: CheckpointStruct, proof: BytesLike[], actualMessageId: BytesLike, overrides?: CallOverrides): Promise<boolean>;
|
|
78
|
+
isFraudulentRoot(checkpoint: CheckpointStruct, proof: BytesLike[], overrides?: CallOverrides): Promise<boolean>;
|
|
79
|
+
isPremature(checkpoint: CheckpointStruct, overrides?: CallOverrides): Promise<boolean>;
|
|
80
|
+
storeLatestCheckpoint(mailbox: string, overrides?: CallOverrides): Promise<void>;
|
|
81
|
+
storedCheckpoint(arg0: string, arg1: BytesLike, overrides?: CallOverrides): Promise<number>;
|
|
82
|
+
};
|
|
83
|
+
filters: {};
|
|
84
|
+
estimateGas: {
|
|
85
|
+
isFraudulentMessageId(checkpoint: CheckpointStruct, proof: BytesLike[], actualMessageId: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
|
|
86
|
+
isFraudulentRoot(checkpoint: CheckpointStruct, proof: BytesLike[], overrides?: CallOverrides): Promise<BigNumber>;
|
|
87
|
+
isPremature(checkpoint: CheckpointStruct, overrides?: CallOverrides): Promise<BigNumber>;
|
|
88
|
+
storeLatestCheckpoint(mailbox: string, overrides?: Overrides & {
|
|
89
|
+
from?: string | Promise<string>;
|
|
90
|
+
}): Promise<BigNumber>;
|
|
91
|
+
storedCheckpoint(arg0: string, arg1: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
|
|
92
|
+
};
|
|
93
|
+
populateTransaction: {
|
|
94
|
+
isFraudulentMessageId(checkpoint: CheckpointStruct, proof: BytesLike[], actualMessageId: BytesLike, overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
95
|
+
isFraudulentRoot(checkpoint: CheckpointStruct, proof: BytesLike[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
96
|
+
isPremature(checkpoint: CheckpointStruct, overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
97
|
+
storeLatestCheckpoint(mailbox: string, overrides?: Overrides & {
|
|
98
|
+
from?: string | Promise<string>;
|
|
99
|
+
}): Promise<PopulatedTransaction>;
|
|
100
|
+
storedCheckpoint(arg0: string, arg1: BytesLike, overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=CheckpointFraudProofs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckpointFraudProofs.d.ts","sourceRoot":"","sources":["../../types/contracts/CheckpointFraudProofs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckpointFraudProofs.js","sourceRoot":"","sources":["../../types/contracts/CheckpointFraudProofs.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../types/contracts/hooks/ERC5164/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,UAAU,MAAM,cAAc,CAAC;AAEhD,YAAY,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../types/contracts/hooks/ERC5164/index.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "../../../../common";
|
|
2
|
+
import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
|
|
3
|
+
import type { Listener, Provider } from "@ethersproject/providers";
|
|
4
|
+
import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
|
|
5
|
+
export interface IMessageDispatcherInterface extends utils.Interface {
|
|
6
|
+
functions: {
|
|
7
|
+
"dispatchMessage(uint256,address,bytes)": FunctionFragment;
|
|
8
|
+
};
|
|
9
|
+
getFunction(nameOrSignatureOrTopic: "dispatchMessage"): FunctionFragment;
|
|
10
|
+
encodeFunctionData(functionFragment: "dispatchMessage", values: [BigNumberish, string, BytesLike]): string;
|
|
11
|
+
decodeFunctionResult(functionFragment: "dispatchMessage", data: BytesLike): Result;
|
|
12
|
+
events: {
|
|
13
|
+
"MessageDispatched(bytes32,address,uint256,address,bytes)": EventFragment;
|
|
14
|
+
};
|
|
15
|
+
getEvent(nameOrSignatureOrTopic: "MessageDispatched"): EventFragment;
|
|
16
|
+
}
|
|
17
|
+
export interface MessageDispatchedEventObject {
|
|
18
|
+
messageId: string;
|
|
19
|
+
from: string;
|
|
20
|
+
toChainId: BigNumber;
|
|
21
|
+
to: string;
|
|
22
|
+
data: string;
|
|
23
|
+
}
|
|
24
|
+
export declare type MessageDispatchedEvent = TypedEvent<[
|
|
25
|
+
string,
|
|
26
|
+
string,
|
|
27
|
+
BigNumber,
|
|
28
|
+
string,
|
|
29
|
+
string
|
|
30
|
+
], MessageDispatchedEventObject>;
|
|
31
|
+
export declare type MessageDispatchedEventFilter = TypedEventFilter<MessageDispatchedEvent>;
|
|
32
|
+
export interface IMessageDispatcher extends BaseContract {
|
|
33
|
+
connect(signerOrProvider: Signer | Provider | string): this;
|
|
34
|
+
attach(addressOrName: string): this;
|
|
35
|
+
deployed(): Promise<this>;
|
|
36
|
+
interface: IMessageDispatcherInterface;
|
|
37
|
+
queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
|
|
38
|
+
listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
|
|
39
|
+
listeners(eventName?: string): Array<Listener>;
|
|
40
|
+
removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
|
|
41
|
+
removeAllListeners(eventName?: string): this;
|
|
42
|
+
off: OnEvent<this>;
|
|
43
|
+
on: OnEvent<this>;
|
|
44
|
+
once: OnEvent<this>;
|
|
45
|
+
removeListener: OnEvent<this>;
|
|
46
|
+
functions: {
|
|
47
|
+
dispatchMessage(toChainId: BigNumberish, to: string, data: BytesLike, overrides?: Overrides & {
|
|
48
|
+
from?: string | Promise<string>;
|
|
49
|
+
}): Promise<ContractTransaction>;
|
|
50
|
+
};
|
|
51
|
+
dispatchMessage(toChainId: BigNumberish, to: string, data: BytesLike, overrides?: Overrides & {
|
|
52
|
+
from?: string | Promise<string>;
|
|
53
|
+
}): Promise<ContractTransaction>;
|
|
54
|
+
callStatic: {
|
|
55
|
+
dispatchMessage(toChainId: BigNumberish, to: string, data: BytesLike, overrides?: CallOverrides): Promise<string>;
|
|
56
|
+
};
|
|
57
|
+
filters: {
|
|
58
|
+
"MessageDispatched(bytes32,address,uint256,address,bytes)"(messageId?: BytesLike | null, from?: string | null, toChainId?: BigNumberish | null, to?: null, data?: null): MessageDispatchedEventFilter;
|
|
59
|
+
MessageDispatched(messageId?: BytesLike | null, from?: string | null, toChainId?: BigNumberish | null, to?: null, data?: null): MessageDispatchedEventFilter;
|
|
60
|
+
};
|
|
61
|
+
estimateGas: {
|
|
62
|
+
dispatchMessage(toChainId: BigNumberish, to: string, data: BytesLike, overrides?: Overrides & {
|
|
63
|
+
from?: string | Promise<string>;
|
|
64
|
+
}): Promise<BigNumber>;
|
|
65
|
+
};
|
|
66
|
+
populateTransaction: {
|
|
67
|
+
dispatchMessage(toChainId: BigNumberish, to: string, data: BytesLike, overrides?: Overrides & {
|
|
68
|
+
from?: string | Promise<string>;
|
|
69
|
+
}): Promise<PopulatedTransaction>;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=IMessageDispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IMessageDispatcher.d.ts","sourceRoot":"","sources":["../../../../../types/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IMessageDispatcher.js","sourceRoot":"","sources":["../../../../../types/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
|