@hyperlane-xyz/core 5.6.1 → 5.7.0
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/contracts/Mailbox.sol +2 -1
- package/contracts/PackageVersioned.sol +1 -1
- package/contracts/client/MailboxClient.sol +20 -1
- package/contracts/hooks/ArbL2ToL1Hook.sol +23 -12
- package/contracts/hooks/OPL2ToL1Hook.sol +23 -12
- package/contracts/hooks/OPStackHook.sol +9 -6
- package/contracts/hooks/PolygonPosHook.sol +10 -3
- package/contracts/hooks/ProtocolFee.sol +5 -0
- package/contracts/hooks/aggregation/ERC5164Hook.sol +13 -3
- package/contracts/hooks/layer-zero/LayerZeroV2Hook.sol +11 -3
- package/contracts/hooks/libs/AbstractMessageIdAuthHook.sol +22 -8
- package/contracts/isms/hook/AbstractMessageIdAuthorizedIsm.sol +14 -7
- package/contracts/isms/hook/ArbL2ToL1Ism.sol +10 -3
- package/contracts/isms/hook/ERC5164Ism.sol +1 -1
- package/contracts/isms/hook/OPStackIsm.sol +1 -1
- package/contracts/isms/hook/PolygonPosIsm.sol +1 -1
- package/contracts/isms/hook/layer-zero/LayerZeroV2Ism.sol +16 -5
- package/contracts/libs/OPL2ToL1Metadata.sol +5 -5
- package/contracts/middleware/InterchainAccountRouter.sol +27 -7
- package/contracts/mock/MockMailbox.sol +2 -2
- package/contracts/test/TestPostDispatchHook.sol +5 -4
- package/dist/buildArtifact.js +1 -1
- package/dist/buildArtifact.json +1 -1
- package/dist/contracts/client/GasRouter.d.ts +20 -0
- package/dist/contracts/client/GasRouter.d.ts.map +1 -1
- package/dist/contracts/client/MailboxClient.d.ts +20 -0
- package/dist/contracts/client/MailboxClient.d.ts.map +1 -1
- package/dist/contracts/client/Router.d.ts +20 -0
- package/dist/contracts/client/Router.d.ts.map +1 -1
- package/dist/contracts/hooks/ArbL2ToL1Hook.d.ts +36 -16
- package/dist/contracts/hooks/ArbL2ToL1Hook.d.ts.map +1 -1
- package/dist/contracts/hooks/MerkleTreeHook.d.ts +20 -0
- package/dist/contracts/hooks/MerkleTreeHook.d.ts.map +1 -1
- package/dist/contracts/hooks/OPL2ToL1Hook.d.ts +51 -16
- package/dist/contracts/hooks/OPL2ToL1Hook.d.ts.map +1 -1
- package/dist/contracts/hooks/OPStackHook.d.ts +20 -0
- package/dist/contracts/hooks/OPStackHook.d.ts.map +1 -1
- package/dist/contracts/hooks/PolygonPosHook.d.ts +20 -0
- package/dist/contracts/hooks/PolygonPosHook.d.ts.map +1 -1
- package/dist/contracts/hooks/ProtocolFee.d.ts +24 -0
- package/dist/contracts/hooks/ProtocolFee.d.ts.map +1 -1
- package/dist/contracts/hooks/aggregation/ERC5164Hook.d.ts +20 -0
- package/dist/contracts/hooks/aggregation/ERC5164Hook.d.ts.map +1 -1
- package/dist/contracts/hooks/layer-zero/LayerZeroV1Hook.d.ts +20 -0
- package/dist/contracts/hooks/layer-zero/LayerZeroV1Hook.d.ts.map +1 -1
- package/dist/contracts/hooks/layer-zero/LayerZeroV2Hook.d.ts +20 -0
- package/dist/contracts/hooks/layer-zero/LayerZeroV2Hook.d.ts.map +1 -1
- package/dist/contracts/hooks/libs/AbstractMessageIdAuthHook.d.ts +20 -0
- package/dist/contracts/hooks/libs/AbstractMessageIdAuthHook.d.ts.map +1 -1
- package/dist/contracts/hooks/routing/DestinationRecipientRoutingHook.d.ts +20 -0
- package/dist/contracts/hooks/routing/DestinationRecipientRoutingHook.d.ts.map +1 -1
- package/dist/contracts/hooks/routing/DomainRoutingHook.d.ts +20 -0
- package/dist/contracts/hooks/routing/DomainRoutingHook.d.ts.map +1 -1
- package/dist/contracts/hooks/routing/FallbackDomainRoutingHook.d.ts +20 -0
- package/dist/contracts/hooks/routing/FallbackDomainRoutingHook.d.ts.map +1 -1
- package/dist/contracts/hooks/warp-route/RateLimitedHook.d.ts +20 -0
- package/dist/contracts/hooks/warp-route/RateLimitedHook.d.ts.map +1 -1
- package/dist/contracts/isms/hook/AbstractMessageIdAuthorizedIsm.d.ts +40 -38
- package/dist/contracts/isms/hook/AbstractMessageIdAuthorizedIsm.d.ts.map +1 -1
- package/dist/contracts/isms/hook/ArbL2ToL1Ism.d.ts +40 -38
- package/dist/contracts/isms/hook/ArbL2ToL1Ism.d.ts.map +1 -1
- package/dist/contracts/isms/hook/ERC5164Ism.d.ts +40 -38
- package/dist/contracts/isms/hook/ERC5164Ism.d.ts.map +1 -1
- package/dist/contracts/isms/hook/OPL2ToL1Ism.d.ts +40 -38
- package/dist/contracts/isms/hook/OPL2ToL1Ism.d.ts.map +1 -1
- package/dist/contracts/isms/hook/OPStackIsm.d.ts +40 -38
- package/dist/contracts/isms/hook/OPStackIsm.d.ts.map +1 -1
- package/dist/contracts/isms/hook/PolygonPosIsm.d.ts +39 -37
- package/dist/contracts/isms/hook/PolygonPosIsm.d.ts.map +1 -1
- package/dist/contracts/isms/hook/layer-zero/LayerZeroV2Ism.d.ts +39 -37
- package/dist/contracts/isms/hook/layer-zero/LayerZeroV2Ism.d.ts.map +1 -1
- package/dist/contracts/isms/multisig/ValidatorAnnounce.d.ts +20 -0
- package/dist/contracts/isms/multisig/ValidatorAnnounce.d.ts.map +1 -1
- package/dist/contracts/isms/routing/DefaultFallbackRoutingIsm.d.ts +20 -0
- package/dist/contracts/isms/routing/DefaultFallbackRoutingIsm.d.ts.map +1 -1
- package/dist/contracts/isms/warp-route/RateLimitedIsm.d.ts +20 -0
- package/dist/contracts/isms/warp-route/RateLimitedIsm.d.ts.map +1 -1
- package/dist/contracts/middleware/InterchainAccountRouter.d.ts +20 -0
- package/dist/contracts/middleware/InterchainAccountRouter.d.ts.map +1 -1
- package/dist/contracts/middleware/InterchainQueryRouter.d.ts +20 -0
- package/dist/contracts/middleware/InterchainQueryRouter.d.ts.map +1 -1
- package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts +20 -0
- package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts.map +1 -1
- package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts +20 -0
- package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts.map +1 -1
- package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.d.ts +20 -0
- package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.d.ts.map +1 -1
- package/dist/contracts/mock/MockMailbox.d.ts +8 -8
- package/dist/contracts/mock/MockMailbox.d.ts.map +1 -1
- package/dist/contracts/test/TestGasRouter.d.ts +20 -0
- package/dist/contracts/test/TestGasRouter.d.ts.map +1 -1
- package/dist/contracts/test/TestMerkleTreeHook.d.ts +20 -0
- package/dist/contracts/test/TestMerkleTreeHook.d.ts.map +1 -1
- package/dist/contracts/test/TestRouter.d.ts +20 -0
- package/dist/contracts/test/TestRouter.d.ts.map +1 -1
- package/dist/contracts/token/HypERC20.d.ts +20 -0
- package/dist/contracts/token/HypERC20.d.ts.map +1 -1
- package/dist/contracts/token/HypERC20Collateral.d.ts +20 -0
- package/dist/contracts/token/HypERC20Collateral.d.ts.map +1 -1
- package/dist/contracts/token/HypERC721.d.ts +20 -0
- package/dist/contracts/token/HypERC721.d.ts.map +1 -1
- package/dist/contracts/token/HypERC721Collateral.d.ts +20 -0
- package/dist/contracts/token/HypERC721Collateral.d.ts.map +1 -1
- package/dist/contracts/token/HypNative.d.ts +20 -0
- package/dist/contracts/token/HypNative.d.ts.map +1 -1
- package/dist/contracts/token/extensions/FastHypERC20.d.ts +20 -0
- package/dist/contracts/token/extensions/FastHypERC20.d.ts.map +1 -1
- package/dist/contracts/token/extensions/FastHypERC20Collateral.d.ts +20 -0
- package/dist/contracts/token/extensions/FastHypERC20Collateral.d.ts.map +1 -1
- package/dist/contracts/token/extensions/HypERC4626.d.ts +20 -0
- package/dist/contracts/token/extensions/HypERC4626.d.ts.map +1 -1
- package/dist/contracts/token/extensions/HypERC4626Collateral.d.ts +20 -0
- package/dist/contracts/token/extensions/HypERC4626Collateral.d.ts.map +1 -1
- package/dist/contracts/token/extensions/HypERC4626OwnerCollateral.d.ts +20 -0
- package/dist/contracts/token/extensions/HypERC4626OwnerCollateral.d.ts.map +1 -1
- package/dist/contracts/token/extensions/HypERC721URICollateral.d.ts +20 -0
- package/dist/contracts/token/extensions/HypERC721URICollateral.d.ts.map +1 -1
- package/dist/contracts/token/extensions/HypERC721URIStorage.d.ts +20 -0
- package/dist/contracts/token/extensions/HypERC721URIStorage.d.ts.map +1 -1
- package/dist/contracts/token/extensions/HypFiatToken.d.ts +20 -0
- package/dist/contracts/token/extensions/HypFiatToken.d.ts.map +1 -1
- package/dist/contracts/token/extensions/HypNativeScaled.d.ts +20 -0
- package/dist/contracts/token/extensions/HypNativeScaled.d.ts.map +1 -1
- package/dist/contracts/token/extensions/HypXERC20.d.ts +20 -0
- package/dist/contracts/token/extensions/HypXERC20.d.ts.map +1 -1
- package/dist/contracts/token/extensions/HypXERC20Lockbox.d.ts +20 -0
- package/dist/contracts/token/extensions/HypXERC20Lockbox.d.ts.map +1 -1
- package/dist/contracts/token/libs/FastTokenRouter.d.ts +20 -0
- package/dist/contracts/token/libs/FastTokenRouter.d.ts.map +1 -1
- package/dist/contracts/token/libs/TokenRouter.d.ts +20 -0
- package/dist/contracts/token/libs/TokenRouter.d.ts.map +1 -1
- package/dist/factories/contracts/AttributeCheckpointFraud__factory.d.ts +1 -1
- package/dist/factories/contracts/AttributeCheckpointFraud__factory.js +1 -1
- package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts +1 -1
- package/dist/factories/contracts/CheckpointFraudProofs__factory.js +1 -1
- package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
- package/dist/factories/contracts/Mailbox__factory.js +1 -1
- package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.d.ts +1 -1
- package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.js +1 -1
- package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.d.ts +1 -1
- package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.js +1 -1
- package/dist/factories/contracts/client/GasRouter__factory.d.ts +20 -0
- package/dist/factories/contracts/client/GasRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/client/GasRouter__factory.js +26 -0
- package/dist/factories/contracts/client/GasRouter__factory.js.map +1 -1
- package/dist/factories/contracts/client/MailboxClient__factory.d.ts +20 -0
- package/dist/factories/contracts/client/MailboxClient__factory.d.ts.map +1 -1
- package/dist/factories/contracts/client/MailboxClient__factory.js +26 -0
- package/dist/factories/contracts/client/MailboxClient__factory.js.map +1 -1
- package/dist/factories/contracts/client/Router__factory.d.ts +20 -0
- package/dist/factories/contracts/client/Router__factory.d.ts.map +1 -1
- package/dist/factories/contracts/client/Router__factory.js +26 -0
- package/dist/factories/contracts/client/Router__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.d.ts +34 -14
- package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.js +42 -16
- package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts +21 -1
- package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js +27 -1
- package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.d.ts +37 -7
- package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.js +48 -9
- package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts +21 -1
- package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/OPStackHook__factory.js +27 -1
- package/dist/factories/contracts/hooks/OPStackHook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/PausableHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/PausableHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/PolygonPosHook__factory.d.ts +21 -1
- package/dist/factories/contracts/hooks/PolygonPosHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/PolygonPosHook__factory.js +27 -1
- package/dist/factories/contracts/hooks/PolygonPosHook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/ProtocolFee__factory.d.ts +21 -1
- package/dist/factories/contracts/hooks/ProtocolFee__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/ProtocolFee__factory.js +27 -1
- package/dist/factories/contracts/hooks/ProtocolFee__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts +21 -1
- package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js +27 -1
- package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.js +1 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js +1 -1
- package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.js +1 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.d.ts +21 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.js +27 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.d.ts +21 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.js +27 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/libs/AbstractMessageIdAuthHook__factory.d.ts +20 -0
- package/dist/factories/contracts/hooks/libs/AbstractMessageIdAuthHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/libs/AbstractMessageIdAuthHook__factory.js +26 -0
- package/dist/factories/contracts/hooks/libs/AbstractMessageIdAuthHook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts +21 -1
- package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js +27 -1
- package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts +21 -1
- package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js +27 -1
- package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.d.ts +21 -1
- package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js +27 -1
- package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.d.ts +21 -1
- package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.js +27 -1
- package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.js.map +1 -1
- package/dist/factories/contracts/isms/NoopIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/NoopIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/PausableIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/PausableIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/hook/AbstractMessageIdAuthorizedIsm__factory.d.ts +19 -10
- package/dist/factories/contracts/isms/hook/AbstractMessageIdAuthorizedIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/hook/AbstractMessageIdAuthorizedIsm__factory.js +24 -13
- package/dist/factories/contracts/isms/hook/AbstractMessageIdAuthorizedIsm__factory.js.map +1 -1
- package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts +20 -11
- package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js +25 -14
- package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js.map +1 -1
- package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts +20 -11
- package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js +25 -14
- package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js.map +1 -1
- package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts +20 -11
- package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js +25 -14
- package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js.map +1 -1
- package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts +20 -11
- package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js +25 -14
- package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js.map +1 -1
- package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts +20 -11
- package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js +25 -14
- package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js.map +1 -1
- package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts +20 -11
- package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.js +25 -14
- package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.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/multisig/ValidatorAnnounce__factory.d.ts +21 -1
- package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js +27 -1
- package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js.map +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts +21 -1
- package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js +27 -1
- package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js.map +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.d.ts +21 -1
- package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.js +27 -1
- package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +21 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +27 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +21 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +27 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +21 -1
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +27 -1
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +21 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +27 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +21 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +27 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js.map +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -1
- package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +2 -2
- package/dist/factories/contracts/mock/MockMailbox__factory.d.ts.map +1 -1
- package/dist/factories/contracts/mock/MockMailbox__factory.js +2 -2
- package/dist/factories/contracts/mock/MockMailbox__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +21 -1
- package/dist/factories/contracts/test/TestGasRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestGasRouter__factory.js +27 -1
- package/dist/factories/contracts/test/TestGasRouter__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js +1 -1
- package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
- package/dist/factories/contracts/test/TestMerkleTreeHook__factory.d.ts +21 -1
- package/dist/factories/contracts/test/TestMerkleTreeHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js +27 -1
- package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestPostDispatchHook__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestPostDispatchHook__factory.js +1 -1
- package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
- package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
- package/dist/factories/contracts/test/TestRemoteChallenger__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestRemoteChallenger__factory.js +1 -1
- package/dist/factories/contracts/test/TestRouter__factory.d.ts +21 -1
- package/dist/factories/contracts/test/TestRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestRouter__factory.js +27 -1
- package/dist/factories/contracts/test/TestRouter__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestSendReceiver__factory.js +1 -1
- package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.d.ts +1 -1
- package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.js +1 -1
- package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts +21 -1
- package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/HypERC20Collateral__factory.js +27 -1
- package/dist/factories/contracts/token/HypERC20Collateral__factory.js.map +1 -1
- package/dist/factories/contracts/token/HypERC20__factory.d.ts +21 -1
- package/dist/factories/contracts/token/HypERC20__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/HypERC20__factory.js +27 -1
- package/dist/factories/contracts/token/HypERC20__factory.js.map +1 -1
- package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts +21 -1
- package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/HypERC721Collateral__factory.js +27 -1
- package/dist/factories/contracts/token/HypERC721Collateral__factory.js.map +1 -1
- package/dist/factories/contracts/token/HypERC721__factory.d.ts +21 -1
- package/dist/factories/contracts/token/HypERC721__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/HypERC721__factory.js +27 -1
- package/dist/factories/contracts/token/HypERC721__factory.js.map +1 -1
- package/dist/factories/contracts/token/HypNative__factory.d.ts +21 -1
- package/dist/factories/contracts/token/HypNative__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/HypNative__factory.js +27 -1
- package/dist/factories/contracts/token/HypNative__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts +21 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js +27 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts +21 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js +27 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts +21 -1
- package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js +27 -1
- package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.d.ts +21 -1
- package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.js +27 -1
- package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts +21 -1
- package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC4626__factory.js +27 -1
- package/dist/factories/contracts/token/extensions/HypERC4626__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts +21 -1
- package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js +27 -1
- package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts +21 -1
- package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js +27 -1
- package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/HypFiatToken__factory.d.ts +21 -1
- package/dist/factories/contracts/token/extensions/HypFiatToken__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/HypFiatToken__factory.js +27 -1
- package/dist/factories/contracts/token/extensions/HypFiatToken__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts +21 -1
- package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js +27 -1
- package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts +21 -1
- package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js +27 -1
- package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20__factory.d.ts +21 -1
- package/dist/factories/contracts/token/extensions/HypXERC20__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20__factory.js +27 -1
- package/dist/factories/contracts/token/extensions/HypXERC20__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/WHypERC4626__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/WHypERC4626__factory.js +1 -1
- package/dist/factories/contracts/token/libs/FastTokenRouter__factory.d.ts +20 -0
- package/dist/factories/contracts/token/libs/FastTokenRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/libs/FastTokenRouter__factory.js +26 -0
- package/dist/factories/contracts/token/libs/FastTokenRouter__factory.js.map +1 -1
- package/dist/factories/contracts/token/libs/TokenRouter__factory.d.ts +20 -0
- package/dist/factories/contracts/token/libs/TokenRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/libs/TokenRouter__factory.js +26 -0
- package/dist/factories/contracts/token/libs/TokenRouter__factory.js.map +1 -1
- package/package.json +2 -2
package/contracts/Mailbox.sol
CHANGED
|
@@ -10,7 +10,7 @@ import {IInterchainSecurityModule, ISpecifiesInterchainSecurityModule} from "./i
|
|
|
10
10
|
import {IPostDispatchHook} from "./interfaces/hooks/IPostDispatchHook.sol";
|
|
11
11
|
import {IMessageRecipient} from "./interfaces/IMessageRecipient.sol";
|
|
12
12
|
import {IMailbox} from "./interfaces/IMailbox.sol";
|
|
13
|
-
import {PackageVersioned} from "
|
|
13
|
+
import {PackageVersioned} from "./PackageVersioned.sol";
|
|
14
14
|
|
|
15
15
|
// ============ External Imports ============
|
|
16
16
|
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
@@ -56,6 +56,7 @@ contract Mailbox is
|
|
|
56
56
|
address processor;
|
|
57
57
|
uint48 blockNumber;
|
|
58
58
|
}
|
|
59
|
+
|
|
59
60
|
mapping(bytes32 => Delivery) internal deliveries;
|
|
60
61
|
|
|
61
62
|
// ============ Events ============
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
2
|
pragma solidity >=0.6.11;
|
|
3
3
|
|
|
4
|
+
/*@@@@@@@ @@@@@@@@@
|
|
5
|
+
@@@@@@@@@ @@@@@@@@@
|
|
6
|
+
@@@@@@@@@ @@@@@@@@@
|
|
7
|
+
@@@@@@@@@ @@@@@@@@@
|
|
8
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
9
|
+
@@@@@ HYPERLANE @@@@@@@
|
|
10
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
11
|
+
@@@@@@@@@ @@@@@@@@@
|
|
12
|
+
@@@@@@@@@ @@@@@@@@@
|
|
13
|
+
@@@@@@@@@ @@@@@@@@@
|
|
14
|
+
@@@@@@@@@ @@@@@@@@*/
|
|
15
|
+
|
|
4
16
|
// ============ Internal Imports ============
|
|
5
17
|
import {IMailbox} from "../interfaces/IMailbox.sol";
|
|
6
18
|
import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
|
|
@@ -15,6 +27,9 @@ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/Own
|
|
|
15
27
|
abstract contract MailboxClient is OwnableUpgradeable, PackageVersioned {
|
|
16
28
|
using Message for bytes;
|
|
17
29
|
|
|
30
|
+
event HookSet(address _hook);
|
|
31
|
+
event IsmSet(address _ism);
|
|
32
|
+
|
|
18
33
|
IMailbox public immutable mailbox;
|
|
19
34
|
|
|
20
35
|
uint32 public immutable localDomain;
|
|
@@ -63,8 +78,11 @@ abstract contract MailboxClient is OwnableUpgradeable, PackageVersioned {
|
|
|
63
78
|
* @notice Sets the address of the application's custom hook.
|
|
64
79
|
* @param _hook The address of the hook contract.
|
|
65
80
|
*/
|
|
66
|
-
function setHook(
|
|
81
|
+
function setHook(
|
|
82
|
+
address _hook
|
|
83
|
+
) public virtual onlyContractOrNull(_hook) onlyOwner {
|
|
67
84
|
hook = IPostDispatchHook(_hook);
|
|
85
|
+
emit HookSet(_hook);
|
|
68
86
|
}
|
|
69
87
|
|
|
70
88
|
/**
|
|
@@ -75,6 +93,7 @@ abstract contract MailboxClient is OwnableUpgradeable, PackageVersioned {
|
|
|
75
93
|
address _module
|
|
76
94
|
) public onlyContractOrNull(_module) onlyOwner {
|
|
77
95
|
interchainSecurityModule = IInterchainSecurityModule(_module);
|
|
96
|
+
emit IsmSet(_module);
|
|
78
97
|
}
|
|
79
98
|
|
|
80
99
|
// ======== Initializer =========
|
|
@@ -14,17 +14,16 @@ pragma solidity >=0.8.0;
|
|
|
14
14
|
@@@@@@@@@ @@@@@@@@*/
|
|
15
15
|
|
|
16
16
|
// ============ Internal Imports ============
|
|
17
|
+
import {Message} from "../libs/Message.sol";
|
|
18
|
+
import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
|
|
17
19
|
import {AbstractPostDispatchHook} from "./libs/AbstractMessageIdAuthHook.sol";
|
|
18
20
|
import {AbstractMessageIdAuthHook} from "./libs/AbstractMessageIdAuthHook.sol";
|
|
19
|
-
import {
|
|
21
|
+
import {AbstractMessageIdAuthorizedIsm} from "../isms/hook/AbstractMessageIdAuthorizedIsm.sol";
|
|
20
22
|
import {StandardHookMetadata} from "./libs/StandardHookMetadata.sol";
|
|
21
23
|
import {Message} from "../libs/Message.sol";
|
|
22
24
|
import {TypeCasts} from "../libs/TypeCasts.sol";
|
|
23
|
-
import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
|
|
24
|
-
import {MailboxClient} from "../client/MailboxClient.sol";
|
|
25
25
|
|
|
26
26
|
// ============ External Imports ============
|
|
27
|
-
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
28
27
|
import {ArbSys} from "@arbitrum/nitro-contracts/src/precompiles/ArbSys.sol";
|
|
29
28
|
|
|
30
29
|
/**
|
|
@@ -35,13 +34,14 @@ import {ArbSys} from "@arbitrum/nitro-contracts/src/precompiles/ArbSys.sol";
|
|
|
35
34
|
*/
|
|
36
35
|
contract ArbL2ToL1Hook is AbstractMessageIdAuthHook {
|
|
37
36
|
using StandardHookMetadata for bytes;
|
|
37
|
+
using Message for bytes;
|
|
38
38
|
|
|
39
39
|
// ============ Constants ============
|
|
40
40
|
|
|
41
41
|
// precompile contract on L2 for sending messages to L1
|
|
42
42
|
ArbSys public immutable arbSys;
|
|
43
|
-
//
|
|
44
|
-
|
|
43
|
+
// child hook to call first
|
|
44
|
+
IPostDispatchHook public immutable childHook;
|
|
45
45
|
|
|
46
46
|
// ============ Constructor ============
|
|
47
47
|
|
|
@@ -50,21 +50,24 @@ contract ArbL2ToL1Hook is AbstractMessageIdAuthHook {
|
|
|
50
50
|
uint32 _destinationDomain,
|
|
51
51
|
bytes32 _ism,
|
|
52
52
|
address _arbSys,
|
|
53
|
-
|
|
53
|
+
address _childHook
|
|
54
54
|
) AbstractMessageIdAuthHook(_mailbox, _destinationDomain, _ism) {
|
|
55
55
|
arbSys = ArbSys(_arbSys);
|
|
56
|
-
|
|
56
|
+
childHook = AbstractPostDispatchHook(_childHook);
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
+
/// @inheritdoc IPostDispatchHook
|
|
59
60
|
function hookType() external pure override returns (uint8) {
|
|
60
61
|
return uint8(IPostDispatchHook.Types.ARB_L2_TO_L1);
|
|
61
62
|
}
|
|
62
63
|
|
|
64
|
+
/// @inheritdoc AbstractPostDispatchHook
|
|
63
65
|
function _quoteDispatch(
|
|
64
|
-
bytes calldata,
|
|
65
|
-
bytes calldata
|
|
66
|
+
bytes calldata metadata,
|
|
67
|
+
bytes calldata message
|
|
66
68
|
) internal view override returns (uint256) {
|
|
67
|
-
return
|
|
69
|
+
return
|
|
70
|
+
metadata.msgValue(0) + childHook.quoteDispatch(metadata, message);
|
|
68
71
|
}
|
|
69
72
|
|
|
70
73
|
// ============ Internal functions ============
|
|
@@ -72,8 +75,16 @@ contract ArbL2ToL1Hook is AbstractMessageIdAuthHook {
|
|
|
72
75
|
/// @inheritdoc AbstractMessageIdAuthHook
|
|
73
76
|
function _sendMessageId(
|
|
74
77
|
bytes calldata metadata,
|
|
75
|
-
bytes
|
|
78
|
+
bytes calldata message
|
|
76
79
|
) internal override {
|
|
80
|
+
bytes memory payload = abi.encodeCall(
|
|
81
|
+
AbstractMessageIdAuthorizedIsm.preVerifyMessage,
|
|
82
|
+
(message.id(), metadata.msgValue(0))
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
childHook.postDispatch{
|
|
86
|
+
value: childHook.quoteDispatch(metadata, message)
|
|
87
|
+
}(metadata, message);
|
|
77
88
|
arbSys.sendTxToL1{value: metadata.msgValue(0)}(
|
|
78
89
|
TypeCasts.bytes32ToAddress(ism),
|
|
79
90
|
payload
|
|
@@ -14,10 +14,13 @@ pragma solidity >=0.8.0;
|
|
|
14
14
|
@@@@@@@@@ @@@@@@@@*/
|
|
15
15
|
|
|
16
16
|
// ============ Internal Imports ============
|
|
17
|
+
import {Message} from "../libs/Message.sol";
|
|
17
18
|
import {AbstractPostDispatchHook, AbstractMessageIdAuthHook} from "./libs/AbstractMessageIdAuthHook.sol";
|
|
19
|
+
import {AbstractMessageIdAuthorizedIsm} from "../isms/hook/AbstractMessageIdAuthorizedIsm.sol";
|
|
18
20
|
import {StandardHookMetadata} from "./libs/StandardHookMetadata.sol";
|
|
19
21
|
import {TypeCasts} from "../libs/TypeCasts.sol";
|
|
20
22
|
import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
|
|
23
|
+
import {InterchainGasPaymaster} from "./igp/InterchainGasPaymaster.sol";
|
|
21
24
|
|
|
22
25
|
// ============ External Imports ============
|
|
23
26
|
import {ICrossDomainMessenger} from "../interfaces/optimism/ICrossDomainMessenger.sol";
|
|
@@ -30,13 +33,16 @@ import {ICrossDomainMessenger} from "../interfaces/optimism/ICrossDomainMessenge
|
|
|
30
33
|
*/
|
|
31
34
|
contract OPL2ToL1Hook is AbstractMessageIdAuthHook {
|
|
32
35
|
using StandardHookMetadata for bytes;
|
|
36
|
+
using Message for bytes;
|
|
33
37
|
|
|
34
38
|
// ============ Constants ============
|
|
35
39
|
|
|
36
40
|
// precompile contract on L2 for sending messages to L1
|
|
37
41
|
ICrossDomainMessenger public immutable l2Messenger;
|
|
38
|
-
//
|
|
39
|
-
|
|
42
|
+
// child hook to call first
|
|
43
|
+
IPostDispatchHook public immutable childHook;
|
|
44
|
+
// Minimum gas limit that the message can be executed with - OP specific
|
|
45
|
+
uint32 public constant MIN_GAS_LIMIT = 300_000;
|
|
40
46
|
|
|
41
47
|
// ============ Constructor ============
|
|
42
48
|
|
|
@@ -45,10 +51,10 @@ contract OPL2ToL1Hook is AbstractMessageIdAuthHook {
|
|
|
45
51
|
uint32 _destinationDomain,
|
|
46
52
|
bytes32 _ism,
|
|
47
53
|
address _l2Messenger,
|
|
48
|
-
|
|
54
|
+
address _childHook
|
|
49
55
|
) AbstractMessageIdAuthHook(_mailbox, _destinationDomain, _ism) {
|
|
50
|
-
GAS_QUOTE = _gasQuote;
|
|
51
56
|
l2Messenger = ICrossDomainMessenger(_l2Messenger);
|
|
57
|
+
childHook = AbstractPostDispatchHook(_childHook);
|
|
52
58
|
}
|
|
53
59
|
|
|
54
60
|
/// @inheritdoc IPostDispatchHook
|
|
@@ -58,10 +64,11 @@ contract OPL2ToL1Hook is AbstractMessageIdAuthHook {
|
|
|
58
64
|
|
|
59
65
|
/// @inheritdoc AbstractPostDispatchHook
|
|
60
66
|
function _quoteDispatch(
|
|
61
|
-
bytes calldata,
|
|
62
|
-
bytes calldata
|
|
67
|
+
bytes calldata metadata,
|
|
68
|
+
bytes calldata message
|
|
63
69
|
) internal view override returns (uint256) {
|
|
64
|
-
return
|
|
70
|
+
return
|
|
71
|
+
metadata.msgValue(0) + childHook.quoteDispatch(metadata, message);
|
|
65
72
|
}
|
|
66
73
|
|
|
67
74
|
// ============ Internal functions ============
|
|
@@ -69,16 +76,20 @@ contract OPL2ToL1Hook is AbstractMessageIdAuthHook {
|
|
|
69
76
|
/// @inheritdoc AbstractMessageIdAuthHook
|
|
70
77
|
function _sendMessageId(
|
|
71
78
|
bytes calldata metadata,
|
|
72
|
-
bytes
|
|
79
|
+
bytes calldata message
|
|
73
80
|
) internal override {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
81
|
+
bytes memory payload = abi.encodeCall(
|
|
82
|
+
AbstractMessageIdAuthorizedIsm.preVerifyMessage,
|
|
83
|
+
(message.id(), metadata.msgValue(0))
|
|
77
84
|
);
|
|
85
|
+
|
|
86
|
+
childHook.postDispatch{
|
|
87
|
+
value: childHook.quoteDispatch(metadata, message)
|
|
88
|
+
}(metadata, message);
|
|
78
89
|
l2Messenger.sendMessage{value: metadata.msgValue(0)}(
|
|
79
90
|
TypeCasts.bytes32ToAddress(ism),
|
|
80
91
|
payload,
|
|
81
|
-
|
|
92
|
+
MIN_GAS_LIMIT
|
|
82
93
|
);
|
|
83
94
|
}
|
|
84
95
|
}
|
|
@@ -18,6 +18,7 @@ import {AbstractMessageIdAuthHook} from "./libs/AbstractMessageIdAuthHook.sol";
|
|
|
18
18
|
import {StandardHookMetadata} from "./libs/StandardHookMetadata.sol";
|
|
19
19
|
import {TypeCasts} from "../libs/TypeCasts.sol";
|
|
20
20
|
import {Message} from "../libs/Message.sol";
|
|
21
|
+
import {AbstractMessageIdAuthorizedIsm} from "../isms/hook/AbstractMessageIdAuthorizedIsm.sol";
|
|
21
22
|
import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
|
|
22
23
|
|
|
23
24
|
// ============ External Imports ============
|
|
@@ -32,6 +33,7 @@ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
|
32
33
|
*/
|
|
33
34
|
contract OPStackHook is AbstractMessageIdAuthHook {
|
|
34
35
|
using StandardHookMetadata for bytes;
|
|
36
|
+
using Message for bytes;
|
|
35
37
|
|
|
36
38
|
// ============ Constants ============
|
|
37
39
|
|
|
@@ -60,21 +62,22 @@ contract OPStackHook is AbstractMessageIdAuthHook {
|
|
|
60
62
|
|
|
61
63
|
// ============ Internal functions ============
|
|
62
64
|
function _quoteDispatch(
|
|
63
|
-
bytes calldata,
|
|
65
|
+
bytes calldata metadata,
|
|
64
66
|
bytes calldata
|
|
65
67
|
) internal pure override returns (uint256) {
|
|
66
|
-
return 0; // gas subsidized by the L2
|
|
68
|
+
return metadata.msgValue(0); // gas subsidized by the L2
|
|
67
69
|
}
|
|
68
70
|
|
|
69
71
|
/// @inheritdoc AbstractMessageIdAuthHook
|
|
70
72
|
function _sendMessageId(
|
|
71
73
|
bytes calldata metadata,
|
|
72
|
-
bytes
|
|
74
|
+
bytes calldata message
|
|
73
75
|
) internal override {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
76
|
+
bytes memory payload = abi.encodeCall(
|
|
77
|
+
AbstractMessageIdAuthorizedIsm.preVerifyMessage,
|
|
78
|
+
(message.id(), metadata.msgValue(0))
|
|
77
79
|
);
|
|
80
|
+
|
|
78
81
|
l1Messenger.sendMessage{value: metadata.msgValue(0)}(
|
|
79
82
|
TypeCasts.bytes32ToAddress(ism),
|
|
80
83
|
payload,
|
|
@@ -19,6 +19,7 @@ import {StandardHookMetadata} from "./libs/StandardHookMetadata.sol";
|
|
|
19
19
|
import {TypeCasts} from "../libs/TypeCasts.sol";
|
|
20
20
|
import {Message} from "../libs/Message.sol";
|
|
21
21
|
import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
|
|
22
|
+
import {AbstractMessageIdAuthorizedIsm} from "../isms/hook/AbstractMessageIdAuthorizedIsm.sol";
|
|
22
23
|
|
|
23
24
|
// ============ External Imports ============
|
|
24
25
|
import {FxBaseRootTunnel} from "fx-portal/contracts/tunnel/FxBaseRootTunnel.sol";
|
|
@@ -31,6 +32,7 @@ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
|
31
32
|
*/
|
|
32
33
|
contract PolygonPosHook is AbstractMessageIdAuthHook, FxBaseRootTunnel {
|
|
33
34
|
using StandardHookMetadata for bytes;
|
|
35
|
+
using Message for bytes;
|
|
34
36
|
|
|
35
37
|
// ============ Constructor ============
|
|
36
38
|
|
|
@@ -56,22 +58,27 @@ contract PolygonPosHook is AbstractMessageIdAuthHook, FxBaseRootTunnel {
|
|
|
56
58
|
|
|
57
59
|
// ============ Internal functions ============
|
|
58
60
|
function _quoteDispatch(
|
|
59
|
-
bytes calldata,
|
|
61
|
+
bytes calldata metadata,
|
|
60
62
|
bytes calldata
|
|
61
63
|
) internal pure override returns (uint256) {
|
|
62
|
-
return 0;
|
|
64
|
+
return metadata.msgValue(0);
|
|
63
65
|
}
|
|
64
66
|
|
|
65
67
|
/// @inheritdoc AbstractMessageIdAuthHook
|
|
66
68
|
function _sendMessageId(
|
|
67
69
|
bytes calldata metadata,
|
|
68
|
-
bytes
|
|
70
|
+
bytes calldata message
|
|
69
71
|
) internal override {
|
|
70
72
|
require(
|
|
71
73
|
metadata.msgValue(0) == 0,
|
|
72
74
|
"PolygonPosHook: does not support msgValue"
|
|
73
75
|
);
|
|
74
76
|
require(msg.value == 0, "PolygonPosHook: does not support msgValue");
|
|
77
|
+
|
|
78
|
+
bytes memory payload = abi.encodeCall(
|
|
79
|
+
AbstractMessageIdAuthorizedIsm.preVerifyMessage,
|
|
80
|
+
(message.id(), metadata.msgValue(0))
|
|
81
|
+
);
|
|
75
82
|
_sendMessageToChild(payload);
|
|
76
83
|
}
|
|
77
84
|
|
|
@@ -32,6 +32,9 @@ contract ProtocolFee is AbstractPostDispatchHook, Ownable {
|
|
|
32
32
|
using Address for address payable;
|
|
33
33
|
using Message for bytes;
|
|
34
34
|
|
|
35
|
+
event ProtocolFeeSet(uint256 protocolFee);
|
|
36
|
+
event BeneficiarySet(address beneficiary);
|
|
37
|
+
|
|
35
38
|
// ============ Constants ============
|
|
36
39
|
|
|
37
40
|
/// @notice The maximum protocol fee that can be set.
|
|
@@ -126,6 +129,7 @@ contract ProtocolFee is AbstractPostDispatchHook, Ownable {
|
|
|
126
129
|
"ProtocolFee: exceeds max protocol fee"
|
|
127
130
|
);
|
|
128
131
|
protocolFee = _protocolFee;
|
|
132
|
+
emit ProtocolFeeSet(_protocolFee);
|
|
129
133
|
}
|
|
130
134
|
|
|
131
135
|
/**
|
|
@@ -135,5 +139,6 @@ contract ProtocolFee is AbstractPostDispatchHook, Ownable {
|
|
|
135
139
|
function _setBeneficiary(address _beneficiary) internal {
|
|
136
140
|
require(_beneficiary != address(0), "ProtocolFee: invalid beneficiary");
|
|
137
141
|
beneficiary = _beneficiary;
|
|
142
|
+
emit BeneficiarySet(_beneficiary);
|
|
138
143
|
}
|
|
139
144
|
}
|
|
@@ -15,9 +15,12 @@ pragma solidity >=0.8.0;
|
|
|
15
15
|
|
|
16
16
|
// ============ Internal Imports ============
|
|
17
17
|
import {TypeCasts} from "../../libs/TypeCasts.sol";
|
|
18
|
+
import {Message} from "../../libs/Message.sol";
|
|
19
|
+
import {StandardHookMetadata} from "../libs/StandardHookMetadata.sol";
|
|
18
20
|
import {IPostDispatchHook} from "../../interfaces/hooks/IPostDispatchHook.sol";
|
|
19
21
|
import {IMessageDispatcher} from "../../interfaces/hooks/IMessageDispatcher.sol";
|
|
20
22
|
import {AbstractMessageIdAuthHook} from "../libs/AbstractMessageIdAuthHook.sol";
|
|
23
|
+
import {AbstractMessageIdAuthorizedIsm} from "../../isms/hook/AbstractMessageIdAuthorizedIsm.sol";
|
|
21
24
|
|
|
22
25
|
// ============ External Imports ============
|
|
23
26
|
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
@@ -28,6 +31,9 @@ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
|
28
31
|
* any of the 5164 adapters.
|
|
29
32
|
*/
|
|
30
33
|
contract ERC5164Hook is AbstractMessageIdAuthHook {
|
|
34
|
+
using StandardHookMetadata for bytes;
|
|
35
|
+
using Message for bytes;
|
|
36
|
+
|
|
31
37
|
IMessageDispatcher public immutable dispatcher;
|
|
32
38
|
|
|
33
39
|
constructor(
|
|
@@ -53,11 +59,15 @@ contract ERC5164Hook is AbstractMessageIdAuthHook {
|
|
|
53
59
|
}
|
|
54
60
|
|
|
55
61
|
function _sendMessageId(
|
|
56
|
-
bytes calldata,
|
|
57
|
-
|
|
58
|
-
bytes memory payload
|
|
62
|
+
bytes calldata metadata,
|
|
63
|
+
bytes calldata message
|
|
59
64
|
) internal override {
|
|
60
65
|
require(msg.value == 0, "ERC5164Hook: no value allowed");
|
|
66
|
+
|
|
67
|
+
bytes memory payload = abi.encodeCall(
|
|
68
|
+
AbstractMessageIdAuthorizedIsm.preVerifyMessage,
|
|
69
|
+
(message.id(), metadata.msgValue(0))
|
|
70
|
+
);
|
|
61
71
|
dispatcher.dispatchMessage(
|
|
62
72
|
destinationDomain,
|
|
63
73
|
TypeCasts.bytes32ToAddress(ism),
|
|
@@ -18,6 +18,7 @@ import {TypeCasts} from "../../libs/TypeCasts.sol";
|
|
|
18
18
|
import {Indexed} from "../../libs/Indexed.sol";
|
|
19
19
|
import {IPostDispatchHook} from "../../interfaces/hooks/IPostDispatchHook.sol";
|
|
20
20
|
import {AbstractMessageIdAuthHook} from "../libs/AbstractMessageIdAuthHook.sol";
|
|
21
|
+
import {AbstractMessageIdAuthorizedIsm} from "../../isms/hook/AbstractMessageIdAuthorizedIsm.sol";
|
|
21
22
|
import {StandardHookMetadata} from "../libs/StandardHookMetadata.sol";
|
|
22
23
|
|
|
23
24
|
struct LayerZeroV2Metadata {
|
|
@@ -55,8 +56,13 @@ contract LayerZeroV2Hook is AbstractMessageIdAuthHook {
|
|
|
55
56
|
/// @inheritdoc AbstractMessageIdAuthHook
|
|
56
57
|
function _sendMessageId(
|
|
57
58
|
bytes calldata metadata,
|
|
58
|
-
bytes
|
|
59
|
+
bytes calldata message
|
|
59
60
|
) internal override {
|
|
61
|
+
bytes memory payload = abi.encodeCall(
|
|
62
|
+
AbstractMessageIdAuthorizedIsm.preVerifyMessage,
|
|
63
|
+
(message.id(), metadata.msgValue(0))
|
|
64
|
+
);
|
|
65
|
+
|
|
60
66
|
bytes calldata lZMetadata = metadata.getCustomMetadata();
|
|
61
67
|
(
|
|
62
68
|
uint32 eid,
|
|
@@ -72,7 +78,9 @@ contract LayerZeroV2Hook is AbstractMessageIdAuthHook {
|
|
|
72
78
|
options,
|
|
73
79
|
false // payInLzToken
|
|
74
80
|
);
|
|
75
|
-
|
|
81
|
+
|
|
82
|
+
uint256 quote = _quoteDispatch(metadata, message);
|
|
83
|
+
lZEndpoint.send{value: quote}(msgParams, refundAddress);
|
|
76
84
|
}
|
|
77
85
|
|
|
78
86
|
/// @dev payInZRO is hardcoded to false because zro tokens should not be directly accepted
|
|
@@ -96,7 +104,7 @@ contract LayerZeroV2Hook is AbstractMessageIdAuthHook {
|
|
|
96
104
|
message.senderAddress()
|
|
97
105
|
);
|
|
98
106
|
|
|
99
|
-
return msgFee.nativeFee;
|
|
107
|
+
return metadata.msgValue(0) + msgFee.nativeFee;
|
|
100
108
|
}
|
|
101
109
|
|
|
102
110
|
/**
|
|
@@ -22,6 +22,9 @@ import {Message} from "../../libs/Message.sol";
|
|
|
22
22
|
import {StandardHookMetadata} from "./StandardHookMetadata.sol";
|
|
23
23
|
import {MailboxClient} from "../../client/MailboxClient.sol";
|
|
24
24
|
|
|
25
|
+
// ============ External Imports ============
|
|
26
|
+
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
27
|
+
|
|
25
28
|
/**
|
|
26
29
|
* @title AbstractMessageIdAuthHook
|
|
27
30
|
* @notice Message hook to inform an Abstract Message ID ISM of messages published through
|
|
@@ -31,8 +34,10 @@ abstract contract AbstractMessageIdAuthHook is
|
|
|
31
34
|
AbstractPostDispatchHook,
|
|
32
35
|
MailboxClient
|
|
33
36
|
{
|
|
37
|
+
using Address for address payable;
|
|
34
38
|
using StandardHookMetadata for bytes;
|
|
35
39
|
using Message for bytes;
|
|
40
|
+
using TypeCasts for bytes32;
|
|
36
41
|
|
|
37
42
|
// ============ Constants ============
|
|
38
43
|
|
|
@@ -68,7 +73,7 @@ abstract contract AbstractMessageIdAuthHook is
|
|
|
68
73
|
function _postDispatch(
|
|
69
74
|
bytes calldata metadata,
|
|
70
75
|
bytes calldata message
|
|
71
|
-
) internal override {
|
|
76
|
+
) internal virtual override {
|
|
72
77
|
bytes32 id = message.id();
|
|
73
78
|
require(
|
|
74
79
|
_isLatestDispatched(id),
|
|
@@ -82,20 +87,29 @@ abstract contract AbstractMessageIdAuthHook is
|
|
|
82
87
|
metadata.msgValue(0) < 2 ** 255,
|
|
83
88
|
"AbstractMessageIdAuthHook: msgValue must be less than 2 ** 255"
|
|
84
89
|
);
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
);
|
|
89
|
-
|
|
90
|
+
|
|
91
|
+
_sendMessageId(metadata, message);
|
|
92
|
+
|
|
93
|
+
uint256 _overpayment = msg.value - _quoteDispatch(metadata, message);
|
|
94
|
+
if (_overpayment > 0) {
|
|
95
|
+
address _refundAddress = metadata.refundAddress(
|
|
96
|
+
message.sender().bytes32ToAddress()
|
|
97
|
+
);
|
|
98
|
+
require(
|
|
99
|
+
_refundAddress != address(0),
|
|
100
|
+
"AbstractPostDispatchHook: no refund address"
|
|
101
|
+
);
|
|
102
|
+
payable(_refundAddress).sendValue(_overpayment);
|
|
103
|
+
}
|
|
90
104
|
}
|
|
91
105
|
|
|
92
106
|
/**
|
|
93
107
|
* @notice Send a message to the ISM.
|
|
94
108
|
* @param metadata The metadata for the hook caller
|
|
95
|
-
* @param
|
|
109
|
+
* @param message The message to send to the ISM
|
|
96
110
|
*/
|
|
97
111
|
function _sendMessageId(
|
|
98
112
|
bytes calldata metadata,
|
|
99
|
-
bytes
|
|
113
|
+
bytes calldata message
|
|
100
114
|
) internal virtual;
|
|
101
115
|
}
|
|
@@ -53,7 +53,7 @@ abstract contract AbstractMessageIdAuthorizedIsm is
|
|
|
53
53
|
// ============ Events ============
|
|
54
54
|
|
|
55
55
|
/// @notice Emitted when a message is received from the external bridge
|
|
56
|
-
event ReceivedMessage(bytes32 indexed messageId);
|
|
56
|
+
event ReceivedMessage(bytes32 indexed messageId, uint256 msgValue);
|
|
57
57
|
|
|
58
58
|
// ============ Initializer ============
|
|
59
59
|
|
|
@@ -101,7 +101,7 @@ abstract contract AbstractMessageIdAuthorizedIsm is
|
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
/**
|
|
104
|
-
* @notice Check if a message is verified through
|
|
104
|
+
* @notice Check if a message is verified through preVerifyMessage first.
|
|
105
105
|
* @param message Message to check.
|
|
106
106
|
*/
|
|
107
107
|
function isVerified(bytes calldata message) public view returns (bool) {
|
|
@@ -115,24 +115,31 @@ abstract contract AbstractMessageIdAuthorizedIsm is
|
|
|
115
115
|
* @dev Only callable by the authorized hook.
|
|
116
116
|
* @param messageId Hyperlane Id of the message.
|
|
117
117
|
*/
|
|
118
|
-
function
|
|
118
|
+
function preVerifyMessage(
|
|
119
|
+
bytes32 messageId,
|
|
120
|
+
uint256 msgValue
|
|
121
|
+
) public payable virtual {
|
|
119
122
|
require(
|
|
120
123
|
_isAuthorized(),
|
|
121
124
|
"AbstractMessageIdAuthorizedIsm: sender is not the hook"
|
|
122
125
|
);
|
|
123
126
|
require(
|
|
124
|
-
msg.value < 2 ** VERIFIED_MASK_INDEX,
|
|
125
|
-
"AbstractMessageIdAuthorizedIsm: msg.value
|
|
127
|
+
msg.value < 2 ** VERIFIED_MASK_INDEX && msg.value == msgValue,
|
|
128
|
+
"AbstractMessageIdAuthorizedIsm: invalid msg.value"
|
|
129
|
+
);
|
|
130
|
+
require(
|
|
131
|
+
verifiedMessages[messageId] == 0,
|
|
132
|
+
"AbstractMessageIdAuthorizedIsm: message already verified"
|
|
126
133
|
);
|
|
127
134
|
|
|
128
135
|
verifiedMessages[messageId] = msg.value.setBit(VERIFIED_MASK_INDEX);
|
|
129
|
-
emit ReceivedMessage(messageId);
|
|
136
|
+
emit ReceivedMessage(messageId, msgValue);
|
|
130
137
|
}
|
|
131
138
|
|
|
132
139
|
// ============ Internal Functions ============
|
|
133
140
|
|
|
134
141
|
/**
|
|
135
|
-
* @notice Check if sender is authorized to message `
|
|
142
|
+
* @notice Check if sender is authorized to message `preVerifyMessage`.
|
|
136
143
|
*/
|
|
137
144
|
function _isAuthorized() internal view virtual returns (bool);
|
|
138
145
|
}
|
|
@@ -44,6 +44,10 @@ contract ArbL2ToL1Ism is
|
|
|
44
44
|
// arbitrum nitro contract on L1 to forward verification
|
|
45
45
|
IOutbox public arbOutbox;
|
|
46
46
|
|
|
47
|
+
uint256 private constant DATA_LENGTH = 68;
|
|
48
|
+
|
|
49
|
+
uint256 private constant MESSAGE_ID_END = 36;
|
|
50
|
+
|
|
47
51
|
// ============ Constructor ============
|
|
48
52
|
|
|
49
53
|
constructor(address _bridge) CrossChainEnabledArbitrumL1(_bridge) {
|
|
@@ -110,13 +114,16 @@ contract ArbL2ToL1Ism is
|
|
|
110
114
|
l2Sender == TypeCasts.bytes32ToAddress(authorizedHook),
|
|
111
115
|
"ArbL2ToL1Ism: l2Sender != authorizedHook"
|
|
112
116
|
);
|
|
113
|
-
// this data is an abi encoded call of
|
|
114
|
-
require(
|
|
117
|
+
// this data is an abi encoded call of preVerifyMessage(bytes32 messageId)
|
|
118
|
+
require(
|
|
119
|
+
data.length == DATA_LENGTH,
|
|
120
|
+
"ArbL2ToL1Ism: invalid data length"
|
|
121
|
+
);
|
|
115
122
|
bytes32 messageId = message.id();
|
|
116
123
|
bytes32 convertedBytes;
|
|
117
124
|
assembly {
|
|
118
125
|
// data = 0x[4 bytes function signature][32 bytes messageId]
|
|
119
|
-
convertedBytes := mload(add(data,
|
|
126
|
+
convertedBytes := mload(add(data, MESSAGE_ID_END))
|
|
120
127
|
}
|
|
121
128
|
// check if the parsed message id matches the message id of the message
|
|
122
129
|
require(
|
|
@@ -44,7 +44,7 @@ contract ERC5164Ism is AbstractMessageIdAuthorizedIsm {
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
|
-
* @notice Check if sender is authorized to message `
|
|
47
|
+
* @notice Check if sender is authorized to message `preVerifyMessage`.
|
|
48
48
|
*/
|
|
49
49
|
function _isAuthorized() internal view override returns (bool) {
|
|
50
50
|
return msg.sender == executor;
|
|
@@ -49,7 +49,7 @@ contract OPStackIsm is
|
|
|
49
49
|
// ============ Internal function ============
|
|
50
50
|
|
|
51
51
|
/**
|
|
52
|
-
* @notice Check if sender is authorized to message `
|
|
52
|
+
* @notice Check if sender is authorized to message `preVerifyMessage`.
|
|
53
53
|
*/
|
|
54
54
|
function _isAuthorized() internal view override returns (bool) {
|
|
55
55
|
return
|
|
@@ -49,7 +49,7 @@ contract PolygonPosIsm is
|
|
|
49
49
|
// ============ Internal function ============
|
|
50
50
|
|
|
51
51
|
/**
|
|
52
|
-
* @notice Check if sender is authorized to message `
|
|
52
|
+
* @notice Check if sender is authorized to message `preVerifyMessage`.
|
|
53
53
|
*/
|
|
54
54
|
function _isAuthorized() internal view override returns (bool) {
|
|
55
55
|
return
|