@hyperlane-xyz/core 3.11.0 → 3.12.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/README.md +18 -2
- package/contracts/avs/ECDSAServiceManagerBase.sol +273 -0
- package/contracts/avs/ECDSAStakeRegistry.sol +536 -0
- package/contracts/avs/ECDSAStakeRegistryStorage.sol +55 -0
- package/contracts/avs/HyperlaneServiceManager.sol +297 -0
- package/contracts/hooks/PolygonPosHook.sol +83 -0
- package/contracts/interfaces/avs/IRemoteChallenger.sol +24 -0
- package/contracts/interfaces/avs/vendored/IAVSDirectory.sol +24 -0
- package/contracts/interfaces/avs/vendored/IDelegationManager.sol +32 -0
- package/contracts/interfaces/avs/vendored/IECDSAStakeRegistryEventsAndErrors.sol +99 -0
- package/contracts/interfaces/avs/vendored/IPaymentCoordinator.sol +46 -0
- package/contracts/interfaces/avs/vendored/IServiceManager.sol +28 -0
- package/contracts/interfaces/avs/vendored/IServiceManagerUI.sol +67 -0
- package/contracts/interfaces/avs/vendored/ISignatureUtils.sol +27 -0
- package/contracts/interfaces/avs/vendored/ISlasher.sol +11 -0
- package/contracts/interfaces/avs/vendored/IStrategy.sol +107 -0
- package/contracts/isms/hook/PolygonPosIsm.sol +58 -0
- package/contracts/libs/EnumerableMapEnrollment.sol +115 -0
- package/contracts/test/TestRemoteChallenger.sol +21 -0
- package/contracts/test/avs/TestAVSDirectory.sol +87 -0
- package/contracts/test/avs/TestDelegationManager.sol +33 -0
- package/contracts/test/avs/TestHyperlaneServiceManager.sol +30 -0
- package/contracts/test/avs/TestPaymentCoordinator.sol +20 -0
- package/contracts/test/avs/TestSlasher.sol +8 -0
- package/contracts/token/extensions/HypFiatTokenCollateral.sol +1 -0
- package/contracts/token/extensions/HypXERC20Collateral.sol +1 -0
- package/dist/@openzeppelin/contracts/crosschain/index.d.ts +3 -0
- package/dist/@openzeppelin/contracts/crosschain/index.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts/crosschain/index.js +2 -0
- package/dist/@openzeppelin/contracts/crosschain/index.js.map +1 -0
- package/dist/@openzeppelin/contracts/crosschain/polygon/CrossChainEnabledPolygonChild.d.ts +66 -0
- package/dist/@openzeppelin/contracts/crosschain/polygon/CrossChainEnabledPolygonChild.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts/crosschain/polygon/CrossChainEnabledPolygonChild.js +2 -0
- package/dist/@openzeppelin/contracts/crosschain/polygon/CrossChainEnabledPolygonChild.js.map +1 -0
- package/dist/@openzeppelin/contracts/crosschain/polygon/index.d.ts +2 -0
- package/dist/@openzeppelin/contracts/crosschain/polygon/index.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts/crosschain/polygon/index.js +2 -0
- package/dist/@openzeppelin/contracts/crosschain/polygon/index.js.map +1 -0
- package/dist/@openzeppelin/contracts/index.d.ts +2 -0
- package/dist/@openzeppelin/contracts/index.d.ts.map +1 -1
- package/dist/@openzeppelin/contracts/vendor/index.d.ts +2 -0
- package/dist/@openzeppelin/contracts/vendor/index.d.ts.map +1 -1
- package/dist/@openzeppelin/contracts/vendor/polygon/IFxMessageProcessor.d.ts +66 -0
- package/dist/@openzeppelin/contracts/vendor/polygon/IFxMessageProcessor.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts/vendor/polygon/IFxMessageProcessor.js +2 -0
- package/dist/@openzeppelin/contracts/vendor/polygon/IFxMessageProcessor.js.map +1 -0
- package/dist/@openzeppelin/contracts/vendor/polygon/index.d.ts +2 -0
- package/dist/@openzeppelin/contracts/vendor/polygon/index.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts/vendor/polygon/index.js +2 -0
- package/dist/@openzeppelin/contracts/vendor/polygon/index.js.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/interfaces/IERC1271Upgradeable.d.ts +54 -0
- package/dist/@openzeppelin/contracts-upgradeable/interfaces/IERC1271Upgradeable.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/interfaces/IERC1271Upgradeable.js +2 -0
- package/dist/@openzeppelin/contracts-upgradeable/interfaces/IERC1271Upgradeable.js.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/interfaces/index.d.ts +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/interfaces/index.d.ts.map +1 -1
- package/dist/buildArtifact.js +1 -1
- package/dist/buildArtifact.json +1 -1
- package/dist/contracts/avs/ECDSAServiceManagerBase.d.ts +423 -0
- package/dist/contracts/avs/ECDSAServiceManagerBase.d.ts.map +1 -0
- package/dist/contracts/avs/ECDSAServiceManagerBase.js +2 -0
- package/dist/contracts/avs/ECDSAServiceManagerBase.js.map +1 -0
- package/dist/contracts/avs/ECDSAStakeRegistry.d.ts +693 -0
- package/dist/contracts/avs/ECDSAStakeRegistry.d.ts.map +1 -0
- package/dist/contracts/avs/ECDSAStakeRegistry.js +2 -0
- package/dist/contracts/avs/ECDSAStakeRegistry.js.map +1 -0
- package/dist/contracts/avs/ECDSAStakeRegistryStorage.d.ts +157 -0
- package/dist/contracts/avs/ECDSAStakeRegistryStorage.d.ts.map +1 -0
- package/dist/contracts/avs/ECDSAStakeRegistryStorage.js +2 -0
- package/dist/contracts/avs/ECDSAStakeRegistryStorage.js.map +1 -0
- package/dist/contracts/avs/HyperlaneServiceManager.d.ts +736 -0
- package/dist/contracts/avs/HyperlaneServiceManager.d.ts.map +1 -0
- package/dist/contracts/avs/HyperlaneServiceManager.js +2 -0
- package/dist/contracts/avs/HyperlaneServiceManager.js.map +1 -0
- package/dist/contracts/avs/index.d.ts +5 -0
- package/dist/contracts/avs/index.d.ts.map +1 -0
- package/dist/contracts/avs/index.js +2 -0
- package/dist/contracts/avs/index.js.map +1 -0
- package/dist/contracts/hooks/PolygonPosHook.d.ts +518 -0
- package/dist/contracts/hooks/PolygonPosHook.d.ts.map +1 -0
- package/dist/contracts/hooks/PolygonPosHook.js +2 -0
- package/dist/contracts/hooks/PolygonPosHook.js.map +1 -0
- package/dist/contracts/hooks/index.d.ts +1 -0
- package/dist/contracts/hooks/index.d.ts.map +1 -1
- package/dist/contracts/index.d.ts +2 -0
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/interfaces/avs/IRemoteChallenger.d.ts +81 -0
- package/dist/contracts/interfaces/avs/IRemoteChallenger.d.ts.map +1 -0
- package/dist/contracts/interfaces/avs/IRemoteChallenger.js +2 -0
- package/dist/contracts/interfaces/avs/IRemoteChallenger.js.map +1 -0
- package/dist/contracts/interfaces/avs/index.d.ts +4 -0
- package/dist/contracts/interfaces/avs/index.d.ts.map +1 -0
- package/dist/contracts/interfaces/avs/index.js +2 -0
- package/dist/contracts/interfaces/avs/index.js.map +1 -0
- package/dist/contracts/interfaces/avs/vendored/IAVSDirectory.d.ts +160 -0
- package/dist/contracts/interfaces/avs/vendored/IAVSDirectory.d.ts.map +1 -0
- package/dist/contracts/interfaces/avs/vendored/IAVSDirectory.js +2 -0
- package/dist/contracts/interfaces/avs/vendored/IAVSDirectory.js.map +1 -0
- package/dist/contracts/interfaces/avs/vendored/IDelegationManager.d.ts +93 -0
- package/dist/contracts/interfaces/avs/vendored/IDelegationManager.d.ts.map +1 -0
- package/dist/contracts/interfaces/avs/vendored/IDelegationManager.js +2 -0
- package/dist/contracts/interfaces/avs/vendored/IDelegationManager.js.map +1 -0
- package/dist/contracts/interfaces/avs/vendored/IECDSAStakeRegistryEventsAndErrors.d.ts +157 -0
- package/dist/contracts/interfaces/avs/vendored/IECDSAStakeRegistryEventsAndErrors.d.ts.map +1 -0
- package/dist/contracts/interfaces/avs/vendored/IECDSAStakeRegistryEventsAndErrors.js +2 -0
- package/dist/contracts/interfaces/avs/vendored/IECDSAStakeRegistryEventsAndErrors.js.map +1 -0
- package/dist/contracts/interfaces/avs/vendored/IPaymentCoordinator.d.ts +96 -0
- package/dist/contracts/interfaces/avs/vendored/IPaymentCoordinator.d.ts.map +1 -0
- package/dist/contracts/interfaces/avs/vendored/IPaymentCoordinator.js +2 -0
- package/dist/contracts/interfaces/avs/vendored/IPaymentCoordinator.js.map +1 -0
- package/dist/contracts/interfaces/avs/vendored/IServiceManager.d.ts +250 -0
- package/dist/contracts/interfaces/avs/vendored/IServiceManager.d.ts.map +1 -0
- package/dist/contracts/interfaces/avs/vendored/IServiceManager.js +2 -0
- package/dist/contracts/interfaces/avs/vendored/IServiceManager.js.map +1 -0
- package/dist/contracts/interfaces/avs/vendored/IServiceManagerUI.d.ts +189 -0
- package/dist/contracts/interfaces/avs/vendored/IServiceManagerUI.d.ts.map +1 -0
- package/dist/contracts/interfaces/avs/vendored/IServiceManagerUI.js +2 -0
- package/dist/contracts/interfaces/avs/vendored/IServiceManagerUI.js.map +1 -0
- package/dist/contracts/interfaces/avs/vendored/ISlasher.d.ts +66 -0
- package/dist/contracts/interfaces/avs/vendored/ISlasher.d.ts.map +1 -0
- package/dist/contracts/interfaces/avs/vendored/ISlasher.js +2 -0
- package/dist/contracts/interfaces/avs/vendored/ISlasher.js.map +1 -0
- package/dist/contracts/interfaces/avs/vendored/IStrategy.d.ts +295 -0
- package/dist/contracts/interfaces/avs/vendored/IStrategy.d.ts.map +1 -0
- package/dist/contracts/interfaces/avs/vendored/IStrategy.js +2 -0
- package/dist/contracts/interfaces/avs/vendored/IStrategy.js.map +1 -0
- package/dist/contracts/interfaces/avs/vendored/index.d.ts +9 -0
- package/dist/contracts/interfaces/avs/vendored/index.d.ts.map +1 -0
- package/dist/contracts/interfaces/avs/vendored/index.js +2 -0
- package/dist/contracts/interfaces/avs/vendored/index.js.map +1 -0
- package/dist/contracts/interfaces/index.d.ts +2 -0
- package/dist/contracts/interfaces/index.d.ts.map +1 -1
- package/dist/contracts/isms/hook/PolygonPosIsm.d.ts +243 -0
- package/dist/contracts/isms/hook/PolygonPosIsm.d.ts.map +1 -0
- package/dist/contracts/isms/hook/PolygonPosIsm.js +2 -0
- package/dist/contracts/isms/hook/PolygonPosIsm.js.map +1 -0
- package/dist/contracts/isms/hook/index.d.ts +1 -0
- package/dist/contracts/isms/hook/index.d.ts.map +1 -1
- package/dist/contracts/libs/EnumerableMapEnrollment.d.ts +73 -0
- package/dist/contracts/libs/EnumerableMapEnrollment.d.ts.map +1 -0
- package/dist/contracts/libs/EnumerableMapEnrollment.js +2 -0
- package/dist/contracts/libs/EnumerableMapEnrollment.js.map +1 -0
- package/dist/contracts/libs/index.d.ts +1 -0
- package/dist/contracts/libs/index.d.ts.map +1 -1
- package/dist/contracts/test/TestRemoteChallenger.d.ts +81 -0
- package/dist/contracts/test/TestRemoteChallenger.d.ts.map +1 -0
- package/dist/contracts/test/TestRemoteChallenger.js +2 -0
- package/dist/contracts/test/TestRemoteChallenger.js.map +1 -0
- package/dist/contracts/test/avs/TestAVSDirectory.d.ts +235 -0
- package/dist/contracts/test/avs/TestAVSDirectory.d.ts.map +1 -0
- package/dist/contracts/test/avs/TestAVSDirectory.js +2 -0
- package/dist/contracts/test/avs/TestAVSDirectory.js.map +1 -0
- package/dist/contracts/test/avs/TestDelegationManager.d.ts +154 -0
- package/dist/contracts/test/avs/TestDelegationManager.d.ts.map +1 -0
- package/dist/contracts/test/avs/TestDelegationManager.js +2 -0
- package/dist/contracts/test/avs/TestDelegationManager.js.map +1 -0
- package/dist/contracts/test/avs/TestHyperlaneServiceManager.d.ts +767 -0
- package/dist/contracts/test/avs/TestHyperlaneServiceManager.d.ts.map +1 -0
- package/dist/contracts/test/avs/TestHyperlaneServiceManager.js +2 -0
- package/dist/contracts/test/avs/TestHyperlaneServiceManager.js.map +1 -0
- package/dist/contracts/test/avs/TestPaymentCoordinator.d.ts +96 -0
- package/dist/contracts/test/avs/TestPaymentCoordinator.d.ts.map +1 -0
- package/dist/contracts/test/avs/TestPaymentCoordinator.js +2 -0
- package/dist/contracts/test/avs/TestPaymentCoordinator.js.map +1 -0
- package/dist/contracts/test/avs/TestSlasher.d.ts +66 -0
- package/dist/contracts/test/avs/TestSlasher.d.ts.map +1 -0
- package/dist/contracts/test/avs/TestSlasher.js +2 -0
- package/dist/contracts/test/avs/TestSlasher.js.map +1 -0
- package/dist/contracts/test/avs/index.d.ts +6 -0
- package/dist/contracts/test/avs/index.d.ts.map +1 -0
- package/dist/contracts/test/avs/index.js +2 -0
- package/dist/contracts/test/avs/index.js.map +1 -0
- package/dist/contracts/test/index.d.ts +3 -0
- package/dist/contracts/test/index.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts/crosschain/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts/crosschain/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/crosschain/index.js +5 -0
- package/dist/factories/@openzeppelin/contracts/crosschain/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/crosschain/polygon/CrossChainEnabledPolygonChild__factory.d.ts +31 -0
- package/dist/factories/@openzeppelin/contracts/crosschain/polygon/CrossChainEnabledPolygonChild__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/crosschain/polygon/CrossChainEnabledPolygonChild__factory.js +44 -0
- package/dist/factories/@openzeppelin/contracts/crosschain/polygon/CrossChainEnabledPolygonChild__factory.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/crosschain/polygon/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts/crosschain/polygon/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/crosschain/polygon/index.js +5 -0
- package/dist/factories/@openzeppelin/contracts/crosschain/polygon/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/index.d.ts +1 -0
- package/dist/factories/@openzeppelin/contracts/index.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts/index.js +1 -0
- package/dist/factories/@openzeppelin/contracts/index.js.map +1 -1
- package/dist/factories/@openzeppelin/contracts/vendor/index.d.ts +1 -0
- package/dist/factories/@openzeppelin/contracts/vendor/index.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts/vendor/index.js +1 -0
- package/dist/factories/@openzeppelin/contracts/vendor/index.js.map +1 -1
- package/dist/factories/@openzeppelin/contracts/vendor/polygon/IFxMessageProcessor__factory.d.ts +27 -0
- package/dist/factories/@openzeppelin/contracts/vendor/polygon/IFxMessageProcessor__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/vendor/polygon/IFxMessageProcessor__factory.js +39 -0
- package/dist/factories/@openzeppelin/contracts/vendor/polygon/IFxMessageProcessor__factory.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/vendor/polygon/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts/vendor/polygon/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/vendor/polygon/index.js +5 -0
- package/dist/factories/@openzeppelin/contracts/vendor/polygon/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/interfaces/IERC1271Upgradeable__factory.d.ts +27 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/interfaces/IERC1271Upgradeable__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/interfaces/IERC1271Upgradeable__factory.js +40 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/interfaces/IERC1271Upgradeable__factory.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/interfaces/index.d.ts +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/interfaces/index.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/interfaces/index.js +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/interfaces/index.js.map +1 -1
- package/dist/factories/contracts/avs/ECDSAServiceManagerBase__factory.d.ts +221 -0
- package/dist/factories/contracts/avs/ECDSAServiceManagerBase__factory.d.ts.map +1 -0
- package/dist/factories/contracts/avs/ECDSAServiceManagerBase__factory.js +291 -0
- package/dist/factories/contracts/avs/ECDSAServiceManagerBase__factory.js.map +1 -0
- package/dist/factories/contracts/avs/ECDSAStakeRegistryStorage__factory.d.ts +205 -0
- package/dist/factories/contracts/avs/ECDSAStakeRegistryStorage__factory.d.ts.map +1 -0
- package/dist/factories/contracts/avs/ECDSAStakeRegistryStorage__factory.js +266 -0
- package/dist/factories/contracts/avs/ECDSAStakeRegistryStorage__factory.js.map +1 -0
- package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.d.ts +577 -0
- package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.d.ts.map +1 -0
- package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.js +762 -0
- package/dist/factories/contracts/avs/ECDSAStakeRegistry__factory.js.map +1 -0
- package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.d.ts +444 -0
- package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.d.ts.map +1 -0
- package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.js +587 -0
- package/dist/factories/contracts/avs/HyperlaneServiceManager__factory.js.map +1 -0
- package/dist/factories/contracts/avs/index.d.ts +5 -0
- package/dist/factories/contracts/avs/index.d.ts.map +1 -0
- package/dist/factories/contracts/avs/index.js +8 -0
- package/dist/factories/contracts/avs/index.js.map +1 -0
- package/dist/factories/contracts/hooks/PolygonPosHook__factory.d.ts +316 -0
- package/dist/factories/contracts/hooks/PolygonPosHook__factory.d.ts.map +1 -0
- package/dist/factories/contracts/hooks/PolygonPosHook__factory.js +423 -0
- package/dist/factories/contracts/hooks/PolygonPosHook__factory.js.map +1 -0
- package/dist/factories/contracts/hooks/index.d.ts +1 -0
- package/dist/factories/contracts/hooks/index.d.ts.map +1 -1
- package/dist/factories/contracts/hooks/index.js +1 -0
- package/dist/factories/contracts/hooks/index.js.map +1 -1
- package/dist/factories/contracts/index.d.ts +1 -0
- package/dist/factories/contracts/index.d.ts.map +1 -1
- package/dist/factories/contracts/index.js +1 -0
- package/dist/factories/contracts/index.js.map +1 -1
- package/dist/factories/contracts/interfaces/avs/IRemoteChallenger__factory.d.ts +29 -0
- package/dist/factories/contracts/interfaces/avs/IRemoteChallenger__factory.d.ts.map +1 -0
- package/dist/factories/contracts/interfaces/avs/IRemoteChallenger__factory.js +42 -0
- package/dist/factories/contracts/interfaces/avs/IRemoteChallenger__factory.js.map +1 -0
- package/dist/factories/contracts/interfaces/avs/index.d.ts +3 -0
- package/dist/factories/contracts/interfaces/avs/index.d.ts.map +1 -0
- package/dist/factories/contracts/interfaces/avs/index.js +6 -0
- package/dist/factories/contracts/interfaces/avs/index.js.map +1 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IAVSDirectory__factory.d.ts +71 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IAVSDirectory__factory.d.ts.map +1 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IAVSDirectory__factory.js +96 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IAVSDirectory__factory.js.map +1 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IDelegationManager__factory.d.ts +54 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IDelegationManager__factory.d.ts.map +1 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IDelegationManager__factory.js +75 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IDelegationManager__factory.js.map +1 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IECDSAStakeRegistryEventsAndErrors__factory.d.ts +205 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IECDSAStakeRegistryEventsAndErrors__factory.d.ts.map +1 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IECDSAStakeRegistryEventsAndErrors__factory.js +266 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IECDSAStakeRegistryEventsAndErrors__factory.js.map +1 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IPaymentCoordinator__factory.d.ts +49 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IPaymentCoordinator__factory.d.ts.map +1 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IPaymentCoordinator__factory.js +68 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IPaymentCoordinator__factory.js.map +1 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IServiceManagerUI__factory.d.ts +90 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IServiceManagerUI__factory.d.ts.map +1 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IServiceManagerUI__factory.js +122 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IServiceManagerUI__factory.js.map +1 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IServiceManager__factory.d.ts +130 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IServiceManager__factory.d.ts.map +1 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IServiceManager__factory.js +174 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IServiceManager__factory.js.map +1 -0
- package/dist/factories/contracts/interfaces/avs/vendored/ISlasher__factory.d.ts +19 -0
- package/dist/factories/contracts/interfaces/avs/vendored/ISlasher__factory.d.ts.map +1 -0
- package/dist/factories/contracts/interfaces/avs/vendored/ISlasher__factory.js +29 -0
- package/dist/factories/contracts/interfaces/avs/vendored/ISlasher__factory.js.map +1 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IStrategy__factory.d.ts +173 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IStrategy__factory.d.ts.map +1 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IStrategy__factory.js +235 -0
- package/dist/factories/contracts/interfaces/avs/vendored/IStrategy__factory.js.map +1 -0
- package/dist/factories/contracts/interfaces/avs/vendored/index.d.ts +9 -0
- package/dist/factories/contracts/interfaces/avs/vendored/index.d.ts.map +1 -0
- package/dist/factories/contracts/interfaces/avs/vendored/index.js +12 -0
- package/dist/factories/contracts/interfaces/avs/vendored/index.js.map +1 -0
- package/dist/factories/contracts/interfaces/index.d.ts +1 -0
- package/dist/factories/contracts/interfaces/index.d.ts.map +1 -1
- package/dist/factories/contracts/interfaces/index.js +1 -0
- package/dist/factories/contracts/interfaces/index.js.map +1 -1
- package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts +153 -0
- package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js +212 -0
- package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js.map +1 -0
- package/dist/factories/contracts/isms/hook/index.d.ts +1 -0
- package/dist/factories/contracts/isms/hook/index.d.ts.map +1 -1
- package/dist/factories/contracts/isms/hook/index.js +1 -0
- package/dist/factories/contracts/isms/hook/index.js.map +1 -1
- package/dist/factories/contracts/libs/EnumerableMapEnrollment__factory.d.ts +67 -0
- package/dist/factories/contracts/libs/EnumerableMapEnrollment__factory.d.ts.map +1 -0
- package/dist/factories/contracts/libs/EnumerableMapEnrollment__factory.js +101 -0
- package/dist/factories/contracts/libs/EnumerableMapEnrollment__factory.js.map +1 -0
- package/dist/factories/contracts/libs/index.d.ts +1 -0
- package/dist/factories/contracts/libs/index.d.ts.map +1 -1
- package/dist/factories/contracts/libs/index.js +1 -0
- package/dist/factories/contracts/libs/index.js.map +1 -1
- package/dist/factories/contracts/test/TestRemoteChallenger__factory.d.ts +49 -0
- package/dist/factories/contracts/test/TestRemoteChallenger__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestRemoteChallenger__factory.js +76 -0
- package/dist/factories/contracts/test/TestRemoteChallenger__factory.js.map +1 -0
- package/dist/factories/contracts/test/avs/TestAVSDirectory__factory.d.ts +157 -0
- package/dist/factories/contracts/test/avs/TestAVSDirectory__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/avs/TestAVSDirectory__factory.js +216 -0
- package/dist/factories/contracts/test/avs/TestAVSDirectory__factory.js.map +1 -0
- package/dist/factories/contracts/test/avs/TestDelegationManager__factory.d.ts +112 -0
- package/dist/factories/contracts/test/avs/TestDelegationManager__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/avs/TestDelegationManager__factory.js +159 -0
- package/dist/factories/contracts/test/avs/TestDelegationManager__factory.js.map +1 -0
- package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.d.ts +458 -0
- package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.js +605 -0
- package/dist/factories/contracts/test/avs/TestHyperlaneServiceManager__factory.js.map +1 -0
- package/dist/factories/contracts/test/avs/TestPaymentCoordinator__factory.d.ts +61 -0
- package/dist/factories/contracts/test/avs/TestPaymentCoordinator__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/avs/TestPaymentCoordinator__factory.js +91 -0
- package/dist/factories/contracts/test/avs/TestPaymentCoordinator__factory.js.map +1 -0
- package/dist/factories/contracts/test/avs/TestSlasher__factory.d.ts +31 -0
- package/dist/factories/contracts/test/avs/TestSlasher__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/avs/TestSlasher__factory.js +52 -0
- package/dist/factories/contracts/test/avs/TestSlasher__factory.js.map +1 -0
- package/dist/factories/contracts/test/avs/index.d.ts +6 -0
- package/dist/factories/contracts/test/avs/index.d.ts.map +1 -0
- package/dist/factories/contracts/test/avs/index.js +9 -0
- package/dist/factories/contracts/test/avs/index.js.map +1 -0
- package/dist/factories/contracts/test/index.d.ts +2 -0
- package/dist/factories/contracts/test/index.d.ts.map +1 -1
- package/dist/factories/contracts/test/index.js +2 -0
- package/dist/factories/contracts/test/index.js.map +1 -1
- package/dist/factories/contracts/token/extensions/HypFiatTokenCollateral__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypFiatTokenCollateral__factory.js +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20Collateral__factory.d.ts +1 -1
- package/dist/factories/contracts/token/extensions/HypXERC20Collateral__factory.js +1 -1
- package/dist/factories/fx-portal/contracts/index.d.ts +2 -0
- package/dist/factories/fx-portal/contracts/index.d.ts.map +1 -0
- package/dist/factories/fx-portal/contracts/index.js +5 -0
- package/dist/factories/fx-portal/contracts/index.js.map +1 -0
- package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/FxBaseRootTunnel__factory.d.ts +83 -0
- package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/FxBaseRootTunnel__factory.d.ts.map +1 -0
- package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/FxBaseRootTunnel__factory.js +113 -0
- package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/FxBaseRootTunnel__factory.js.map +1 -0
- package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/ICheckpointManager__factory.d.ts +51 -0
- package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/ICheckpointManager__factory.d.ts.map +1 -0
- package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/ICheckpointManager__factory.js +78 -0
- package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/ICheckpointManager__factory.js.map +1 -0
- package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/IFxStateSender__factory.d.ts +23 -0
- package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/IFxStateSender__factory.d.ts.map +1 -0
- package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/IFxStateSender__factory.js +34 -0
- package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/IFxStateSender__factory.js.map +1 -0
- package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/index.d.ts +4 -0
- package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/index.d.ts.map +1 -0
- package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/index.js +7 -0
- package/dist/factories/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/index.js.map +1 -0
- package/dist/factories/fx-portal/contracts/tunnel/index.d.ts +2 -0
- package/dist/factories/fx-portal/contracts/tunnel/index.d.ts.map +1 -0
- package/dist/factories/fx-portal/contracts/tunnel/index.js +5 -0
- package/dist/factories/fx-portal/contracts/tunnel/index.js.map +1 -0
- package/dist/factories/fx-portal/index.d.ts +2 -0
- package/dist/factories/fx-portal/index.d.ts.map +1 -0
- package/dist/factories/fx-portal/index.js +5 -0
- package/dist/factories/fx-portal/index.js.map +1 -0
- package/dist/factories/index.d.ts +1 -0
- package/dist/factories/index.d.ts.map +1 -1
- package/dist/factories/index.js +1 -0
- package/dist/factories/index.js.map +1 -1
- package/dist/fx-portal/contracts/index.d.ts +3 -0
- package/dist/fx-portal/contracts/index.d.ts.map +1 -0
- package/dist/fx-portal/contracts/index.js +2 -0
- package/dist/fx-portal/contracts/index.js.map +1 -0
- package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/FxBaseRootTunnel.d.ts +172 -0
- package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/FxBaseRootTunnel.d.ts.map +1 -0
- package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/FxBaseRootTunnel.js +2 -0
- package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/FxBaseRootTunnel.js.map +1 -0
- package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/ICheckpointManager.d.ts +122 -0
- package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/ICheckpointManager.d.ts.map +1 -0
- package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/ICheckpointManager.js +2 -0
- package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/ICheckpointManager.js.map +1 -0
- package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/IFxStateSender.d.ts +66 -0
- package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/IFxStateSender.d.ts.map +1 -0
- package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/IFxStateSender.js +2 -0
- package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/IFxStateSender.js.map +1 -0
- package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/index.d.ts +4 -0
- package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/index.d.ts.map +1 -0
- package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/index.js +2 -0
- package/dist/fx-portal/contracts/tunnel/FxBaseRootTunnel.sol/index.js.map +1 -0
- package/dist/fx-portal/contracts/tunnel/index.d.ts +3 -0
- package/dist/fx-portal/contracts/tunnel/index.d.ts.map +1 -0
- package/dist/fx-portal/contracts/tunnel/index.js +2 -0
- package/dist/fx-portal/contracts/tunnel/index.js.map +1 -0
- package/dist/fx-portal/index.d.ts +3 -0
- package/dist/fx-portal/index.d.ts.map +1 -0
- package/dist/fx-portal/index.js +2 -0
- package/dist/fx-portal/index.js.map +1 -0
- package/dist/index.d.ts +58 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -1
- package/package.json +7 -5
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import {ISignatureUtils} from "./ISignatureUtils.sol";
|
|
5
|
+
import {IDelegationManager} from "./IDelegationManager.sol";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @title Minimal interface for a ServiceManager-type contract that AVS ServiceManager contracts must implement
|
|
9
|
+
* for eigenlabs to be able to index their data on the AVS marketplace frontend.
|
|
10
|
+
* @author Layr Labs, Inc.
|
|
11
|
+
*/
|
|
12
|
+
interface IServiceManagerUI {
|
|
13
|
+
/**
|
|
14
|
+
* Metadata should follow the format outlined by this example.
|
|
15
|
+
* {
|
|
16
|
+
* "name": "EigenLabs AVS 1",
|
|
17
|
+
* "website": "https://www.eigenlayer.xyz/",
|
|
18
|
+
* "description": "This is my 1st AVS",
|
|
19
|
+
* "logo": "https://holesky-operator-metadata.s3.amazonaws.com/eigenlayer.png",
|
|
20
|
+
* "twitter": "https://twitter.com/eigenlayer"
|
|
21
|
+
* }
|
|
22
|
+
* @notice Updates the metadata URI for the AVS
|
|
23
|
+
* @param _metadataURI is the metadata URI for the AVS
|
|
24
|
+
*/
|
|
25
|
+
function updateAVSMetadataURI(string memory _metadataURI) external;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @notice Forwards a call to EigenLayer's DelegationManager contract to confirm operator registration with the AVS
|
|
29
|
+
* @param operator The address of the operator to register.
|
|
30
|
+
* @param operatorSignature The signature, salt, and expiry of the operator's signature.
|
|
31
|
+
*/
|
|
32
|
+
function registerOperatorToAVS(
|
|
33
|
+
address operator,
|
|
34
|
+
ISignatureUtils.SignatureWithSaltAndExpiry memory operatorSignature
|
|
35
|
+
) external;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @notice Forwards a call to EigenLayer's DelegationManager contract to confirm operator deregistration from the AVS
|
|
39
|
+
* @param operator The address of the operator to deregister.
|
|
40
|
+
*/
|
|
41
|
+
function deregisterOperatorFromAVS(address operator) external;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @notice Returns the list of strategies that the operator has potentially restaked on the AVS
|
|
45
|
+
* @param operator The address of the operator to get restaked strategies for
|
|
46
|
+
* @dev This function is intended to be called off-chain
|
|
47
|
+
* @dev No guarantee is made on whether the operator has shares for a strategy in a quorum or uniqueness
|
|
48
|
+
* of each element in the returned array. The off-chain service should do that validation separately
|
|
49
|
+
*/
|
|
50
|
+
function getOperatorRestakedStrategies(
|
|
51
|
+
address operator
|
|
52
|
+
) external view returns (address[] memory);
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* @notice Returns the list of strategies that the AVS supports for restaking
|
|
56
|
+
* @dev This function is intended to be called off-chain
|
|
57
|
+
* @dev No guarantee is made on uniqueness of each element in the returned array.
|
|
58
|
+
* The off-chain service should do that validation separately
|
|
59
|
+
*/
|
|
60
|
+
function getRestakeableStrategies()
|
|
61
|
+
external
|
|
62
|
+
view
|
|
63
|
+
returns (address[] memory);
|
|
64
|
+
|
|
65
|
+
/// @notice Returns the EigenLayer AVSDirectory contract.
|
|
66
|
+
function avsDirectory() external view returns (address);
|
|
67
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
2
|
+
pragma solidity >=0.5.0;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @title The interface for common signature utilities.
|
|
6
|
+
* @author Layr Labs, Inc.
|
|
7
|
+
* @notice Terms of Service: https://docs.eigenlayer.xyz/overview/terms-of-service
|
|
8
|
+
*/
|
|
9
|
+
interface ISignatureUtils {
|
|
10
|
+
// @notice Struct that bundles together a signature and an expiration time for the signature. Used primarily for stack management.
|
|
11
|
+
struct SignatureWithExpiry {
|
|
12
|
+
// the signature itself, formatted as a single bytes object
|
|
13
|
+
bytes signature;
|
|
14
|
+
// the expiration timestamp (UTC) of the signature
|
|
15
|
+
uint256 expiry;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// @notice Struct that bundles together a signature, a salt for uniqueness, and an expiration time for the signature. Used primarily for stack management.
|
|
19
|
+
struct SignatureWithSaltAndExpiry {
|
|
20
|
+
// the signature itself, formatted as a single bytes object
|
|
21
|
+
bytes signature;
|
|
22
|
+
// the salt used to generate the signature
|
|
23
|
+
bytes32 salt;
|
|
24
|
+
// the expiration timestamp (UTC) of the signature
|
|
25
|
+
uint256 expiry;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
2
|
+
pragma solidity >=0.5.0;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @title Interface for the primary 'slashing' contract for EigenLayer.
|
|
6
|
+
* @author Layr Labs, Inc.
|
|
7
|
+
* @notice Terms of Service: https://docs.eigenlayer.xyz/overview/terms-of-service
|
|
8
|
+
*/
|
|
9
|
+
interface ISlasher {
|
|
10
|
+
function freezeOperator(address toBeFrozen) external;
|
|
11
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
2
|
+
pragma solidity >=0.5.0;
|
|
3
|
+
|
|
4
|
+
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @title Minimal interface for an `Strategy` contract.
|
|
8
|
+
* @author Layr Labs, Inc.
|
|
9
|
+
* @notice Terms of Service: https://docs.eigenlayer.xyz/overview/terms-of-service
|
|
10
|
+
* @notice Custom `Strategy` implementations may expand extensively on this interface.
|
|
11
|
+
*/
|
|
12
|
+
interface IStrategy {
|
|
13
|
+
/**
|
|
14
|
+
* @notice Used to deposit tokens into this Strategy
|
|
15
|
+
* @param token is the ERC20 token being deposited
|
|
16
|
+
* @param amount is the amount of token being deposited
|
|
17
|
+
* @dev This function is only callable by the strategyManager contract. It is invoked inside of the strategyManager's
|
|
18
|
+
* `depositIntoStrategy` function, and individual share balances are recorded in the strategyManager as well.
|
|
19
|
+
* @return newShares is the number of new shares issued at the current exchange ratio.
|
|
20
|
+
*/
|
|
21
|
+
function deposit(IERC20 token, uint256 amount) external returns (uint256);
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @notice Used to withdraw tokens from this Strategy, to the `recipient`'s address
|
|
25
|
+
* @param recipient is the address to receive the withdrawn funds
|
|
26
|
+
* @param token is the ERC20 token being transferred out
|
|
27
|
+
* @param amountShares is the amount of shares being withdrawn
|
|
28
|
+
* @dev This function is only callable by the strategyManager contract. It is invoked inside of the strategyManager's
|
|
29
|
+
* other functions, and individual share balances are recorded in the strategyManager as well.
|
|
30
|
+
*/
|
|
31
|
+
function withdraw(
|
|
32
|
+
address recipient,
|
|
33
|
+
IERC20 token,
|
|
34
|
+
uint256 amountShares
|
|
35
|
+
) external;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @notice Used to convert a number of shares to the equivalent amount of underlying tokens for this strategy.
|
|
39
|
+
* @notice In contrast to `sharesToUnderlyingView`, this function **may** make state modifications
|
|
40
|
+
* @param amountShares is the amount of shares to calculate its conversion into the underlying token
|
|
41
|
+
* @return The amount of underlying tokens corresponding to the input `amountShares`
|
|
42
|
+
* @dev Implementation for these functions in particular may vary significantly for different strategies
|
|
43
|
+
*/
|
|
44
|
+
function sharesToUnderlying(
|
|
45
|
+
uint256 amountShares
|
|
46
|
+
) external returns (uint256);
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @notice Used to convert an amount of underlying tokens to the equivalent amount of shares in this strategy.
|
|
50
|
+
* @notice In contrast to `underlyingToSharesView`, this function **may** make state modifications
|
|
51
|
+
* @param amountUnderlying is the amount of `underlyingToken` to calculate its conversion into strategy shares
|
|
52
|
+
* @return The amount of underlying tokens corresponding to the input `amountShares`
|
|
53
|
+
* @dev Implementation for these functions in particular may vary significantly for different strategies
|
|
54
|
+
*/
|
|
55
|
+
function underlyingToShares(
|
|
56
|
+
uint256 amountUnderlying
|
|
57
|
+
) external returns (uint256);
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* @notice convenience function for fetching the current underlying value of all of the `user`'s shares in
|
|
61
|
+
* this strategy. In contrast to `userUnderlyingView`, this function **may** make state modifications
|
|
62
|
+
*/
|
|
63
|
+
function userUnderlying(address user) external returns (uint256);
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* @notice convenience function for fetching the current total shares of `user` in this strategy, by
|
|
67
|
+
* querying the `strategyManager` contract
|
|
68
|
+
*/
|
|
69
|
+
function shares(address user) external view returns (uint256);
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* @notice Used to convert a number of shares to the equivalent amount of underlying tokens for this strategy.
|
|
73
|
+
* @notice In contrast to `sharesToUnderlying`, this function guarantees no state modifications
|
|
74
|
+
* @param amountShares is the amount of shares to calculate its conversion into the underlying token
|
|
75
|
+
* @return The amount of shares corresponding to the input `amountUnderlying`
|
|
76
|
+
* @dev Implementation for these functions in particular may vary significantly for different strategies
|
|
77
|
+
*/
|
|
78
|
+
function sharesToUnderlyingView(
|
|
79
|
+
uint256 amountShares
|
|
80
|
+
) external view returns (uint256);
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* @notice Used to convert an amount of underlying tokens to the equivalent amount of shares in this strategy.
|
|
84
|
+
* @notice In contrast to `underlyingToShares`, this function guarantees no state modifications
|
|
85
|
+
* @param amountUnderlying is the amount of `underlyingToken` to calculate its conversion into strategy shares
|
|
86
|
+
* @return The amount of shares corresponding to the input `amountUnderlying`
|
|
87
|
+
* @dev Implementation for these functions in particular may vary significantly for different strategies
|
|
88
|
+
*/
|
|
89
|
+
function underlyingToSharesView(
|
|
90
|
+
uint256 amountUnderlying
|
|
91
|
+
) external view returns (uint256);
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* @notice convenience function for fetching the current underlying value of all of the `user`'s shares in
|
|
95
|
+
* this strategy. In contrast to `userUnderlying`, this function guarantees no state modifications
|
|
96
|
+
*/
|
|
97
|
+
function userUnderlyingView(address user) external view returns (uint256);
|
|
98
|
+
|
|
99
|
+
/// @notice The underlying token for shares in this Strategy
|
|
100
|
+
function underlyingToken() external view returns (IERC20);
|
|
101
|
+
|
|
102
|
+
/// @notice The total number of extant shares in this Strategy
|
|
103
|
+
function totalShares() external view returns (uint256);
|
|
104
|
+
|
|
105
|
+
/// @notice Returns either a brief string explaining the strategy's goal & purpose, or a link to metadata that explains in more detail.
|
|
106
|
+
function explanation() external view returns (string memory);
|
|
107
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
/*@@@@@@@ @@@@@@@@@
|
|
5
|
+
@@@@@@@@@ @@@@@@@@@
|
|
6
|
+
@@@@@@@@@ @@@@@@@@@
|
|
7
|
+
@@@@@@@@@ @@@@@@@@@
|
|
8
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
9
|
+
@@@@@ HYPERLANE @@@@@@@
|
|
10
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
11
|
+
@@@@@@@@@ @@@@@@@@@
|
|
12
|
+
@@@@@@@@@ @@@@@@@@@
|
|
13
|
+
@@@@@@@@@ @@@@@@@@@
|
|
14
|
+
@@@@@@@@@ @@@@@@@@*/
|
|
15
|
+
|
|
16
|
+
// ============ Internal Imports ============
|
|
17
|
+
|
|
18
|
+
import {IInterchainSecurityModule} from "../../interfaces/IInterchainSecurityModule.sol";
|
|
19
|
+
import {Message} from "../../libs/Message.sol";
|
|
20
|
+
import {TypeCasts} from "../../libs/TypeCasts.sol";
|
|
21
|
+
import {AbstractMessageIdAuthorizedIsm} from "./AbstractMessageIdAuthorizedIsm.sol";
|
|
22
|
+
|
|
23
|
+
// ============ External Imports ============
|
|
24
|
+
import {CrossChainEnabledPolygonChild} from "@openzeppelin/contracts/crosschain/polygon/CrossChainEnabledPolygonChild.sol";
|
|
25
|
+
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @title PolygonPosIsm
|
|
29
|
+
* @notice Uses the native Polygon Pos Fx Portal Bridge to verify interchain messages.
|
|
30
|
+
*/
|
|
31
|
+
contract PolygonPosIsm is
|
|
32
|
+
CrossChainEnabledPolygonChild,
|
|
33
|
+
AbstractMessageIdAuthorizedIsm
|
|
34
|
+
{
|
|
35
|
+
// ============ Constants ============
|
|
36
|
+
|
|
37
|
+
uint8 public constant moduleType =
|
|
38
|
+
uint8(IInterchainSecurityModule.Types.NULL);
|
|
39
|
+
|
|
40
|
+
// ============ Constructor ============
|
|
41
|
+
|
|
42
|
+
constructor(address _fxChild) CrossChainEnabledPolygonChild(_fxChild) {
|
|
43
|
+
require(
|
|
44
|
+
Address.isContract(_fxChild),
|
|
45
|
+
"PolygonPosIsm: invalid FxChild contract"
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// ============ Internal function ============
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @notice Check if sender is authorized to message `verifyMessageId`.
|
|
53
|
+
*/
|
|
54
|
+
function _isAuthorized() internal view override returns (bool) {
|
|
55
|
+
return
|
|
56
|
+
_crossChainSender() == TypeCasts.bytes32ToAddress(authorizedHook);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.6.11;
|
|
3
|
+
|
|
4
|
+
// ============ External Imports ============
|
|
5
|
+
import "@openzeppelin/contracts/utils/structs/EnumerableMap.sol";
|
|
6
|
+
import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
|
7
|
+
// ============ Internal Imports ============
|
|
8
|
+
import {TypeCasts} from "./TypeCasts.sol";
|
|
9
|
+
|
|
10
|
+
enum EnrollmentStatus {
|
|
11
|
+
UNENROLLED,
|
|
12
|
+
ENROLLED,
|
|
13
|
+
PENDING_UNENROLLMENT
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
struct Enrollment {
|
|
17
|
+
EnrollmentStatus status;
|
|
18
|
+
uint248 unenrollmentStartBlock;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// extends EnumerableMap with address => bytes32 type
|
|
22
|
+
// modelled after https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.0/contracts/utils/structs/EnumerableMap.sol
|
|
23
|
+
library EnumerableMapEnrollment {
|
|
24
|
+
using EnumerableMap for EnumerableMap.Bytes32ToBytes32Map;
|
|
25
|
+
using EnumerableSet for EnumerableSet.Bytes32Set;
|
|
26
|
+
using TypeCasts for address;
|
|
27
|
+
using TypeCasts for bytes32;
|
|
28
|
+
|
|
29
|
+
struct AddressToEnrollmentMap {
|
|
30
|
+
EnumerableMap.Bytes32ToBytes32Map _inner;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// ============ Library Functions ============
|
|
34
|
+
|
|
35
|
+
function encode(
|
|
36
|
+
Enrollment memory enrollment
|
|
37
|
+
) public pure returns (bytes32) {
|
|
38
|
+
return
|
|
39
|
+
bytes32(
|
|
40
|
+
abi.encodePacked(
|
|
41
|
+
uint8(enrollment.status),
|
|
42
|
+
enrollment.unenrollmentStartBlock
|
|
43
|
+
)
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function decode(bytes32 encoded) public pure returns (Enrollment memory) {
|
|
48
|
+
uint8 status = uint8(encoded[0]);
|
|
49
|
+
uint248 unenrollmentStartBlock = uint248(uint256((encoded << 8) >> 8));
|
|
50
|
+
return Enrollment(EnrollmentStatus(status), unenrollmentStartBlock);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function keys(
|
|
54
|
+
AddressToEnrollmentMap storage map
|
|
55
|
+
) internal view returns (address[] memory _keys) {
|
|
56
|
+
uint256 _length = map._inner.length();
|
|
57
|
+
_keys = new address[](_length);
|
|
58
|
+
for (uint256 i = 0; i < _length; i++) {
|
|
59
|
+
_keys[i] = address(uint160(uint256(map._inner._keys.at(i))));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function set(
|
|
64
|
+
AddressToEnrollmentMap storage map,
|
|
65
|
+
address key,
|
|
66
|
+
Enrollment memory value
|
|
67
|
+
) internal returns (bool) {
|
|
68
|
+
return map._inner.set(key.addressToBytes32(), encode(value));
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function get(
|
|
72
|
+
AddressToEnrollmentMap storage map,
|
|
73
|
+
address key
|
|
74
|
+
) internal view returns (Enrollment memory) {
|
|
75
|
+
return decode(map._inner.get(key.addressToBytes32()));
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function tryGet(
|
|
79
|
+
AddressToEnrollmentMap storage map,
|
|
80
|
+
address key
|
|
81
|
+
) internal view returns (bool, Enrollment memory) {
|
|
82
|
+
(bool success, bytes32 value) = map._inner.tryGet(
|
|
83
|
+
key.addressToBytes32()
|
|
84
|
+
);
|
|
85
|
+
return (success, decode(value));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function remove(
|
|
89
|
+
AddressToEnrollmentMap storage map,
|
|
90
|
+
address key
|
|
91
|
+
) internal returns (bool) {
|
|
92
|
+
return map._inner.remove(key.addressToBytes32());
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
function contains(
|
|
96
|
+
AddressToEnrollmentMap storage map,
|
|
97
|
+
address key
|
|
98
|
+
) internal view returns (bool) {
|
|
99
|
+
return map._inner.contains(key.addressToBytes32());
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function length(
|
|
103
|
+
AddressToEnrollmentMap storage map
|
|
104
|
+
) internal view returns (uint256) {
|
|
105
|
+
return map._inner.length();
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function at(
|
|
109
|
+
AddressToEnrollmentMap storage map,
|
|
110
|
+
uint256 index
|
|
111
|
+
) internal view returns (uint256, Enrollment memory) {
|
|
112
|
+
(bytes32 key, bytes32 value) = map._inner.at(index);
|
|
113
|
+
return (uint256(key), decode(value));
|
|
114
|
+
}
|
|
115
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import {IRemoteChallenger} from "../interfaces/avs/IRemoteChallenger.sol";
|
|
5
|
+
import {HyperlaneServiceManager} from "../avs/HyperlaneServiceManager.sol";
|
|
6
|
+
|
|
7
|
+
contract TestRemoteChallenger is IRemoteChallenger {
|
|
8
|
+
HyperlaneServiceManager internal immutable hsm;
|
|
9
|
+
|
|
10
|
+
constructor(HyperlaneServiceManager _hsm) {
|
|
11
|
+
hsm = _hsm;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function challengeDelayBlocks() external pure returns (uint256) {
|
|
15
|
+
return 50400; // one week of eth L1 blocks
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function handleChallenge(address operator) external {
|
|
19
|
+
hsm.freezeOperator(operator);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import {IAVSDirectory} from "../../interfaces/avs/vendored/IAVSDirectory.sol";
|
|
5
|
+
import {ISignatureUtils} from "../../interfaces/avs/vendored/ISignatureUtils.sol";
|
|
6
|
+
import {ISlasher} from "../../interfaces/avs/vendored/ISlasher.sol";
|
|
7
|
+
|
|
8
|
+
import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
|
|
9
|
+
|
|
10
|
+
contract TestAVSDirectory is IAVSDirectory {
|
|
11
|
+
bytes32 public constant OPERATOR_AVS_REGISTRATION_TYPEHASH =
|
|
12
|
+
keccak256(
|
|
13
|
+
"OperatorAVSRegistration(address operator,address avs,bytes32 salt,uint256 expiry)"
|
|
14
|
+
);
|
|
15
|
+
bytes32 public constant DOMAIN_TYPEHASH =
|
|
16
|
+
keccak256(
|
|
17
|
+
"EIP712Domain(string name,uint256 chainId,address verifyingContract)"
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
mapping(address => mapping(address => OperatorAVSRegistrationStatus))
|
|
21
|
+
public avsOperatorStatus;
|
|
22
|
+
|
|
23
|
+
function updateAVSMetadataURI(string calldata metadataURI) external {
|
|
24
|
+
emit AVSMetadataURIUpdated(msg.sender, metadataURI);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function registerOperatorToAVS(
|
|
28
|
+
address operator,
|
|
29
|
+
ISignatureUtils.SignatureWithSaltAndExpiry memory operatorSignature
|
|
30
|
+
) external {
|
|
31
|
+
bytes32 operatorRegistrationDigestHash = calculateOperatorAVSRegistrationDigestHash({
|
|
32
|
+
operator: operator,
|
|
33
|
+
avs: msg.sender,
|
|
34
|
+
salt: operatorSignature.salt,
|
|
35
|
+
expiry: operatorSignature.expiry
|
|
36
|
+
});
|
|
37
|
+
require(
|
|
38
|
+
ECDSA.recover(
|
|
39
|
+
operatorRegistrationDigestHash,
|
|
40
|
+
operatorSignature.signature
|
|
41
|
+
) == operator,
|
|
42
|
+
"EIP1271SignatureUtils.checkSignature_EIP1271: signature not from signer"
|
|
43
|
+
);
|
|
44
|
+
avsOperatorStatus[msg.sender][operator] = OperatorAVSRegistrationStatus
|
|
45
|
+
.REGISTERED;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function deregisterOperatorFromAVS(address operator) external {
|
|
49
|
+
avsOperatorStatus[msg.sender][operator] = OperatorAVSRegistrationStatus
|
|
50
|
+
.UNREGISTERED;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function calculateOperatorAVSRegistrationDigestHash(
|
|
54
|
+
address operator,
|
|
55
|
+
address avs,
|
|
56
|
+
bytes32 salt,
|
|
57
|
+
uint256 expiry
|
|
58
|
+
) public view returns (bytes32) {
|
|
59
|
+
// calculate the struct hash
|
|
60
|
+
bytes32 structHash = keccak256(
|
|
61
|
+
abi.encode(
|
|
62
|
+
OPERATOR_AVS_REGISTRATION_TYPEHASH,
|
|
63
|
+
operator,
|
|
64
|
+
avs,
|
|
65
|
+
salt,
|
|
66
|
+
expiry
|
|
67
|
+
)
|
|
68
|
+
);
|
|
69
|
+
// calculate the digest hash
|
|
70
|
+
bytes32 digestHash = keccak256(
|
|
71
|
+
abi.encodePacked("\x19\x01", domainSeparator(), structHash)
|
|
72
|
+
);
|
|
73
|
+
return digestHash;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function domainSeparator() public view returns (bytes32) {
|
|
77
|
+
return
|
|
78
|
+
keccak256(
|
|
79
|
+
abi.encode(
|
|
80
|
+
DOMAIN_TYPEHASH,
|
|
81
|
+
keccak256(bytes("EigenLayer")),
|
|
82
|
+
block.chainid,
|
|
83
|
+
address(this)
|
|
84
|
+
)
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import {IDelegationManager} from "../../interfaces/avs/vendored/IDelegationManager.sol";
|
|
5
|
+
import {IStrategy} from "../../interfaces/avs/vendored/IStrategy.sol";
|
|
6
|
+
|
|
7
|
+
contract TestDelegationManager is IDelegationManager {
|
|
8
|
+
mapping(address => bool) public isOperator;
|
|
9
|
+
mapping(address => mapping(IStrategy => uint256)) public operatorShares;
|
|
10
|
+
|
|
11
|
+
function registerAsOperator(
|
|
12
|
+
OperatorDetails calldata registeringOperatorDetails,
|
|
13
|
+
string calldata metadataURI
|
|
14
|
+
) external {}
|
|
15
|
+
|
|
16
|
+
function setIsOperator(
|
|
17
|
+
address operator,
|
|
18
|
+
bool _isOperatorReturnValue
|
|
19
|
+
) external {
|
|
20
|
+
isOperator[operator] = _isOperatorReturnValue;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function getOperatorShares(
|
|
24
|
+
address operator,
|
|
25
|
+
IStrategy[] memory strategies
|
|
26
|
+
) public view returns (uint256[] memory) {
|
|
27
|
+
uint256[] memory shares = new uint256[](strategies.length);
|
|
28
|
+
for (uint256 i = 0; i < strategies.length; ++i) {
|
|
29
|
+
shares[i] = operatorShares[operator][strategies[i]];
|
|
30
|
+
}
|
|
31
|
+
return shares;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import {Enrollment, EnrollmentStatus, EnumerableMapEnrollment} from "../../libs/EnumerableMapEnrollment.sol";
|
|
5
|
+
import {HyperlaneServiceManager} from "../../avs/HyperlaneServiceManager.sol";
|
|
6
|
+
|
|
7
|
+
contract TestHyperlaneServiceManager is HyperlaneServiceManager {
|
|
8
|
+
using EnumerableMapEnrollment for EnumerableMapEnrollment.AddressToEnrollmentMap;
|
|
9
|
+
|
|
10
|
+
constructor(
|
|
11
|
+
address _avsDirectory,
|
|
12
|
+
address _stakeRegistry,
|
|
13
|
+
address _paymentCoordinator,
|
|
14
|
+
address _delegationManager
|
|
15
|
+
)
|
|
16
|
+
HyperlaneServiceManager(
|
|
17
|
+
_avsDirectory,
|
|
18
|
+
_stakeRegistry,
|
|
19
|
+
_paymentCoordinator,
|
|
20
|
+
_delegationManager
|
|
21
|
+
)
|
|
22
|
+
{}
|
|
23
|
+
|
|
24
|
+
function mockSetUnenrolled(address operator, address challenger) external {
|
|
25
|
+
enrolledChallengers[operator].set(
|
|
26
|
+
address(challenger),
|
|
27
|
+
Enrollment(EnrollmentStatus.UNENROLLED, 0)
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import {IPaymentCoordinator} from "../../interfaces/avs/vendored/IPaymentCoordinator.sol";
|
|
5
|
+
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
6
|
+
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
7
|
+
|
|
8
|
+
contract TestPaymentCoordinator is IPaymentCoordinator {
|
|
9
|
+
using SafeERC20 for IERC20;
|
|
10
|
+
|
|
11
|
+
function payForRange(RangePayment[] calldata rangePayments) external {
|
|
12
|
+
for (uint256 i = 0; i < rangePayments.length; i++) {
|
|
13
|
+
rangePayments[i].token.safeTransferFrom(
|
|
14
|
+
msg.sender,
|
|
15
|
+
address(this),
|
|
16
|
+
rangePayments[i].amount
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../types/@openzeppelin/contracts/crosschain/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,OAAO,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../types/@openzeppelin/contracts/crosschain/index.ts"],"names":[],"mappings":""}
|