@hyperlane-xyz/core 5.0.0 → 5.1.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/AttributeCheckpointFraud.sol +140 -0
- package/contracts/CheckpointFraudProofs.sol +143 -0
- package/contracts/client/Router.sol +4 -2
- package/contracts/hooks/OPL2ToL1Hook.sol +84 -0
- package/contracts/hooks/igp/InterchainGasPaymaster.sol +8 -8
- package/contracts/hooks/routing/DomainRoutingHook.sol +8 -7
- package/contracts/interfaces/IInterchainSecurityModule.sol +4 -1
- package/contracts/interfaces/hooks/IPostDispatchHook.sol +2 -1
- package/contracts/interfaces/isms/IWeightedMultisigIsm.sol +39 -0
- package/contracts/interfaces/optimism/ICrossDomainMessenger.sol +2 -0
- package/contracts/interfaces/optimism/IOptimismPortal.sol +28 -0
- package/contracts/isms/hook/OPL2ToL1Ism.sol +109 -0
- package/contracts/isms/libs/MerkleRootMultisigIsmMetadata.sol +16 -0
- package/contracts/isms/libs/MessageIdMultisigIsmMetadata.sol +16 -0
- package/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.sol +14 -9
- package/contracts/isms/multisig/AbstractMessageIdMultisigIsm.sol +13 -8
- package/contracts/isms/multisig/AbstractMultisigIsm.sol +47 -20
- package/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol +100 -0
- package/contracts/isms/multisig/StaticMultisigIsm.sol +10 -2
- package/contracts/isms/multisig/WeightedMultisigIsm.sol +67 -0
- package/contracts/isms/routing/DomainRoutingIsm.sol +4 -2
- package/contracts/libs/CheckpointLib.sol +41 -9
- package/contracts/libs/Merkle.sol +33 -3
- package/contracts/libs/OPL2ToL1Metadata.sol +62 -0
- package/contracts/libs/StaticWeightedValidatorSetFactory.sol +97 -0
- package/contracts/mock/MockArbBridge.sol +78 -0
- package/contracts/mock/MockERC4626YieldSharing.sol +80 -0
- package/contracts/mock/MockHyperlaneEnvironment.sol +2 -2
- package/contracts/mock/MockOptimism.sol +61 -0
- package/contracts/test/ERC20Test.sol +4 -0
- package/contracts/test/ERC4626/ERC4626Test.sol +1 -0
- package/contracts/token/extensions/HypERC4626.sol +102 -0
- package/contracts/token/extensions/HypERC4626Collateral.sol +111 -0
- package/contracts/token/extensions/{HypERC20CollateralVaultDeposit.sol → HypERC4626OwnerCollateral.sol} +3 -2
- package/dist/buildArtifact.js +1 -1
- package/dist/buildArtifact.json +1 -1
- package/dist/contracts/AttributeCheckpointFraud.d.ts +356 -0
- package/dist/contracts/AttributeCheckpointFraud.d.ts.map +1 -0
- package/dist/contracts/AttributeCheckpointFraud.js +2 -0
- package/dist/contracts/AttributeCheckpointFraud.js.map +1 -0
- package/dist/contracts/CheckpointFraudProofs.d.ts +200 -0
- package/dist/contracts/CheckpointFraudProofs.d.ts.map +1 -0
- package/dist/contracts/CheckpointFraudProofs.js +2 -0
- package/dist/contracts/CheckpointFraudProofs.js.map +1 -0
- package/dist/contracts/hooks/OPL2ToL1Hook.d.ts +396 -0
- package/dist/contracts/hooks/OPL2ToL1Hook.d.ts.map +1 -0
- package/dist/contracts/hooks/OPL2ToL1Hook.js +2 -0
- package/dist/contracts/hooks/OPL2ToL1Hook.js.map +1 -0
- package/dist/contracts/hooks/index.d.ts +1 -0
- package/dist/contracts/hooks/index.d.ts.map +1 -1
- package/dist/contracts/index.d.ts +2 -0
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm.d.ts +142 -0
- package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm.d.ts.map +1 -0
- package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm.js +2 -0
- package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm.js.map +1 -0
- package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.d.ts +2 -0
- package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.d.ts.map +1 -0
- package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.js +2 -0
- package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.js.map +1 -0
- package/dist/contracts/interfaces/isms/index.d.ts +2 -0
- package/dist/contracts/interfaces/isms/index.d.ts.map +1 -1
- package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger.d.ts +16 -1
- package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger.d.ts.map +1 -1
- package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger.d.ts +16 -1
- package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger.d.ts.map +1 -1
- package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger.d.ts +16 -1
- package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger.d.ts.map +1 -1
- package/dist/contracts/interfaces/optimism/IOptimismPortal.d.ts +91 -0
- package/dist/contracts/interfaces/optimism/IOptimismPortal.d.ts.map +1 -0
- package/dist/contracts/interfaces/optimism/IOptimismPortal.js +2 -0
- package/dist/contracts/interfaces/optimism/IOptimismPortal.js.map +1 -0
- package/dist/contracts/interfaces/optimism/index.d.ts +1 -0
- package/dist/contracts/interfaces/optimism/index.d.ts.map +1 -1
- package/dist/contracts/isms/hook/OPL2ToL1Ism.d.ts +273 -0
- package/dist/contracts/isms/hook/OPL2ToL1Ism.d.ts.map +1 -0
- package/dist/contracts/isms/hook/OPL2ToL1Ism.js +2 -0
- package/dist/contracts/isms/hook/OPL2ToL1Ism.js.map +1 -0
- package/dist/contracts/isms/hook/index.d.ts +1 -0
- package/dist/contracts/isms/hook/index.d.ts.map +1 -1
- package/dist/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.d.ts +16 -46
- package/dist/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.d.ts.map +1 -1
- package/dist/contracts/isms/multisig/AbstractMessageIdMultisigIsm.d.ts +16 -46
- package/dist/contracts/isms/multisig/AbstractMessageIdMultisigIsm.d.ts.map +1 -1
- package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig.d.ts +50 -0
- package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig.d.ts.map +1 -0
- package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig.js +2 -0
- package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig.js.map +1 -0
- package/dist/contracts/isms/multisig/{AbstractMultisigIsm.d.ts → AbstractMultisigIsm.sol/AbstractMultisigIsm.d.ts} +17 -17
- package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisigIsm.d.ts.map +1 -0
- package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisigIsm.js.map +1 -0
- package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/index.d.ts +3 -0
- package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/index.d.ts.map +1 -0
- package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/index.js +2 -0
- package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/index.js.map +1 -0
- package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm.d.ts +138 -0
- package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm.d.ts.map +1 -0
- package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm.js +2 -0
- package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm.js.map +1 -0
- package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.d.ts +2 -0
- package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.d.ts.map +1 -0
- package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.js +2 -0
- package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.js.map +1 -0
- package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm.d.ts +16 -16
- package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm.d.ts.map +1 -1
- package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm.d.ts +16 -1
- package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm.d.ts.map +1 -1
- package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm.d.ts +16 -1
- package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm.d.ts.map +1 -1
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm.d.ts +138 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm.d.ts.map +1 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm.js +2 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm.js.map +1 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm.d.ts +138 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm.d.ts.map +1 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm.js +2 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm.js.map +1 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory.d.ts +106 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory.d.ts.map +1 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory.js +2 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory.js.map +1 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm.d.ts +138 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm.d.ts.map +1 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm.js +2 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm.js.map +1 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory.d.ts +106 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory.d.ts.map +1 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory.js +2 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory.js.map +1 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/index.d.ts +6 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/index.d.ts.map +1 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/index.js +2 -0
- package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/index.js.map +1 -0
- package/dist/contracts/isms/multisig/index.d.ts +6 -1
- package/dist/contracts/isms/multisig/index.d.ts.map +1 -1
- package/dist/contracts/libs/StaticWeightedValidatorSetFactory.d.ts +106 -0
- package/dist/contracts/libs/StaticWeightedValidatorSetFactory.d.ts.map +1 -0
- package/dist/contracts/libs/StaticWeightedValidatorSetFactory.js +2 -0
- package/dist/contracts/libs/StaticWeightedValidatorSetFactory.js.map +1 -0
- package/dist/contracts/libs/index.d.ts +1 -0
- package/dist/contracts/libs/index.d.ts.map +1 -1
- package/dist/contracts/mock/MockArbBridge.sol/MockArbBridge.d.ts +162 -0
- package/dist/contracts/mock/MockArbBridge.sol/MockArbBridge.d.ts.map +1 -0
- package/dist/contracts/mock/MockArbBridge.sol/MockArbBridge.js +2 -0
- package/dist/contracts/mock/MockArbBridge.sol/MockArbBridge.js.map +1 -0
- package/dist/contracts/mock/MockArbBridge.sol/MockArbSys.d.ts +96 -0
- package/dist/contracts/mock/MockArbBridge.sol/MockArbSys.d.ts.map +1 -0
- package/dist/contracts/mock/MockArbBridge.sol/MockArbSys.js +2 -0
- package/dist/contracts/mock/MockArbBridge.sol/MockArbSys.js.map +1 -0
- package/dist/contracts/mock/MockArbBridge.sol/index.d.ts +3 -0
- package/dist/contracts/mock/MockArbBridge.sol/index.d.ts.map +1 -0
- package/dist/contracts/mock/MockArbBridge.sol/index.js +2 -0
- package/dist/contracts/mock/MockArbBridge.sol/index.js.map +1 -0
- package/dist/contracts/mock/MockERC4626YieldSharing.d.ts +853 -0
- package/dist/contracts/mock/MockERC4626YieldSharing.d.ts.map +1 -0
- package/dist/contracts/mock/MockERC4626YieldSharing.js +2 -0
- package/dist/contracts/mock/MockERC4626YieldSharing.js.map +1 -0
- package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts +31 -1
- package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts.map +1 -1
- package/dist/contracts/mock/MockOptimism.sol/MockOptimismMessenger.d.ts +218 -0
- package/dist/contracts/mock/MockOptimism.sol/MockOptimismMessenger.d.ts.map +1 -0
- package/dist/contracts/mock/MockOptimism.sol/MockOptimismMessenger.js +2 -0
- package/dist/contracts/mock/MockOptimism.sol/MockOptimismMessenger.js.map +1 -0
- package/dist/contracts/mock/MockOptimism.sol/MockOptimismPortal.d.ts +91 -0
- package/dist/contracts/mock/MockOptimism.sol/MockOptimismPortal.d.ts.map +1 -0
- package/dist/contracts/mock/MockOptimism.sol/MockOptimismPortal.js +2 -0
- package/dist/contracts/mock/MockOptimism.sol/MockOptimismPortal.js.map +1 -0
- package/dist/contracts/mock/MockOptimism.sol/index.d.ts +3 -0
- package/dist/contracts/mock/MockOptimism.sol/index.d.ts.map +1 -0
- package/dist/contracts/mock/MockOptimism.sol/index.js +2 -0
- package/dist/contracts/mock/MockOptimism.sol/index.js.map +1 -0
- package/dist/contracts/mock/index.d.ts +5 -0
- package/dist/contracts/mock/index.d.ts.map +1 -1
- package/dist/contracts/test/ERC20Test.sol/ERC20Test.d.ts +32 -1
- package/dist/contracts/test/ERC20Test.sol/ERC20Test.d.ts.map +1 -1
- package/dist/contracts/test/ERC20Test.sol/FiatTokenTest.d.ts +32 -1
- package/dist/contracts/test/ERC20Test.sol/FiatTokenTest.d.ts.map +1 -1
- package/dist/contracts/test/ERC20Test.sol/XERC20Test.d.ts +32 -1
- package/dist/contracts/test/ERC20Test.sol/XERC20Test.d.ts.map +1 -1
- package/dist/contracts/token/extensions/HypERC4626.d.ts +979 -0
- package/dist/contracts/token/extensions/HypERC4626.d.ts.map +1 -0
- package/dist/contracts/token/extensions/HypERC4626.js +2 -0
- package/dist/contracts/token/extensions/HypERC4626.js.map +1 -0
- package/dist/contracts/token/extensions/HypERC4626Collateral.d.ts +718 -0
- package/dist/contracts/token/extensions/HypERC4626Collateral.d.ts.map +1 -0
- package/dist/contracts/token/extensions/HypERC4626Collateral.js +2 -0
- package/dist/contracts/token/extensions/HypERC4626Collateral.js.map +1 -0
- package/dist/contracts/token/extensions/{HypERC20CollateralVaultDeposit.d.ts → HypERC4626OwnerCollateral.d.ts} +4 -4
- package/dist/contracts/token/extensions/HypERC4626OwnerCollateral.d.ts.map +1 -0
- package/dist/contracts/token/extensions/HypERC4626OwnerCollateral.js +2 -0
- package/dist/contracts/token/extensions/HypERC4626OwnerCollateral.js.map +1 -0
- package/dist/contracts/token/extensions/index.d.ts +3 -1
- package/dist/contracts/token/extensions/index.d.ts.map +1 -1
- package/dist/factories/contracts/AttributeCheckpointFraud__factory.d.ts +296 -0
- package/dist/factories/contracts/AttributeCheckpointFraud__factory.d.ts.map +1 -0
- package/dist/factories/contracts/AttributeCheckpointFraud__factory.js +394 -0
- package/dist/factories/contracts/AttributeCheckpointFraud__factory.js.map +1 -0
- package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts +239 -0
- package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts.map +1 -0
- package/dist/factories/contracts/CheckpointFraudProofs__factory.js +325 -0
- package/dist/factories/contracts/CheckpointFraudProofs__factory.js.map +1 -0
- package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
- package/dist/factories/contracts/Mailbox__factory.js +1 -1
- package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.js +1 -1
- package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.d.ts +252 -0
- package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.d.ts.map +1 -0
- package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.js +339 -0
- package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.js.map +1 -0
- package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/OPStackHook__factory.js +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 +1 -1
- package/dist/factories/contracts/hooks/PolygonPosHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/ProtocolFee__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/ProtocolFee__factory.js +1 -1
- package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js +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.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js +1 -1
- package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/index.d.ts +1 -0
- package/dist/factories/contracts/hooks/index.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/index.js +1 -0
- package/dist/factories/contracts/hooks/index.js.map +1 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.js +1 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.js +1 -1
- package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.js +1 -1
- package/dist/factories/contracts/index.d.ts +2 -0
- package/dist/factories/contracts/index.d.ts.map +1 -1
- package/dist/factories/contracts/index.js +2 -0
- package/dist/factories/contracts/index.js.map +1 -1
- package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm__factory.d.ts +64 -0
- package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm__factory.d.ts.map +1 -0
- package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm__factory.js +89 -0
- package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm__factory.js.map +1 -0
- package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.d.ts +2 -0
- package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.d.ts.map +1 -0
- package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.js +5 -0
- package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.js.map +1 -0
- package/dist/factories/contracts/interfaces/isms/index.d.ts +1 -0
- package/dist/factories/contracts/interfaces/isms/index.d.ts.map +1 -1
- package/dist/factories/contracts/interfaces/isms/index.js +1 -0
- package/dist/factories/contracts/interfaces/isms/index.js.map +1 -1
- package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger__factory.d.ts +10 -0
- package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger__factory.d.ts.map +1 -1
- package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger__factory.js +13 -0
- package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger__factory.js.map +1 -1
- package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger__factory.d.ts +10 -0
- package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger__factory.d.ts.map +1 -1
- package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger__factory.js +13 -0
- package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger__factory.js.map +1 -1
- package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger__factory.d.ts +10 -0
- package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger__factory.d.ts.map +1 -1
- package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger__factory.js +13 -0
- package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger__factory.js.map +1 -1
- package/dist/factories/contracts/interfaces/optimism/IOptimismPortal__factory.d.ts +44 -0
- package/dist/factories/contracts/interfaces/optimism/IOptimismPortal__factory.d.ts.map +1 -0
- package/dist/factories/contracts/interfaces/optimism/IOptimismPortal__factory.js +61 -0
- package/dist/factories/contracts/interfaces/optimism/IOptimismPortal__factory.js.map +1 -0
- package/dist/factories/contracts/interfaces/optimism/index.d.ts +1 -0
- package/dist/factories/contracts/interfaces/optimism/index.d.ts.map +1 -1
- package/dist/factories/contracts/interfaces/optimism/index.js +1 -0
- package/dist/factories/contracts/interfaces/optimism/index.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/ArbL2ToL1Ism__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js +1 -1
- package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js +1 -1
- package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts +169 -0
- package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js +234 -0
- package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js.map +1 -0
- package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/hook/index.d.ts +1 -0
- package/dist/factories/contracts/isms/hook/index.d.ts.map +1 -1
- package/dist/factories/contracts/isms/hook/index.js +1 -0
- package/dist/factories/contracts/isms/hook/index.js.map +1 -1
- package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/AbstractMerkleRootMultisigIsm__factory.d.ts +4 -36
- package/dist/factories/contracts/isms/multisig/AbstractMerkleRootMultisigIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/multisig/AbstractMerkleRootMultisigIsm__factory.js +4 -46
- package/dist/factories/contracts/isms/multisig/AbstractMerkleRootMultisigIsm__factory.js.map +1 -1
- package/dist/factories/contracts/isms/multisig/AbstractMessageIdMultisigIsm__factory.d.ts +4 -36
- package/dist/factories/contracts/isms/multisig/AbstractMessageIdMultisigIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/multisig/AbstractMessageIdMultisigIsm__factory.js +4 -46
- package/dist/factories/contracts/isms/multisig/AbstractMessageIdMultisigIsm__factory.js.map +1 -1
- package/dist/factories/contracts/isms/multisig/{AbstractMultisigIsm__factory.d.ts → AbstractMultisigIsm.sol/AbstractMultisigIsm__factory.d.ts} +10 -6
- package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisigIsm__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/multisig/{AbstractMultisigIsm__factory.js → AbstractMultisigIsm.sol/AbstractMultisigIsm__factory.js} +11 -5
- package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisigIsm__factory.js.map +1 -0
- package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig__factory.d.ts +23 -0
- package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig__factory.js +35 -0
- package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig__factory.js.map +1 -0
- package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/index.d.ts +3 -0
- package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/index.d.ts.map +1 -0
- package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/index.js +6 -0
- package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/index.js.map +1 -0
- package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm__factory.d.ts +88 -0
- package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm__factory.js +121 -0
- package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm__factory.js.map +1 -0
- package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.d.ts +2 -0
- package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.d.ts.map +1 -0
- package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.js +5 -0
- package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.js.map +1 -0
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm__factory.d.ts +9 -5
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm__factory.js +11 -5
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm__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.d.ts.map +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js.map +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +15 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +20 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js.map +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.d.ts.map +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js.map +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +15 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +20 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js.map +1 -1
- package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm__factory.d.ts +88 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm__factory.js +121 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm__factory.js.map +1 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.d.ts +85 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.js +124 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.js.map +1 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.d.ts +100 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.js +144 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.js.map +1 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.d.ts +85 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.js +124 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.js.map +1 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.d.ts +100 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.js +144 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.js.map +1 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/index.d.ts +6 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/index.d.ts.map +1 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/index.js +9 -0
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/index.js.map +1 -0
- package/dist/factories/contracts/isms/multisig/index.d.ts +3 -1
- package/dist/factories/contracts/isms/multisig/index.d.ts.map +1 -1
- package/dist/factories/contracts/isms/multisig/index.js +3 -1
- package/dist/factories/contracts/isms/multisig/index.js.map +1 -1
- package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js +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.d.ts.map +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js.map +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js.map +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 +1 -1
- package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.js +1 -1
- package/dist/factories/contracts/libs/StaticWeightedValidatorSetFactory__factory.d.ts +73 -0
- package/dist/factories/contracts/libs/StaticWeightedValidatorSetFactory__factory.d.ts.map +1 -0
- package/dist/factories/contracts/libs/StaticWeightedValidatorSetFactory__factory.js +101 -0
- package/dist/factories/contracts/libs/StaticWeightedValidatorSetFactory__factory.js.map +1 -0
- package/dist/factories/contracts/libs/index.d.ts +1 -0
- package/dist/factories/contracts/libs/index.d.ts.map +1 -1
- package/dist/factories/contracts/libs/index.js +1 -0
- package/dist/factories/contracts/libs/index.js.map +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js.map +1 -1
- package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbBridge__factory.d.ts +111 -0
- package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbBridge__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbBridge__factory.js +154 -0
- package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbBridge__factory.js.map +1 -0
- package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbSys__factory.d.ts +89 -0
- package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbSys__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbSys__factory.js +124 -0
- package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbSys__factory.js.map +1 -0
- package/dist/factories/contracts/mock/MockArbBridge.sol/index.d.ts +3 -0
- package/dist/factories/contracts/mock/MockArbBridge.sol/index.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockArbBridge.sol/index.js +6 -0
- package/dist/factories/contracts/mock/MockArbBridge.sol/index.js.map +1 -0
- package/dist/factories/contracts/mock/MockERC4626YieldSharing__factory.d.ts +643 -0
- package/dist/factories/contracts/mock/MockERC4626YieldSharing__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockERC4626YieldSharing__factory.js +855 -0
- package/dist/factories/contracts/mock/MockERC4626YieldSharing__factory.js.map +1 -0
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +21 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +27 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -1
- package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockMailbox__factory.js +1 -1
- package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.d.ts +119 -0
- package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.js +165 -0
- package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.js.map +1 -0
- package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.d.ts +60 -0
- package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.js +89 -0
- package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.js.map +1 -0
- package/dist/factories/contracts/mock/MockOptimism.sol/index.d.ts +3 -0
- package/dist/factories/contracts/mock/MockOptimism.sol/index.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockOptimism.sol/index.js +6 -0
- package/dist/factories/contracts/mock/MockOptimism.sol/index.js.map +1 -0
- package/dist/factories/contracts/mock/index.d.ts +3 -0
- package/dist/factories/contracts/mock/index.d.ts.map +1 -1
- package/dist/factories/contracts/mock/index.js +3 -0
- package/dist/factories/contracts/mock/index.js.map +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/ERC20Test__factory.d.ts +15 -1
- package/dist/factories/contracts/test/ERC20Test.sol/ERC20Test__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/ERC20Test__factory.js +19 -1
- package/dist/factories/contracts/test/ERC20Test.sol/ERC20Test__factory.js.map +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/FiatTokenTest__factory.d.ts +15 -1
- package/dist/factories/contracts/test/ERC20Test.sol/FiatTokenTest__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/FiatTokenTest__factory.js +19 -1
- package/dist/factories/contracts/test/ERC20Test.sol/FiatTokenTest__factory.js.map +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.d.ts +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.js +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.js.map +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.d.ts +15 -1
- package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.js +19 -1
- package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.js.map +1 -1
- package/dist/factories/contracts/test/ERC4626/ERC4626Test__factory.d.ts +1 -1
- package/dist/factories/contracts/test/ERC4626/ERC4626Test__factory.js +1 -1
- package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts +1 -1
- package/dist/factories/contracts/test/LightTestRecipient__factory.js +1 -1
- package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestGasRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -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.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js +1 -1
- package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestIsm__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 +1 -1
- package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js +1 -1
- package/dist/factories/contracts/test/TestMerkle__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMerkle__factory.js +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/TestRecipient__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestRecipient__factory.js +1 -1
- package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestRouter__factory.js +1 -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/token/HypERC20Collateral__factory.d.ts +1 -1
- package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/HypERC20Collateral__factory.js +1 -1
- package/dist/factories/contracts/token/HypERC20Collateral__factory.js.map +1 -1
- package/dist/factories/contracts/token/HypERC20__factory.d.ts +1 -1
- package/dist/factories/contracts/token/HypERC20__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/HypERC20__factory.js +1 -1
- package/dist/factories/contracts/token/HypERC20__factory.js.map +1 -1
- package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts +1 -1
- package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/HypERC721Collateral__factory.js +1 -1
- package/dist/factories/contracts/token/HypERC721Collateral__factory.js.map +1 -1
- package/dist/factories/contracts/token/HypERC721__factory.d.ts +1 -1
- package/dist/factories/contracts/token/HypERC721__factory.js +1 -1
- package/dist/factories/contracts/token/HypNative__factory.d.ts +1 -1
- package/dist/factories/contracts/token/HypNative__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/HypNative__factory.js +1 -1
- package/dist/factories/contracts/token/HypNative__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts +469 -0
- package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts.map +1 -0
- package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js +621 -0
- package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js.map +1 -0
- package/dist/factories/contracts/token/extensions/{HypERC20CollateralVaultDeposit__factory.d.ts → HypERC4626OwnerCollateral__factory.d.ts} +11 -11
- package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.d.ts.map +1 -0
- package/dist/factories/contracts/token/extensions/{HypERC20CollateralVaultDeposit__factory.js → HypERC4626OwnerCollateral__factory.js} +3 -3
- package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.js.map +1 -0
- package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts +699 -0
- package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts.map +1 -0
- package/dist/factories/contracts/token/extensions/HypERC4626__factory.js +923 -0
- package/dist/factories/contracts/token/extensions/HypERC4626__factory.js.map +1 -0
- package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypFiatToken__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypFiatToken__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/HypFiatToken__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypFiatToken__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/index.d.ts +3 -1
- package/dist/factories/contracts/token/extensions/index.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/index.js +3 -1
- package/dist/factories/contracts/token/extensions/index.js.map +1 -1
- package/dist/index.d.ts +46 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -2
- package/dist/index.js.map +1 -1
- package/package.json +5 -4
- package/dist/contracts/isms/multisig/AbstractMultisigIsm.d.ts.map +0 -1
- package/dist/contracts/isms/multisig/AbstractMultisigIsm.js.map +0 -1
- package/dist/contracts/token/extensions/HypERC20CollateralVaultDeposit.d.ts.map +0 -1
- package/dist/contracts/token/extensions/HypERC20CollateralVaultDeposit.js +0 -2
- package/dist/contracts/token/extensions/HypERC20CollateralVaultDeposit.js.map +0 -1
- package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm__factory.d.ts.map +0 -1
- package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm__factory.js.map +0 -1
- package/dist/factories/contracts/token/extensions/HypERC20CollateralVaultDeposit__factory.d.ts.map +0 -1
- package/dist/factories/contracts/token/extensions/HypERC20CollateralVaultDeposit__factory.js.map +0 -1
- /package/dist/contracts/isms/multisig/{AbstractMultisigIsm.js → AbstractMultisigIsm.sol/AbstractMultisigIsm.js} +0 -0
|
@@ -3,7 +3,7 @@ pragma solidity >=0.8.0;
|
|
|
3
3
|
|
|
4
4
|
// ============ Internal Imports ============
|
|
5
5
|
import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
|
|
6
|
-
import {
|
|
6
|
+
import {AbstractMultisig} from "./AbstractMultisigIsm.sol";
|
|
7
7
|
import {MerkleRootMultisigIsmMetadata} from "../../isms/libs/MerkleRootMultisigIsmMetadata.sol";
|
|
8
8
|
import {Message} from "../../libs/Message.sol";
|
|
9
9
|
import {MerkleLib} from "../../libs/Merkle.sol";
|
|
@@ -22,23 +22,19 @@ import {CheckpointLib} from "../../libs/CheckpointLib.sol";
|
|
|
22
22
|
* This abstract contract can be overridden for customizing the `validatorsAndThreshold()` (static or dynamic).
|
|
23
23
|
* @dev May be adapted in future to support batch message verification against a single root.
|
|
24
24
|
*/
|
|
25
|
-
abstract contract AbstractMerkleRootMultisigIsm is
|
|
25
|
+
abstract contract AbstractMerkleRootMultisigIsm is AbstractMultisig {
|
|
26
26
|
using MerkleRootMultisigIsmMetadata for bytes;
|
|
27
27
|
using Message for bytes;
|
|
28
28
|
|
|
29
29
|
// ============ Constants ============
|
|
30
30
|
|
|
31
|
-
// solhint-disable-next-line const-name-snakecase
|
|
32
|
-
uint8 public constant moduleType =
|
|
33
|
-
uint8(IInterchainSecurityModule.Types.MERKLE_ROOT_MULTISIG);
|
|
34
|
-
|
|
35
31
|
/**
|
|
36
|
-
* @inheritdoc
|
|
32
|
+
* @inheritdoc AbstractMultisig
|
|
37
33
|
*/
|
|
38
34
|
function digest(
|
|
39
35
|
bytes calldata _metadata,
|
|
40
36
|
bytes calldata _message
|
|
41
|
-
) internal pure override returns (bytes32) {
|
|
37
|
+
) internal pure virtual override returns (bytes32) {
|
|
42
38
|
require(
|
|
43
39
|
_metadata.messageIndex() <= _metadata.signedIndex(),
|
|
44
40
|
"Invalid merkle index metadata"
|
|
@@ -61,7 +57,7 @@ abstract contract AbstractMerkleRootMultisigIsm is AbstractMultisigIsm {
|
|
|
61
57
|
}
|
|
62
58
|
|
|
63
59
|
/**
|
|
64
|
-
* @inheritdoc
|
|
60
|
+
* @inheritdoc AbstractMultisig
|
|
65
61
|
*/
|
|
66
62
|
function signatureAt(
|
|
67
63
|
bytes calldata _metadata,
|
|
@@ -69,4 +65,13 @@ abstract contract AbstractMerkleRootMultisigIsm is AbstractMultisigIsm {
|
|
|
69
65
|
) internal pure virtual override returns (bytes calldata) {
|
|
70
66
|
return _metadata.signatureAt(_index);
|
|
71
67
|
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @inheritdoc AbstractMultisig
|
|
71
|
+
*/
|
|
72
|
+
function signatureCount(
|
|
73
|
+
bytes calldata _metadata
|
|
74
|
+
) public pure override returns (uint256) {
|
|
75
|
+
return _metadata.signatureCount();
|
|
76
|
+
}
|
|
72
77
|
}
|
|
@@ -3,7 +3,7 @@ pragma solidity >=0.8.0;
|
|
|
3
3
|
|
|
4
4
|
// ============ Internal Imports ============
|
|
5
5
|
import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
|
|
6
|
-
import {
|
|
6
|
+
import {AbstractMultisig} from "./AbstractMultisigIsm.sol";
|
|
7
7
|
import {MessageIdMultisigIsmMetadata} from "../libs/MessageIdMultisigIsmMetadata.sol";
|
|
8
8
|
import {Message} from "../../libs/Message.sol";
|
|
9
9
|
import {CheckpointLib} from "../../libs/CheckpointLib.sol";
|
|
@@ -18,18 +18,14 @@ import {CheckpointLib} from "../../libs/CheckpointLib.sol";
|
|
|
18
18
|
* @dev Provides the default implementation of verifying signatures over a checkpoint related to a specific message ID.
|
|
19
19
|
* This abstract contract can be customized to change the `validatorsAndThreshold()` (static or dynamic).
|
|
20
20
|
*/
|
|
21
|
-
abstract contract AbstractMessageIdMultisigIsm is
|
|
21
|
+
abstract contract AbstractMessageIdMultisigIsm is AbstractMultisig {
|
|
22
22
|
using Message for bytes;
|
|
23
23
|
using MessageIdMultisigIsmMetadata for bytes;
|
|
24
24
|
|
|
25
25
|
// ============ Constants ============
|
|
26
26
|
|
|
27
|
-
// solhint-disable-next-line const-name-snakecase
|
|
28
|
-
uint8 public constant moduleType =
|
|
29
|
-
uint8(IInterchainSecurityModule.Types.MESSAGE_ID_MULTISIG);
|
|
30
|
-
|
|
31
27
|
/**
|
|
32
|
-
* @inheritdoc
|
|
28
|
+
* @inheritdoc AbstractMultisig
|
|
33
29
|
*/
|
|
34
30
|
function digest(
|
|
35
31
|
bytes calldata _metadata,
|
|
@@ -46,7 +42,7 @@ abstract contract AbstractMessageIdMultisigIsm is AbstractMultisigIsm {
|
|
|
46
42
|
}
|
|
47
43
|
|
|
48
44
|
/**
|
|
49
|
-
* @inheritdoc
|
|
45
|
+
* @inheritdoc AbstractMultisig
|
|
50
46
|
*/
|
|
51
47
|
function signatureAt(
|
|
52
48
|
bytes calldata _metadata,
|
|
@@ -54,4 +50,13 @@ abstract contract AbstractMessageIdMultisigIsm is AbstractMultisigIsm {
|
|
|
54
50
|
) internal pure virtual override returns (bytes calldata) {
|
|
55
51
|
return _metadata.signatureAt(_index);
|
|
56
52
|
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* @inheritdoc AbstractMultisig
|
|
56
|
+
*/
|
|
57
|
+
function signatureCount(
|
|
58
|
+
bytes calldata _metadata
|
|
59
|
+
) public pure override returns (uint256) {
|
|
60
|
+
return _metadata.signatureCount();
|
|
61
|
+
}
|
|
57
62
|
}
|
|
@@ -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
|
// ============ External Imports ============
|
|
5
17
|
import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
|
|
6
18
|
|
|
@@ -11,30 +23,13 @@ import {Message} from "../../libs/Message.sol";
|
|
|
11
23
|
import {MerkleLib} from "../../libs/Merkle.sol";
|
|
12
24
|
|
|
13
25
|
/**
|
|
14
|
-
* @title
|
|
15
|
-
* @notice Manages per-domain m-of-n Validator sets
|
|
16
|
-
* interchain messages.
|
|
26
|
+
* @title AbstractMultisig
|
|
27
|
+
* @notice Manages per-domain m-of-n Validator sets
|
|
17
28
|
* @dev See ./AbstractMerkleRootMultisigIsm.sol and ./AbstractMessageIdMultisigIsm.sol
|
|
18
29
|
* for concrete implementations of `digest` and `signatureAt`.
|
|
19
30
|
* @dev See ./StaticMultisigIsm.sol for concrete implementations.
|
|
20
31
|
*/
|
|
21
|
-
abstract contract
|
|
22
|
-
// ============ Virtual Functions ============
|
|
23
|
-
// ======= OVERRIDE THESE TO IMPLEMENT =======
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* @notice Returns the set of validators responsible for verifying _message
|
|
27
|
-
* and the number of signatures required
|
|
28
|
-
* @dev Can change based on the content of _message
|
|
29
|
-
* @dev Signatures provided to `verify` must be consistent with validator ordering
|
|
30
|
-
* @param _message Hyperlane formatted interchain message
|
|
31
|
-
* @return validators The array of validator addresses
|
|
32
|
-
* @return threshold The number of validator signatures needed
|
|
33
|
-
*/
|
|
34
|
-
function validatorsAndThreshold(
|
|
35
|
-
bytes calldata _message
|
|
36
|
-
) public view virtual returns (address[] memory, uint8);
|
|
37
|
-
|
|
32
|
+
abstract contract AbstractMultisig {
|
|
38
33
|
/**
|
|
39
34
|
* @notice Returns the digest to be used for signature verification.
|
|
40
35
|
* @param _metadata ABI encoded module metadata
|
|
@@ -57,6 +52,38 @@ abstract contract AbstractMultisigIsm is IMultisigIsm {
|
|
|
57
52
|
uint256 _index
|
|
58
53
|
) internal pure virtual returns (bytes calldata);
|
|
59
54
|
|
|
55
|
+
/**
|
|
56
|
+
* @notice Returns the number of signatures in the metadata.
|
|
57
|
+
* @param _metadata ABI encoded module metadata
|
|
58
|
+
* @return count The number of signatures
|
|
59
|
+
*/
|
|
60
|
+
function signatureCount(
|
|
61
|
+
bytes calldata _metadata
|
|
62
|
+
) public pure virtual returns (uint256);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* @title AbstractMultisigIsm
|
|
67
|
+
* @notice Manages per-domain m-of-n Validator sets of AbstractMultisig that are used to verify
|
|
68
|
+
* interchain messages.
|
|
69
|
+
*/
|
|
70
|
+
abstract contract AbstractMultisigIsm is AbstractMultisig {
|
|
71
|
+
// ============ Virtual Functions ============
|
|
72
|
+
// ======= OVERRIDE THESE TO IMPLEMENT =======
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* @notice Returns the set of validators responsible for verifying _message
|
|
76
|
+
* and the number of signatures required
|
|
77
|
+
* @dev Can change based on the content of _message
|
|
78
|
+
* @dev Signatures provided to `verify` must be consistent with validator ordering
|
|
79
|
+
* @param _message Hyperlane formatted interchain message
|
|
80
|
+
* @return validators The array of validator addresses
|
|
81
|
+
* @return threshold The number of validator signatures needed
|
|
82
|
+
*/
|
|
83
|
+
function validatorsAndThreshold(
|
|
84
|
+
bytes calldata _message
|
|
85
|
+
) public view virtual returns (address[] memory, uint8);
|
|
86
|
+
|
|
60
87
|
// ============ Public Functions ============
|
|
61
88
|
|
|
62
89
|
/**
|
|
@@ -0,0 +1,100 @@
|
|
|
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
|
+
// ============ External Imports ============
|
|
17
|
+
import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
|
|
18
|
+
import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
|
|
19
|
+
import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
|
|
20
|
+
// ============ Internal Imports ============
|
|
21
|
+
import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
|
|
22
|
+
import {IStaticWeightedMultisigIsm} from "../../interfaces/isms/IWeightedMultisigIsm.sol";
|
|
23
|
+
import {Message} from "../../libs/Message.sol";
|
|
24
|
+
|
|
25
|
+
import {MerkleLib} from "../../libs/Merkle.sol";
|
|
26
|
+
import {AbstractMultisig} from "./AbstractMultisigIsm.sol";
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @title AbstractStaticWeightedMultisigIsm
|
|
30
|
+
* @notice Manages per-domain m-of-n Validator sets with stake weights that are used to verify
|
|
31
|
+
* interchain messages.
|
|
32
|
+
*/
|
|
33
|
+
abstract contract AbstractStaticWeightedMultisigIsm is
|
|
34
|
+
AbstractMultisig,
|
|
35
|
+
IStaticWeightedMultisigIsm
|
|
36
|
+
{
|
|
37
|
+
// ============ Constants ============
|
|
38
|
+
|
|
39
|
+
// total weight of all validators
|
|
40
|
+
uint96 public constant TOTAL_WEIGHT = 1e10;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* @inheritdoc IStaticWeightedMultisigIsm
|
|
44
|
+
*/
|
|
45
|
+
function validatorsAndThresholdWeight(
|
|
46
|
+
bytes calldata /* _message*/
|
|
47
|
+
) public view virtual returns (ValidatorInfo[] memory, uint96);
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @inheritdoc IInterchainSecurityModule
|
|
51
|
+
*/
|
|
52
|
+
function verify(
|
|
53
|
+
bytes calldata _metadata,
|
|
54
|
+
bytes calldata _message
|
|
55
|
+
) public view virtual returns (bool) {
|
|
56
|
+
bytes32 _digest = digest(_metadata, _message);
|
|
57
|
+
(
|
|
58
|
+
ValidatorInfo[] memory _validators,
|
|
59
|
+
uint96 _thresholdWeight
|
|
60
|
+
) = validatorsAndThresholdWeight(_message);
|
|
61
|
+
|
|
62
|
+
require(
|
|
63
|
+
_thresholdWeight > 0 && _thresholdWeight <= TOTAL_WEIGHT,
|
|
64
|
+
"Invalid threshold weight"
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
uint256 _validatorCount = Math.min(
|
|
68
|
+
_validators.length,
|
|
69
|
+
signatureCount(_metadata)
|
|
70
|
+
);
|
|
71
|
+
uint256 _validatorIndex = 0;
|
|
72
|
+
uint96 _totalWeight = 0;
|
|
73
|
+
|
|
74
|
+
// assumes that signatures are ordered by validator
|
|
75
|
+
for (
|
|
76
|
+
uint256 i = 0;
|
|
77
|
+
_totalWeight < _thresholdWeight && i < _validatorCount;
|
|
78
|
+
++i
|
|
79
|
+
) {
|
|
80
|
+
address _signer = ECDSA.recover(_digest, signatureAt(_metadata, i));
|
|
81
|
+
// loop through remaining validators until we find a match
|
|
82
|
+
while (
|
|
83
|
+
_validatorIndex < _validatorCount &&
|
|
84
|
+
_signer != _validators[_validatorIndex].signingAddress
|
|
85
|
+
) {
|
|
86
|
+
++_validatorIndex;
|
|
87
|
+
}
|
|
88
|
+
// fail if we never found a match
|
|
89
|
+
require(_validatorIndex < _validatorCount, "Invalid signer");
|
|
90
|
+
|
|
91
|
+
// add the weight of the current validator
|
|
92
|
+
_totalWeight += _validators[_validatorIndex].weight;
|
|
93
|
+
}
|
|
94
|
+
require(
|
|
95
|
+
_totalWeight >= _thresholdWeight,
|
|
96
|
+
"Insufficient validator weight"
|
|
97
|
+
);
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
2
|
pragma solidity >=0.8.0;
|
|
3
3
|
// ============ Internal Imports ============
|
|
4
|
+
|
|
5
|
+
import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
|
|
4
6
|
import {AbstractMultisigIsm} from "./AbstractMultisigIsm.sol";
|
|
5
7
|
import {AbstractMerkleRootMultisigIsm} from "./AbstractMerkleRootMultisigIsm.sol";
|
|
6
8
|
import {AbstractMessageIdMultisigIsm} from "./AbstractMessageIdMultisigIsm.sol";
|
|
@@ -34,7 +36,10 @@ abstract contract AbstractMetaProxyMultisigIsm is AbstractMultisigIsm {
|
|
|
34
36
|
contract StaticMerkleRootMultisigIsm is
|
|
35
37
|
AbstractMerkleRootMultisigIsm,
|
|
36
38
|
AbstractMetaProxyMultisigIsm
|
|
37
|
-
{
|
|
39
|
+
{
|
|
40
|
+
uint8 public constant moduleType =
|
|
41
|
+
uint8(IInterchainSecurityModule.Types.MERKLE_ROOT_MULTISIG);
|
|
42
|
+
}
|
|
38
43
|
|
|
39
44
|
/**
|
|
40
45
|
* @title StaticMessageIdMultisigIsm
|
|
@@ -44,7 +49,10 @@ contract StaticMerkleRootMultisigIsm is
|
|
|
44
49
|
contract StaticMessageIdMultisigIsm is
|
|
45
50
|
AbstractMessageIdMultisigIsm,
|
|
46
51
|
AbstractMetaProxyMultisigIsm
|
|
47
|
-
{
|
|
52
|
+
{
|
|
53
|
+
uint8 public constant moduleType =
|
|
54
|
+
uint8(IInterchainSecurityModule.Types.MESSAGE_ID_MULTISIG);
|
|
55
|
+
}
|
|
48
56
|
|
|
49
57
|
// solhint-enable no-empty-blocks
|
|
50
58
|
|
|
@@ -0,0 +1,67 @@
|
|
|
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
|
+
import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
|
|
17
|
+
import {AbstractMerkleRootMultisigIsm} from "./AbstractMerkleRootMultisigIsm.sol";
|
|
18
|
+
import {AbstractMessageIdMultisigIsm} from "./AbstractMessageIdMultisigIsm.sol";
|
|
19
|
+
import {AbstractStaticWeightedMultisigIsm} from "./AbstractWeightedMultisigIsm.sol";
|
|
20
|
+
import {AbstractMultisigIsm} from "./AbstractMultisigIsm.sol";
|
|
21
|
+
import {StaticWeightedValidatorSetFactory} from "../../libs/StaticWeightedValidatorSetFactory.sol";
|
|
22
|
+
import {MetaProxy} from "../../libs/MetaProxy.sol";
|
|
23
|
+
|
|
24
|
+
abstract contract AbstractMetaProxyWeightedMultisigIsm is
|
|
25
|
+
AbstractStaticWeightedMultisigIsm
|
|
26
|
+
{
|
|
27
|
+
/**
|
|
28
|
+
* @inheritdoc AbstractStaticWeightedMultisigIsm
|
|
29
|
+
*/
|
|
30
|
+
function validatorsAndThresholdWeight(
|
|
31
|
+
bytes calldata /* _message*/
|
|
32
|
+
) public pure override returns (ValidatorInfo[] memory, uint96) {
|
|
33
|
+
return abi.decode(MetaProxy.metadata(), (ValidatorInfo[], uint96));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
contract StaticMerkleRootWeightedMultisigIsm is
|
|
38
|
+
AbstractMerkleRootMultisigIsm,
|
|
39
|
+
AbstractMetaProxyWeightedMultisigIsm
|
|
40
|
+
{
|
|
41
|
+
uint8 public constant moduleType =
|
|
42
|
+
uint8(IInterchainSecurityModule.Types.WEIGHT_MERKLE_ROOT_MULTISIG);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
contract StaticMessageIdWeightedMultisigIsm is
|
|
46
|
+
AbstractMessageIdMultisigIsm,
|
|
47
|
+
AbstractMetaProxyWeightedMultisigIsm
|
|
48
|
+
{
|
|
49
|
+
uint8 public constant moduleType =
|
|
50
|
+
uint8(IInterchainSecurityModule.Types.WEIGHT_MESSAGE_ID_MULTISIG);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
contract StaticMerkleRootWeightedMultisigIsmFactory is
|
|
54
|
+
StaticWeightedValidatorSetFactory
|
|
55
|
+
{
|
|
56
|
+
function _deployImplementation() internal override returns (address) {
|
|
57
|
+
return address(new StaticMerkleRootWeightedMultisigIsm());
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
contract StaticMessageIdWeightedMultisigIsmFactory is
|
|
62
|
+
StaticWeightedValidatorSetFactory
|
|
63
|
+
{
|
|
64
|
+
function _deployImplementation() internal override returns (address) {
|
|
65
|
+
return address(new StaticMessageIdWeightedMultisigIsm());
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -85,8 +85,10 @@ contract DomainRoutingIsm is AbstractRoutingIsm, OwnableUpgradeable {
|
|
|
85
85
|
uint32 origin
|
|
86
86
|
) public view virtual returns (IInterchainSecurityModule) {
|
|
87
87
|
(bool contained, bytes32 _module) = _modules.tryGet(origin);
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
if (contained) {
|
|
89
|
+
return IInterchainSecurityModule(_module.bytes32ToAddress());
|
|
90
|
+
}
|
|
91
|
+
revert(_originNotFoundError(origin));
|
|
90
92
|
}
|
|
91
93
|
|
|
92
94
|
// ============ Public Functions ============
|
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
2
|
pragma solidity >=0.8.0;
|
|
3
3
|
|
|
4
|
-
// ============ External Imports ============
|
|
5
4
|
import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
|
|
5
|
+
import {TypeCasts} from "./TypeCasts.sol";
|
|
6
|
+
|
|
7
|
+
struct Checkpoint {
|
|
8
|
+
uint32 origin;
|
|
9
|
+
bytes32 merkleTree;
|
|
10
|
+
bytes32 root;
|
|
11
|
+
uint32 index;
|
|
12
|
+
bytes32 messageId;
|
|
13
|
+
}
|
|
6
14
|
|
|
7
15
|
library CheckpointLib {
|
|
16
|
+
using TypeCasts for bytes32;
|
|
17
|
+
|
|
8
18
|
/**
|
|
9
19
|
* @notice Returns the digest validators are expected to sign when signing checkpoints.
|
|
10
20
|
* @param _origin The origin domain of the checkpoint.
|
|
11
|
-
* @param
|
|
21
|
+
* @param _merkleTreeHook The address of the origin merkle tree hook as bytes32.
|
|
12
22
|
* @param _checkpointRoot The root of the checkpoint.
|
|
13
23
|
* @param _checkpointIndex The index of the checkpoint.
|
|
14
24
|
* @param _messageId The message ID of the checkpoint.
|
|
@@ -17,12 +27,12 @@ library CheckpointLib {
|
|
|
17
27
|
*/
|
|
18
28
|
function digest(
|
|
19
29
|
uint32 _origin,
|
|
20
|
-
bytes32
|
|
30
|
+
bytes32 _merkleTreeHook,
|
|
21
31
|
bytes32 _checkpointRoot,
|
|
22
32
|
uint32 _checkpointIndex,
|
|
23
33
|
bytes32 _messageId
|
|
24
34
|
) internal pure returns (bytes32) {
|
|
25
|
-
bytes32 _domainHash = domainHash(_origin,
|
|
35
|
+
bytes32 _domainHash = domainHash(_origin, _merkleTreeHook);
|
|
26
36
|
return
|
|
27
37
|
ECDSA.toEthSignedMessageHash(
|
|
28
38
|
keccak256(
|
|
@@ -36,16 +46,40 @@ library CheckpointLib {
|
|
|
36
46
|
);
|
|
37
47
|
}
|
|
38
48
|
|
|
49
|
+
/**
|
|
50
|
+
* @notice Returns the digest validators are expected to sign when signing checkpoints.
|
|
51
|
+
* @param checkpoint The checkpoint (struct) to hash.
|
|
52
|
+
* @return The digest of the checkpoint.
|
|
53
|
+
*/
|
|
54
|
+
function digest(
|
|
55
|
+
Checkpoint memory checkpoint
|
|
56
|
+
) internal pure returns (bytes32) {
|
|
57
|
+
return
|
|
58
|
+
digest(
|
|
59
|
+
checkpoint.origin,
|
|
60
|
+
checkpoint.merkleTree,
|
|
61
|
+
checkpoint.root,
|
|
62
|
+
checkpoint.index,
|
|
63
|
+
checkpoint.messageId
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function merkleTreeAddress(
|
|
68
|
+
Checkpoint calldata checkpoint
|
|
69
|
+
) internal pure returns (address) {
|
|
70
|
+
return checkpoint.merkleTree.bytes32ToAddress();
|
|
71
|
+
}
|
|
72
|
+
|
|
39
73
|
/**
|
|
40
74
|
* @notice Returns the domain hash that validators are expected to use
|
|
41
75
|
* when signing checkpoints.
|
|
42
76
|
* @param _origin The origin domain of the checkpoint.
|
|
43
|
-
* @param
|
|
77
|
+
* @param _merkleTreeHook The address of the origin merkle tree as bytes32.
|
|
44
78
|
* @return The domain hash.
|
|
45
79
|
*/
|
|
46
80
|
function domainHash(
|
|
47
81
|
uint32 _origin,
|
|
48
|
-
bytes32
|
|
82
|
+
bytes32 _merkleTreeHook
|
|
49
83
|
) internal pure returns (bytes32) {
|
|
50
84
|
// Including the origin merkle tree address in the signature allows the slashing
|
|
51
85
|
// protocol to enroll multiple trees. Otherwise, a valid signature for
|
|
@@ -53,8 +87,6 @@ library CheckpointLib {
|
|
|
53
87
|
// The slashing protocol should slash if validators sign attestations for
|
|
54
88
|
// anything other than a whitelisted tree.
|
|
55
89
|
return
|
|
56
|
-
keccak256(
|
|
57
|
-
abi.encodePacked(_origin, _originmerkleTreeHook, "HYPERLANE")
|
|
58
|
-
);
|
|
90
|
+
keccak256(abi.encodePacked(_origin, _merkleTreeHook, "HYPERLANE"));
|
|
59
91
|
}
|
|
60
92
|
}
|
|
@@ -3,15 +3,15 @@ pragma solidity >=0.6.11;
|
|
|
3
3
|
|
|
4
4
|
// work based on eth2 deposit contract, which is used under CC0-1.0
|
|
5
5
|
|
|
6
|
+
uint256 constant TREE_DEPTH = 32;
|
|
7
|
+
uint256 constant MAX_LEAVES = 2 ** TREE_DEPTH - 1;
|
|
8
|
+
|
|
6
9
|
/**
|
|
7
10
|
* @title MerkleLib
|
|
8
11
|
* @author Celo Labs Inc.
|
|
9
12
|
* @notice An incremental merkle tree modeled on the eth2 deposit contract.
|
|
10
13
|
**/
|
|
11
14
|
library MerkleLib {
|
|
12
|
-
uint256 internal constant TREE_DEPTH = 32;
|
|
13
|
-
uint256 internal constant MAX_LEAVES = 2 ** TREE_DEPTH - 1;
|
|
14
|
-
|
|
15
15
|
/**
|
|
16
16
|
* @notice Struct representing incremental merkle tree. Contains current
|
|
17
17
|
* branch and the number of inserted leaves in the tree.
|
|
@@ -140,6 +140,36 @@ library MerkleLib {
|
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
+
/**
|
|
144
|
+
* @notice Calculates and returns the merkle root as if the index is
|
|
145
|
+
* the topmost leaf in the tree.
|
|
146
|
+
* @param _item Merkle leaf
|
|
147
|
+
* @param _branch Merkle proof
|
|
148
|
+
* @param _index Index of `_item` in tree
|
|
149
|
+
* @dev Replaces siblings greater than the index (right subtrees) with zeroes.
|
|
150
|
+
* @return _current Calculated merkle root
|
|
151
|
+
**/
|
|
152
|
+
function reconstructRoot(
|
|
153
|
+
bytes32 _item,
|
|
154
|
+
bytes32[TREE_DEPTH] memory _branch, // cheaper than calldata indexing
|
|
155
|
+
uint256 _index
|
|
156
|
+
) internal pure returns (bytes32 _current) {
|
|
157
|
+
_current = _item;
|
|
158
|
+
|
|
159
|
+
bytes32[TREE_DEPTH] memory _zeroes = zeroHashes();
|
|
160
|
+
|
|
161
|
+
for (uint256 i = 0; i < TREE_DEPTH; i++) {
|
|
162
|
+
uint256 _ithBit = (_index >> i) & 0x01;
|
|
163
|
+
// cheaper than calldata indexing _branch[i*32:(i+1)*32];
|
|
164
|
+
if (_ithBit == 1) {
|
|
165
|
+
_current = keccak256(abi.encodePacked(_branch[i], _current));
|
|
166
|
+
} else {
|
|
167
|
+
// remove right subtree from proof
|
|
168
|
+
_current = keccak256(abi.encodePacked(_current, _zeroes[i]));
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
143
173
|
// keccak256 zero hashes
|
|
144
174
|
bytes32 internal constant Z_0 =
|
|
145
175
|
hex"0000000000000000000000000000000000000000000000000000000000000000";
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @title Hyperlane OPL2ToL1Metadata Library
|
|
6
|
+
* @notice Library for formatted metadata used by OPL2ToL1Ism
|
|
7
|
+
*/
|
|
8
|
+
library OPL2ToL1Metadata {
|
|
9
|
+
// bottom offset to the start of message id in the metadata
|
|
10
|
+
uint256 private constant MESSAGE_ID_OFFSET = 88;
|
|
11
|
+
// from IOptimismPortal.WithdrawalTransaction
|
|
12
|
+
// Σ {
|
|
13
|
+
// nonce = 32 bytes
|
|
14
|
+
// PADDING + sender = 32 bytes
|
|
15
|
+
// PADDING + target = 32 bytes
|
|
16
|
+
// value = 32 bytes
|
|
17
|
+
// gasLimit = 32 bytes
|
|
18
|
+
// _data
|
|
19
|
+
// OFFSET = 32 bytes
|
|
20
|
+
// LENGTH = 32 bytes
|
|
21
|
+
// } = 252 bytes
|
|
22
|
+
uint256 private constant FIXED_METADATA_LENGTH = 252;
|
|
23
|
+
// metadata here is double encoded call relayMessage(..., verifyMessageId)
|
|
24
|
+
// Σ {
|
|
25
|
+
// _selector = 4 bytes
|
|
26
|
+
// _nonce = 32 bytes
|
|
27
|
+
// PADDING + _sender = 32 bytes
|
|
28
|
+
// PADDING + _target = 32 bytes
|
|
29
|
+
// _value = 32 bytes
|
|
30
|
+
// _minGasLimit = 32 bytes
|
|
31
|
+
// _data
|
|
32
|
+
// OFFSET = 32 bytes
|
|
33
|
+
// LENGTH = 32 bytes
|
|
34
|
+
// PADDING + verifyMessageId = 64 bytes
|
|
35
|
+
// } = 292 bytes
|
|
36
|
+
uint256 private constant MESSENGER_CALLDATA_LENGTH = 292;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @notice Returns the message ID.
|
|
40
|
+
* @param _metadata OptimismPortal.WithdrawalTransaction encoded calldata
|
|
41
|
+
* @return ID of `_metadata`
|
|
42
|
+
*/
|
|
43
|
+
function messageId(
|
|
44
|
+
bytes calldata _metadata
|
|
45
|
+
) internal pure returns (bytes32) {
|
|
46
|
+
uint256 metadataLength = _metadata.length;
|
|
47
|
+
return
|
|
48
|
+
bytes32(
|
|
49
|
+
_metadata[metadataLength - MESSAGE_ID_OFFSET:metadataLength -
|
|
50
|
+
MESSAGE_ID_OFFSET +
|
|
51
|
+
32]
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function checkCalldataLength(
|
|
56
|
+
bytes calldata _metadata
|
|
57
|
+
) internal pure returns (bool) {
|
|
58
|
+
return
|
|
59
|
+
_metadata.length ==
|
|
60
|
+
MESSENGER_CALLDATA_LENGTH + FIXED_METADATA_LENGTH;
|
|
61
|
+
}
|
|
62
|
+
}
|