@hyperlane-xyz/core 1.3.8-beta0 → 1.4.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/hooks/ERC5164/ERC5164MessageHook.sol +95 -0
- package/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.sol +30 -0
- package/contracts/hooks/OptimismMessageHook.sol +4 -2
- package/contracts/isms/{native/AbstractNativeISM.sol → hook/AbstractHookISM.sol} +17 -9
- package/contracts/isms/hook/CrossChainEnabled.sol +57 -0
- package/contracts/isms/hook/ERC5164ISM.sol +75 -0
- package/contracts/isms/hook/optimism/CrossChainEnabledOptimism.sol +50 -0
- package/contracts/isms/hook/optimism/LibOptimism.sol +41 -0
- package/contracts/isms/{native → hook/optimism}/OptimismISM.sol +21 -10
- package/contracts/middleware/InterchainAccountRouter.sol +8 -14
- package/contracts/mock/MockERC5164.sol +26 -0
- package/dist/@openzeppelin/contracts/index.d.ts +0 -2
- package/dist/@openzeppelin/contracts/index.d.ts.map +1 -1
- package/dist/contracts/hooks/ERC5164/ERC5164MessageHook.d.ts +75 -0
- package/dist/contracts/hooks/ERC5164/ERC5164MessageHook.d.ts.map +1 -0
- package/dist/contracts/hooks/ERC5164/ERC5164MessageHook.js +4 -0
- package/dist/contracts/hooks/ERC5164/ERC5164MessageHook.js.map +1 -0
- package/dist/contracts/hooks/ERC5164/index.d.ts +4 -0
- package/dist/contracts/hooks/ERC5164/index.d.ts.map +1 -0
- package/dist/contracts/hooks/ERC5164/index.js.map +1 -0
- package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.d.ts +72 -0
- package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.d.ts.map +1 -0
- package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.js +4 -0
- package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.js.map +1 -0
- package/dist/contracts/hooks/ERC5164/interfaces/index.d.ts +2 -0
- package/dist/contracts/hooks/ERC5164/interfaces/index.d.ts.map +1 -0
- package/dist/contracts/hooks/ERC5164/interfaces/index.js.map +1 -0
- package/dist/contracts/hooks/index.d.ts +2 -0
- package/dist/contracts/hooks/index.d.ts.map +1 -1
- package/dist/contracts/hooks/index.js +1 -0
- package/dist/contracts/hooks/index.js.map +1 -1
- package/dist/contracts/index.d.ts +0 -1
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/isms/{native/AbstractNativeISM.d.ts → hook/AbstractHookISM.d.ts} +14 -14
- package/dist/contracts/isms/hook/AbstractHookISM.d.ts.map +1 -0
- package/dist/contracts/isms/{native/AbstractNativeISM.js → hook/AbstractHookISM.js} +1 -1
- package/dist/contracts/isms/hook/AbstractHookISM.js.map +1 -0
- package/dist/contracts/isms/hook/CrossChainEnabled.d.ts +28 -0
- package/dist/contracts/isms/hook/CrossChainEnabled.d.ts.map +1 -0
- package/dist/contracts/isms/hook/CrossChainEnabled.js +4 -0
- package/dist/contracts/isms/hook/CrossChainEnabled.js.map +1 -0
- package/dist/contracts/isms/hook/ERC5164ISM.d.ts +107 -0
- package/dist/contracts/isms/hook/ERC5164ISM.d.ts.map +1 -0
- package/dist/contracts/{libs/TestMerkle.sol/MerkleTree.js → isms/hook/ERC5164ISM.js} +1 -1
- package/dist/contracts/isms/hook/ERC5164ISM.js.map +1 -0
- package/dist/contracts/isms/hook/index.d.ts +6 -0
- package/dist/contracts/isms/hook/index.d.ts.map +1 -0
- package/dist/contracts/isms/hook/index.js +4 -0
- package/dist/contracts/isms/hook/index.js.map +1 -0
- package/dist/contracts/isms/hook/optimism/CrossChainEnabledOptimism.d.ts +28 -0
- package/dist/contracts/isms/hook/optimism/CrossChainEnabledOptimism.d.ts.map +1 -0
- package/dist/contracts/{CheckpointFraudProofs.js → isms/hook/optimism/CrossChainEnabledOptimism.js} +1 -1
- package/dist/contracts/isms/hook/optimism/CrossChainEnabledOptimism.js.map +1 -0
- package/dist/contracts/isms/hook/optimism/LibOptimism.d.ts +28 -0
- package/dist/contracts/isms/hook/optimism/LibOptimism.d.ts.map +1 -0
- package/dist/contracts/isms/hook/optimism/LibOptimism.js +4 -0
- package/dist/contracts/isms/hook/optimism/LibOptimism.js.map +1 -0
- package/dist/contracts/isms/{native → hook/optimism}/OptimismISM.d.ts +18 -18
- package/dist/contracts/isms/hook/optimism/OptimismISM.d.ts.map +1 -0
- package/dist/contracts/isms/hook/optimism/OptimismISM.js.map +1 -0
- package/dist/contracts/isms/hook/optimism/index.d.ts +4 -0
- package/dist/contracts/isms/hook/optimism/index.d.ts.map +1 -0
- package/dist/contracts/isms/hook/optimism/index.js.map +1 -0
- package/dist/contracts/isms/index.d.ts +2 -2
- package/dist/contracts/isms/index.d.ts.map +1 -1
- package/dist/contracts/libs/index.d.ts +0 -2
- package/dist/contracts/libs/index.d.ts.map +1 -1
- package/dist/contracts/libs/index.js +0 -1
- package/dist/contracts/libs/index.js.map +1 -1
- package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.d.ts +72 -0
- package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.d.ts.map +1 -0
- package/dist/{@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger.js → contracts/mock/MockERC5164.sol/MockMessageDispatcher.js} +1 -1
- package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.js.map +1 -0
- package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.d.ts +44 -0
- package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.d.ts.map +1 -0
- package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.js +4 -0
- package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.js.map +1 -0
- package/dist/contracts/mock/MockERC5164.sol/index.d.ts +3 -0
- package/dist/contracts/mock/MockERC5164.sol/index.d.ts.map +1 -0
- package/dist/contracts/mock/MockERC5164.sol/index.js.map +1 -0
- package/dist/contracts/mock/index.d.ts +2 -0
- package/dist/contracts/mock/index.d.ts.map +1 -1
- package/dist/contracts/mock/index.js +1 -0
- package/dist/contracts/mock/index.js.map +1 -1
- package/dist/factories/@openzeppelin/contracts/index.d.ts +0 -1
- package/dist/factories/@openzeppelin/contracts/index.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts/index.js +1 -2
- package/dist/factories/@openzeppelin/contracts/index.js.map +1 -1
- package/dist/factories/contracts/hooks/ERC5164/ERC5164MessageHook__factory.d.ts +45 -0
- package/dist/factories/contracts/hooks/ERC5164/ERC5164MessageHook__factory.d.ts.map +1 -0
- package/dist/factories/contracts/hooks/ERC5164/ERC5164MessageHook__factory.js +125 -0
- package/dist/factories/contracts/hooks/ERC5164/ERC5164MessageHook__factory.js.map +1 -0
- package/dist/factories/contracts/hooks/ERC5164/index.d.ts +3 -0
- package/dist/factories/contracts/hooks/ERC5164/index.d.ts.map +1 -0
- package/dist/factories/{@openzeppelin/contracts/vendor → contracts/hooks/ERC5164}/index.js +4 -2
- package/dist/factories/contracts/hooks/ERC5164/index.js.map +1 -0
- package/dist/factories/{@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger__factory.d.ts → contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.d.ts} +5 -12
- package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.d.ts.map +1 -0
- package/dist/factories/{@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger__factory.js → contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.js} +26 -59
- package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.js.map +1 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/index.d.ts +2 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/index.d.ts.map +1 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/index.js +9 -0
- package/dist/factories/contracts/hooks/ERC5164/interfaces/index.js.map +1 -0
- package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/index.d.ts +1 -0
- package/dist/factories/contracts/hooks/index.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/index.js +25 -1
- package/dist/factories/contracts/hooks/index.js.map +1 -1
- package/dist/factories/contracts/index.d.ts +0 -1
- package/dist/factories/contracts/index.d.ts.map +1 -1
- package/dist/factories/contracts/index.js +1 -3
- package/dist/factories/contracts/index.js.map +1 -1
- package/dist/factories/contracts/isms/{native/AbstractNativeISM__factory.d.ts → hook/AbstractHookISM__factory.d.ts} +5 -5
- package/dist/factories/contracts/isms/hook/AbstractHookISM__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/{native/AbstractNativeISM__factory.js → hook/AbstractHookISM__factory.js} +9 -9
- package/dist/factories/contracts/isms/hook/AbstractHookISM__factory.js.map +1 -0
- package/dist/factories/contracts/isms/hook/CrossChainEnabled__factory.d.ts +17 -0
- package/dist/factories/contracts/isms/hook/CrossChainEnabled__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/hook/CrossChainEnabled__factory.js +39 -0
- package/dist/factories/contracts/isms/hook/CrossChainEnabled__factory.js.map +1 -0
- package/dist/factories/contracts/isms/hook/ERC5164ISM__factory.d.ts +59 -0
- package/dist/factories/contracts/isms/hook/ERC5164ISM__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/hook/ERC5164ISM__factory.js +176 -0
- package/dist/factories/contracts/isms/hook/ERC5164ISM__factory.js.map +1 -0
- package/dist/factories/contracts/isms/hook/index.d.ts +5 -0
- package/dist/factories/contracts/isms/hook/index.d.ts.map +1 -0
- package/dist/factories/contracts/isms/hook/index.js +37 -0
- package/dist/factories/contracts/isms/hook/index.js.map +1 -0
- package/dist/factories/contracts/isms/hook/optimism/CrossChainEnabledOptimism__factory.d.ts +17 -0
- package/dist/factories/contracts/isms/hook/optimism/CrossChainEnabledOptimism__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/hook/optimism/CrossChainEnabledOptimism__factory.js +39 -0
- package/dist/factories/contracts/isms/hook/optimism/CrossChainEnabledOptimism__factory.js.map +1 -0
- package/dist/factories/contracts/isms/hook/optimism/LibOptimism__factory.d.ts +25 -0
- package/dist/factories/contracts/isms/hook/optimism/LibOptimism__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/hook/optimism/LibOptimism__factory.js +46 -0
- package/dist/factories/contracts/isms/hook/optimism/LibOptimism__factory.js.map +1 -0
- package/dist/factories/contracts/isms/hook/optimism/OptimismISM__factory.d.ts +70 -0
- package/dist/factories/contracts/isms/hook/optimism/OptimismISM__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/hook/optimism/OptimismISM__factory.js +215 -0
- package/dist/factories/contracts/isms/hook/optimism/OptimismISM__factory.js.map +1 -0
- package/dist/factories/contracts/isms/hook/optimism/index.d.ts +4 -0
- package/dist/factories/contracts/isms/hook/optimism/index.d.ts.map +1 -0
- package/dist/factories/contracts/isms/hook/optimism/index.js +13 -0
- package/dist/factories/contracts/isms/hook/optimism/index.js.map +1 -0
- package/dist/factories/contracts/isms/index.d.ts +1 -1
- package/dist/factories/contracts/isms/index.d.ts.map +1 -1
- package/dist/factories/contracts/isms/index.js +2 -2
- package/dist/factories/contracts/isms/index.js.map +1 -1
- package/dist/factories/contracts/libs/index.d.ts +0 -1
- package/dist/factories/contracts/libs/index.d.ts.map +1 -1
- package/dist/factories/contracts/libs/index.js +1 -25
- package/dist/factories/contracts/libs/index.js.map +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +3 -3
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +5 -10
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js.map +1 -1
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.d.ts +48 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.js +107 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.js.map +1 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.d.ts +31 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.js +60 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.js.map +1 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/index.d.ts +3 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/index.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/index.js +11 -0
- package/dist/factories/contracts/mock/MockERC5164.sol/index.js.map +1 -0
- package/dist/factories/contracts/mock/index.d.ts +1 -0
- package/dist/factories/contracts/mock/index.d.ts.map +1 -1
- package/dist/factories/contracts/mock/index.js +25 -1
- package/dist/factories/contracts/mock/index.js.map +1 -1
- package/dist/index.d.ts +20 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -11
- package/dist/index.js.map +1 -1
- package/package.json +4 -5
- package/dist/@openzeppelin/contracts/vendor/index.d.ts +0 -3
- package/dist/@openzeppelin/contracts/vendor/index.d.ts.map +0 -1
- package/dist/@openzeppelin/contracts/vendor/index.js.map +0 -1
- package/dist/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger.d.ts +0 -102
- package/dist/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger.d.ts.map +0 -1
- package/dist/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger.js.map +0 -1
- package/dist/@openzeppelin/contracts/vendor/optimism/index.d.ts +0 -2
- package/dist/@openzeppelin/contracts/vendor/optimism/index.d.ts.map +0 -1
- package/dist/@openzeppelin/contracts/vendor/optimism/index.js.map +0 -1
- package/dist/contracts/CheckpointFraudProofs.d.ts +0 -103
- package/dist/contracts/CheckpointFraudProofs.d.ts.map +0 -1
- package/dist/contracts/CheckpointFraudProofs.js.map +0 -1
- package/dist/contracts/isms/native/AbstractNativeISM.d.ts.map +0 -1
- package/dist/contracts/isms/native/AbstractNativeISM.js.map +0 -1
- package/dist/contracts/isms/native/OptimismISM.d.ts.map +0 -1
- package/dist/contracts/isms/native/OptimismISM.js.map +0 -1
- package/dist/contracts/isms/native/index.d.ts +0 -3
- package/dist/contracts/isms/native/index.d.ts.map +0 -1
- package/dist/contracts/isms/native/index.js.map +0 -1
- package/dist/contracts/libs/TestMerkle.sol/MerkleTree.d.ts +0 -77
- package/dist/contracts/libs/TestMerkle.sol/MerkleTree.d.ts.map +0 -1
- package/dist/contracts/libs/TestMerkle.sol/MerkleTree.js.map +0 -1
- package/dist/contracts/libs/TestMerkle.sol/index.d.ts +0 -2
- package/dist/contracts/libs/TestMerkle.sol/index.d.ts.map +0 -1
- package/dist/contracts/libs/TestMerkle.sol/index.js.map +0 -1
- package/dist/factories/@openzeppelin/contracts/vendor/index.d.ts +0 -2
- package/dist/factories/@openzeppelin/contracts/vendor/index.d.ts.map +0 -1
- package/dist/factories/@openzeppelin/contracts/vendor/index.js.map +0 -1
- package/dist/factories/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger__factory.d.ts.map +0 -1
- package/dist/factories/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger__factory.js.map +0 -1
- package/dist/factories/@openzeppelin/contracts/vendor/optimism/index.d.ts +0 -2
- package/dist/factories/@openzeppelin/contracts/vendor/optimism/index.d.ts.map +0 -1
- package/dist/factories/@openzeppelin/contracts/vendor/optimism/index.js +0 -9
- package/dist/factories/@openzeppelin/contracts/vendor/optimism/index.js.map +0 -1
- package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts +0 -45
- package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts.map +0 -1
- package/dist/factories/contracts/CheckpointFraudProofs__factory.js +0 -231
- package/dist/factories/contracts/CheckpointFraudProofs__factory.js.map +0 -1
- package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.d.ts.map +0 -1
- package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.js.map +0 -1
- package/dist/factories/contracts/isms/native/OptimismISM__factory.d.ts +0 -66
- package/dist/factories/contracts/isms/native/OptimismISM__factory.d.ts.map +0 -1
- package/dist/factories/contracts/isms/native/OptimismISM__factory.js +0 -194
- package/dist/factories/contracts/isms/native/OptimismISM__factory.js.map +0 -1
- package/dist/factories/contracts/isms/native/index.d.ts +0 -3
- package/dist/factories/contracts/isms/native/index.d.ts.map +0 -1
- package/dist/factories/contracts/isms/native/index.js +0 -11
- package/dist/factories/contracts/isms/native/index.js.map +0 -1
- package/dist/factories/contracts/libs/TestMerkle.sol/MerkleTree__factory.d.ts +0 -41
- package/dist/factories/contracts/libs/TestMerkle.sol/MerkleTree__factory.d.ts.map +0 -1
- package/dist/factories/contracts/libs/TestMerkle.sol/MerkleTree__factory.js +0 -151
- package/dist/factories/contracts/libs/TestMerkle.sol/MerkleTree__factory.js.map +0 -1
- package/dist/factories/contracts/libs/TestMerkle.sol/index.d.ts +0 -2
- package/dist/factories/contracts/libs/TestMerkle.sol/index.d.ts.map +0 -1
- package/dist/factories/contracts/libs/TestMerkle.sol/index.js +0 -9
- package/dist/factories/contracts/libs/TestMerkle.sol/index.js.map +0 -1
- package/docs/book.css +0 -13
- package/docs/book.toml +0 -12
- package/docs/solidity.min.js +0 -74
- package/docs/src/README.md +0 -15
- package/docs/src/SUMMARY.md +0 -128
- package/docs/src/contracts/GasRouter.sol/abstract.GasRouter.md +0 -124
- package/docs/src/contracts/HyperlaneConnectionClient.sol/abstract.HyperlaneConnectionClient.md +0 -191
- package/docs/src/contracts/Mailbox.sol/contract.Mailbox.md +0 -251
- package/docs/src/contracts/OwnableMulticall.sol/contract.OwnableMulticall.md +0 -41
- package/docs/src/contracts/PausableReentrancyGuard.sol/abstract.PausableReentrancyGuardUpgradeable.md +0 -100
- package/docs/src/contracts/README.md +0 -19
- package/docs/src/contracts/Router.sol/abstract.Router.md +0 -255
- package/docs/src/contracts/ValidatorAnnounce.sol/contract.ValidatorAnnounce.md +0 -117
- package/docs/src/contracts/hooks/OptimismMessageHook.sol/contract.OptimismMessageHook.md +0 -71
- package/docs/src/contracts/hooks/README.md +0 -4
- package/docs/src/contracts/igps/InterchainGasPaymaster.sol/contract.InterchainGasPaymaster.md +0 -231
- package/docs/src/contracts/igps/OverheadIgp.sol/contract.OverheadIgp.md +0 -161
- package/docs/src/contracts/igps/README.md +0 -6
- package/docs/src/contracts/igps/gas-oracles/README.md +0 -4
- package/docs/src/contracts/igps/gas-oracles/StorageGasOracle.sol/contract.StorageGasOracle.md +0 -114
- package/docs/src/contracts/interfaces/IGasOracle.sol/interface.IGasOracle.md +0 -25
- package/docs/src/contracts/interfaces/IHyperlaneConnectionClient.sol/interface.IHyperlaneConnectionClient.md +0 -43
- package/docs/src/contracts/interfaces/IInterchainGasPaymaster.sol/interface.IInterchainGasPaymaster.md +0 -33
- package/docs/src/contracts/interfaces/IInterchainSecurityModule.sol/interface.IInterchainSecurityModule.md +0 -55
- package/docs/src/contracts/interfaces/IInterchainSecurityModule.sol/interface.ISpecifiesInterchainSecurityModule.md +0 -12
- package/docs/src/contracts/interfaces/ILiquidityLayerMessageRecipient.sol/interface.ILiquidityLayerMessageRecipient.md +0 -13
- package/docs/src/contracts/interfaces/ILiquidityLayerRouter.sol/interface.ILiquidityLayerRouter.md +0 -19
- package/docs/src/contracts/interfaces/IMailbox.sol/interface.IMailbox.md +0 -103
- package/docs/src/contracts/interfaces/IMessageRecipient.sol/interface.IMessageRecipient.md +0 -12
- package/docs/src/contracts/interfaces/IRouter.sol/interface.IRouter.md +0 -33
- package/docs/src/contracts/interfaces/IValidatorAnnounce.sol/interface.IValidatorAnnounce.md +0 -78
- package/docs/src/contracts/interfaces/README.md +0 -17
- package/docs/src/contracts/interfaces/hooks/IMessageHook.sol/interface.IMessageHook.md +0 -12
- package/docs/src/contracts/interfaces/hooks/README.md +0 -4
- package/docs/src/contracts/interfaces/isms/IAggregationIsm.sol/interface.IAggregationIsm.md +0 -36
- package/docs/src/contracts/interfaces/isms/IMultisigIsm.sol/interface.IMultisigIsm.md +0 -36
- package/docs/src/contracts/interfaces/isms/IRoutingIsm.sol/interface.IRoutingIsm.md +0 -31
- package/docs/src/contracts/interfaces/isms/README.md +0 -6
- package/docs/src/contracts/interfaces/middleware/IInterchainAccountRouter.sol/interface.IInterchainAccountRouter.md +0 -64
- package/docs/src/contracts/interfaces/middleware/IInterchainQueryRouter.sol/interface.IInterchainQueryRouter.md +0 -21
- package/docs/src/contracts/interfaces/middleware/README.md +0 -5
- package/docs/src/contracts/isms/README.md +0 -7
- package/docs/src/contracts/isms/aggregation/AbstractAggregationIsm.sol/abstract.AbstractAggregationIsm.md +0 -60
- package/docs/src/contracts/isms/aggregation/README.md +0 -6
- package/docs/src/contracts/isms/aggregation/StaticAggregationIsm.sol/contract.StaticAggregationIsm.md +0 -30
- package/docs/src/contracts/isms/aggregation/StaticAggregationIsmFactory.sol/contract.StaticAggregationIsmFactory.md +0 -15
- package/docs/src/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.sol/abstract.AbstractMerkleRootMultisigIsm.md +0 -78
- package/docs/src/contracts/isms/multisig/AbstractMessageIdMultisigIsm.sol/abstract.AbstractMessageIdMultisigIsm.md +0 -69
- package/docs/src/contracts/isms/multisig/AbstractMultisigIsm.sol/abstract.AbstractMultisigIsm.md +0 -102
- package/docs/src/contracts/isms/multisig/LegacyMultisigIsm.sol/contract.LegacyMultisigIsm.md +0 -355
- package/docs/src/contracts/isms/multisig/README.md +0 -12
- package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/abstract.AbstractMetaProxyMultisigIsm.md +0 -36
- package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMerkleRootMultisigIsm.md +0 -11
- package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMerkleRootMultisigIsmFactory.md +0 -15
- package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMessageIdMultisigIsm.md +0 -10
- package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMessageIdMultisigIsmFactory.md +0 -15
- package/docs/src/contracts/isms/native/AbstractNativeISM.sol/abstract.AbstractNativeISM.md +0 -44
- package/docs/src/contracts/isms/native/OptimismISM.sol/contract.OptimismISM.md +0 -66
- package/docs/src/contracts/isms/native/README.md +0 -5
- package/docs/src/contracts/isms/routing/AbstractRoutingIsm.sol/abstract.AbstractRoutingIsm.md +0 -55
- package/docs/src/contracts/isms/routing/DomainRoutingIsm.sol/contract.DomainRoutingIsm.md +0 -112
- package/docs/src/contracts/isms/routing/DomainRoutingIsmFactory.sol/contract.DomainRoutingIsmFactory.md +0 -47
- package/docs/src/contracts/isms/routing/InterchainAccountIsm.sol/contract.InterchainAccountIsm.md +0 -44
- package/docs/src/contracts/isms/routing/README.md +0 -7
- package/docs/src/contracts/libs/Call.sol/library.CallLib.md +0 -124
- package/docs/src/contracts/libs/CheckpointLib.sol/library.CheckpointLib.md +0 -61
- package/docs/src/contracts/libs/EnumerableMapExtended.sol/library.EnumerableMapExtended.md +0 -63
- package/docs/src/contracts/libs/LegacyCheckpointLib.sol/library.LegacyCheckpointLib.md +0 -55
- package/docs/src/contracts/libs/Merkle.sol/library.MerkleLib.md +0 -354
- package/docs/src/contracts/libs/Message.sol/library.Message.md +0 -304
- package/docs/src/contracts/libs/MetaProxy.sol/library.MetaProxy.md +0 -36
- package/docs/src/contracts/libs/MinimalProxy.sol/library.MinimalProxy.md +0 -34
- package/docs/src/contracts/libs/README.md +0 -16
- package/docs/src/contracts/libs/StaticMOfNAddressSetFactory.sol/abstract.StaticMOfNAddressSetFactory.md +0 -123
- package/docs/src/contracts/libs/TestMerkle.sol/contract.MerkleTree.md +0 -66
- package/docs/src/contracts/libs/TypeCasts.sol/library.TypeCasts.md +0 -19
- package/docs/src/contracts/libs/ValidatorAnnouncements.sol/library.ValidatorAnnouncements.md +0 -31
- package/docs/src/contracts/libs/isms/AggregationIsmMetadata.sol/library.AggregationIsmMetadata.md +0 -97
- package/docs/src/contracts/libs/isms/LegacyMultisigIsmMetadata.sol/library.LegacyMultisigIsmMetadata.md +0 -296
- package/docs/src/contracts/libs/isms/MerkleRootMultisigIsmMetadata.sol/library.MerkleRootMultisigIsmMetadata.md +0 -177
- package/docs/src/contracts/libs/isms/MessageIdMultisigIsmMetadata.sol/library.MessageIdMultisigIsmMetadata.md +0 -109
- package/docs/src/contracts/libs/isms/README.md +0 -7
- package/docs/src/contracts/libs/middleware/InterchainAccountMessage.sol/library.InterchainAccountMessage.md +0 -134
- package/docs/src/contracts/libs/middleware/InterchainQueryMessage.sol/library.InterchainQueryMessage.md +0 -203
- package/docs/src/contracts/libs/middleware/README.md +0 -5
- package/docs/src/contracts/middleware/InterchainAccountRouter.sol/contract.InterchainAccountRouter.md +0 -545
- package/docs/src/contracts/middleware/InterchainQueryRouter.sol/contract.InterchainQueryRouter.md +0 -119
- package/docs/src/contracts/middleware/README.md +0 -6
- package/docs/src/contracts/middleware/liquidity-layer/LiquidityLayerRouter.sol/contract.LiquidityLayerRouter.md +0 -81
- package/docs/src/contracts/middleware/liquidity-layer/README.md +0 -6
- package/docs/src/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.sol/contract.CircleBridgeAdapter.md +0 -197
- package/docs/src/contracts/middleware/liquidity-layer/adapters/PortalAdapter.sol/contract.PortalAdapter.md +0 -189
- package/docs/src/contracts/middleware/liquidity-layer/adapters/README.md +0 -5
- package/docs/src/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter.sol/interface.ILiquidityLayerAdapter.md +0 -23
- package/docs/src/contracts/middleware/liquidity-layer/interfaces/README.md +0 -6
- package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.sol/interface.ICircleMessageTransmitter.md +0 -54
- package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger.sol/interface.ITokenMessenger.md +0 -92
- package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/README.md +0 -5
- package/docs/src/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.sol/interface.IPortalTokenBridge.md +0 -131
- package/docs/src/contracts/middleware/liquidity-layer/interfaces/portal/README.md +0 -4
- package/docs/src/contracts/mock/MockCircleMessageTransmitter.sol/contract.MockCircleMessageTransmitter.md +0 -58
- package/docs/src/contracts/mock/MockCircleTokenMessenger.sol/contract.MockCircleTokenMessenger.md +0 -44
- package/docs/src/contracts/mock/MockHyperlaneEnvironment.sol/contract.MockHyperlaneEnvironment.md +0 -69
- package/docs/src/contracts/mock/MockMailbox.sol/contract.MockMailbox.md +0 -137
- package/docs/src/contracts/mock/MockPortalBridge.sol/contract.MockPortalBridge.md +0 -82
- package/docs/src/contracts/mock/MockToken.sol/contract.MockToken.md +0 -22
- package/docs/src/contracts/mock/README.md +0 -9
- package/docs/src/contracts/test/LightTestRecipient.sol/contract.LightTestRecipient.md +0 -15
- package/docs/src/contracts/test/README.md +0 -20
- package/docs/src/contracts/test/TestGasRouter.sol/contract.TestGasRouter.md +0 -27
- package/docs/src/contracts/test/TestHyperlaneConnectionClient.sol/contract.TestHyperlaneConnectionClient.md +0 -29
- package/docs/src/contracts/test/TestInterchainGasPaymaster.sol/contract.TestInterchainGasPaymaster.md +0 -30
- package/docs/src/contracts/test/TestLegacyMultisigIsm.sol/contract.TestLegacyMultisigIsm.md +0 -15
- package/docs/src/contracts/test/TestLiquidityLayerMessageRecipient.sol/contract.TestLiquidityLayerMessageRecipient.md +0 -23
- package/docs/src/contracts/test/TestMailbox.sol/contract.TestMailbox.md +0 -29
- package/docs/src/contracts/test/TestMerkle.sol/contract.TestMerkle.md +0 -50
- package/docs/src/contracts/test/TestMessage.sol/contract.TestMessage.md +0 -68
- package/docs/src/contracts/test/TestMultisigIsm.sol/contract.TestMultisigIsm.md +0 -51
- package/docs/src/contracts/test/TestQuery.sol/contract.TestQuery.md +0 -45
- package/docs/src/contracts/test/TestQuerySender.sol/contract.TestQuerySender.md +0 -128
- package/docs/src/contracts/test/TestRecipient.sol/contract.TestRecipient.md +0 -78
- package/docs/src/contracts/test/TestRouter.sol/contract.TestRouter.md +0 -63
- package/docs/src/contracts/test/TestSendReceiver.sol/contract.TestSendReceiver.md +0 -49
- package/docs/src/contracts/test/TestTokenRecipient.sol/contract.TestTokenRecipient.md +0 -80
- package/docs/src/contracts/test/bad-recipient/BadRecipient1.sol/contract.BadRecipient1.md +0 -15
- package/docs/src/contracts/test/bad-recipient/BadRecipient2.sol/contract.BadRecipient2.md +0 -12
- package/docs/src/contracts/test/bad-recipient/BadRecipient3.sol/contract.BadRecipient3.md +0 -15
- package/docs/src/contracts/test/bad-recipient/BadRecipient5.sol/contract.BadRecipient5.md +0 -15
- package/docs/src/contracts/test/bad-recipient/BadRecipient6.sol/contract.BadRecipient6.md +0 -15
- package/docs/src/contracts/test/bad-recipient/README.md +0 -8
- package/docs/src/contracts/upgrade/README.md +0 -4
- package/docs/src/contracts/upgrade/Versioned.sol/contract.Versioned.md +0 -14
- /package/dist/{@openzeppelin/contracts/vendor → contracts/hooks/ERC5164}/index.js +0 -0
- /package/dist/{@openzeppelin/contracts/vendor/optimism → contracts/hooks/ERC5164/interfaces}/index.js +0 -0
- /package/dist/contracts/isms/{native → hook/optimism}/OptimismISM.js +0 -0
- /package/dist/contracts/isms/{native → hook/optimism}/index.js +0 -0
- /package/dist/contracts/{libs/TestMerkle.sol → mock/MockERC5164.sol}/index.js +0 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
/*@@@@@@@ @@@@@@@@@
|
|
5
|
+
@@@@@@@@@ @@@@@@@@@
|
|
6
|
+
@@@@@@@@@ @@@@@@@@@
|
|
7
|
+
@@@@@@@@@ @@@@@@@@@
|
|
8
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
9
|
+
@@@@@ HYPERLANE @@@@@@@
|
|
10
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
11
|
+
@@@@@@@@@ @@@@@@@@@
|
|
12
|
+
@@@@@@@@@ @@@@@@@@@
|
|
13
|
+
@@@@@@@@@ @@@@@@@@@
|
|
14
|
+
@@@@@@@@@ @@@@@@@@*/
|
|
15
|
+
|
|
16
|
+
// ============ Internal Imports ============
|
|
17
|
+
import {TypeCasts} from "../../libs/TypeCasts.sol";
|
|
18
|
+
import {IMessageHook} from "../../interfaces/hooks/IMessageHook.sol";
|
|
19
|
+
import {IMessageDispatcher} from "./interfaces/IMessageDispatcher.sol";
|
|
20
|
+
import {ERC5164ISM} from "../../isms/hook/ERC5164ISM.sol";
|
|
21
|
+
|
|
22
|
+
// ============ External Imports ============
|
|
23
|
+
|
|
24
|
+
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @title 5164MessageHook
|
|
28
|
+
* @notice Message hook to inform the 5164 ISM of messages published through
|
|
29
|
+
* any of the 5164 adapters.
|
|
30
|
+
*/
|
|
31
|
+
contract ERC5164MessageHook is IMessageHook {
|
|
32
|
+
using TypeCasts for address;
|
|
33
|
+
// ============ Constants ============
|
|
34
|
+
|
|
35
|
+
// Domain of chain on which the ERC5164ISM is deployed
|
|
36
|
+
uint32 public immutable destinationDomain;
|
|
37
|
+
// Dispatcher used to send messages
|
|
38
|
+
IMessageDispatcher public immutable dispatcher;
|
|
39
|
+
// address for ERC5164ISM to verify messages
|
|
40
|
+
address public immutable ism;
|
|
41
|
+
|
|
42
|
+
// ============ Constructor ============
|
|
43
|
+
|
|
44
|
+
constructor(
|
|
45
|
+
uint32 _destinationDomain,
|
|
46
|
+
address _dispatcher,
|
|
47
|
+
address _ism
|
|
48
|
+
) {
|
|
49
|
+
require(
|
|
50
|
+
_destinationDomain != 0,
|
|
51
|
+
"ERC5164Hook: invalid destination domain"
|
|
52
|
+
);
|
|
53
|
+
require(_ism != address(0), "ERC5164Hook: invalid ISM");
|
|
54
|
+
destinationDomain = _destinationDomain;
|
|
55
|
+
|
|
56
|
+
require(
|
|
57
|
+
Address.isContract(_dispatcher),
|
|
58
|
+
"ERC5164Hook: invalid dispatcher"
|
|
59
|
+
);
|
|
60
|
+
dispatcher = IMessageDispatcher(_dispatcher);
|
|
61
|
+
ism = _ism;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// ============ External Functions ============
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @notice Hook to inform the ERC5164ISM of messages published through.
|
|
68
|
+
* @dev anyone can call this function, that's why we need to send msg.sender
|
|
69
|
+
* @param _destinationDomain The destination domain of the message.
|
|
70
|
+
* @param _messageId The message ID.
|
|
71
|
+
* @return gasOverhead The gas overhead for the function call on destination.
|
|
72
|
+
*/
|
|
73
|
+
function postDispatch(uint32 _destinationDomain, bytes32 _messageId)
|
|
74
|
+
public
|
|
75
|
+
payable
|
|
76
|
+
override
|
|
77
|
+
returns (uint256)
|
|
78
|
+
{
|
|
79
|
+
require(msg.value == 0, "ERC5164Hook: no value allowed");
|
|
80
|
+
require(
|
|
81
|
+
_destinationDomain == destinationDomain,
|
|
82
|
+
"ERC5164Hook: invalid destination domain"
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
bytes memory _payload = abi.encodeCall(
|
|
86
|
+
ERC5164ISM.verifyMessageId,
|
|
87
|
+
(msg.sender.addressToBytes32(), _messageId)
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
dispatcher.dispatchMessage(_destinationDomain, ism, _payload);
|
|
91
|
+
|
|
92
|
+
// EIP-5164 doesn't specify a gas overhead
|
|
93
|
+
return 0;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @title ERC-5164: Cross-Chain Execution Standard
|
|
6
|
+
* @dev See https://eips.ethereum.org/EIPS/eip-5164
|
|
7
|
+
*/
|
|
8
|
+
interface IMessageDispatcher {
|
|
9
|
+
/**
|
|
10
|
+
* @notice Emitted when a message has successfully been dispatched to the executor chain.
|
|
11
|
+
* @param messageId ID uniquely identifying the message
|
|
12
|
+
* @param from Address that dispatched the message
|
|
13
|
+
* @param toChainId ID of the chain receiving the message
|
|
14
|
+
* @param to Address that will receive the message
|
|
15
|
+
* @param data Data that was dispatched
|
|
16
|
+
*/
|
|
17
|
+
event MessageDispatched(
|
|
18
|
+
bytes32 indexed messageId,
|
|
19
|
+
address indexed from,
|
|
20
|
+
uint256 indexed toChainId,
|
|
21
|
+
address to,
|
|
22
|
+
bytes data
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
function dispatchMessage(
|
|
26
|
+
uint256 toChainId,
|
|
27
|
+
address to,
|
|
28
|
+
bytes calldata data
|
|
29
|
+
) external returns (bytes32);
|
|
30
|
+
}
|
|
@@ -15,7 +15,8 @@ pragma solidity >=0.8.0;
|
|
|
15
15
|
|
|
16
16
|
// ============ Internal Imports ============
|
|
17
17
|
import {IMessageHook} from "../interfaces/hooks/IMessageHook.sol";
|
|
18
|
-
import {OptimismISM} from "../isms/
|
|
18
|
+
import {OptimismISM} from "../isms/hook/optimism/OptimismISM.sol";
|
|
19
|
+
import {TypeCasts} from "../libs/TypeCasts.sol";
|
|
19
20
|
|
|
20
21
|
// ============ External Imports ============
|
|
21
22
|
import {ICrossDomainMessenger} from "@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.sol";
|
|
@@ -27,6 +28,7 @@ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
|
27
28
|
* the native Optimism bridge.
|
|
28
29
|
*/
|
|
29
30
|
contract OptimismMessageHook is IMessageHook {
|
|
31
|
+
using TypeCasts for address;
|
|
30
32
|
// ============ Constants ============
|
|
31
33
|
|
|
32
34
|
// Domain of chain on which the optimism ISM is deployed
|
|
@@ -85,7 +87,7 @@ contract OptimismMessageHook is IMessageHook {
|
|
|
85
87
|
|
|
86
88
|
bytes memory _payload = abi.encodeCall(
|
|
87
89
|
OptimismISM.verifyMessageId,
|
|
88
|
-
(msg.sender, _messageId)
|
|
90
|
+
(msg.sender.addressToBytes32(), _messageId)
|
|
89
91
|
);
|
|
90
92
|
|
|
91
93
|
l1Messenger.sendMessage(ism, _payload, GAS_LIMIT);
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
2
|
pragma solidity >=0.8.0;
|
|
3
3
|
|
|
4
|
+
/*@@@@@@@ @@@@@@@@@
|
|
5
|
+
@@@@@@@@@ @@@@@@@@@
|
|
6
|
+
@@@@@@@@@ @@@@@@@@@
|
|
7
|
+
@@@@@@@@@ @@@@@@@@@
|
|
8
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
9
|
+
@@@@@ HYPERLANE @@@@@@@
|
|
10
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
11
|
+
@@@@@@@@@ @@@@@@@@@
|
|
12
|
+
@@@@@@@@@ @@@@@@@@@
|
|
13
|
+
@@@@@@@@@ @@@@@@@@@
|
|
14
|
+
@@@@@@@@@ @@@@@@@@*/
|
|
15
|
+
|
|
4
16
|
// ============ Internal Imports ============
|
|
5
17
|
|
|
6
18
|
import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
|
|
@@ -11,7 +23,6 @@ import {TypeCasts} from "../../libs/TypeCasts.sol";
|
|
|
11
23
|
|
|
12
24
|
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
|
|
13
25
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
14
|
-
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
15
26
|
|
|
16
27
|
/**
|
|
17
28
|
* @title ArbtractNativeISM
|
|
@@ -19,19 +30,16 @@ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
|
19
30
|
* @dev In the future, the hook might be moved inside the Mailbox which doesn't require storage mappings for senders.
|
|
20
31
|
* for more details see https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/2381
|
|
21
32
|
*/
|
|
22
|
-
abstract contract
|
|
23
|
-
IInterchainSecurityModule,
|
|
24
|
-
Initializable
|
|
25
|
-
{
|
|
33
|
+
abstract contract AbstractHookISM is IInterchainSecurityModule, Initializable {
|
|
26
34
|
// ============ Public Storage ============
|
|
27
35
|
|
|
28
|
-
//
|
|
36
|
+
// Maps messageId to whether or not the sender attested to that message ID on the origin chain
|
|
29
37
|
// @dev anyone can send an untrusted messageId, so need to check for that while verifying
|
|
30
|
-
mapping(bytes32 => mapping(
|
|
38
|
+
mapping(bytes32 => mapping(bytes32 => bool)) public verifiedMessageIds;
|
|
31
39
|
|
|
32
40
|
// ============ Events ============
|
|
33
41
|
|
|
34
|
-
event ReceivedMessage(
|
|
42
|
+
event ReceivedMessage(bytes32 indexed sender, bytes32 indexed messageId);
|
|
35
43
|
|
|
36
44
|
// ============ External Functions ============
|
|
37
45
|
|
|
@@ -44,7 +52,7 @@ abstract contract AbstractNativeISM is
|
|
|
44
52
|
bytes calldata _message
|
|
45
53
|
) external view returns (bool) {
|
|
46
54
|
bytes32 _messageId = Message.id(_message);
|
|
47
|
-
|
|
55
|
+
bytes32 _messageSender = Message.sender(_message);
|
|
48
56
|
|
|
49
57
|
return verifiedMessageIds[_messageId][_messageSender];
|
|
50
58
|
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// OpenZeppelin Contracts (last updated v4.6.0) (crosschain/CrossChainEnabled.sol)
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.4;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @author OpenZeppelin
|
|
8
|
+
* @dev LibOptimism was removed from the OpenZeppelin Contracts library as of v4.7.0
|
|
9
|
+
* @dev Provides information for building cross-chain aware contracts. This
|
|
10
|
+
* abstract contract provides accessors and modifiers to control the execution
|
|
11
|
+
* flow when receiving cross-chain messages.
|
|
12
|
+
*
|
|
13
|
+
* Actual implementations of cross-chain aware contracts, which are based on
|
|
14
|
+
* this abstraction, will have to inherit from a bridge-specific
|
|
15
|
+
* specialization. Such specializations are provided under
|
|
16
|
+
* `crosschain/<chain>/CrossChainEnabled<chain>.sol`.
|
|
17
|
+
*
|
|
18
|
+
* _Available since v4.6._
|
|
19
|
+
*/
|
|
20
|
+
abstract contract CrossChainEnabled {
|
|
21
|
+
error NotCrossChainCall();
|
|
22
|
+
error InvalidCrossChainSender(address actual, address expected);
|
|
23
|
+
/**
|
|
24
|
+
* @dev Throws if the current function call is not the result of a
|
|
25
|
+
* cross-chain execution.
|
|
26
|
+
*/
|
|
27
|
+
modifier onlyCrossChain() {
|
|
28
|
+
if (!_isCrossChain()) revert NotCrossChainCall();
|
|
29
|
+
_;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @dev Throws if the current function call is not the result of a
|
|
34
|
+
* cross-chain execution initiated by `account`.
|
|
35
|
+
*/
|
|
36
|
+
modifier onlyCrossChainSender(address expected) {
|
|
37
|
+
address actual = _crossChainSender();
|
|
38
|
+
if (expected != actual)
|
|
39
|
+
revert InvalidCrossChainSender(actual, expected);
|
|
40
|
+
_;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @dev Returns whether the current function call is the result of a
|
|
45
|
+
* cross-chain message.
|
|
46
|
+
*/
|
|
47
|
+
function _isCrossChain() internal view virtual returns (bool);
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @dev Returns the address of the sender of the cross-chain message that
|
|
51
|
+
* triggered the current function call.
|
|
52
|
+
*
|
|
53
|
+
* IMPORTANT: Should revert with `NotCrossChainCall` if the current function
|
|
54
|
+
* call is not the result of a cross-chain message.
|
|
55
|
+
*/
|
|
56
|
+
function _crossChainSender() internal view virtual returns (address);
|
|
57
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
/*@@@@@@@ @@@@@@@@@
|
|
5
|
+
@@@@@@@@@ @@@@@@@@@
|
|
6
|
+
@@@@@@@@@ @@@@@@@@@
|
|
7
|
+
@@@@@@@@@ @@@@@@@@@
|
|
8
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
9
|
+
@@@@@ HYPERLANE @@@@@@@
|
|
10
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
11
|
+
@@@@@@@@@ @@@@@@@@@
|
|
12
|
+
@@@@@@@@@ @@@@@@@@@
|
|
13
|
+
@@@@@@@@@ @@@@@@@@@
|
|
14
|
+
@@@@@@@@@ @@@@@@@@*/
|
|
15
|
+
|
|
16
|
+
// ============ Internal Imports ============
|
|
17
|
+
|
|
18
|
+
import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
|
|
19
|
+
import {ERC5164MessageHook} from "../../hooks/ERC5164/ERC5164MessageHook.sol";
|
|
20
|
+
import {Message} from "../../libs/Message.sol";
|
|
21
|
+
import {TypeCasts} from "../../libs/TypeCasts.sol";
|
|
22
|
+
import {AbstractHookISM} from "./AbstractHookISM.sol";
|
|
23
|
+
|
|
24
|
+
// ============ External Imports ============
|
|
25
|
+
|
|
26
|
+
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @title ERC5164ISM
|
|
30
|
+
* @notice Uses the generic eip-5164 standard to verify interchain messages.
|
|
31
|
+
*/
|
|
32
|
+
contract ERC5164ISM is AbstractHookISM {
|
|
33
|
+
// ============ Constants ============
|
|
34
|
+
|
|
35
|
+
uint8 public constant moduleType =
|
|
36
|
+
uint8(IInterchainSecurityModule.Types.NULL);
|
|
37
|
+
// corresponding 5164 executor address
|
|
38
|
+
address public immutable executor;
|
|
39
|
+
|
|
40
|
+
// ============ Modifiers ============
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* @notice Check if sender is authorized to message `verifyMessageId`.
|
|
44
|
+
*/
|
|
45
|
+
modifier isAuthorized() {
|
|
46
|
+
require(
|
|
47
|
+
msg.sender == executor,
|
|
48
|
+
"ERC5164ISM: sender is not the executor"
|
|
49
|
+
);
|
|
50
|
+
_;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// ============ Constructor ============
|
|
54
|
+
|
|
55
|
+
constructor(address _executor) {
|
|
56
|
+
require(Address.isContract(_executor), "ERC5164ISM: invalid executor");
|
|
57
|
+
executor = _executor;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// ============ External Functions ============
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* @notice Receive a message from the executor.
|
|
64
|
+
* @param _sender Left-padded address of the sender.
|
|
65
|
+
* @param _messageId Hyperlane ID for the message.
|
|
66
|
+
*/
|
|
67
|
+
function verifyMessageId(bytes32 _sender, bytes32 _messageId)
|
|
68
|
+
external
|
|
69
|
+
isAuthorized
|
|
70
|
+
{
|
|
71
|
+
verifiedMessageIds[_messageId][_sender] = true;
|
|
72
|
+
|
|
73
|
+
emit ReceivedMessage(_sender, _messageId);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// OpenZeppelin Contracts (last updated v4.7.0) (crosschain/optimism/CrossChainEnabledOptimism.sol)
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.4;
|
|
5
|
+
|
|
6
|
+
import {CrossChainEnabled} from "../CrossChainEnabled.sol";
|
|
7
|
+
import {LibOptimism} from "./LibOptimism.sol";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @author OpenZeppelin
|
|
11
|
+
* @dev CrossChainEnabledOptimism was removed from the OpenZeppelin Contracts library as of v4.7.0
|
|
12
|
+
* @dev https://www.optimism.io/[Optimism] specialization or the
|
|
13
|
+
* {CrossChainEnabled} abstraction.
|
|
14
|
+
*
|
|
15
|
+
* The messenger (`CrossDomainMessenger`) contract is provided and maintained by
|
|
16
|
+
* the optimism team. You can find the address of this contract on mainnet and
|
|
17
|
+
* kovan in the https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts/deployments[deployments section of Optimism monorepo].
|
|
18
|
+
*
|
|
19
|
+
* _Available since v4.6._
|
|
20
|
+
*/
|
|
21
|
+
abstract contract CrossChainEnabledOptimism is CrossChainEnabled {
|
|
22
|
+
/// @custom:oz-upgrades-unsafe-allow state-variable-immutable
|
|
23
|
+
address private immutable _messenger;
|
|
24
|
+
|
|
25
|
+
/// @custom:oz-upgrades-unsafe-allow constructor
|
|
26
|
+
constructor(address messenger) {
|
|
27
|
+
_messenger = messenger;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @dev see {CrossChainEnabled-_isCrossChain}
|
|
32
|
+
*/
|
|
33
|
+
function _isCrossChain() internal view virtual override returns (bool) {
|
|
34
|
+
return LibOptimism.isCrossChain(_messenger);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @dev see {CrossChainEnabled-_crossChainSender}
|
|
39
|
+
*/
|
|
40
|
+
function _crossChainSender()
|
|
41
|
+
internal
|
|
42
|
+
view
|
|
43
|
+
virtual
|
|
44
|
+
override
|
|
45
|
+
onlyCrossChain
|
|
46
|
+
returns (address)
|
|
47
|
+
{
|
|
48
|
+
return LibOptimism.crossChainSender(_messenger);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// OpenZeppelin Contracts (last updated v4.7.0) (crosschain/optimism/LibOptimism.sol)
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.4;
|
|
5
|
+
|
|
6
|
+
import {ICrossDomainMessenger} from "@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.sol";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @dev Primitives for cross-chain aware contracts for https://www.optimism.io/[Optimism].
|
|
10
|
+
* See the https://community.optimism.io/docs/developers/bridge/messaging/#accessing-msg-sender[documentation]
|
|
11
|
+
* for the functionality used here.
|
|
12
|
+
*/
|
|
13
|
+
library LibOptimism {
|
|
14
|
+
error NotCrossChainCall();
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @dev Returns whether the current function call is the result of a
|
|
18
|
+
* cross-chain message relayed by `messenger`.
|
|
19
|
+
*/
|
|
20
|
+
function isCrossChain(address messenger) internal view returns (bool) {
|
|
21
|
+
return msg.sender == messenger;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @dev Returns the address of the sender that triggered the current
|
|
26
|
+
* cross-chain message through `messenger`.
|
|
27
|
+
*
|
|
28
|
+
* NOTE: {isCrossChain} should be checked before trying to recover the
|
|
29
|
+
* sender, as it will revert with `NotCrossChainCall` if the current
|
|
30
|
+
* function call is not the result of a cross-chain message.
|
|
31
|
+
*/
|
|
32
|
+
function crossChainSender(address messenger)
|
|
33
|
+
internal
|
|
34
|
+
view
|
|
35
|
+
returns (address)
|
|
36
|
+
{
|
|
37
|
+
if (!isCrossChain(messenger)) revert NotCrossChainCall();
|
|
38
|
+
|
|
39
|
+
return ICrossDomainMessenger(messenger).xDomainMessageSender();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -1,28 +1,39 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
2
|
pragma solidity >=0.8.0;
|
|
3
3
|
|
|
4
|
+
/*@@@@@@@ @@@@@@@@@
|
|
5
|
+
@@@@@@@@@ @@@@@@@@@
|
|
6
|
+
@@@@@@@@@ @@@@@@@@@
|
|
7
|
+
@@@@@@@@@ @@@@@@@@@
|
|
8
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
9
|
+
@@@@@ HYPERLANE @@@@@@@
|
|
10
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
11
|
+
@@@@@@@@@ @@@@@@@@@
|
|
12
|
+
@@@@@@@@@ @@@@@@@@@
|
|
13
|
+
@@@@@@@@@ @@@@@@@@@
|
|
14
|
+
@@@@@@@@@ @@@@@@@@*/
|
|
15
|
+
|
|
4
16
|
// ============ Internal Imports ============
|
|
5
17
|
|
|
6
|
-
import {IInterchainSecurityModule} from "
|
|
7
|
-
import {OptimismMessageHook} from "
|
|
8
|
-
import {Message} from "
|
|
9
|
-
import {TypeCasts} from "
|
|
10
|
-
import {
|
|
18
|
+
import {IInterchainSecurityModule} from "../../../interfaces/IInterchainSecurityModule.sol";
|
|
19
|
+
import {OptimismMessageHook} from "../../../hooks/OptimismMessageHook.sol";
|
|
20
|
+
import {Message} from "../../../libs/Message.sol";
|
|
21
|
+
import {TypeCasts} from "../../../libs/TypeCasts.sol";
|
|
22
|
+
import {AbstractHookISM} from "../AbstractHookISM.sol";
|
|
23
|
+
import {CrossChainEnabledOptimism} from "./CrossChainEnabledOptimism.sol";
|
|
11
24
|
|
|
12
25
|
// ============ External Imports ============
|
|
13
26
|
|
|
14
27
|
import {ICrossDomainMessenger} from "@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.sol";
|
|
15
|
-
import {CrossChainEnabledOptimism} from "@openzeppelin/contracts/crosschain/optimism/CrossChainEnabledOptimism.sol";
|
|
16
28
|
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
17
29
|
|
|
18
30
|
/**
|
|
19
31
|
* @title OptimismISM
|
|
20
32
|
* @notice Uses the native Optimism bridge to verify interchain messages.
|
|
21
33
|
*/
|
|
22
|
-
contract OptimismISM is CrossChainEnabledOptimism,
|
|
34
|
+
contract OptimismISM is CrossChainEnabledOptimism, AbstractHookISM {
|
|
23
35
|
// ============ Constants ============
|
|
24
36
|
|
|
25
|
-
// solhint-disable-next-line const-name-snakecase
|
|
26
37
|
uint8 public constant moduleType =
|
|
27
38
|
uint8(IInterchainSecurityModule.Types.NULL);
|
|
28
39
|
|
|
@@ -66,10 +77,10 @@ contract OptimismISM is CrossChainEnabledOptimism, AbstractNativeISM {
|
|
|
66
77
|
/**
|
|
67
78
|
* @notice Receive a message from the L2 messenger.
|
|
68
79
|
* @dev Only callable by the L2 messenger.
|
|
69
|
-
* @param _sender
|
|
80
|
+
* @param _sender Left-padded address of the sender.
|
|
70
81
|
* @param _messageId Hyperlane ID for the message.
|
|
71
82
|
*/
|
|
72
|
-
function verifyMessageId(
|
|
83
|
+
function verifyMessageId(bytes32 _sender, bytes32 _messageId)
|
|
73
84
|
external
|
|
74
85
|
isAuthorized
|
|
75
86
|
{
|
|
@@ -34,8 +34,8 @@ contract InterchainAccountRouter is
|
|
|
34
34
|
// ============ Constants ============
|
|
35
35
|
|
|
36
36
|
uint32 internal immutable localDomain;
|
|
37
|
-
address internal
|
|
38
|
-
bytes32 internal
|
|
37
|
+
address internal implementation;
|
|
38
|
+
bytes32 internal bytecodeHash;
|
|
39
39
|
|
|
40
40
|
// ============ Private Storage ============
|
|
41
41
|
uint32[] private _domains;
|
|
@@ -100,20 +100,9 @@ contract InterchainAccountRouter is
|
|
|
100
100
|
* will be cloned for each interchain account.
|
|
101
101
|
* @param _localDomain The Hyperlane domain ID on which this contract is
|
|
102
102
|
* deployed.
|
|
103
|
-
* @param _proxy The address of a proxy contract that delegates calls to
|
|
104
|
-
* this contract. Used by OwnableMulticall for access control.
|
|
105
|
-
* @dev Set proxy to address(0) to use this contract without a proxy.
|
|
106
103
|
*/
|
|
107
|
-
constructor(uint32 _localDomain
|
|
104
|
+
constructor(uint32 _localDomain) {
|
|
108
105
|
localDomain = _localDomain;
|
|
109
|
-
// TODO: always proxy and remove this sentinel
|
|
110
|
-
if (_proxy == address(0)) {
|
|
111
|
-
_proxy = address(this);
|
|
112
|
-
}
|
|
113
|
-
implementation = address(new OwnableMulticall(_proxy));
|
|
114
|
-
// cannot be stored immutably because it is dynamically sized
|
|
115
|
-
bytes memory _bytecode = MinimalProxy.bytecode(implementation);
|
|
116
|
-
bytecodeHash = keccak256(_bytecode);
|
|
117
106
|
}
|
|
118
107
|
|
|
119
108
|
// ============ Initializers ============
|
|
@@ -138,6 +127,11 @@ contract InterchainAccountRouter is
|
|
|
138
127
|
_owner
|
|
139
128
|
);
|
|
140
129
|
require(localDomain == mailbox.localDomain(), "domain mismatch");
|
|
130
|
+
|
|
131
|
+
implementation = address(new OwnableMulticall(address(this)));
|
|
132
|
+
// cannot be stored immutably because it is dynamically sized
|
|
133
|
+
bytes memory _bytecode = MinimalProxy.bytecode(implementation);
|
|
134
|
+
bytecodeHash = keccak256(_bytecode);
|
|
141
135
|
}
|
|
142
136
|
|
|
143
137
|
// ============ External Functions ============
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT or Apache-2.0
|
|
2
|
+
pragma solidity ^0.8.13;
|
|
3
|
+
|
|
4
|
+
import {IMessageDispatcher} from "../hooks/ERC5164/interfaces/IMessageDispatcher.sol";
|
|
5
|
+
|
|
6
|
+
contract MockMessageDispatcher is IMessageDispatcher {
|
|
7
|
+
function dispatchMessage(
|
|
8
|
+
uint256 toChainId,
|
|
9
|
+
address to,
|
|
10
|
+
bytes calldata data
|
|
11
|
+
) external returns (bytes32) {
|
|
12
|
+
bytes32 messageId = keccak256(abi.encodePacked(toChainId, to, data));
|
|
13
|
+
|
|
14
|
+
// simulate a successful dispatch
|
|
15
|
+
emit MessageDispatched(messageId, msg.sender, toChainId, to, data);
|
|
16
|
+
|
|
17
|
+
return messageId;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
contract MockMessageExecutor {
|
|
22
|
+
event MessageIdExecuted(
|
|
23
|
+
uint256 indexed fromChainId,
|
|
24
|
+
bytes32 indexed messageId
|
|
25
|
+
);
|
|
26
|
+
}
|
|
@@ -4,12 +4,10 @@ import type * as interfaces from "./interfaces";
|
|
|
4
4
|
import type * as proxy from "./proxy";
|
|
5
5
|
import type * as token from "./token";
|
|
6
6
|
import type * as utils from "./utils";
|
|
7
|
-
import type * as vendor from "./vendor";
|
|
8
7
|
export type { access };
|
|
9
8
|
export type { governance };
|
|
10
9
|
export type { interfaces };
|
|
11
10
|
export type { proxy };
|
|
12
11
|
export type { token };
|
|
13
12
|
export type { utils };
|
|
14
|
-
export type { vendor };
|
|
15
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../types/@openzeppelin/contracts/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,KAAK,UAAU,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,KAAK,UAAU,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../types/@openzeppelin/contracts/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,KAAK,UAAU,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,KAAK,UAAU,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AAEtC,YAAY,EAAE,MAAM,EAAE,CAAC;AAEvB,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,YAAY,EAAE,KAAK,EAAE,CAAC;AAEtB,YAAY,EAAE,KAAK,EAAE,CAAC;AAEtB,YAAY,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "../../../common";
|
|
2
|
+
import type { FunctionFragment, Result } from "@ethersproject/abi";
|
|
3
|
+
import type { Listener, Provider } from "@ethersproject/providers";
|
|
4
|
+
import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, PayableOverrides, PopulatedTransaction, Signer, utils } from "ethers";
|
|
5
|
+
export interface ERC5164MessageHookInterface extends utils.Interface {
|
|
6
|
+
functions: {
|
|
7
|
+
"destinationDomain()": FunctionFragment;
|
|
8
|
+
"dispatcher()": FunctionFragment;
|
|
9
|
+
"ism()": FunctionFragment;
|
|
10
|
+
"postDispatch(uint32,bytes32)": FunctionFragment;
|
|
11
|
+
};
|
|
12
|
+
getFunction(nameOrSignatureOrTopic: "destinationDomain" | "dispatcher" | "ism" | "postDispatch"): FunctionFragment;
|
|
13
|
+
encodeFunctionData(functionFragment: "destinationDomain", values?: undefined): string;
|
|
14
|
+
encodeFunctionData(functionFragment: "dispatcher", values?: undefined): string;
|
|
15
|
+
encodeFunctionData(functionFragment: "ism", values?: undefined): string;
|
|
16
|
+
encodeFunctionData(functionFragment: "postDispatch", values: [BigNumberish, BytesLike]): string;
|
|
17
|
+
decodeFunctionResult(functionFragment: "destinationDomain", data: BytesLike): Result;
|
|
18
|
+
decodeFunctionResult(functionFragment: "dispatcher", data: BytesLike): Result;
|
|
19
|
+
decodeFunctionResult(functionFragment: "ism", data: BytesLike): Result;
|
|
20
|
+
decodeFunctionResult(functionFragment: "postDispatch", data: BytesLike): Result;
|
|
21
|
+
events: {};
|
|
22
|
+
}
|
|
23
|
+
export interface ERC5164MessageHook extends BaseContract {
|
|
24
|
+
connect(signerOrProvider: Signer | Provider | string): this;
|
|
25
|
+
attach(addressOrName: string): this;
|
|
26
|
+
deployed(): Promise<this>;
|
|
27
|
+
interface: ERC5164MessageHookInterface;
|
|
28
|
+
queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
|
|
29
|
+
listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
|
|
30
|
+
listeners(eventName?: string): Array<Listener>;
|
|
31
|
+
removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
|
|
32
|
+
removeAllListeners(eventName?: string): this;
|
|
33
|
+
off: OnEvent<this>;
|
|
34
|
+
on: OnEvent<this>;
|
|
35
|
+
once: OnEvent<this>;
|
|
36
|
+
removeListener: OnEvent<this>;
|
|
37
|
+
functions: {
|
|
38
|
+
destinationDomain(overrides?: CallOverrides): Promise<[number]>;
|
|
39
|
+
dispatcher(overrides?: CallOverrides): Promise<[string]>;
|
|
40
|
+
ism(overrides?: CallOverrides): Promise<[string]>;
|
|
41
|
+
postDispatch(_destinationDomain: BigNumberish, _messageId: BytesLike, overrides?: PayableOverrides & {
|
|
42
|
+
from?: string | Promise<string>;
|
|
43
|
+
}): Promise<ContractTransaction>;
|
|
44
|
+
};
|
|
45
|
+
destinationDomain(overrides?: CallOverrides): Promise<number>;
|
|
46
|
+
dispatcher(overrides?: CallOverrides): Promise<string>;
|
|
47
|
+
ism(overrides?: CallOverrides): Promise<string>;
|
|
48
|
+
postDispatch(_destinationDomain: BigNumberish, _messageId: BytesLike, overrides?: PayableOverrides & {
|
|
49
|
+
from?: string | Promise<string>;
|
|
50
|
+
}): Promise<ContractTransaction>;
|
|
51
|
+
callStatic: {
|
|
52
|
+
destinationDomain(overrides?: CallOverrides): Promise<number>;
|
|
53
|
+
dispatcher(overrides?: CallOverrides): Promise<string>;
|
|
54
|
+
ism(overrides?: CallOverrides): Promise<string>;
|
|
55
|
+
postDispatch(_destinationDomain: BigNumberish, _messageId: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
|
|
56
|
+
};
|
|
57
|
+
filters: {};
|
|
58
|
+
estimateGas: {
|
|
59
|
+
destinationDomain(overrides?: CallOverrides): Promise<BigNumber>;
|
|
60
|
+
dispatcher(overrides?: CallOverrides): Promise<BigNumber>;
|
|
61
|
+
ism(overrides?: CallOverrides): Promise<BigNumber>;
|
|
62
|
+
postDispatch(_destinationDomain: BigNumberish, _messageId: BytesLike, overrides?: PayableOverrides & {
|
|
63
|
+
from?: string | Promise<string>;
|
|
64
|
+
}): Promise<BigNumber>;
|
|
65
|
+
};
|
|
66
|
+
populateTransaction: {
|
|
67
|
+
destinationDomain(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
68
|
+
dispatcher(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
69
|
+
ism(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
70
|
+
postDispatch(_destinationDomain: BigNumberish, _messageId: BytesLike, overrides?: PayableOverrides & {
|
|
71
|
+
from?: string | Promise<string>;
|
|
72
|
+
}): Promise<PopulatedTransaction>;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=ERC5164MessageHook.d.ts.map
|