@hyperlane-xyz/core 1.5.7-beta1 → 3.0.0-beta0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/contracts/hooks/MerkleTreeHook.sol +8 -0
- package/contracts/hooks/OPStackHook.sol +3 -6
- package/contracts/hooks/PausableHook.sol +8 -0
- package/contracts/hooks/StaticProtocolFee.sol +6 -0
- package/contracts/hooks/aggregation/ERC5164Hook.sol +9 -3
- package/contracts/hooks/aggregation/StaticAggregationHook.sol +5 -0
- package/contracts/hooks/igp/InterchainGasPaymaster.sol +5 -0
- package/contracts/hooks/libs/AbstractMessageIdAuthHook.sol +10 -4
- package/contracts/hooks/routing/DomainRoutingHook.sol +9 -2
- package/contracts/hooks/routing/FallbackDomainRoutingHook.sol +12 -4
- package/contracts/interfaces/hooks/IPostDispatchHook.sol +17 -0
- package/contracts/interfaces/optimism/ICrossDomainMessenger.sol +4 -4
- package/contracts/isms/hook/AbstractMessageIdAuthorizedIsm.sol +19 -10
- package/contracts/isms/hook/OPStackIsm.sol +2 -1
- package/contracts/mock/MockHyperlaneEnvironment.sol +3 -7
- package/contracts/test/TestPostDispatchHook.sol +8 -0
- package/contracts/test/TestSendReceiver.sol +23 -0
- package/contracts/token/HypERC20.sol +2 -1
- package/contracts/token/HypERC20Collateral.sol +1 -1
- package/contracts/token/extensions/FastHypERC20.sol +63 -0
- package/contracts/token/extensions/FastHypERC20Collateral.sol +59 -0
- package/contracts/token/libs/FastTokenRouter.sol +206 -0
- package/contracts/token/libs/TokenRouter.sol +1 -1
- package/dist/contracts/hooks/MerkleTreeHook.d.ts +16 -1
- package/dist/contracts/hooks/MerkleTreeHook.d.ts.map +1 -1
- package/dist/contracts/hooks/OPStackHook.d.ts +16 -1
- package/dist/contracts/hooks/OPStackHook.d.ts.map +1 -1
- package/dist/contracts/hooks/PausableHook.d.ts +16 -1
- package/dist/contracts/hooks/PausableHook.d.ts.map +1 -1
- package/dist/contracts/hooks/StaticProtocolFee.d.ts +16 -1
- package/dist/contracts/hooks/StaticProtocolFee.d.ts.map +1 -1
- package/dist/contracts/hooks/aggregation/ERC5164Hook.d.ts +16 -1
- package/dist/contracts/hooks/aggregation/ERC5164Hook.d.ts.map +1 -1
- package/dist/contracts/hooks/aggregation/StaticAggregationHook.d.ts +16 -1
- package/dist/contracts/hooks/aggregation/StaticAggregationHook.d.ts.map +1 -1
- package/dist/contracts/hooks/igp/InterchainGasPaymaster.d.ts +16 -1
- package/dist/contracts/hooks/igp/InterchainGasPaymaster.d.ts.map +1 -1
- package/dist/contracts/hooks/libs/AbstractMessageIdAuthHook.d.ts +16 -1
- package/dist/contracts/hooks/libs/AbstractMessageIdAuthHook.d.ts.map +1 -1
- package/dist/contracts/hooks/libs/AbstractPostDispatchHook.d.ts +16 -1
- package/dist/contracts/hooks/libs/AbstractPostDispatchHook.d.ts.map +1 -1
- package/dist/contracts/hooks/routing/DestinationRecipientRoutingHook.d.ts +21 -6
- package/dist/contracts/hooks/routing/DestinationRecipientRoutingHook.d.ts.map +1 -1
- package/dist/contracts/hooks/routing/DomainRoutingHook.d.ts +21 -6
- package/dist/contracts/hooks/routing/DomainRoutingHook.d.ts.map +1 -1
- package/dist/contracts/hooks/routing/FallbackDomainRoutingHook.d.ts +21 -6
- package/dist/contracts/hooks/routing/FallbackDomainRoutingHook.d.ts.map +1 -1
- package/dist/contracts/interfaces/hooks/IPostDispatchHook.d.ts +16 -1
- package/dist/contracts/interfaces/hooks/IPostDispatchHook.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 +141 -0
- package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger.d.ts.map +1 -0
- package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger.js +4 -0
- package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger.js.map +1 -0
- 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/ICrossDomainMessenger.sol/index.d.ts +1 -0
- package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/index.d.ts.map +1 -1
- package/dist/contracts/isms/hook/AbstractMessageIdAuthorizedIsm.d.ts +30 -30
- package/dist/contracts/isms/hook/AbstractMessageIdAuthorizedIsm.d.ts.map +1 -1
- package/dist/contracts/isms/hook/ERC5164Ism.d.ts +30 -30
- package/dist/contracts/isms/hook/ERC5164Ism.d.ts.map +1 -1
- package/dist/contracts/isms/hook/OPStackIsm.d.ts +30 -30
- package/dist/contracts/isms/hook/OPStackIsm.d.ts.map +1 -1
- package/dist/contracts/test/TestInterchainGasPaymaster.d.ts +16 -1
- package/dist/contracts/test/TestInterchainGasPaymaster.d.ts.map +1 -1
- package/dist/contracts/test/TestMerkleTreeHook.d.ts +16 -1
- package/dist/contracts/test/TestMerkleTreeHook.d.ts.map +1 -1
- package/dist/contracts/test/TestPostDispatchHook.d.ts +16 -1
- package/dist/contracts/test/TestPostDispatchHook.d.ts.map +1 -1
- package/dist/contracts/test/TestSendReceiver.d.ts +13 -12
- package/dist/contracts/test/TestSendReceiver.d.ts.map +1 -1
- package/dist/contracts/test/index.d.ts +0 -1
- package/dist/contracts/test/index.d.ts.map +1 -1
- package/dist/contracts/token/extensions/FastHypERC20.d.ts +969 -0
- package/dist/contracts/token/extensions/FastHypERC20.d.ts.map +1 -0
- package/dist/contracts/{test/TestMultisigIsm.js → token/extensions/FastHypERC20.js} +1 -1
- package/dist/contracts/token/extensions/FastHypERC20.js.map +1 -0
- package/dist/contracts/token/extensions/FastHypERC20Collateral.d.ts +691 -0
- package/dist/contracts/token/extensions/FastHypERC20Collateral.d.ts.map +1 -0
- package/dist/contracts/token/extensions/FastHypERC20Collateral.js +4 -0
- package/dist/contracts/token/extensions/FastHypERC20Collateral.js.map +1 -0
- package/dist/contracts/token/extensions/index.d.ts +2 -0
- package/dist/contracts/token/extensions/index.d.ts.map +1 -1
- package/dist/contracts/token/libs/FastTokenRouter.d.ts +692 -0
- package/dist/contracts/token/libs/FastTokenRouter.d.ts.map +1 -0
- package/dist/contracts/token/libs/FastTokenRouter.js +4 -0
- package/dist/contracts/token/libs/FastTokenRouter.js.map +1 -0
- package/dist/contracts/token/libs/index.d.ts +1 -0
- package/dist/contracts/token/libs/index.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts/governance/TimelockController__factory.d.ts +1 -1
- package/dist/factories/@openzeppelin/contracts/governance/TimelockController__factory.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts/governance/TimelockController__factory.js +1 -1
- package/dist/factories/@openzeppelin/contracts/governance/TimelockController__factory.js.map +1 -1
- package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.d.ts +1 -1
- package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.js +1 -1
- package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.js.map +1 -1
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts +1 -1
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js +1 -1
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js.map +1 -1
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.d.ts +1 -1
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.js +1 -1
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.js.map +1 -1
- package/dist/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.d.ts +1 -1
- package/dist/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.js +1 -1
- package/dist/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.js.map +1 -1
- package/dist/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.d.ts +1 -1
- package/dist/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.js +1 -1
- package/dist/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.js.map +1 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.d.ts +1 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.js +1 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.js.map +1 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable__factory.d.ts +1 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable__factory.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable__factory.js +1 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable__factory.js.map +1 -1
- package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
- package/dist/factories/contracts/Mailbox__factory.d.ts.map +1 -1
- package/dist/factories/contracts/Mailbox__factory.js +1 -1
- package/dist/factories/contracts/Mailbox__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js +14 -1
- package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts +4 -4
- package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/OPStackHook__factory.js +18 -5
- package/dist/factories/contracts/hooks/OPStackHook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/PausableHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/PausableHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/PausableHook__factory.js +14 -1
- package/dist/factories/contracts/hooks/PausableHook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/StaticProtocolFee__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/StaticProtocolFee__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/StaticProtocolFee__factory.js +14 -1
- package/dist/factories/contracts/hooks/StaticProtocolFee__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts +4 -4
- package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js +18 -5
- package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.js +1 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.js +14 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.js.map +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 +14 -1
- package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.js +1 -1
- package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/libs/AbstractMessageIdAuthHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/libs/AbstractMessageIdAuthHook__factory.js +15 -2
- package/dist/factories/contracts/hooks/libs/AbstractMessageIdAuthHook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/libs/AbstractPostDispatchHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/libs/AbstractPostDispatchHook__factory.js +13 -0
- package/dist/factories/contracts/hooks/libs/AbstractPostDispatchHook__factory.js.map +1 -1
- package/dist/factories/contracts/hooks/libs/StandardHookMetadata__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/libs/StandardHookMetadata__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/libs/StandardHookMetadata__factory.js +1 -1
- package/dist/factories/contracts/hooks/libs/StandardHookMetadata__factory.js.map +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 +16 -3
- 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 +16 -3
- 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.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js +16 -3
- package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js.map +1 -1
- package/dist/factories/contracts/interfaces/hooks/IPostDispatchHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/interfaces/hooks/IPostDispatchHook__factory.js +13 -0
- package/dist/factories/contracts/interfaces/hooks/IPostDispatchHook__factory.js.map +1 -1
- package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger__factory.d.ts +6 -6
- 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 +29 -0
- package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger__factory.d.ts.map +1 -0
- package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger__factory.js +105 -0
- package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger__factory.js.map +1 -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/ICrossDomainMessenger.sol/index.d.ts +1 -0
- package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/index.d.ts.map +1 -1
- package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/index.js +3 -1
- package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/index.js.map +1 -1
- package/dist/factories/contracts/isms/NoopIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/NoopIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/NoopIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/NoopIsm__factory.js.map +1 -1
- package/dist/factories/contracts/isms/PausableIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/PausableIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/PausableIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/PausableIsm__factory.js.map +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js.map +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js.map +1 -1
- package/dist/factories/contracts/isms/hook/AbstractMessageIdAuthorizedIsm__factory.js +5 -5
- package/dist/factories/contracts/isms/hook/AbstractMessageIdAuthorizedIsm__factory.js.map +1 -1
- package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js +6 -6
- package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js.map +1 -1
- package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js +6 -6
- package/dist/factories/contracts/isms/hook/OPStackIsm__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 +1 -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 +1 -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 +1 -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 +1 -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.d.ts.map +1 -1
- package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js.map +1 -1
- package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js.map +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DefaultFallbackRoutingIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DefaultFallbackRoutingIsmFactory__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DefaultFallbackRoutingIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DefaultFallbackRoutingIsmFactory__factory.js.map +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.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.d.ts.map +1 -1
- package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js.map +1 -1
- package/dist/factories/contracts/libs/Indexed__factory.d.ts +1 -1
- package/dist/factories/contracts/libs/Indexed__factory.d.ts.map +1 -1
- package/dist/factories/contracts/libs/Indexed__factory.js +1 -1
- package/dist/factories/contracts/libs/Indexed__factory.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/libs/OwnableMulticall__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/libs/OwnableMulticall__factory.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/libs/OwnableMulticall__factory.js +1 -1
- package/dist/factories/contracts/middleware/libs/OwnableMulticall__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/MockCircleMessageTransmitter__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.js +1 -1
- package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.js.map +1 -1
- package/dist/factories/contracts/mock/MockCircleTokenMessenger__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockCircleTokenMessenger__factory.d.ts.map +1 -1
- package/dist/factories/contracts/mock/MockCircleTokenMessenger__factory.js +1 -1
- package/dist/factories/contracts/mock/MockCircleTokenMessenger__factory.js.map +1 -1
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.d.ts.map +1 -1
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.js +1 -1
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.js.map +1 -1
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.js +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -1
- package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockMailbox__factory.d.ts.map +1 -1
- package/dist/factories/contracts/mock/MockMailbox__factory.js +1 -1
- package/dist/factories/contracts/mock/MockMailbox__factory.js.map +1 -1
- package/dist/factories/contracts/mock/MockPortalBridge__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockPortalBridge__factory.d.ts.map +1 -1
- package/dist/factories/contracts/mock/MockPortalBridge__factory.js +1 -1
- package/dist/factories/contracts/mock/MockPortalBridge__factory.js.map +1 -1
- package/dist/factories/contracts/mock/MockToken__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockToken__factory.d.ts.map +1 -1
- package/dist/factories/contracts/mock/MockToken__factory.js +1 -1
- package/dist/factories/contracts/mock/MockToken__factory.js.map +1 -1
- package/dist/factories/contracts/test/ERC20Test__factory.d.ts +1 -1
- package/dist/factories/contracts/test/ERC20Test__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/ERC20Test__factory.js +1 -1
- package/dist/factories/contracts/test/ERC20Test__factory.js.map +1 -1
- package/dist/factories/contracts/test/ERC721Test__factory.d.ts +1 -1
- package/dist/factories/contracts/test/ERC721Test__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/ERC721Test__factory.js +1 -1
- package/dist/factories/contracts/test/ERC721Test__factory.js.map +1 -1
- package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts +1 -1
- package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/LightTestRecipient__factory.js +1 -1
- package/dist/factories/contracts/test/LightTestRecipient__factory.js.map +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 +14 -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.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestIsm__factory.js +1 -1
- package/dist/factories/contracts/test/TestIsm__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.js +1 -1
- package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMailbox__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
- package/dist/factories/contracts/test/TestMailbox__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestMerkleTreeHook__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMerkleTreeHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js +14 -1
- package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestMerkle__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMerkle__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestMerkle__factory.js +1 -1
- package/dist/factories/contracts/test/TestMerkle__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestMessage__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMessage__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestMessage__factory.js +1 -1
- package/dist/factories/contracts/test/TestMessage__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestPostDispatchHook__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestPostDispatchHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestPostDispatchHook__factory.js +14 -1
- package/dist/factories/contracts/test/TestPostDispatchHook__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestQuerySender__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
- package/dist/factories/contracts/test/TestQuerySender__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestQuery__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
- package/dist/factories/contracts/test/TestQuery__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestRecipient__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestRecipient__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestRecipient__factory.js +1 -1
- package/dist/factories/contracts/test/TestRecipient__factory.js.map +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.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestSendReceiver__factory.js +29 -1
- package/dist/factories/contracts/test/TestSendReceiver__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestTokenRecipient__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestTokenRecipient__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestTokenRecipient__factory.js +1 -1
- package/dist/factories/contracts/test/TestTokenRecipient__factory.js.map +1 -1
- package/dist/factories/contracts/test/index.d.ts +0 -1
- package/dist/factories/contracts/test/index.d.ts.map +1 -1
- package/dist/factories/contracts/test/index.js +1 -3
- package/dist/factories/contracts/test/index.js.map +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.d.ts.map +1 -1
- package/dist/factories/contracts/token/HypERC721__factory.js +1 -1
- package/dist/factories/contracts/token/HypERC721__factory.js.map +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 +75 -0
- package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts.map +1 -0
- package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js +589 -0
- package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js.map +1 -0
- package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts +75 -0
- package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts.map +1 -0
- package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js +850 -0
- package/dist/factories/contracts/token/extensions/FastHypERC20__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.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypERC721URIStorage__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/index.d.ts +2 -0
- package/dist/factories/contracts/token/extensions/index.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/index.js +5 -1
- package/dist/factories/contracts/token/extensions/index.js.map +1 -1
- package/dist/factories/contracts/token/libs/FastTokenRouter__factory.d.ts +52 -0
- package/dist/factories/contracts/token/libs/FastTokenRouter__factory.d.ts.map +1 -0
- package/dist/factories/contracts/token/libs/FastTokenRouter__factory.js +537 -0
- package/dist/factories/contracts/token/libs/FastTokenRouter__factory.js.map +1 -0
- package/dist/factories/contracts/token/libs/index.d.ts +1 -0
- package/dist/factories/contracts/token/libs/index.d.ts.map +1 -1
- package/dist/factories/contracts/token/libs/index.js +3 -1
- package/dist/factories/contracts/token/libs/index.js.map +1 -1
- package/dist/factories/contracts/upgrade/Versioned__factory.d.ts +1 -1
- package/dist/factories/contracts/upgrade/Versioned__factory.d.ts.map +1 -1
- package/dist/factories/contracts/upgrade/Versioned__factory.js +1 -1
- package/dist/factories/contracts/upgrade/Versioned__factory.js.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -5
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
- package/contracts/test/TestMultisigIsm.sol +0 -39
- package/dist/contracts/test/TestMultisigIsm.d.ts +0 -126
- package/dist/contracts/test/TestMultisigIsm.d.ts.map +0 -1
- package/dist/contracts/test/TestMultisigIsm.js.map +0 -1
- package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts +0 -41
- package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts.map +0 -1
- package/dist/factories/contracts/test/TestMultisigIsm__factory.js +0 -133
- package/dist/factories/contracts/test/TestMultisigIsm__factory.js.map +0 -1
|
@@ -17,6 +17,7 @@ import {MerkleLib} from "../libs/Merkle.sol";
|
|
|
17
17
|
import {Message} from "../libs/Message.sol";
|
|
18
18
|
import {MailboxClient} from "../client/MailboxClient.sol";
|
|
19
19
|
import {Indexed} from "../libs/Indexed.sol";
|
|
20
|
+
import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
|
|
20
21
|
import {AbstractPostDispatchHook} from "./libs/AbstractPostDispatchHook.sol";
|
|
21
22
|
import {StandardHookMetadata} from "./libs/StandardHookMetadata.sol";
|
|
22
23
|
|
|
@@ -49,6 +50,13 @@ contract MerkleTreeHook is AbstractPostDispatchHook, MailboxClient, Indexed {
|
|
|
49
50
|
return (root(), count() - 1);
|
|
50
51
|
}
|
|
51
52
|
|
|
53
|
+
// ============ External Functions ============
|
|
54
|
+
|
|
55
|
+
/// @inheritdoc IPostDispatchHook
|
|
56
|
+
function hookType() external pure override returns (uint8) {
|
|
57
|
+
return uint8(IPostDispatchHook.Types.MERKLE_TREE);
|
|
58
|
+
}
|
|
59
|
+
|
|
52
60
|
// ============ Internal Functions ============
|
|
53
61
|
|
|
54
62
|
/// @inheritdoc AbstractPostDispatchHook
|
|
@@ -48,7 +48,7 @@ contract OPStackHook is AbstractMessageIdAuthHook {
|
|
|
48
48
|
constructor(
|
|
49
49
|
address _mailbox,
|
|
50
50
|
uint32 _destinationDomain,
|
|
51
|
-
|
|
51
|
+
bytes32 _ism,
|
|
52
52
|
address _l1Messenger
|
|
53
53
|
) AbstractMessageIdAuthHook(_mailbox, _destinationDomain, _ism) {
|
|
54
54
|
require(
|
|
@@ -58,8 +58,7 @@ contract OPStackHook is AbstractMessageIdAuthHook {
|
|
|
58
58
|
l1Messenger = ICrossDomainMessenger(_l1Messenger);
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
// ============
|
|
62
|
-
|
|
61
|
+
// ============ Internal functions ============
|
|
63
62
|
function _quoteDispatch(bytes calldata, bytes calldata)
|
|
64
63
|
internal
|
|
65
64
|
pure
|
|
@@ -69,8 +68,6 @@ contract OPStackHook is AbstractMessageIdAuthHook {
|
|
|
69
68
|
return 0; // gas subsidized by the L2
|
|
70
69
|
}
|
|
71
70
|
|
|
72
|
-
// ============ Internal functions ============
|
|
73
|
-
|
|
74
71
|
/// @inheritdoc AbstractMessageIdAuthHook
|
|
75
72
|
function _sendMessageId(bytes calldata metadata, bytes memory payload)
|
|
76
73
|
internal
|
|
@@ -81,7 +78,7 @@ contract OPStackHook is AbstractMessageIdAuthHook {
|
|
|
81
78
|
"OPStackHook: msgValue must be less than 2 ** 255"
|
|
82
79
|
);
|
|
83
80
|
l1Messenger.sendMessage{value: metadata.msgValue(0)}(
|
|
84
|
-
ism,
|
|
81
|
+
TypeCasts.bytes32ToAddress(ism),
|
|
85
82
|
payload,
|
|
86
83
|
GAS_LIMIT
|
|
87
84
|
);
|
|
@@ -14,6 +14,7 @@ pragma solidity >=0.8.0;
|
|
|
14
14
|
@@@@@@@@@ @@@@@@@@*/
|
|
15
15
|
|
|
16
16
|
import {StandardHookMetadata} from "../hooks/libs/StandardHookMetadata.sol";
|
|
17
|
+
import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
|
|
17
18
|
import {AbstractPostDispatchHook} from "./libs/AbstractPostDispatchHook.sol";
|
|
18
19
|
|
|
19
20
|
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
|
|
@@ -32,6 +33,13 @@ contract PausableHook is AbstractPostDispatchHook, Ownable, Pausable {
|
|
|
32
33
|
_unpause();
|
|
33
34
|
}
|
|
34
35
|
|
|
36
|
+
// ============ External Functions ============
|
|
37
|
+
|
|
38
|
+
/// @inheritdoc IPostDispatchHook
|
|
39
|
+
function hookType() external pure override returns (uint8) {
|
|
40
|
+
return uint8(IPostDispatchHook.Types.PAUSABLE);
|
|
41
|
+
}
|
|
42
|
+
|
|
35
43
|
// ============ Internal functions ============
|
|
36
44
|
|
|
37
45
|
/// @inheritdoc AbstractPostDispatchHook
|
|
@@ -17,6 +17,7 @@ pragma solidity >=0.8.0;
|
|
|
17
17
|
import {Message} from "../libs/Message.sol";
|
|
18
18
|
import {StandardHookMetadata} from "./libs/StandardHookMetadata.sol";
|
|
19
19
|
import {AbstractPostDispatchHook} from "./libs/AbstractPostDispatchHook.sol";
|
|
20
|
+
import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
|
|
20
21
|
|
|
21
22
|
// ============ External Imports ============
|
|
22
23
|
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
@@ -59,6 +60,11 @@ contract StaticProtocolFee is AbstractPostDispatchHook, Ownable {
|
|
|
59
60
|
|
|
60
61
|
// ============ External Functions ============
|
|
61
62
|
|
|
63
|
+
/// @inheritdoc IPostDispatchHook
|
|
64
|
+
function hookType() external pure override returns (uint8) {
|
|
65
|
+
return uint8(IPostDispatchHook.Types.PROTOCOL_FEE);
|
|
66
|
+
}
|
|
67
|
+
|
|
62
68
|
/**
|
|
63
69
|
* @notice Sets the protocol fee.
|
|
64
70
|
* @param _protocolFee The new protocol fee.
|
|
@@ -33,7 +33,7 @@ contract ERC5164Hook is AbstractMessageIdAuthHook {
|
|
|
33
33
|
constructor(
|
|
34
34
|
address _mailbox,
|
|
35
35
|
uint32 _destinationDomain,
|
|
36
|
-
|
|
36
|
+
bytes32 _ism,
|
|
37
37
|
address _dispatcher
|
|
38
38
|
) AbstractMessageIdAuthHook(_mailbox, _destinationDomain, _ism) {
|
|
39
39
|
require(
|
|
@@ -43,13 +43,15 @@ contract ERC5164Hook is AbstractMessageIdAuthHook {
|
|
|
43
43
|
dispatcher = IMessageDispatcher(_dispatcher);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
// ============ Internal Functions ============
|
|
47
|
+
|
|
46
48
|
function _quoteDispatch(bytes calldata, bytes calldata)
|
|
47
49
|
internal
|
|
48
50
|
pure
|
|
49
51
|
override
|
|
50
52
|
returns (uint256)
|
|
51
53
|
{
|
|
52
|
-
|
|
54
|
+
return 0; // EIP-5164 doesn't enforce a gas abstraction
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
function _sendMessageId(
|
|
@@ -58,6 +60,10 @@ contract ERC5164Hook is AbstractMessageIdAuthHook {
|
|
|
58
60
|
bytes memory payload
|
|
59
61
|
) internal override {
|
|
60
62
|
require(msg.value == 0, "ERC5164Hook: no value allowed");
|
|
61
|
-
dispatcher.dispatchMessage(
|
|
63
|
+
dispatcher.dispatchMessage(
|
|
64
|
+
destinationDomain,
|
|
65
|
+
TypeCasts.bytes32ToAddress(ism),
|
|
66
|
+
payload
|
|
67
|
+
);
|
|
62
68
|
}
|
|
63
69
|
}
|
|
@@ -23,6 +23,11 @@ contract StaticAggregationHook is AbstractPostDispatchHook {
|
|
|
23
23
|
|
|
24
24
|
// ============ External functions ============
|
|
25
25
|
|
|
26
|
+
/// @inheritdoc IPostDispatchHook
|
|
27
|
+
function hookType() external pure override returns (uint8) {
|
|
28
|
+
return uint8(IPostDispatchHook.Types.AGGREGATION);
|
|
29
|
+
}
|
|
30
|
+
|
|
26
31
|
/// @inheritdoc AbstractPostDispatchHook
|
|
27
32
|
function _postDispatch(bytes calldata metadata, bytes calldata message)
|
|
28
33
|
internal
|
|
@@ -92,6 +92,11 @@ contract InterchainGasPaymaster is
|
|
|
92
92
|
|
|
93
93
|
// ============ External Functions ============
|
|
94
94
|
|
|
95
|
+
/// @inheritdoc IPostDispatchHook
|
|
96
|
+
function hookType() external pure override returns (uint8) {
|
|
97
|
+
return uint8(IPostDispatchHook.Types.INTERCHAIN_GAS_PAYMASTER);
|
|
98
|
+
}
|
|
99
|
+
|
|
95
100
|
/**
|
|
96
101
|
* @param _owner The owner of the contract.
|
|
97
102
|
* @param _beneficiary The beneficiary.
|
|
@@ -14,6 +14,7 @@ pragma solidity >=0.8.0;
|
|
|
14
14
|
@@@@@@@@@ @@@@@@@@*/
|
|
15
15
|
|
|
16
16
|
// ============ Internal Imports ============
|
|
17
|
+
import {IPostDispatchHook} from "../../interfaces/hooks/IPostDispatchHook.sol";
|
|
17
18
|
import {AbstractPostDispatchHook} from "./AbstractPostDispatchHook.sol";
|
|
18
19
|
import {AbstractMessageIdAuthorizedIsm} from "../../isms/hook/AbstractMessageIdAuthorizedIsm.sol";
|
|
19
20
|
import {TypeCasts} from "../../libs/TypeCasts.sol";
|
|
@@ -35,8 +36,8 @@ abstract contract AbstractMessageIdAuthHook is
|
|
|
35
36
|
|
|
36
37
|
// ============ Constants ============
|
|
37
38
|
|
|
38
|
-
// address for ISM to verify messages
|
|
39
|
-
|
|
39
|
+
// left-padded address for ISM to verify messages
|
|
40
|
+
bytes32 public immutable ism;
|
|
40
41
|
// Domain of chain on which the ISM is deployed
|
|
41
42
|
uint32 public immutable destinationDomain;
|
|
42
43
|
|
|
@@ -45,9 +46,9 @@ abstract contract AbstractMessageIdAuthHook is
|
|
|
45
46
|
constructor(
|
|
46
47
|
address _mailbox,
|
|
47
48
|
uint32 _destinationDomain,
|
|
48
|
-
|
|
49
|
+
bytes32 _ism
|
|
49
50
|
) MailboxClient(_mailbox) {
|
|
50
|
-
require(_ism !=
|
|
51
|
+
require(_ism != bytes32(0), "AbstractMessageIdAuthHook: invalid ISM");
|
|
51
52
|
require(
|
|
52
53
|
_destinationDomain != 0,
|
|
53
54
|
"AbstractMessageIdAuthHook: invalid destination domain"
|
|
@@ -56,6 +57,11 @@ abstract contract AbstractMessageIdAuthHook is
|
|
|
56
57
|
destinationDomain = _destinationDomain;
|
|
57
58
|
}
|
|
58
59
|
|
|
60
|
+
/// @inheritdoc IPostDispatchHook
|
|
61
|
+
function hookType() external pure returns (uint8) {
|
|
62
|
+
return uint8(IPostDispatchHook.Types.ID_AUTH_ISM);
|
|
63
|
+
}
|
|
64
|
+
|
|
59
65
|
// ============ Internal functions ============
|
|
60
66
|
|
|
61
67
|
/// @inheritdoc AbstractPostDispatchHook
|
|
@@ -42,8 +42,15 @@ contract DomainRoutingHook is AbstractPostDispatchHook, MailboxClient {
|
|
|
42
42
|
_transferOwnership(_owner);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
// ============ External Functions ============
|
|
46
|
+
|
|
47
|
+
/// @inheritdoc IPostDispatchHook
|
|
48
|
+
function hookType() external pure virtual override returns (uint8) {
|
|
49
|
+
return uint8(IPostDispatchHook.Types.ROUTING);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function setHook(uint32 _destination, address _hook) public onlyOwner {
|
|
53
|
+
hooks[_destination] = IPostDispatchHook(_hook);
|
|
47
54
|
}
|
|
48
55
|
|
|
49
56
|
function setHooks(HookConfig[] calldata configs) external onlyOwner {
|
|
@@ -36,17 +36,25 @@ contract FallbackDomainRoutingHook is DomainRoutingHook {
|
|
|
36
36
|
fallbackHook = IPostDispatchHook(_fallback);
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
// ============ External Functions ============
|
|
40
|
+
|
|
41
|
+
/// @inheritdoc IPostDispatchHook
|
|
42
|
+
function hookType() external pure override returns (uint8) {
|
|
43
|
+
return uint8(IPostDispatchHook.Types.FALLBACK_ROUTING);
|
|
44
|
+
}
|
|
45
|
+
|
|
39
46
|
// ============ Internal Functions ============
|
|
40
47
|
|
|
41
48
|
function _getConfiguredHook(bytes calldata message)
|
|
42
49
|
internal
|
|
43
50
|
view
|
|
44
51
|
override
|
|
45
|
-
returns (IPostDispatchHook
|
|
52
|
+
returns (IPostDispatchHook)
|
|
46
53
|
{
|
|
47
|
-
|
|
48
|
-
if (address(
|
|
49
|
-
|
|
54
|
+
IPostDispatchHook _hook = hooks[message.destination()];
|
|
55
|
+
if (address(_hook) == address(0)) {
|
|
56
|
+
_hook = fallbackHook;
|
|
50
57
|
}
|
|
58
|
+
return _hook;
|
|
51
59
|
}
|
|
52
60
|
}
|
|
@@ -14,6 +14,23 @@ pragma solidity >=0.8.0;
|
|
|
14
14
|
@@@@@@@@@ @@@@@@@@*/
|
|
15
15
|
|
|
16
16
|
interface IPostDispatchHook {
|
|
17
|
+
enum Types {
|
|
18
|
+
UNUSED,
|
|
19
|
+
ROUTING,
|
|
20
|
+
AGGREGATION,
|
|
21
|
+
MERKLE_TREE,
|
|
22
|
+
INTERCHAIN_GAS_PAYMASTER,
|
|
23
|
+
FALLBACK_ROUTING,
|
|
24
|
+
ID_AUTH_ISM,
|
|
25
|
+
PAUSABLE,
|
|
26
|
+
PROTOCOL_FEE
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* @notice Returns an enum that represents the type of hook
|
|
31
|
+
*/
|
|
32
|
+
function hookType() external view returns (uint8);
|
|
33
|
+
|
|
17
34
|
/**
|
|
18
35
|
* @notice Returns whether the hook supports metadata
|
|
19
36
|
* @param metadata metadata
|
|
@@ -27,13 +27,13 @@ interface ICrossDomainMessenger {
|
|
|
27
27
|
bytes calldata _message
|
|
28
28
|
) external payable;
|
|
29
29
|
|
|
30
|
-
/*************
|
|
31
|
-
* Variables *
|
|
32
|
-
*************/
|
|
33
|
-
|
|
34
30
|
function xDomainMessageSender() external view returns (address);
|
|
31
|
+
|
|
32
|
+
function OTHER_MESSENGER() external view returns (address);
|
|
35
33
|
}
|
|
36
34
|
|
|
35
|
+
interface IL1CrossDomainMessenger is ICrossDomainMessenger {}
|
|
36
|
+
|
|
37
37
|
interface IL2CrossDomainMessenger is ICrossDomainMessenger {
|
|
38
38
|
function messageNonce() external view returns (uint256);
|
|
39
39
|
}
|
|
@@ -18,7 +18,6 @@ pragma solidity >=0.8.0;
|
|
|
18
18
|
import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
|
|
19
19
|
import {LibBit} from "../../libs/LibBit.sol";
|
|
20
20
|
import {Message} from "../../libs/Message.sol";
|
|
21
|
-
import {TypeCasts} from "../../libs/TypeCasts.sol";
|
|
22
21
|
|
|
23
22
|
// ============ External Imports ============
|
|
24
23
|
|
|
@@ -46,9 +45,9 @@ abstract contract AbstractMessageIdAuthorizedIsm is
|
|
|
46
45
|
/// @dev the first bit is reserved for verification and the rest 255 bits are for the msg.value
|
|
47
46
|
mapping(bytes32 => uint256) public verifiedMessages;
|
|
48
47
|
/// @notice Index of verification bit in verifiedMessages
|
|
49
|
-
uint256 public constant
|
|
50
|
-
/// @notice
|
|
51
|
-
|
|
48
|
+
uint256 public constant VERIFIED_MASK_INDEX = 255;
|
|
49
|
+
/// @notice address for the authorized hook
|
|
50
|
+
bytes32 public authorizedHook;
|
|
52
51
|
|
|
53
52
|
// ============ Events ============
|
|
54
53
|
|
|
@@ -57,9 +56,9 @@ abstract contract AbstractMessageIdAuthorizedIsm is
|
|
|
57
56
|
|
|
58
57
|
// ============ Initializer ============
|
|
59
58
|
|
|
60
|
-
function setAuthorizedHook(
|
|
59
|
+
function setAuthorizedHook(bytes32 _hook) external initializer {
|
|
61
60
|
require(
|
|
62
|
-
_hook !=
|
|
61
|
+
_hook != bytes32(0),
|
|
63
62
|
"AbstractMessageIdAuthorizedIsm: invalid authorized hook"
|
|
64
63
|
);
|
|
65
64
|
authorizedHook = _hook;
|
|
@@ -79,12 +78,18 @@ abstract contract AbstractMessageIdAuthorizedIsm is
|
|
|
79
78
|
bytes32 messageId = message.id();
|
|
80
79
|
|
|
81
80
|
// check for the first bit (used for verification)
|
|
82
|
-
bool verified = verifiedMessages[messageId].isBitSet(
|
|
81
|
+
bool verified = verifiedMessages[messageId].isBitSet(
|
|
82
|
+
VERIFIED_MASK_INDEX
|
|
83
|
+
);
|
|
83
84
|
// rest 255 bits contains the msg.value passed from the hook
|
|
84
85
|
if (verified) {
|
|
85
|
-
|
|
86
|
-
|
|
86
|
+
uint256 _msgValue = verifiedMessages[messageId].clearBit(
|
|
87
|
+
VERIFIED_MASK_INDEX
|
|
87
88
|
);
|
|
89
|
+
if (_msgValue > 0) {
|
|
90
|
+
verifiedMessages[messageId] -= _msgValue;
|
|
91
|
+
payable(message.recipientAddress()).sendValue(_msgValue);
|
|
92
|
+
}
|
|
88
93
|
}
|
|
89
94
|
return verified;
|
|
90
95
|
}
|
|
@@ -99,8 +104,12 @@ abstract contract AbstractMessageIdAuthorizedIsm is
|
|
|
99
104
|
_isAuthorized(),
|
|
100
105
|
"AbstractMessageIdAuthorizedIsm: sender is not the hook"
|
|
101
106
|
);
|
|
107
|
+
require(
|
|
108
|
+
msg.value < 2**VERIFIED_MASK_INDEX,
|
|
109
|
+
"AbstractMessageIdAuthorizedIsm: msg.value must be less than 2^255"
|
|
110
|
+
);
|
|
102
111
|
|
|
103
|
-
verifiedMessages[messageId] = msg.value.setBit(
|
|
112
|
+
verifiedMessages[messageId] = msg.value.setBit(VERIFIED_MASK_INDEX);
|
|
104
113
|
emit ReceivedMessage(messageId);
|
|
105
114
|
}
|
|
106
115
|
|
|
@@ -52,6 +52,7 @@ contract OPStackIsm is
|
|
|
52
52
|
* @notice Check if sender is authorized to message `verifyMessageId`.
|
|
53
53
|
*/
|
|
54
54
|
function _isAuthorized() internal view override returns (bool) {
|
|
55
|
-
return
|
|
55
|
+
return
|
|
56
|
+
_crossChainSender() == TypeCasts.bytes32ToAddress(authorizedHook);
|
|
56
57
|
}
|
|
57
58
|
}
|
|
@@ -3,7 +3,7 @@ pragma solidity ^0.8.13;
|
|
|
3
3
|
|
|
4
4
|
import "./MockMailbox.sol";
|
|
5
5
|
import "../test/TestInterchainGasPaymaster.sol";
|
|
6
|
-
import "../test/
|
|
6
|
+
import "../test/TestIsm.sol";
|
|
7
7
|
|
|
8
8
|
import {TypeCasts} from "../libs/TypeCasts.sol";
|
|
9
9
|
|
|
@@ -25,8 +25,8 @@ contract MockHyperlaneEnvironment {
|
|
|
25
25
|
originMailbox.addRemoteMailbox(_destinationDomain, destinationMailbox);
|
|
26
26
|
destinationMailbox.addRemoteMailbox(_originDomain, originMailbox);
|
|
27
27
|
|
|
28
|
-
isms[originDomain] = new
|
|
29
|
-
isms[destinationDomain] = new
|
|
28
|
+
isms[originDomain] = new TestIsm();
|
|
29
|
+
isms[destinationDomain] = new TestIsm();
|
|
30
30
|
|
|
31
31
|
originMailbox.setDefaultIsm(address(isms[originDomain]));
|
|
32
32
|
destinationMailbox.setDefaultIsm(address(isms[destinationDomain]));
|
|
@@ -34,10 +34,6 @@ contract MockHyperlaneEnvironment {
|
|
|
34
34
|
igps[originDomain] = new TestInterchainGasPaymaster();
|
|
35
35
|
igps[destinationDomain] = new TestInterchainGasPaymaster();
|
|
36
36
|
|
|
37
|
-
// TODO: update routers with IGP paymentss
|
|
38
|
-
// originMailbox.setDefaultHook(address(igps[originDomain]));
|
|
39
|
-
// destinationMailbox.setDefaultHook(address(igps[destinationDomain]));
|
|
40
|
-
|
|
41
37
|
originMailbox.transferOwnership(msg.sender);
|
|
42
38
|
destinationMailbox.transferOwnership(msg.sender);
|
|
43
39
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
2
|
pragma solidity >=0.8.0;
|
|
3
3
|
|
|
4
|
+
import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
|
|
4
5
|
import {AbstractPostDispatchHook} from "../hooks/libs/AbstractPostDispatchHook.sol";
|
|
5
6
|
|
|
6
7
|
contract TestPostDispatchHook is AbstractPostDispatchHook {
|
|
@@ -9,6 +10,13 @@ contract TestPostDispatchHook is AbstractPostDispatchHook {
|
|
|
9
10
|
// test fees for quoteDispatch
|
|
10
11
|
uint256 public fee = 0;
|
|
11
12
|
|
|
13
|
+
// ============ External Functions ============
|
|
14
|
+
|
|
15
|
+
/// @inheritdoc IPostDispatchHook
|
|
16
|
+
function hookType() external pure override returns (uint8) {
|
|
17
|
+
return uint8(IPostDispatchHook.Types.UNUSED);
|
|
18
|
+
}
|
|
19
|
+
|
|
12
20
|
function supportsMetadata(bytes calldata)
|
|
13
21
|
public
|
|
14
22
|
pure
|
|
@@ -6,8 +6,11 @@ import {TypeCasts} from "../libs/TypeCasts.sol";
|
|
|
6
6
|
import {IInterchainGasPaymaster} from "../interfaces/IInterchainGasPaymaster.sol";
|
|
7
7
|
import {IMessageRecipient} from "../interfaces/IMessageRecipient.sol";
|
|
8
8
|
import {IMailbox} from "../interfaces/IMailbox.sol";
|
|
9
|
+
import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
|
|
10
|
+
import {IInterchainSecurityModule, ISpecifiesInterchainSecurityModule} from "../interfaces/IInterchainSecurityModule.sol";
|
|
9
11
|
|
|
10
12
|
import {StandardHookMetadata} from "../hooks/libs/StandardHookMetadata.sol";
|
|
13
|
+
import {MailboxClient} from "../client/MailboxClient.sol";
|
|
11
14
|
|
|
12
15
|
contract TestSendReceiver is IMessageRecipient {
|
|
13
16
|
using TypeCasts for address;
|
|
@@ -34,6 +37,26 @@ contract TestSendReceiver is IMessageRecipient {
|
|
|
34
37
|
);
|
|
35
38
|
}
|
|
36
39
|
|
|
40
|
+
function dispatchToSelf(
|
|
41
|
+
IMailbox _mailbox,
|
|
42
|
+
uint32 _destinationDomain,
|
|
43
|
+
bytes calldata _messageBody,
|
|
44
|
+
IPostDispatchHook hook
|
|
45
|
+
) external payable {
|
|
46
|
+
bytes memory hookMetadata = StandardHookMetadata.formatMetadata(
|
|
47
|
+
HANDLE_GAS_AMOUNT,
|
|
48
|
+
msg.sender
|
|
49
|
+
);
|
|
50
|
+
// TODO: handle topping up?
|
|
51
|
+
_mailbox.dispatch{value: msg.value}(
|
|
52
|
+
_destinationDomain,
|
|
53
|
+
address(this).addressToBytes32(),
|
|
54
|
+
_messageBody,
|
|
55
|
+
hookMetadata,
|
|
56
|
+
hook
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
37
60
|
function handle(
|
|
38
61
|
uint32,
|
|
39
62
|
bytes32,
|
|
@@ -40,6 +40,7 @@ contract HypERC20 is ERC20Upgradeable, TokenRouter {
|
|
|
40
40
|
function balanceOf(address _account)
|
|
41
41
|
public
|
|
42
42
|
view
|
|
43
|
+
virtual
|
|
43
44
|
override(TokenRouter, ERC20Upgradeable)
|
|
44
45
|
returns (uint256)
|
|
45
46
|
{
|
|
@@ -67,7 +68,7 @@ contract HypERC20 is ERC20Upgradeable, TokenRouter {
|
|
|
67
68
|
address _recipient,
|
|
68
69
|
uint256 _amount,
|
|
69
70
|
bytes calldata // no metadata
|
|
70
|
-
) internal override {
|
|
71
|
+
) internal virtual override {
|
|
71
72
|
_mint(_recipient, _amount);
|
|
72
73
|
}
|
|
73
74
|
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import {HypERC20} from "../HypERC20.sol";
|
|
5
|
+
import {FastTokenRouter} from "../libs/FastTokenRouter.sol";
|
|
6
|
+
import {TokenRouter} from "../libs/TokenRouter.sol";
|
|
7
|
+
|
|
8
|
+
import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @title Hyperlane ERC20 Token Router that extends ERC20 with remote transfer functionality.
|
|
12
|
+
* @author Abacus Works
|
|
13
|
+
* @dev Supply on each chain is not constant but the aggregate supply across all chains is.
|
|
14
|
+
*/
|
|
15
|
+
contract FastHypERC20 is FastTokenRouter, HypERC20 {
|
|
16
|
+
constructor(uint8 __decimals, address _mailbox)
|
|
17
|
+
HypERC20(__decimals, _mailbox)
|
|
18
|
+
{}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @dev delegates transfer logic to `_transferTo`.
|
|
22
|
+
* @inheritdoc TokenRouter
|
|
23
|
+
*/
|
|
24
|
+
function _handle(
|
|
25
|
+
uint32 _origin,
|
|
26
|
+
bytes32 _sender,
|
|
27
|
+
bytes calldata _message
|
|
28
|
+
) internal virtual override(FastTokenRouter, TokenRouter) {
|
|
29
|
+
FastTokenRouter._handle(_origin, _sender, _message);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @dev Mints `_amount` of tokens to `_recipient`.
|
|
34
|
+
* @inheritdoc FastTokenRouter
|
|
35
|
+
*/
|
|
36
|
+
function _fastTransferTo(address _recipient, uint256 _amount)
|
|
37
|
+
internal
|
|
38
|
+
override
|
|
39
|
+
{
|
|
40
|
+
_mint(_recipient, _amount);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @dev Burns `_amount` of tokens from `_recipient`.
|
|
45
|
+
* @inheritdoc FastTokenRouter
|
|
46
|
+
*/
|
|
47
|
+
function _fastRecieveFrom(address _sender, uint256 _amount)
|
|
48
|
+
internal
|
|
49
|
+
override
|
|
50
|
+
{
|
|
51
|
+
_burn(_sender, _amount);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function balanceOf(address _account)
|
|
55
|
+
public
|
|
56
|
+
view
|
|
57
|
+
virtual
|
|
58
|
+
override(HypERC20, TokenRouter)
|
|
59
|
+
returns (uint256)
|
|
60
|
+
{
|
|
61
|
+
return ERC20Upgradeable.balanceOf(_account);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import {HypERC20Collateral} from "../HypERC20Collateral.sol";
|
|
5
|
+
import {FastTokenRouter} from "../libs/FastTokenRouter.sol";
|
|
6
|
+
import {TokenRouter} from "../libs/TokenRouter.sol";
|
|
7
|
+
|
|
8
|
+
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
9
|
+
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @title Hyperlane ERC20 Token Collateral that wraps an existing ERC20 with remote transfer functionality.
|
|
13
|
+
* @author Abacus Works
|
|
14
|
+
*/
|
|
15
|
+
contract FastHypERC20Collateral is FastTokenRouter, HypERC20Collateral {
|
|
16
|
+
using SafeERC20 for IERC20;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @notice Constructor
|
|
20
|
+
* @param erc20 Address of the token to keep as collateral
|
|
21
|
+
*/
|
|
22
|
+
constructor(address erc20, address _mailbox)
|
|
23
|
+
HypERC20Collateral(erc20, _mailbox)
|
|
24
|
+
{}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @dev delegates transfer logic to `_transferTo`.
|
|
28
|
+
* @inheritdoc FastTokenRouter
|
|
29
|
+
*/
|
|
30
|
+
function _handle(
|
|
31
|
+
uint32 _origin,
|
|
32
|
+
bytes32 _sender,
|
|
33
|
+
bytes calldata _message
|
|
34
|
+
) internal virtual override(FastTokenRouter, TokenRouter) {
|
|
35
|
+
FastTokenRouter._handle(_origin, _sender, _message);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @dev Transfers `_amount` of `wrappedToken` to `_recipient`.
|
|
40
|
+
* @inheritdoc FastTokenRouter
|
|
41
|
+
*/
|
|
42
|
+
function _fastTransferTo(address _recipient, uint256 _amount)
|
|
43
|
+
internal
|
|
44
|
+
override
|
|
45
|
+
{
|
|
46
|
+
wrappedToken.safeTransfer(_recipient, _amount);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @dev Transfers in `_amount` of `wrappedToken` from `_recipient`.
|
|
51
|
+
* @inheritdoc FastTokenRouter
|
|
52
|
+
*/
|
|
53
|
+
function _fastRecieveFrom(address _sender, uint256 _amount)
|
|
54
|
+
internal
|
|
55
|
+
override
|
|
56
|
+
{
|
|
57
|
+
wrappedToken.safeTransferFrom(_sender, address(this), _amount);
|
|
58
|
+
}
|
|
59
|
+
}
|