@hyperlane-xyz/core 5.4.2-superchain.0 → 5.5.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/PackageVersioned.sol +1 -1
- package/contracts/interfaces/IInterchainSecurityModule.sol +1 -2
- package/contracts/interfaces/hooks/IPostDispatchHook.sol +1 -2
- package/contracts/isms/TrustedRelayerIsm.sol +9 -0
- package/contracts/isms/hook/ArbL2ToL1Ism.sol +1 -0
- package/contracts/isms/hook/OPL2ToL1Ism.sol +2 -2
- package/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol +8 -4
- package/contracts/libs/RateLimited.sol +34 -8
- package/contracts/mock/MockMailbox.sol +5 -0
- package/contracts/mock/MockOptimism.sol +0 -73
- package/contracts/token/extensions/HypERC4626.sol +29 -2
- package/contracts/token/extensions/HypERC4626Collateral.sol +26 -2
- package/contracts/token/extensions/HypERC4626OwnerCollateral.sol +24 -3
- package/dist/buildArtifact.js +1 -1
- package/dist/buildArtifact.json +1 -1
- package/dist/contracts/hooks/index.d.ts +0 -1
- package/dist/contracts/hooks/index.d.ts.map +1 -1
- package/dist/contracts/hooks/warp-route/RateLimitedHook.d.ts +24 -10
- package/dist/contracts/hooks/warp-route/RateLimitedHook.d.ts.map +1 -1
- package/dist/contracts/interfaces/optimism/index.d.ts +0 -2
- package/dist/contracts/interfaces/optimism/index.d.ts.map +1 -1
- package/dist/contracts/isms/hook/index.d.ts +0 -2
- package/dist/contracts/isms/hook/index.d.ts.map +1 -1
- package/dist/contracts/isms/warp-route/RateLimitedIsm.d.ts +24 -10
- package/dist/contracts/isms/warp-route/RateLimitedIsm.d.ts.map +1 -1
- package/dist/contracts/libs/RateLimited.d.ts +24 -10
- package/dist/contracts/libs/RateLimited.d.ts.map +1 -1
- package/dist/contracts/mock/MockMailbox.d.ts +32 -1
- package/dist/contracts/mock/MockMailbox.d.ts.map +1 -1
- package/dist/contracts/mock/MockOptimism.sol/index.d.ts +0 -1
- package/dist/contracts/mock/MockOptimism.sol/index.d.ts.map +1 -1
- package/dist/contracts/token/extensions/HypERC4626.d.ts +30 -1
- package/dist/contracts/token/extensions/HypERC4626.d.ts.map +1 -1
- package/dist/contracts/token/extensions/HypERC4626Collateral.d.ts +16 -1
- package/dist/contracts/token/extensions/HypERC4626Collateral.d.ts.map +1 -1
- package/dist/contracts/token/extensions/HypERC4626OwnerCollateral.d.ts +31 -1
- package/dist/contracts/token/extensions/HypERC4626OwnerCollateral.d.ts.map +1 -1
- package/dist/factories/contracts/AttributeCheckpointFraud__factory.d.ts +1 -1
- package/dist/factories/contracts/AttributeCheckpointFraud__factory.js +1 -1
- package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts +1 -1
- package/dist/factories/contracts/CheckpointFraudProofs__factory.js +1 -1
- package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
- package/dist/factories/contracts/Mailbox__factory.js +1 -1
- package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.d.ts +1 -1
- package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.js +1 -1
- package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.d.ts +1 -1
- package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.js +1 -1
- package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.js +1 -1
- package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.js +1 -1
- package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/OPStackHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/PausableHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/PausableHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/PolygonPosHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/PolygonPosHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/ProtocolFee__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/ProtocolFee__factory.js +1 -1
- package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js +1 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.js +1 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js +1 -1
- package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/igp/StorageGasOracle__factory.js +1 -1
- package/dist/factories/contracts/hooks/index.d.ts +0 -1
- package/dist/factories/contracts/hooks/index.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/index.js +0 -1
- package/dist/factories/contracts/hooks/index.js.map +1 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.js +1 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.js +1 -1
- package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.d.ts +1 -1
- package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js +1 -1
- package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.d.ts +17 -2
- package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.js +21 -2
- package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.js.map +1 -1
- package/dist/factories/contracts/interfaces/optimism/index.d.ts +0 -2
- package/dist/factories/contracts/interfaces/optimism/index.d.ts.map +1 -1
- package/dist/factories/contracts/interfaces/optimism/index.js +0 -2
- package/dist/factories/contracts/interfaces/optimism/index.js.map +1 -1
- package/dist/factories/contracts/isms/NoopIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/NoopIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/PausableIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/PausableIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/TrustedRelayerIsm__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.js +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js +1 -1
- package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__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.js +1 -1
- package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js +1 -1
- package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__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.js +1 -1
- package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/hook/index.d.ts +0 -1
- package/dist/factories/contracts/isms/hook/index.d.ts.map +1 -1
- package/dist/factories/contracts/isms/hook/index.js +0 -1
- package/dist/factories/contracts/isms/hook/index.js.map +1 -1
- package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.js.map +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.js.map +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.js.map +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__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.js +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
- package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.d.ts +17 -2
- package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.js +21 -2
- package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.js.map +1 -1
- package/dist/factories/contracts/libs/RateLimited__factory.d.ts +17 -2
- package/dist/factories/contracts/libs/RateLimited__factory.d.ts.map +1 -1
- package/dist/factories/contracts/libs/RateLimited__factory.js +21 -2
- package/dist/factories/contracts/libs/RateLimited__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +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.js +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.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 +11 -1
- package/dist/factories/contracts/mock/MockMailbox__factory.d.ts.map +1 -1
- package/dist/factories/contracts/mock/MockMailbox__factory.js +14 -1
- package/dist/factories/contracts/mock/MockMailbox__factory.js.map +1 -1
- package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.js +1 -1
- package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.js +1 -1
- package/dist/factories/contracts/mock/MockOptimism.sol/index.d.ts +0 -1
- package/dist/factories/contracts/mock/MockOptimism.sol/index.d.ts.map +1 -1
- package/dist/factories/contracts/mock/MockOptimism.sol/index.js +0 -1
- package/dist/factories/contracts/mock/MockOptimism.sol/index.js.map +1 -1
- package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts +1 -1
- package/dist/factories/contracts/test/LightTestRecipient__factory.js +1 -1
- package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -1
- package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js +1 -1
- package/dist/factories/contracts/test/TestIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestIsm__factory.js +1 -1
- package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
- package/dist/factories/contracts/test/TestMerkleTreeHook__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js +1 -1
- package/dist/factories/contracts/test/TestPostDispatchHook__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestPostDispatchHook__factory.js +1 -1
- package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
- package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
- package/dist/factories/contracts/test/TestRecipient__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestRecipient__factory.js +1 -1
- package/dist/factories/contracts/test/TestRemoteChallenger__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestRemoteChallenger__factory.js +1 -1
- package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestRouter__factory.js +1 -1
- package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestSendReceiver__factory.js +1 -1
- package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.d.ts +1 -1
- package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.js +1 -1
- package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts +1 -1
- package/dist/factories/contracts/token/HypERC20Collateral__factory.js +1 -1
- package/dist/factories/contracts/token/HypERC20__factory.d.ts +1 -1
- package/dist/factories/contracts/token/HypERC20__factory.js +1 -1
- package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts +1 -1
- package/dist/factories/contracts/token/HypERC721Collateral__factory.js +1 -1
- package/dist/factories/contracts/token/HypERC721__factory.d.ts +1 -1
- package/dist/factories/contracts/token/HypERC721__factory.js +1 -1
- package/dist/factories/contracts/token/HypNative__factory.d.ts +1 -1
- package/dist/factories/contracts/token/HypNative__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts +11 -1
- package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js +14 -1
- package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.d.ts +21 -1
- package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.js +27 -1
- package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts +26 -1
- package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC4626__factory.js +33 -1
- package/dist/factories/contracts/token/extensions/HypERC4626__factory.js.map +1 -1
- package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypFiatToken__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypFiatToken__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20__factory.js +1 -1
- package/dist/index.d.ts +0 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -5
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/contracts/hooks/SuperchainHook.sol +0 -82
- package/contracts/interfaces/optimism/ICrossL2Inbox.sol +0 -60
- package/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger.sol +0 -68
- package/contracts/isms/hook/SuperchainIsm.sol +0 -91
- package/dist/contracts/hooks/SuperchainHook.d.ts +0 -411
- package/dist/contracts/hooks/SuperchainHook.d.ts.map +0 -1
- package/dist/contracts/hooks/SuperchainHook.js +0 -2
- package/dist/contracts/hooks/SuperchainHook.js.map +0 -1
- package/dist/contracts/interfaces/optimism/ICrossL2Inbox.d.ts +0 -233
- package/dist/contracts/interfaces/optimism/ICrossL2Inbox.d.ts.map +0 -1
- package/dist/contracts/interfaces/optimism/ICrossL2Inbox.js +0 -2
- package/dist/contracts/interfaces/optimism/ICrossL2Inbox.js.map +0 -1
- package/dist/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger.d.ts +0 -209
- package/dist/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger.d.ts.map +0 -1
- package/dist/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger.js +0 -2
- package/dist/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger.js.map +0 -1
- package/dist/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism.d.ts +0 -273
- package/dist/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism.d.ts.map +0 -1
- package/dist/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism.js +0 -2
- package/dist/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism.js.map +0 -1
- package/dist/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm.d.ts +0 -288
- package/dist/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm.d.ts.map +0 -1
- package/dist/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm.js +0 -2
- package/dist/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm.js.map +0 -1
- package/dist/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM.d.ts +0 -273
- package/dist/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM.d.ts.map +0 -1
- package/dist/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM.js +0 -2
- package/dist/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM.js.map +0 -1
- package/dist/contracts/isms/hook/SuperchainIsm.sol/index.d.ts +0 -2
- package/dist/contracts/isms/hook/SuperchainIsm.sol/index.d.ts.map +0 -1
- package/dist/contracts/isms/hook/SuperchainIsm.sol/index.js +0 -2
- package/dist/contracts/isms/hook/SuperchainIsm.sol/index.js.map +0 -1
- package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm.d.ts +0 -110
- package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm.d.ts.map +0 -1
- package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm.js +0 -2
- package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm.js.map +0 -1
- package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm.d.ts +0 -125
- package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm.d.ts.map +0 -1
- package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm.js +0 -2
- package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm.js.map +0 -1
- package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.d.ts +0 -3
- package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.d.ts.map +0 -1
- package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.js +0 -2
- package/dist/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.js.map +0 -1
- package/dist/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger.d.ts +0 -224
- package/dist/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger.d.ts.map +0 -1
- package/dist/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger.js +0 -2
- package/dist/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger.js.map +0 -1
- package/dist/factories/contracts/hooks/SuperchainHook__factory.d.ts +0 -262
- package/dist/factories/contracts/hooks/SuperchainHook__factory.d.ts.map +0 -1
- package/dist/factories/contracts/hooks/SuperchainHook__factory.js +0 -352
- package/dist/factories/contracts/hooks/SuperchainHook__factory.js.map +0 -1
- package/dist/factories/contracts/interfaces/optimism/ICrossL2Inbox__factory.d.ts +0 -143
- package/dist/factories/contracts/interfaces/optimism/ICrossL2Inbox__factory.d.ts.map +0 -1
- package/dist/factories/contracts/interfaces/optimism/ICrossL2Inbox__factory.js +0 -189
- package/dist/factories/contracts/interfaces/optimism/ICrossL2Inbox__factory.js.map +0 -1
- package/dist/factories/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger__factory.d.ts +0 -140
- package/dist/factories/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger__factory.d.ts.map +0 -1
- package/dist/factories/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger__factory.js +0 -185
- package/dist/factories/contracts/interfaces/optimism/IL2toL2CrossDomainMessenger__factory.js.map +0 -1
- package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism__factory.d.ts +0 -165
- package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism__factory.d.ts.map +0 -1
- package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism__factory.js +0 -229
- package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPL2ToL1Ism__factory.js.map +0 -1
- package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm__factory.d.ts +0 -175
- package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm__factory.d.ts.map +0 -1
- package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm__factory.js +0 -242
- package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/OPStackIsm__factory.js.map +0 -1
- package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM__factory.d.ts +0 -165
- package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM__factory.d.ts.map +0 -1
- package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM__factory.js +0 -229
- package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/SuperchainISM__factory.js.map +0 -1
- package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/index.d.ts +0 -2
- package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/index.d.ts.map +0 -1
- package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/index.js +0 -5
- package/dist/factories/contracts/isms/hook/SuperchainIsm.sol/index.js.map +0 -1
- package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm__factory.d.ts +0 -79
- package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm__factory.d.ts.map +0 -1
- package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm__factory.js +0 -109
- package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/AbstractRpcMultisigIsm__factory.js.map +0 -1
- package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm__factory.d.ts +0 -121
- package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm__factory.d.ts.map +0 -1
- package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm__factory.js +0 -171
- package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/RpcMultisigIsm__factory.js.map +0 -1
- package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.d.ts +0 -3
- package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.d.ts.map +0 -1
- package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.js +0 -6
- package/dist/factories/contracts/isms/multisig/RpcValidatorMultisigIsm.sol/index.js.map +0 -1
- package/dist/factories/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger__factory.d.ts +0 -174
- package/dist/factories/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger__factory.d.ts.map +0 -1
- package/dist/factories/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger__factory.js +0 -237
- package/dist/factories/contracts/mock/MockOptimism.sol/MockL2toL2CrossDomainMessenger__factory.js.map +0 -1
|
@@ -3,6 +3,7 @@ pragma solidity >=0.8.0;
|
|
|
3
3
|
|
|
4
4
|
// ============ Internal Imports ============
|
|
5
5
|
import {IInterchainSecurityModule} from "../interfaces/IInterchainSecurityModule.sol";
|
|
6
|
+
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
6
7
|
import {Message} from "../libs/Message.sol";
|
|
7
8
|
import {Mailbox} from "../Mailbox.sol";
|
|
8
9
|
import {PackageVersioned} from "contracts/PackageVersioned.sol";
|
|
@@ -15,6 +16,14 @@ contract TrustedRelayerIsm is IInterchainSecurityModule, PackageVersioned {
|
|
|
15
16
|
address public immutable trustedRelayer;
|
|
16
17
|
|
|
17
18
|
constructor(address _mailbox, address _trustedRelayer) {
|
|
19
|
+
require(
|
|
20
|
+
_trustedRelayer != address(0),
|
|
21
|
+
"TrustedRelayerIsm: invalid relayer"
|
|
22
|
+
);
|
|
23
|
+
require(
|
|
24
|
+
Address.isContract(_mailbox),
|
|
25
|
+
"TrustedRelayerIsm: invalid mailbox"
|
|
26
|
+
);
|
|
18
27
|
mailbox = Mailbox(_mailbox);
|
|
19
28
|
trustedRelayer = _trustedRelayer;
|
|
20
29
|
}
|
|
@@ -63,6 +63,7 @@ contract ArbL2ToL1Ism is
|
|
|
63
63
|
) external override returns (bool) {
|
|
64
64
|
if (!isVerified(message)) {
|
|
65
65
|
_verifyWithOutboxCall(metadata, message);
|
|
66
|
+
require(isVerified(message), "ArbL2ToL1Ism: message not verified");
|
|
66
67
|
}
|
|
67
68
|
releaseValueToRecipient(message);
|
|
68
69
|
return true;
|
|
@@ -66,9 +66,9 @@ contract OPL2ToL1Ism is
|
|
|
66
66
|
bytes calldata metadata,
|
|
67
67
|
bytes calldata message
|
|
68
68
|
) external override returns (bool) {
|
|
69
|
-
|
|
70
|
-
if (!verified) {
|
|
69
|
+
if (!isVerified(message)) {
|
|
71
70
|
_verifyWithPortalCall(metadata, message);
|
|
71
|
+
require(isVerified(message), "OPL2ToL1Ism: message not verified");
|
|
72
72
|
}
|
|
73
73
|
releaseValueToRecipient(message);
|
|
74
74
|
return true;
|
|
@@ -73,11 +73,14 @@ abstract contract AbstractStaticWeightedMultisigIsm is
|
|
|
73
73
|
|
|
74
74
|
// assumes that signatures are ordered by validator
|
|
75
75
|
for (
|
|
76
|
-
uint256
|
|
77
|
-
_totalWeight < _thresholdWeight &&
|
|
78
|
-
++
|
|
76
|
+
uint256 signatureIndex = 0;
|
|
77
|
+
_totalWeight < _thresholdWeight && signatureIndex < _validatorCount;
|
|
78
|
+
++signatureIndex
|
|
79
79
|
) {
|
|
80
|
-
address _signer = ECDSA.recover(
|
|
80
|
+
address _signer = ECDSA.recover(
|
|
81
|
+
_digest,
|
|
82
|
+
signatureAt(_metadata, signatureIndex)
|
|
83
|
+
);
|
|
81
84
|
// loop through remaining validators until we find a match
|
|
82
85
|
while (
|
|
83
86
|
_validatorIndex < _validatorCount &&
|
|
@@ -90,6 +93,7 @@ abstract contract AbstractStaticWeightedMultisigIsm is
|
|
|
90
93
|
|
|
91
94
|
// add the weight of the current validator
|
|
92
95
|
_totalWeight += _validators[_validatorIndex].weight;
|
|
96
|
+
++_validatorIndex;
|
|
93
97
|
}
|
|
94
98
|
require(
|
|
95
99
|
_totalWeight >= _thresholdWeight,
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
2
|
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
/*@@@@@@@ @@@@@@@@@
|
|
5
|
+
@@@@@@@@@ @@@@@@@@@
|
|
6
|
+
@@@@@@@@@ @@@@@@@@@
|
|
7
|
+
@@@@@@@@@ @@@@@@@@@
|
|
8
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
9
|
+
@@@@@ HYPERLANE @@@@@@@
|
|
10
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
11
|
+
@@@@@@@@@ @@@@@@@@@
|
|
12
|
+
@@@@@@@@@ @@@@@@@@@
|
|
13
|
+
@@@@@@@@@ @@@@@@@@@
|
|
14
|
+
@@@@@@@@@ @@@@@@@@*/
|
|
15
|
+
|
|
16
|
+
// ============ External Imports ============
|
|
3
17
|
import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
|
|
4
18
|
|
|
5
19
|
/**
|
|
@@ -7,16 +21,26 @@ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/Own
|
|
|
7
21
|
* @notice A contract used to keep track of an address sender's token amount limits.
|
|
8
22
|
* @dev Implements a modified token bucket algorithm where the bucket is full in the beginning and gradually refills
|
|
9
23
|
* See: https://dev.to/satrobit/rate-limiting-using-the-token-bucket-algorithm-3cjh
|
|
10
|
-
|
|
24
|
+
*
|
|
25
|
+
*/
|
|
11
26
|
contract RateLimited is OwnableUpgradeable {
|
|
12
27
|
uint256 public constant DURATION = 1 days; // 86400
|
|
13
|
-
|
|
14
|
-
uint256 public
|
|
15
|
-
|
|
28
|
+
/// @notice Current filled level
|
|
29
|
+
uint256 public filledLevel;
|
|
30
|
+
/// @notice Tokens per second refill rate
|
|
31
|
+
uint256 public refillRate;
|
|
32
|
+
/// @notice Timestamp of the last time an action has been taken
|
|
33
|
+
uint256 public lastUpdated;
|
|
16
34
|
|
|
17
35
|
event RateLimitSet(uint256 _oldCapacity, uint256 _newCapacity);
|
|
18
36
|
|
|
37
|
+
event ConsumedFilledLevel(uint256 filledLevel, uint256 lastUpdated);
|
|
38
|
+
|
|
19
39
|
constructor(uint256 _capacity) {
|
|
40
|
+
require(
|
|
41
|
+
_capacity >= DURATION,
|
|
42
|
+
"Capacity must be greater than DURATION"
|
|
43
|
+
);
|
|
20
44
|
_transferOwnership(msg.sender);
|
|
21
45
|
setRefillRate(_capacity);
|
|
22
46
|
filledLevel = _capacity;
|
|
@@ -88,20 +112,22 @@ contract RateLimited is OwnableUpgradeable {
|
|
|
88
112
|
|
|
89
113
|
/**
|
|
90
114
|
* Validate an amount and decreases the currentCapacity
|
|
91
|
-
* @param
|
|
115
|
+
* @param _consumedAmount The amount to consume the fill level
|
|
92
116
|
* @return The new filled level
|
|
93
117
|
*/
|
|
94
118
|
function validateAndConsumeFilledLevel(
|
|
95
|
-
uint256
|
|
119
|
+
uint256 _consumedAmount
|
|
96
120
|
) public returns (uint256) {
|
|
97
121
|
uint256 adjustedFilledLevel = calculateCurrentLevel();
|
|
98
|
-
require(
|
|
122
|
+
require(_consumedAmount <= adjustedFilledLevel, "RateLimitExceeded");
|
|
99
123
|
|
|
100
124
|
// Reduce the filledLevel and update lastUpdated
|
|
101
|
-
uint256 _filledLevel = adjustedFilledLevel -
|
|
125
|
+
uint256 _filledLevel = adjustedFilledLevel - _consumedAmount;
|
|
102
126
|
filledLevel = _filledLevel;
|
|
103
127
|
lastUpdated = block.timestamp;
|
|
104
128
|
|
|
129
|
+
emit ConsumedFilledLevel(filledLevel, lastUpdated);
|
|
130
|
+
|
|
105
131
|
return _filledLevel;
|
|
106
132
|
}
|
|
107
133
|
}
|
|
@@ -77,4 +77,9 @@ contract MockMailbox is Mailbox {
|
|
|
77
77
|
Mailbox(address(this)).process{value: msg.value}("", _message);
|
|
78
78
|
inboundProcessedNonce++;
|
|
79
79
|
}
|
|
80
|
+
|
|
81
|
+
function processInboundMessage(uint32 _nonce) public {
|
|
82
|
+
bytes memory _message = inboundMessages[_nonce];
|
|
83
|
+
Mailbox(address(this)).process("", _message);
|
|
84
|
+
}
|
|
80
85
|
}
|
|
@@ -4,10 +4,7 @@ pragma solidity ^0.8.0;
|
|
|
4
4
|
import {CallLib} from "../middleware/libs/Call.sol";
|
|
5
5
|
import {TypeCasts} from "../libs/TypeCasts.sol";
|
|
6
6
|
import {ICrossDomainMessenger} from "../interfaces/optimism/ICrossDomainMessenger.sol";
|
|
7
|
-
import {IL2toL2CrossDomainMessenger} from "../interfaces/optimism/IL2toL2CrossDomainMessenger.sol";
|
|
8
|
-
import {ICrossL2Inbox} from "../interfaces/optimism/ICrossL2Inbox.sol";
|
|
9
7
|
import {IOptimismPortal} from "../interfaces/optimism/IOptimismPortal.sol";
|
|
10
|
-
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
11
8
|
|
|
12
9
|
// for both L1 and L2
|
|
13
10
|
contract MockOptimismMessenger is ICrossDomainMessenger {
|
|
@@ -62,73 +59,3 @@ contract MockOptimismPortal is IOptimismPortal {
|
|
|
62
59
|
CallLib.call(call);
|
|
63
60
|
}
|
|
64
61
|
}
|
|
65
|
-
|
|
66
|
-
contract MockL2toL2CrossDomainMessenger is IL2toL2CrossDomainMessenger {
|
|
67
|
-
uint256 public messageNonce;
|
|
68
|
-
bool passMessages = true;
|
|
69
|
-
address originCaller;
|
|
70
|
-
|
|
71
|
-
function encodeCall(
|
|
72
|
-
address _originCaller,
|
|
73
|
-
address target,
|
|
74
|
-
bytes calldata call
|
|
75
|
-
) public view returns (bytes memory) {
|
|
76
|
-
return abi.encode(_originCaller, target, call);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
function sendMessage(
|
|
80
|
-
uint256 _destination,
|
|
81
|
-
address _target,
|
|
82
|
-
bytes calldata _message
|
|
83
|
-
) external returns (bytes32 msgHash_) {}
|
|
84
|
-
|
|
85
|
-
/// @notice Relays a message that was sent by the other CrossDomainMessenger contract. Can only
|
|
86
|
-
/// be executed via cross-chain call from the other messenger OR if the message was
|
|
87
|
-
/// already received once and is currently being replayed.
|
|
88
|
-
/// @param _id Identifier of the SentMessage event to be relayed
|
|
89
|
-
/// @param _sentMessage Message payload of the `SentMessage` event
|
|
90
|
-
function relayMessage(
|
|
91
|
-
ICrossL2Inbox.Identifier calldata _id,
|
|
92
|
-
bytes calldata _sentMessage
|
|
93
|
-
) external payable {
|
|
94
|
-
require(
|
|
95
|
-
passMessages,
|
|
96
|
-
"MockL2toL2CrossDomainMessenger: passMessages is false"
|
|
97
|
-
);
|
|
98
|
-
(address _originCaller, address target, bytes memory call) = abi.decode(
|
|
99
|
-
_sentMessage,
|
|
100
|
-
(address, address, bytes)
|
|
101
|
-
);
|
|
102
|
-
originCaller = _originCaller;
|
|
103
|
-
Address.functionCall(target, call);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/// @notice Mapping of message hashes to boolean receipt values. Note that a message will only
|
|
107
|
-
/// be present in this mapping if it has successfully been relayed on this chain, and
|
|
108
|
-
/// can therefore not be relayed again.
|
|
109
|
-
/// @param _msgHash message hash to check.
|
|
110
|
-
/// @return Returns true if the message corresponding to the `_msgHash` was successfully relayed.
|
|
111
|
-
function successfulMessages(bytes32 _msgHash) external view returns (bool) {
|
|
112
|
-
return true;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/// @notice Retrieves the sender of the current cross domain message.
|
|
116
|
-
/// @return sender_ Address of the sender of the current cross domain message.
|
|
117
|
-
function crossDomainMessageSender()
|
|
118
|
-
external
|
|
119
|
-
view
|
|
120
|
-
returns (address sender_)
|
|
121
|
-
{
|
|
122
|
-
return originCaller;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/// @notice Retrieves the source of the current cross domain message.
|
|
126
|
-
/// @return source_ Chain ID of the source of the current cross domain message.
|
|
127
|
-
function crossDomainMessageSource()
|
|
128
|
-
external
|
|
129
|
-
view
|
|
130
|
-
returns (uint256 source_)
|
|
131
|
-
{
|
|
132
|
-
return 0;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
@@ -1,13 +1,28 @@
|
|
|
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
|
+
|
|
16
|
+
// ============ Internal Imports ============
|
|
4
17
|
import {IXERC20} from "../interfaces/IXERC20.sol";
|
|
5
18
|
import {HypERC20} from "../HypERC20.sol";
|
|
6
|
-
import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
|
|
7
19
|
import {Message} from "../../libs/Message.sol";
|
|
8
20
|
import {TokenMessage} from "../libs/TokenMessage.sol";
|
|
9
21
|
import {TokenRouter} from "../libs/TokenRouter.sol";
|
|
10
22
|
|
|
23
|
+
// ============ External Imports ============
|
|
24
|
+
import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
|
|
25
|
+
|
|
11
26
|
/**
|
|
12
27
|
* @title Hyperlane ERC20 Rebasing Token
|
|
13
28
|
* @author Abacus Works
|
|
@@ -17,9 +32,12 @@ contract HypERC4626 is HypERC20 {
|
|
|
17
32
|
using Message for bytes;
|
|
18
33
|
using TokenMessage for bytes;
|
|
19
34
|
|
|
35
|
+
event ExchangeRateUpdated(uint256 newExchangeRate, uint32 rateUpdateNonce);
|
|
36
|
+
|
|
20
37
|
uint256 public constant PRECISION = 1e10;
|
|
21
38
|
uint32 public immutable collateralDomain;
|
|
22
39
|
uint256 public exchangeRate; // 1e10
|
|
40
|
+
uint32 public previousNonce;
|
|
23
41
|
|
|
24
42
|
constructor(
|
|
25
43
|
uint8 _decimals,
|
|
@@ -66,7 +84,16 @@ contract HypERC4626 is HypERC20 {
|
|
|
66
84
|
bytes calldata _message
|
|
67
85
|
) internal virtual override {
|
|
68
86
|
if (_origin == collateralDomain) {
|
|
69
|
-
|
|
87
|
+
(uint256 newExchangeRate, uint32 rateUpdateNonce) = abi.decode(
|
|
88
|
+
_message.metadata(),
|
|
89
|
+
(uint256, uint32)
|
|
90
|
+
);
|
|
91
|
+
// only update if the nonce is greater than the previous nonce
|
|
92
|
+
if (rateUpdateNonce > previousNonce) {
|
|
93
|
+
exchangeRate = newExchangeRate;
|
|
94
|
+
previousNonce = rateUpdateNonce;
|
|
95
|
+
emit ExchangeRateUpdated(exchangeRate, rateUpdateNonce);
|
|
96
|
+
}
|
|
70
97
|
}
|
|
71
98
|
super._handle(_origin, _sender, _message);
|
|
72
99
|
}
|
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
pragma solidity >=0.8.0;
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
/*@@@@@@@ @@@@@@@@@
|
|
5
|
+
@@@@@@@@@ @@@@@@@@@
|
|
6
|
+
@@@@@@@@@ @@@@@@@@@
|
|
7
|
+
@@@@@@@@@ @@@@@@@@@
|
|
8
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
9
|
+
@@@@@ HYPERLANE @@@@@@@
|
|
10
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
11
|
+
@@@@@@@@@ @@@@@@@@@
|
|
12
|
+
@@@@@@@@@ @@@@@@@@@
|
|
13
|
+
@@@@@@@@@ @@@@@@@@@
|
|
14
|
+
@@@@@@@@@ @@@@@@@@*/
|
|
15
|
+
|
|
16
|
+
// ============ Internal Imports ============
|
|
5
17
|
import {TokenMessage} from "../libs/TokenMessage.sol";
|
|
6
18
|
import {HypERC20Collateral} from "../HypERC20Collateral.sol";
|
|
7
19
|
import {TypeCasts} from "../../libs/TypeCasts.sol";
|
|
8
20
|
|
|
21
|
+
// ============ External Imports ============
|
|
22
|
+
import "@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol";
|
|
23
|
+
|
|
9
24
|
/**
|
|
10
25
|
* @title Hyperlane ERC4626 Token Collateral with deposits collateral to a vault
|
|
11
26
|
* @author Abacus Works
|
|
@@ -17,9 +32,13 @@ contract HypERC4626Collateral is HypERC20Collateral {
|
|
|
17
32
|
|
|
18
33
|
// Address of the ERC4626 compatible vault
|
|
19
34
|
ERC4626 public immutable vault;
|
|
35
|
+
// Precision for the exchange rate
|
|
20
36
|
uint256 public constant PRECISION = 1e10;
|
|
37
|
+
// Null recipient for rebase transfer
|
|
21
38
|
bytes32 public constant NULL_RECIPIENT =
|
|
22
39
|
0x0000000000000000000000000000000000000000000000000000000000000001;
|
|
40
|
+
// Nonce for the rate update, to ensure sequential updates
|
|
41
|
+
uint32 public rateUpdateNonce;
|
|
23
42
|
|
|
24
43
|
constructor(
|
|
25
44
|
ERC4626 _vault,
|
|
@@ -52,7 +71,12 @@ contract HypERC4626Collateral is HypERC20Collateral {
|
|
|
52
71
|
vault.totalSupply(),
|
|
53
72
|
Math.Rounding.Down
|
|
54
73
|
);
|
|
55
|
-
|
|
74
|
+
|
|
75
|
+
rateUpdateNonce++;
|
|
76
|
+
bytes memory _tokenMetadata = abi.encode(
|
|
77
|
+
_exchangeRate,
|
|
78
|
+
rateUpdateNonce
|
|
79
|
+
);
|
|
56
80
|
|
|
57
81
|
bytes memory _tokenMessage = TokenMessage.format(
|
|
58
82
|
_recipient,
|
|
@@ -1,9 +1,24 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
pragma solidity >=0.8.0;
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
/*@@@@@@@ @@@@@@@@@
|
|
5
|
+
@@@@@@@@@ @@@@@@@@@
|
|
6
|
+
@@@@@@@@@ @@@@@@@@@
|
|
7
|
+
@@@@@@@@@ @@@@@@@@@
|
|
8
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
9
|
+
@@@@@ HYPERLANE @@@@@@@
|
|
10
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
11
|
+
@@@@@@@@@ @@@@@@@@@
|
|
12
|
+
@@@@@@@@@ @@@@@@@@@
|
|
13
|
+
@@@@@@@@@ @@@@@@@@@
|
|
14
|
+
@@@@@@@@@ @@@@@@@@*/
|
|
15
|
+
|
|
16
|
+
// ============ Internal Imports ============
|
|
5
17
|
import {HypERC20Collateral} from "../HypERC20Collateral.sol";
|
|
6
18
|
|
|
19
|
+
// ============ External Imports ============
|
|
20
|
+
import {ERC4626} from "@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol";
|
|
21
|
+
|
|
7
22
|
/**
|
|
8
23
|
* @title Hyperlane ERC20 Token Collateral with deposits collateral to a vault, the yield goes to the owner
|
|
9
24
|
* @author ltyu
|
|
@@ -11,9 +26,12 @@ import {HypERC20Collateral} from "../HypERC20Collateral.sol";
|
|
|
11
26
|
contract HypERC4626OwnerCollateral is HypERC20Collateral {
|
|
12
27
|
// Address of the ERC4626 compatible vault
|
|
13
28
|
ERC4626 public immutable vault;
|
|
14
|
-
|
|
29
|
+
// standby precision for exchange rate
|
|
30
|
+
uint256 public constant PRECISION = 1e10;
|
|
15
31
|
// Internal balance of total asset deposited
|
|
16
32
|
uint256 public assetDeposited;
|
|
33
|
+
// Nonce for the rate update, to ensure sequential updates (not necessary for Owner variant but for compatibility with HypERC4626)
|
|
34
|
+
uint32 public rateUpdateNonce;
|
|
17
35
|
|
|
18
36
|
event ExcessSharesSwept(uint256 amount, uint256 assetsRedeemed);
|
|
19
37
|
|
|
@@ -40,8 +58,11 @@ contract HypERC4626OwnerCollateral is HypERC20Collateral {
|
|
|
40
58
|
function _transferFromSender(
|
|
41
59
|
uint256 _amount
|
|
42
60
|
) internal override returns (bytes memory metadata) {
|
|
43
|
-
|
|
61
|
+
super._transferFromSender(_amount);
|
|
44
62
|
_depositIntoVault(_amount);
|
|
63
|
+
rateUpdateNonce++;
|
|
64
|
+
|
|
65
|
+
return abi.encode(PRECISION, rateUpdateNonce);
|
|
45
66
|
}
|
|
46
67
|
|
|
47
68
|
/**
|