@hyperlane-xyz/core 6.1.0 → 7.0.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/test/TestSendReceiver.sol +12 -1
- package/contracts/token/HypERC20.sol +1 -1
- package/contracts/token/extensions/4626.md +80 -0
- package/contracts/token/extensions/HypERC4626.sol +33 -54
- package/contracts/token/extensions/HypERC4626Collateral.sol +14 -6
- package/contracts/token/libs/FungibleTokenRouter.sol +4 -0
- package/contracts/token/libs/TokenRouter.sol +2 -2
- package/dist/buildArtifact.js +1 -1
- package/dist/buildArtifact.json +1 -1
- package/dist/typechain/contracts/test/TestSendReceiver.d.ts +10 -10
- package/dist/typechain/contracts/test/TestSendReceiver.d.ts.map +1 -1
- package/dist/typechain/contracts/token/extensions/HypERC4626.d.ts +10 -10
- package/dist/typechain/contracts/token/extensions/HypERC4626.d.ts.map +1 -1
- package/dist/typechain/contracts/token/extensions/index.d.ts +0 -2
- package/dist/typechain/contracts/token/extensions/index.d.ts.map +1 -1
- package/dist/typechain/contracts/token/libs/index.d.ts +0 -1
- package/dist/typechain/contracts/token/libs/index.d.ts.map +1 -1
- package/dist/typechain/factories/contracts/AttributeCheckpointFraud__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/AttributeCheckpointFraud__factory.js +1 -1
- package/dist/typechain/factories/contracts/CheckpointFraudProofs__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/CheckpointFraudProofs__factory.js +1 -1
- package/dist/typechain/factories/contracts/Mailbox__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/Mailbox__factory.js +1 -1
- package/dist/typechain/factories/contracts/avs/ECDSAStakeRegistry__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/avs/ECDSAStakeRegistry__factory.js +1 -1
- package/dist/typechain/factories/contracts/avs/HyperlaneServiceManager__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/avs/HyperlaneServiceManager__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/ArbL2ToL1Hook__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/ArbL2ToL1Hook__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/CCIPHook__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/CCIPHook__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/DefaultHook__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/DefaultHook__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/MerkleTreeHook__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/MerkleTreeHook__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/OPL2ToL1Hook__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/OPL2ToL1Hook__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/OPStackHook__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/OPStackHook__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/PausableHook__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/PausableHook__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/PolygonPosHook__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/PolygonPosHook__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/ProtocolFee__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/ProtocolFee__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/igp/StorageGasOracle__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/igp/StorageGasOracle__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/routing/AmountRoutingHook__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/routing/AmountRoutingHook__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/routing/DomainRoutingHook__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js +1 -1
- package/dist/typechain/factories/contracts/hooks/warp-route/RateLimitedHook__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/hooks/warp-route/RateLimitedHook__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/NoopIsm__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/NoopIsm__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/PausableIsm__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/PausableIsm__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/TrustedRelayerIsm__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/TrustedRelayerIsm__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/aggregation/StorageAggregationIsm.sol/StorageAggregationIsmFactory__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/aggregation/StorageAggregationIsm.sol/StorageAggregationIsmFactory__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/aggregation/StorageAggregationIsm.sol/StorageAggregationIsm__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/aggregation/StorageAggregationIsm.sol/StorageAggregationIsm__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/hook/CCIPIsm__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/hook/CCIPIsm__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/hook/ERC5164Ism__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/hook/OPStackIsm__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/hook/OPStackIsm__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/hook/PolygonPosIsm__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/StorageMultisigIsm.sol/StorageMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/StorageMultisigIsm.sol/StorageMerkleRootMultisigIsmFactory__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/StorageMultisigIsm.sol/StorageMerkleRootMultisigIsm__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/StorageMultisigIsm.sol/StorageMerkleRootMultisigIsm__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/StorageMultisigIsm.sol/StorageMessageIdMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/StorageMultisigIsm.sol/StorageMessageIdMultisigIsmFactory__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/StorageMultisigIsm.sol/StorageMessageIdMultisigIsm__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/StorageMultisigIsm.sol/StorageMessageIdMultisigIsm__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/ValidatorAnnounce__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/warp-route/AmountRoutingIsm__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/warp-route/AmountRoutingIsm__factory.js +1 -1
- package/dist/typechain/factories/contracts/isms/warp-route/RateLimitedIsm__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/isms/warp-route/RateLimitedIsm__factory.js +1 -1
- package/dist/typechain/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
- package/dist/typechain/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
- package/dist/typechain/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +1 -1
- package/dist/typechain/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +1 -1
- package/dist/typechain/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +1 -1
- package/dist/typechain/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
- package/dist/typechain/factories/contracts/mock/MockMailbox__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/mock/MockMailbox__factory.js +1 -1
- package/dist/typechain/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/test/TestGasRouter__factory.js +1 -1
- package/dist/typechain/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/test/TestInterchainGasPaymaster__factory.js +1 -1
- package/dist/typechain/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/test/TestMailbox__factory.js +1 -1
- package/dist/typechain/factories/contracts/test/TestMerkleTreeHook__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/test/TestMerkleTreeHook__factory.js +1 -1
- package/dist/typechain/factories/contracts/test/TestPostDispatchHook__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/test/TestPostDispatchHook__factory.js +1 -1
- package/dist/typechain/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/test/TestQuerySender__factory.js +1 -1
- package/dist/typechain/factories/contracts/test/TestQuery__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/test/TestQuery__factory.js +1 -1
- package/dist/typechain/factories/contracts/test/TestRemoteChallenger__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/test/TestRemoteChallenger__factory.js +1 -1
- package/dist/typechain/factories/contracts/test/TestRouter__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/test/TestRouter__factory.js +1 -1
- package/dist/typechain/factories/contracts/test/TestSendReceiver__factory.d.ts +2 -2
- package/dist/typechain/factories/contracts/test/TestSendReceiver__factory.d.ts.map +1 -1
- package/dist/typechain/factories/contracts/test/TestSendReceiver__factory.js +2 -2
- package/dist/typechain/factories/contracts/test/TestSendReceiver__factory.js.map +1 -1
- package/dist/typechain/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.js +1 -1
- package/dist/typechain/factories/contracts/token/HypERC20Collateral__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/token/HypERC20Collateral__factory.js +1 -1
- package/dist/typechain/factories/contracts/token/HypERC20__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/token/HypERC20__factory.js +1 -1
- package/dist/typechain/factories/contracts/token/HypERC721Collateral__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/token/HypERC721Collateral__factory.js +1 -1
- package/dist/typechain/factories/contracts/token/HypERC721__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/token/HypERC721__factory.js +1 -1
- package/dist/typechain/factories/contracts/token/HypNative__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/token/HypNative__factory.js +1 -1
- package/dist/typechain/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts.map +1 -1
- package/dist/typechain/factories/contracts/token/extensions/HypERC4626Collateral__factory.js +1 -1
- package/dist/typechain/factories/contracts/token/extensions/HypERC4626Collateral__factory.js.map +1 -1
- package/dist/typechain/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.js +1 -1
- package/dist/typechain/factories/contracts/token/extensions/HypERC4626__factory.d.ts +3 -3
- package/dist/typechain/factories/contracts/token/extensions/HypERC4626__factory.d.ts.map +1 -1
- package/dist/typechain/factories/contracts/token/extensions/HypERC4626__factory.js +3 -3
- package/dist/typechain/factories/contracts/token/extensions/HypERC4626__factory.js.map +1 -1
- package/dist/typechain/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/token/extensions/HypERC721URICollateral__factory.js +1 -1
- package/dist/typechain/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/token/extensions/HypERC721URIStorage__factory.js +1 -1
- package/dist/typechain/factories/contracts/token/extensions/HypFiatToken__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/token/extensions/HypFiatToken__factory.js +1 -1
- package/dist/typechain/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js +1 -1
- package/dist/typechain/factories/contracts/token/extensions/HypXERC20__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/token/extensions/HypXERC20__factory.js +1 -1
- package/dist/typechain/factories/contracts/token/extensions/WHypERC4626__factory.d.ts +1 -1
- package/dist/typechain/factories/contracts/token/extensions/WHypERC4626__factory.js +1 -1
- package/dist/typechain/factories/contracts/token/extensions/index.d.ts +0 -2
- package/dist/typechain/factories/contracts/token/extensions/index.d.ts.map +1 -1
- package/dist/typechain/factories/contracts/token/extensions/index.js +0 -2
- package/dist/typechain/factories/contracts/token/extensions/index.js.map +1 -1
- package/dist/typechain/factories/contracts/token/libs/index.d.ts +0 -1
- package/dist/typechain/factories/contracts/token/libs/index.d.ts.map +1 -1
- package/dist/typechain/factories/contracts/token/libs/index.js +0 -1
- package/dist/typechain/factories/contracts/token/libs/index.js.map +1 -1
- package/dist/typechain/index.d.ts +0 -6
- package/dist/typechain/index.d.ts.map +1 -1
- package/dist/typechain/index.js +0 -3
- package/dist/typechain/index.js.map +1 -1
- package/dist/zksync/artifacts/AmountRoutingHook.js +2 -2
- package/dist/zksync/artifacts/AmountRoutingIsm.js +2 -2
- package/dist/zksync/artifacts/ArbL2ToL1Hook.js +2 -2
- package/dist/zksync/artifacts/ArbL2ToL1Ism.js +2 -2
- package/dist/zksync/artifacts/AttributeCheckpointFraud.js +2 -2
- package/dist/zksync/artifacts/CCIPHook.js +2 -2
- package/dist/zksync/artifacts/CCIPIsm.js +2 -2
- package/dist/zksync/artifacts/CheckpointFraudProofs.js +2 -2
- package/dist/zksync/artifacts/CircleBridgeAdapter.js +2 -2
- package/dist/zksync/artifacts/DefaultFallbackRoutingIsm.js +2 -2
- package/dist/zksync/artifacts/DefaultHook.js +2 -2
- package/dist/zksync/artifacts/DestinationRecipientRoutingHook.js +2 -2
- package/dist/zksync/artifacts/DomainRoutingHook.js +2 -2
- package/dist/zksync/artifacts/DomainRoutingIsm.js +2 -2
- package/dist/zksync/artifacts/DomainRoutingIsmFactory.js +2 -2
- package/dist/zksync/artifacts/ECDSAStakeRegistry.js +2 -2
- package/dist/zksync/artifacts/ERC5164Hook.js +2 -2
- package/dist/zksync/artifacts/ERC5164Ism.js +2 -2
- package/dist/zksync/artifacts/FallbackDomainRoutingHook.js +2 -2
- package/dist/zksync/artifacts/HypERC20.js +2 -2
- package/dist/zksync/artifacts/HypERC20Collateral.js +2 -2
- package/dist/zksync/artifacts/HypERC4626.js +4 -4
- package/dist/zksync/artifacts/HypERC4626Collateral.js +2 -2
- package/dist/zksync/artifacts/HypERC4626OwnerCollateral.js +2 -2
- package/dist/zksync/artifacts/HypERC721.js +2 -2
- package/dist/zksync/artifacts/HypERC721Collateral.js +2 -2
- package/dist/zksync/artifacts/HypERC721URICollateral.js +2 -2
- package/dist/zksync/artifacts/HypERC721URIStorage.js +2 -2
- package/dist/zksync/artifacts/HypFiatToken.js +2 -2
- package/dist/zksync/artifacts/HypNative.js +2 -2
- package/dist/zksync/artifacts/HypXERC20.js +2 -2
- package/dist/zksync/artifacts/HypXERC20Lockbox.js +2 -2
- package/dist/zksync/artifacts/HyperlaneServiceManager.js +2 -2
- package/dist/zksync/artifacts/InterchainAccountIsm.js +2 -2
- package/dist/zksync/artifacts/InterchainAccountRouter.js +2 -2
- package/dist/zksync/artifacts/InterchainGasPaymaster.js +2 -2
- package/dist/zksync/artifacts/InterchainQueryRouter.js +2 -2
- package/dist/zksync/artifacts/LayerZeroV1Hook.js +2 -2
- package/dist/zksync/artifacts/LayerZeroV2Hook.js +2 -2
- package/dist/zksync/artifacts/LayerZeroV2Ism.js +2 -2
- package/dist/zksync/artifacts/LiquidityLayerRouter.js +2 -2
- package/dist/zksync/artifacts/Mailbox.js +2 -2
- package/dist/zksync/artifacts/MerkleTreeHook.js +2 -2
- package/dist/zksync/artifacts/MockHyperlaneEnvironment.js +2 -2
- package/dist/zksync/artifacts/MockMailbox.js +2 -2
- package/dist/zksync/artifacts/NoopIsm.js +2 -2
- package/dist/zksync/artifacts/OPL2ToL1Hook.js +2 -2
- package/dist/zksync/artifacts/OPL2ToL1Ism.js +2 -2
- package/dist/zksync/artifacts/OPStackHook.js +2 -2
- package/dist/zksync/artifacts/OPStackIsm.js +2 -2
- package/dist/zksync/artifacts/PausableHook.js +2 -2
- package/dist/zksync/artifacts/PausableIsm.js +2 -2
- package/dist/zksync/artifacts/PolygonPosHook.js +2 -2
- package/dist/zksync/artifacts/PolygonPosIsm.js +2 -2
- package/dist/zksync/artifacts/PortalAdapter.js +2 -2
- package/dist/zksync/artifacts/ProtocolFee.js +2 -2
- package/dist/zksync/artifacts/RateLimitedHook.js +2 -2
- package/dist/zksync/artifacts/RateLimitedIsm.js +2 -2
- package/dist/zksync/artifacts/StaticAggregationHook.js +2 -2
- package/dist/zksync/artifacts/StaticAggregationHookFactory.js +2 -2
- package/dist/zksync/artifacts/StaticAggregationIsm.js +2 -2
- package/dist/zksync/artifacts/StaticAggregationIsmFactory.js +2 -2
- package/dist/zksync/artifacts/StaticMerkleRootMultisigIsm.js +2 -2
- package/dist/zksync/artifacts/StaticMerkleRootMultisigIsmFactory.js +2 -2
- package/dist/zksync/artifacts/StaticMerkleRootWeightedMultisigIsm.js +2 -2
- package/dist/zksync/artifacts/StaticMerkleRootWeightedMultisigIsmFactory.js +2 -2
- package/dist/zksync/artifacts/StaticMessageIdMultisigIsm.js +2 -2
- package/dist/zksync/artifacts/StaticMessageIdMultisigIsmFactory.js +2 -2
- package/dist/zksync/artifacts/StaticMessageIdWeightedMultisigIsm.js +2 -2
- package/dist/zksync/artifacts/StaticMessageIdWeightedMultisigIsmFactory.js +2 -2
- package/dist/zksync/artifacts/StorageAggregationIsm.js +2 -2
- package/dist/zksync/artifacts/StorageAggregationIsmFactory.js +2 -2
- package/dist/zksync/artifacts/StorageGasOracle.js +2 -2
- package/dist/zksync/artifacts/StorageMerkleRootMultisigIsm.js +2 -2
- package/dist/zksync/artifacts/StorageMerkleRootMultisigIsmFactory.js +2 -2
- package/dist/zksync/artifacts/StorageMessageIdMultisigIsm.js +2 -2
- package/dist/zksync/artifacts/StorageMessageIdMultisigIsmFactory.js +2 -2
- package/dist/zksync/artifacts/TestGasRouter.js +2 -2
- package/dist/zksync/artifacts/TestHyperlaneServiceManager.js +2 -2
- package/dist/zksync/artifacts/TestInterchainGasPaymaster.js +2 -2
- package/dist/zksync/artifacts/TestMailbox.js +2 -2
- package/dist/zksync/artifacts/TestMerkleTreeHook.js +2 -2
- package/dist/zksync/artifacts/TestPostDispatchHook.js +2 -2
- package/dist/zksync/artifacts/TestQuery.js +2 -2
- package/dist/zksync/artifacts/TestQuerySender.js +2 -2
- package/dist/zksync/artifacts/TestRemoteChallenger.js +2 -2
- package/dist/zksync/artifacts/TestRouter.js +2 -2
- package/dist/zksync/artifacts/TestSendReceiver.js +3 -3
- package/dist/zksync/artifacts/TrustedRelayerIsm.js +2 -2
- package/dist/zksync/artifacts/ValidatorAnnounce.js +2 -2
- package/dist/zksync/artifacts/WHypERC4626.js +2 -2
- package/dist/zksync/artifacts.js +0 -6
- package/dist/zksync/buildArtifact.js +1 -1
- package/dist/zksync/buildArtifact.json +1 -1
- package/package.json +2 -2
- package/contracts/token/extensions/FastHypERC20.sol +0 -61
- package/contracts/token/extensions/FastHypERC20Collateral.sol +0 -61
- package/contracts/token/libs/FastTokenRouter.sol +0 -211
- package/dist/typechain/contracts/token/extensions/FastHypERC20.d.ts +0 -1027
- package/dist/typechain/contracts/token/extensions/FastHypERC20.d.ts.map +0 -1
- package/dist/typechain/contracts/token/extensions/FastHypERC20.js +0 -2
- package/dist/typechain/contracts/token/extensions/FastHypERC20.js.map +0 -1
- package/dist/typechain/contracts/token/extensions/FastHypERC20Collateral.d.ts +0 -780
- package/dist/typechain/contracts/token/extensions/FastHypERC20Collateral.d.ts.map +0 -1
- package/dist/typechain/contracts/token/extensions/FastHypERC20Collateral.js +0 -2
- package/dist/typechain/contracts/token/extensions/FastHypERC20Collateral.js.map +0 -1
- package/dist/typechain/contracts/token/libs/FastTokenRouter.d.ts +0 -750
- package/dist/typechain/contracts/token/libs/FastTokenRouter.d.ts.map +0 -1
- package/dist/typechain/contracts/token/libs/FastTokenRouter.js +0 -2
- package/dist/typechain/contracts/token/libs/FastTokenRouter.js.map +0 -1
- package/dist/typechain/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts +0 -550
- package/dist/typechain/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts.map +0 -1
- package/dist/typechain/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js +0 -725
- package/dist/typechain/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js.map +0 -1
- package/dist/typechain/factories/contracts/token/extensions/FastHypERC20__factory.d.ts +0 -744
- package/dist/typechain/factories/contracts/token/extensions/FastHypERC20__factory.d.ts.map +0 -1
- package/dist/typechain/factories/contracts/token/extensions/FastHypERC20__factory.js +0 -978
- package/dist/typechain/factories/contracts/token/extensions/FastHypERC20__factory.js.map +0 -1
- package/dist/typechain/factories/contracts/token/libs/FastTokenRouter__factory.d.ts +0 -494
- package/dist/typechain/factories/contracts/token/libs/FastTokenRouter__factory.d.ts.map +0 -1
- package/dist/typechain/factories/contracts/token/libs/FastTokenRouter__factory.js +0 -645
- package/dist/typechain/factories/contracts/token/libs/FastTokenRouter__factory.js.map +0 -1
- package/dist/zksync/artifacts/FastHypERC20.d.ts +0 -3
- package/dist/zksync/artifacts/FastHypERC20.js +0 -950
- package/dist/zksync/artifacts/FastHypERC20Collateral.d.ts +0 -3
- package/dist/zksync/artifacts/FastHypERC20Collateral.js +0 -697
- package/dist/zksync/artifacts/FastTokenRouter.d.ts +0 -3
- package/dist/zksync/artifacts/FastTokenRouter.js +0 -640
|
@@ -47,10 +47,21 @@ contract TestSendReceiver is IMessageRecipient {
|
|
|
47
47
|
);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
function handle(
|
|
50
|
+
function handle(
|
|
51
|
+
uint32,
|
|
52
|
+
bytes32,
|
|
53
|
+
bytes calldata _messageBody
|
|
54
|
+
) external payable override {
|
|
55
|
+
bytes memory hardcodedFail = "failMessageBody";
|
|
56
|
+
require(
|
|
57
|
+
keccak256(_messageBody) != keccak256(hardcodedFail),
|
|
58
|
+
"failMessageBody"
|
|
59
|
+
);
|
|
60
|
+
|
|
51
61
|
bytes32 blockHash = previousBlockHash();
|
|
52
62
|
bool isBlockHashEndIn0 = uint256(blockHash) % 16 == 0;
|
|
53
63
|
require(!isBlockHashEndIn0, "block hash ends in 0");
|
|
64
|
+
|
|
54
65
|
emit Handled(blockHash);
|
|
55
66
|
}
|
|
56
67
|
|
|
@@ -64,7 +64,7 @@ contract HypERC20 is ERC20Upgradeable, FungibleTokenRouter {
|
|
|
64
64
|
*/
|
|
65
65
|
function _transferFromSender(
|
|
66
66
|
uint256 _amount
|
|
67
|
-
) internal override returns (bytes memory) {
|
|
67
|
+
) internal virtual override returns (bytes memory) {
|
|
68
68
|
_burn(msg.sender, _amount);
|
|
69
69
|
return bytes(""); // no metadata
|
|
70
70
|
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Yield Routes
|
|
2
|
+
|
|
3
|
+
Yield routes are a mechanism to transfer yield-bearing assets across chains using the ERC4626 standard.
|
|
4
|
+
|
|
5
|
+
`HypERC4626Collateral` is a contract that implements `ERC4626` deposits upon transfer and withdrawal upon transfer back.
|
|
6
|
+
|
|
7
|
+
`HypERC4646` is a contract that implements a rebasing `ERC20`. Balances are virtualized as vault shares times the total assets over the total shares in the `ERC4626` vault (on the collateral chain).
|
|
8
|
+
|
|
9
|
+
## `HypERC4626Collateral.transferRemote`
|
|
10
|
+
|
|
11
|
+
```mermaid
|
|
12
|
+
sequenceDiagram
|
|
13
|
+
participant User
|
|
14
|
+
participant ERC20
|
|
15
|
+
participant ERC4626
|
|
16
|
+
participant WarpRoute
|
|
17
|
+
participant Mailbox
|
|
18
|
+
|
|
19
|
+
User->>WarpRoute: transferRemote(dest, recipient, amount)
|
|
20
|
+
WarpRoute->>ERC20: transferFrom(User, WarpRoute, amount)
|
|
21
|
+
WarpRoute->>ERC20: approve(ERC4626, amount)
|
|
22
|
+
WarpRoute->>ERC4626: deposit(amount, WarpRoute)
|
|
23
|
+
ERC4626-->>WarpRoute: shares
|
|
24
|
+
WarpRoute->>ERC4626: convertToAssets(PRECISION)
|
|
25
|
+
ERC4626-->>WarpRoute: exchangeRate
|
|
26
|
+
WarpRoute->>WarpRoute: nonce += 1
|
|
27
|
+
|
|
28
|
+
WarpRoute->>Mailbox: dispatch(dest, router[dest], {recipient, shares, exchangeRate, nonce})
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## `HypERC4626.handle`
|
|
32
|
+
|
|
33
|
+
```mermaid
|
|
34
|
+
sequenceDiagram
|
|
35
|
+
participant Recipient
|
|
36
|
+
participant WarpRoute
|
|
37
|
+
participant Mailbox
|
|
38
|
+
|
|
39
|
+
Mailbox->>WarpRoute: handle(origin, sender, {recipient, shares, exchangeRate, nonce})
|
|
40
|
+
alt nonce > latestNonce && origin = collateralChain
|
|
41
|
+
WarpRoute->>WarpRoute: latestNonce = nonce
|
|
42
|
+
WarpRoute->>WarpRoute: latestExchangeRate = exchangeRate
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
WarpRoute->>WarpRoute: mint(shares, recipient)
|
|
46
|
+
WarpRoute->>WarpRoute: balance[recipient] = shares
|
|
47
|
+
Recipient->>WarpRoute: balanceOf(recipient)
|
|
48
|
+
WarpRoute-->>WarpRoute: balance[recipient] * latestExchangeRate
|
|
49
|
+
WarpRoute-->>Recipient: amount
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## `HypERC4626.transferRemote`
|
|
53
|
+
|
|
54
|
+
```mermaid
|
|
55
|
+
sequenceDiagram
|
|
56
|
+
participant User
|
|
57
|
+
participant WarpRoute
|
|
58
|
+
participant Mailbox
|
|
59
|
+
|
|
60
|
+
User->>WarpRoute: transferRemote(dest, recipient, amount)
|
|
61
|
+
WarpRoute-->>WarpRoute: burn(shares, User)
|
|
62
|
+
WarpRoute->>Mailbox: dispatch(dest, router[dest], {recipient, shares})
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## `HypERC4626Collateral.handle`
|
|
66
|
+
|
|
67
|
+
```mermaid
|
|
68
|
+
sequenceDiagram
|
|
69
|
+
participant Recipient
|
|
70
|
+
participant ERC20
|
|
71
|
+
participant ERC4626
|
|
72
|
+
participant WarpRoute
|
|
73
|
+
participant Mailbox
|
|
74
|
+
|
|
75
|
+
Mailbox->>WarpRoute: handle(orgn, sender, {recipient, shares})
|
|
76
|
+
WarpRoute->>ERC4626: redeem(shares, recipient, WarpRoute)
|
|
77
|
+
ERC4626-->>WarpRoute: amount
|
|
78
|
+
WarpRoute->>ERC20: transfer(recipient, amount)
|
|
79
|
+
ERC20-->>Recipient: amount
|
|
80
|
+
```
|
|
@@ -19,6 +19,7 @@ import {HypERC20} from "../HypERC20.sol";
|
|
|
19
19
|
import {Message} from "../../libs/Message.sol";
|
|
20
20
|
import {TokenMessage} from "../libs/TokenMessage.sol";
|
|
21
21
|
import {TokenRouter} from "../libs/TokenRouter.sol";
|
|
22
|
+
import {FungibleTokenRouter} from "../libs/FungibleTokenRouter.sol";
|
|
22
23
|
|
|
23
24
|
// ============ External Imports ============
|
|
24
25
|
import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
|
|
@@ -29,6 +30,10 @@ import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/
|
|
|
29
30
|
* @title Hyperlane ERC20 Rebasing Token
|
|
30
31
|
* @author Abacus Works
|
|
31
32
|
* @notice This contract implements a rebasing token that reflects yields from the origin chain
|
|
33
|
+
* @dev Messages contain amounts as shares of ERC4626 and exchange rate of assets per share.
|
|
34
|
+
* @dev internal ERC20 balances storage mapping is in share units
|
|
35
|
+
* @dev internal ERC20 allowances storage mapping is in asset units
|
|
36
|
+
* @dev public ERC20 interface is in asset units
|
|
32
37
|
*/
|
|
33
38
|
contract HypERC4626 is HypERC20 {
|
|
34
39
|
using Math for uint256;
|
|
@@ -55,31 +60,6 @@ contract HypERC4626 is HypERC20 {
|
|
|
55
60
|
|
|
56
61
|
// ============ Public Functions ============
|
|
57
62
|
|
|
58
|
-
/// Override transfer to handle underlying amounts while using shares internally
|
|
59
|
-
/// @inheritdoc ERC20Upgradeable
|
|
60
|
-
/// @dev the Transfer event emitted from ERC20Upgradeable will be in terms of shares not assets, so it may be misleading
|
|
61
|
-
function transfer(
|
|
62
|
-
address to,
|
|
63
|
-
uint256 amount
|
|
64
|
-
) public virtual override returns (bool) {
|
|
65
|
-
_transfer(_msgSender(), to, assetsToShares(amount));
|
|
66
|
-
return true;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/// Override transferFrom to handle underlying amounts while using shares internally
|
|
70
|
-
/// @inheritdoc ERC20Upgradeable
|
|
71
|
-
function transferFrom(
|
|
72
|
-
address sender,
|
|
73
|
-
address recipient,
|
|
74
|
-
uint256 amount
|
|
75
|
-
) public virtual override returns (bool) {
|
|
76
|
-
address spender = _msgSender();
|
|
77
|
-
uint256 shares = assetsToShares(amount);
|
|
78
|
-
_spendAllowance(sender, spender, amount);
|
|
79
|
-
_transfer(sender, recipient, shares);
|
|
80
|
-
return true;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
63
|
/// Override totalSupply to return the total assets instead of shares. This reflects the actual circulating supply in terms of assets, accounting for rebasing
|
|
84
64
|
/// @inheritdoc ERC20Upgradeable
|
|
85
65
|
function totalSupply() public view virtual override returns (uint256) {
|
|
@@ -112,38 +92,37 @@ contract HypERC4626 is HypERC20 {
|
|
|
112
92
|
return _shares.mulDiv(exchangeRate, PRECISION);
|
|
113
93
|
}
|
|
114
94
|
|
|
115
|
-
//
|
|
95
|
+
// @inheritdoc HypERC20
|
|
96
|
+
// @dev Amount specified by the user is in assets, but the internal accounting is in shares
|
|
97
|
+
function _transferFromSender(
|
|
98
|
+
uint256 _amount
|
|
99
|
+
) internal virtual override returns (bytes memory) {
|
|
100
|
+
return HypERC20._transferFromSender(assetsToShares(_amount));
|
|
101
|
+
}
|
|
116
102
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
function
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
);
|
|
134
|
-
|
|
135
|
-
messageId = _Router_dispatch(
|
|
136
|
-
_destination,
|
|
137
|
-
_value,
|
|
138
|
-
_tokenMessage,
|
|
139
|
-
_hookMetadata,
|
|
140
|
-
_hook
|
|
141
|
-
);
|
|
142
|
-
|
|
143
|
-
emit SentTransferRemote(_destination, _recipient, _amountOrId);
|
|
103
|
+
// @inheritdoc FungibleTokenRouter
|
|
104
|
+
// @dev Amount specified by user is in assets, but the message accounting is in shares
|
|
105
|
+
function _outboundAmount(
|
|
106
|
+
uint256 _localAmount
|
|
107
|
+
) internal view virtual override returns (uint256) {
|
|
108
|
+
return
|
|
109
|
+
FungibleTokenRouter._outboundAmount(assetsToShares(_localAmount));
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// @inheritdoc ERC20Upgradeable
|
|
113
|
+
// @dev Amount specified by user is in assets, but the internal accounting is in shares
|
|
114
|
+
function _transfer(
|
|
115
|
+
address _from,
|
|
116
|
+
address _to,
|
|
117
|
+
uint256 _amount
|
|
118
|
+
) internal virtual override {
|
|
119
|
+
super._transfer(_from, _to, assetsToShares(_amount));
|
|
144
120
|
}
|
|
145
121
|
|
|
146
|
-
|
|
122
|
+
// `_inboundAmount` implementation reused from `FungibleTokenRouter` unchanged because message
|
|
123
|
+
// accounting is in shares
|
|
124
|
+
|
|
125
|
+
// ========== TokenRouter extensions ============
|
|
147
126
|
/// @inheritdoc TokenRouter
|
|
148
127
|
function _handle(
|
|
149
128
|
uint32 _origin,
|
|
@@ -17,6 +17,7 @@ pragma solidity >=0.8.0;
|
|
|
17
17
|
import {TokenMessage} from "../libs/TokenMessage.sol";
|
|
18
18
|
import {HypERC20Collateral} from "../HypERC20Collateral.sol";
|
|
19
19
|
import {TypeCasts} from "../../libs/TypeCasts.sol";
|
|
20
|
+
import {TokenRouter} from "../libs/TokenRouter.sol";
|
|
20
21
|
|
|
21
22
|
// ============ External Imports ============
|
|
22
23
|
import "@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol";
|
|
@@ -56,6 +57,12 @@ contract HypERC4626Collateral is HypERC20Collateral {
|
|
|
56
57
|
_MailboxClient_initialize(_hook, _interchainSecurityModule, _owner);
|
|
57
58
|
}
|
|
58
59
|
|
|
60
|
+
/**
|
|
61
|
+
* @inheritdoc TokenRouter
|
|
62
|
+
* @dev Override `_transferRemote` to send shares as amount and append {exchange rate, nonce} in the message.
|
|
63
|
+
* This is preferred for readability and to avoid confusion with the amount of shares. The scaling factor
|
|
64
|
+
* is applied to the shares returned by the deposit before sending the message.
|
|
65
|
+
*/
|
|
59
66
|
function _transferRemote(
|
|
60
67
|
uint32 _destination,
|
|
61
68
|
bytes32 _recipient,
|
|
@@ -67,6 +74,7 @@ contract HypERC4626Collateral is HypERC20Collateral {
|
|
|
67
74
|
// Can't override _transferFromSender only because we need to pass shares in the token message
|
|
68
75
|
_transferFromSender(_amount);
|
|
69
76
|
uint256 _shares = _depositIntoVault(_amount);
|
|
77
|
+
|
|
70
78
|
uint256 _exchangeRate = vault.convertToAssets(PRECISION);
|
|
71
79
|
|
|
72
80
|
rateUpdateNonce++;
|
|
@@ -75,9 +83,10 @@ contract HypERC4626Collateral is HypERC20Collateral {
|
|
|
75
83
|
rateUpdateNonce
|
|
76
84
|
);
|
|
77
85
|
|
|
86
|
+
uint256 _outboundAmount = _outboundAmount(_shares);
|
|
78
87
|
bytes memory _tokenMessage = TokenMessage.format(
|
|
79
88
|
_recipient,
|
|
80
|
-
|
|
89
|
+
_outboundAmount,
|
|
81
90
|
_tokenMetadata
|
|
82
91
|
);
|
|
83
92
|
|
|
@@ -89,7 +98,7 @@ contract HypERC4626Collateral is HypERC20Collateral {
|
|
|
89
98
|
_hook
|
|
90
99
|
);
|
|
91
100
|
|
|
92
|
-
emit SentTransferRemote(_destination, _recipient,
|
|
101
|
+
emit SentTransferRemote(_destination, _recipient, _outboundAmount);
|
|
93
102
|
}
|
|
94
103
|
|
|
95
104
|
/**
|
|
@@ -102,16 +111,15 @@ contract HypERC4626Collateral is HypERC20Collateral {
|
|
|
102
111
|
}
|
|
103
112
|
|
|
104
113
|
/**
|
|
105
|
-
* @dev
|
|
114
|
+
* @dev Withdraws `_shares` of `wrappedToken` from this contract to `_recipient`
|
|
106
115
|
* @inheritdoc HypERC20Collateral
|
|
107
116
|
*/
|
|
108
117
|
function _transferTo(
|
|
109
118
|
address _recipient,
|
|
110
|
-
uint256
|
|
119
|
+
uint256 _shares,
|
|
111
120
|
bytes calldata
|
|
112
121
|
) internal virtual override {
|
|
113
|
-
|
|
114
|
-
vault.redeem(_amount, _recipient, address(this));
|
|
122
|
+
vault.redeem(_shares, _recipient, address(this));
|
|
115
123
|
}
|
|
116
124
|
|
|
117
125
|
/**
|
|
@@ -3,6 +3,10 @@ pragma solidity >=0.8.0;
|
|
|
3
3
|
|
|
4
4
|
import {TokenRouter} from "./TokenRouter.sol";
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* @title Hyperlane Fungible Token Router that extends TokenRouter with scaling logic for fungible tokens with different decimals.
|
|
8
|
+
* @author Abacus Works
|
|
9
|
+
*/
|
|
6
10
|
abstract contract FungibleTokenRouter is TokenRouter {
|
|
7
11
|
uint256 public immutable scale;
|
|
8
12
|
|
|
@@ -20,7 +20,7 @@ abstract contract TokenRouter is GasRouter {
|
|
|
20
20
|
* @dev Emitted on `transferRemote` when a transfer message is dispatched.
|
|
21
21
|
* @param destination The identifier of the destination chain.
|
|
22
22
|
* @param recipient The address of the recipient on the destination chain.
|
|
23
|
-
* @param amount The amount of tokens
|
|
23
|
+
* @param amount The amount of tokens sent in to the remote recipient.
|
|
24
24
|
*/
|
|
25
25
|
event SentTransferRemote(
|
|
26
26
|
uint32 indexed destination,
|
|
@@ -32,7 +32,7 @@ abstract contract TokenRouter is GasRouter {
|
|
|
32
32
|
* @dev Emitted on `_handle` when a transfer message is processed.
|
|
33
33
|
* @param origin The identifier of the origin chain.
|
|
34
34
|
* @param recipient The address of the recipient on the destination chain.
|
|
35
|
-
* @param amount The amount of tokens
|
|
35
|
+
* @param amount The amount of tokens received from the remote sender.
|
|
36
36
|
*/
|
|
37
37
|
event ReceivedTransferRemote(
|
|
38
38
|
uint32 indexed origin,
|