diff --git a/deploy/EigenDAServiceManagerStubCreator.js b/deploy/EigenDAServiceManagerStubCreator.js new file mode 100644 index 00000000..74362412 --- /dev/null +++ b/deploy/EigenDAServiceManagerStubCreator.js @@ -0,0 +1,11 @@ +module.exports = async hre => { + const { deployments, getNamedAccounts, ethers } = hre + const { deploy } = deployments + const { deployer } = await getNamedAccounts() + + await deploy('EigenDAServiceManagerStub', { from: deployer, args: [] }) + } + + module.exports.tags = ['EigenDAServiceManagerStub', 'test'] + module.exports.dependencies = [] + \ No newline at end of file diff --git a/deploy/SequencerInboxStubCreator.js b/deploy/SequencerInboxStubCreator.js index e61a227c..73c19c07 100644 --- a/deploy/SequencerInboxStubCreator.js +++ b/deploy/SequencerInboxStubCreator.js @@ -15,6 +15,9 @@ module.exports = async hre => { delaySeconds: 10000, futureSeconds: 10000, } + + const eigenDAServiceManager = await ethers.getContract('EigenDAServiceManagerStub') + await deploy('SequencerInboxStub', { from: deployer, args: [ @@ -23,10 +26,11 @@ module.exports = async hre => { maxTime, 117964, reader4844.address, + eigenDAServiceManager.address, false, ], }) } module.exports.tags = ['SequencerInboxStub', 'test'] -module.exports.dependencies = ['BridgeStub'] +module.exports.dependencies = ['BridgeStub', 'EigenDAServiceManagerStub'] diff --git a/src/mocks/EigenDAServiceManagerStub.sol b/src/mocks/EigenDAServiceManagerStub.sol new file mode 100644 index 00000000..60ee3aad --- /dev/null +++ b/src/mocks/EigenDAServiceManagerStub.sol @@ -0,0 +1,116 @@ +// SPDX-License-Identifier: UNLICENSED + +import {IEigenDAServiceManager} from "@eigenda/eigenda-utils/interfaces/IEigenDAServiceManager.sol"; +import {BN254} from "@eigenda/eigenda-utils/libraries/BN254.sol"; +import {IBLSSignatureChecker} from "@eigenda/eigenda-utils/interfaces/IBLSSignatureChecker.sol"; +import {IRegistryCoordinator} from "@eigenda/eigenda-utils/interfaces/IRegistryCoordinator.sol"; +import {IStakeRegistry} from "@eigenda/eigenda-utils/interfaces/IStakeRegistry.sol"; +import {IBLSApkRegistry} from "@eigenda/eigenda-utils/interfaces/IBLSApkRegistry.sol"; +import {IDelegationManager} from "@eigenda/eigenda-utils/interfaces/IDelegationManager.sol"; +import {IPaymentCoordinator} from "@eigenda/eigenda-utils/interfaces/IPaymentCoordinator.sol"; +import {ISignatureUtils} from "@eigenda/eigenda-utils/interfaces/ISignatureUtils.sol"; + +contract EigenDAServiceManagerStub is IEigenDAServiceManager, IBLSSignatureChecker { + function confirmBatch( + BatchHeader calldata batchHeader, + NonSignerStakesAndSignature memory nonSignerStakesAndSignature + ) external override pure { + revert("NOT_IMPLEMENTED"); + } + + function setBatchConfirmer(address _batchConfirmer) external override pure { + revert("NOT_IMPLEMENTED"); + } + + function taskNumber() external view override returns (uint32) { + revert("NOT_IMPLEMENTED"); + } + + function latestServeUntilBlock(uint32 referenceBlockNumber) + external + view + override + returns (uint32) + { + return referenceBlockNumber + 100; + } + + function checkSignatures( + bytes32 msgHash, + bytes calldata quorumNumbers, + uint32 referenceBlockNumber, + NonSignerStakesAndSignature memory nonSignerStakesAndSignature + ) external view override returns (QuorumStakeTotals memory, bytes32) { + revert("NOT_IMPLEMENTED"); + } + + function registryCoordinator() external view override returns (IRegistryCoordinator) { + revert("NOT_IMPLEMENTED"); + } + + function stakeRegistry() external view override returns (IStakeRegistry) { + revert("NOT_IMPLEMENTED"); + } + + function blsApkRegistry() external view override returns (IBLSApkRegistry) { + revert("NOT_IMPLEMENTED"); + } + + function delegation() external view override returns (IDelegationManager) { + revert("NOT_IMPLEMENTED"); + } + + function BLOCK_STALE_MEASURE() external view override returns (uint32) { + revert("NOT_IMPLEMENTED"); + } + + function quorumAdversaryThresholdPercentages() external view override returns (bytes memory) { + revert("NOT_IMPLEMENTED"); + } + + function quorumConfirmationThresholdPercentages() + external + view + override + returns (bytes memory) + { + revert("NOT_IMPLEMENTED"); + } + + function quorumNumbersRequired() external view override returns (bytes memory) { + revert("NOT_IMPLEMENTED"); + } + + // Implement missing functions from IServiceManagerUI and IEigenDAServiceManager + function avsDirectory() external view override returns (address) { + revert("NOT_IMPLEMENTED"); + } + + function batchIdToBatchMetadataHash(uint32 batchId) external view override returns(bytes32) { + revert("NOT_IMPLEMENTED"); + } + + function deregisterOperatorFromAVS(address operator) external override pure { + revert("NOT_IMPLEMENTED"); + } + + function getOperatorRestakedStrategies(address operator) external view override returns (address[] memory) { + revert("NOT_IMPLEMENTED"); + } + + function getRestakeableStrategies() external view override returns (address[] memory) { + revert("NOT_IMPLEMENTED"); + } + + function payForRange(IPaymentCoordinator.RangePayment[] calldata rangePayments) external override pure { + revert("NOT_IMPLEMENTED"); + } + + function registerOperatorToAVS(address operator, ISignatureUtils.SignatureWithSaltAndExpiry memory operatorSignature) external { + revert("NOT_IMPLEMENTED"); + } + + function updateAVSMetadataURI(string memory _metadataURI) external override pure { + revert("NOT_IMPLEMENTED"); + } +}