diff --git a/deploy/EigenDAServiceManagerStubCreator.js b/deploy/EigenDAServiceManagerStubCreator.js index 74362412..31b1182c 100644 --- a/deploy/EigenDAServiceManagerStubCreator.js +++ b/deploy/EigenDAServiceManagerStubCreator.js @@ -1,11 +1,10 @@ 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 + 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 = [] diff --git a/deploy/SequencerInboxStubCreator.js b/deploy/SequencerInboxStubCreator.js index 4fe29ca0..495263c9 100644 --- a/deploy/SequencerInboxStubCreator.js +++ b/deploy/SequencerInboxStubCreator.js @@ -16,18 +16,6 @@ module.exports = async hre => { futureSeconds: 10000, } - const eigenDAServiceManager = await ethers.getContract('EigenDAServiceManagerStub') - -// constructor( -// IBridge bridge_, -// address sequencer_, -// ISequencerInbox.MaxTimeVariation memory maxTimeVariation_, -// uint256 maxDataSize_, -// IReader4844 reader4844_, -// IEigenDAServiceManager eigenDAServiceManager_, -// bool isUsingFeeToken_ -// ) - await deploy('SequencerInboxStub', { from: deployer, args: [ @@ -36,11 +24,10 @@ module.exports = async hre => { maxTime, 117964, reader4844.address, - eigenDAServiceManager.address, false, ], }) } module.exports.tags = ['SequencerInboxStub', 'test'] -module.exports.dependencies = ['BridgeStub', 'EigenDAServiceManagerStub'] +module.exports.dependencies = ['BridgeStub'] diff --git a/src/bridge/ISequencerInbox.sol b/src/bridge/ISequencerInbox.sol index adc2ceba..43279dcb 100644 --- a/src/bridge/ISequencerInbox.sol +++ b/src/bridge/ISequencerInbox.sol @@ -193,13 +193,30 @@ interface ISequencerInbox is IDelayedMessageProvider { EigenDARollupUtils.BlobVerificationProof calldata blobVerificationProof, IEigenDAServiceManager.BlobHeader calldata blobHeader, uint256 afterDelayedMessagesRead, - IGasRefunder gasRefunder, uint256 prevMessageCount, uint256 newMessageCount ) external; // ---------- onlyRollupOrOwner functions ---------- + /** + * @notice Set the eigenda service manager contract + * @param newEigenDAServiceManager the new svc manager contract address + */ + function setEigenDAServiceManager(address newEigenDAServiceManager) external; + + /** + * @notice Set the rollup manager contract address + * @param newRollupManager the new rollup manager contract address + */ + function setEigenDARollupManager(address newRollupManager) external; + + /** + * @notice Set the new rollup contract address + */ + function setRollupAddress() external; + + /** * @notice Set max delay for sequencer inbox * @param maxTimeVariation_ the maximum time variation parameters @@ -242,11 +259,6 @@ interface ISequencerInbox is IDelayedMessageProvider { /// @notice Allows the rollup owner to sync the rollup address function updateRollupAddress() external; - /// @notice Allows the rollup owner to update the eigenDAServiceManager address - function updateEigenDAServiceManager(address newEigenDAServiceManager) external; - - /// @notice Allows the rollup owner to update the eigenDARollupManager address - function updateEigenDARollupManager(address newEigenDARollupManager) external; // ---------- initializer ---------- diff --git a/src/bridge/RollupManager.sol b/src/bridge/RollupManager.sol index 3acdb35b..ea1bc7ea 100644 --- a/src/bridge/RollupManager.sol +++ b/src/bridge/RollupManager.sol @@ -8,8 +8,93 @@ import {EigenDAHasher} from "@eigenda/eigenda-utils/libraries/EigenDAHasher.sol" import {IEigenDAServiceManager} from "@eigenda/eigenda-utils/interfaces/IEigenDAServiceManager.sol"; import {BitmapUtils} from "@eigenda/eigenda-utils/libraries/BitmapUtils.sol"; import {EigenDARollupUtils} from "@eigenda/eigenda-utils/libraries/EigenDARollupUtils.sol"; +import {IBLSSignatureChecker} from "@eigenda/eigenda-utils/interfaces/IBLSSignatureChecker.sol"; +import {IPaymentCoordinator} from "@eigenda/eigenda-utils/interfaces/IPaymentCoordinator.sol"; +import {ISignatureUtils} from "@eigenda/eigenda-utils/interfaces/ISignatureUtils.sol"; +// DummyServiceManager is a dummy implementation of IEigenDAServiceManager +// and is used in nitro-testnode to avoid the overhead of deploying core EigenDA contracts +// to simplify the testing process. +contract DummyServiceManager is IEigenDAServiceManager { + + constructor() { + } + + function batchIdToBatchMetadataHash(uint32 batchId) external view override returns (bytes32) { + return bytes32(0); + } + + function confirmBatch( + BatchHeader calldata batchHeader, + IBLSSignatureChecker.NonSignerStakesAndSignature memory nonSignerStakesAndSignature + ) external override { + } + + function setBatchConfirmer(address _batchConfirmer) external override { + } + + function taskNumber() external view override returns (uint32) { + return 0; + } + function latestServeUntilBlock(uint32 referenceBlockNumber) external view override returns (uint32) { + return 0; + } + function BLOCK_STALE_MEASURE() external view override returns (uint32) { + return 0; + } + + function quorumAdversaryThresholdPercentages() external view override returns (bytes memory) { + return ""; + } + + function quorumConfirmationThresholdPercentages() external view override returns (bytes memory) { + return ""; + } + + function quorumNumbersRequired() external view override returns (bytes memory) { + return ""; + } + + function payForRange(IPaymentCoordinator.RangePayment[] calldata rangePayments) external override { + return; + } + + function updateAVSMetadataURI(string memory _metadataURI) external override { + return; + } + + function registerOperatorToAVS( + address operator, + ISignatureUtils.SignatureWithSaltAndExpiry memory operatorSignature + ) external override { + return; + } + + function deregisterOperatorFromAVS(address operator) external override { + return; + } + + function getOperatorRestakedStrategies(address operator) external view override returns (address[] memory){ + address[] memory dummyAddresses = new address[](2); + dummyAddresses[0] = 0x0000000000000000000000000000000000000001; + dummyAddresses[1] = 0x0000000000000000000000000000000000000002; + return dummyAddresses; + } + + function getRestakeableStrategies() external view override returns (address[] memory) { + address[] memory dummyAddresses = new address[](2); + dummyAddresses[0] = 0x0000000000000000000000000000000000000001; + dummyAddresses[1] = 0x0000000000000000000000000000000000000002; + return dummyAddresses; + } + + function avsDirectory() external view returns (address) { + address x = 0x0000000000000000000000000000000000000001; + return x; + } + +} interface IRollupManager { @@ -29,7 +114,9 @@ interface IRollupManager { } - +// EigenDADummyManager is a dummy implementation of IRollupManager +// and is used in nitro-testnode to avoid the overhead of deploying core EigenDA contracts +// to simplify the testing process. contract EigenDADummyManager { function verifyBlob( diff --git a/src/bridge/SequencerInbox.sol b/src/bridge/SequencerInbox.sol index 9fb15423..90014f6a 100644 --- a/src/bridge/SequencerInbox.sol +++ b/src/bridge/SequencerInbox.sol @@ -63,8 +63,8 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox IBridge public bridge; - IEigenDAServiceManager public eigenDAServiceManager; - IRollupManager public eigenDARollupManager; + address public eigenDAServiceManager; + address public eigenDARollupManager; /// @inheritdoc ISequencerInbox uint256 public constant HEADER_LENGTH = 40; @@ -140,8 +140,6 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox constructor( uint256 _maxDataSize, IReader4844 reader4844_, - IEigenDAServiceManager eigenDAServiceManager_, - IRollupManager eigenDARollupManager_, bool _isUsingFeeToken ) { maxDataSize = _maxDataSize; @@ -151,8 +149,6 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox if (reader4844_ == IReader4844(address(0))) revert InitParamZero("Reader4844"); } reader4844 = reader4844_; - eigenDAServiceManager = eigenDAServiceManager_; - eigenDARollupManager = eigenDARollupManager_; isUsingFeeToken = _isUsingFeeToken; } @@ -413,19 +409,22 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox submitBatchSpendingReport(dataHash, seqMessageIndex, block.basefee, blobGas); } } + + function addSequencerL2BatchFromEigenDA( uint256 sequenceNumber, EigenDARollupUtils.BlobVerificationProof calldata blobVerificationProof, IEigenDAServiceManager.BlobHeader calldata blobHeader, uint256 afterDelayedMessagesRead, - IGasRefunder gasRefunder, uint256 prevMessageCount, uint256 newMessageCount ) external { if (!isBatchPoster[msg.sender]) revert NotBatchPoster(); + + // verify that the blob was actually included before continuing + IRollupManager(eigenDARollupManager).verifyBlob(blobHeader, IEigenDAServiceManager(eigenDAServiceManager), blobVerificationProof); - eigenDARollupManager.verifyBlob(blobHeader, eigenDAServiceManager, blobVerificationProof); // NOTE: to retrieve need the following // see: https://github.com/Layr-Labs/eigenda/blob/master/api/docs/retriever.md#blobrequest @@ -453,13 +452,14 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox } emit SequencerBatchDelivered( - _sequenceNumber, + seqMessageIndex, beforeAcc, afterAcc, delayedAcc, totalDelayedMessagesRead, timeBounds, IBridge.BatchDataLocation.EigenDA + ); } @@ -785,7 +785,7 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox } /// @inheritdoc ISequencerInbox - function updateRollupAddress() external onlyRollupOwner { + function setRollupAddress() external onlyRollupOwner { IOwnable newRollup = bridge.rollup(); if (rollup == newRollup) revert RollupNotChanged(); rollup = newRollup; @@ -793,15 +793,24 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox } /// @inheritdoc ISequencerInbox - function updateEigenDAServiceManager(address newEigenDAServiceManager) external onlyRollupOwner { - eigenDAServiceManager = IEigenDAServiceManager(newEigenDAServiceManager); - emit OwnerFunctionCalled(31); + function setEigenDAServiceManager(address newEigenDAServiceManager) external onlyRollupOwner { + eigenDAServiceManager = newEigenDAServiceManager; + emit OwnerFunctionCalled(7); } /// @inheritdoc ISequencerInbox - function updateEigenDARollupManager(address newEigenDARollupManager) external onlyRollupOwner { - eigenDARollupManager = IRollupManager(newEigenDARollupManager); - emit OwnerFunctionCalled(32); + function setEigenDARollupManager(address newRollupManager) external onlyRollupOwner { + eigenDARollupManager = newRollupManager; + emit OwnerFunctionCalled(8); + } + + /// @notice Allows the rollup owner to sync the rollup address + function updateRollupAddress() external { + if (msg.sender != IOwnable(rollup).owner()) + revert NotOwner(msg.sender, IOwnable(rollup).owner()); + IOwnable newRollup = bridge.rollup(); + if (rollup == newRollup) revert RollupNotChanged(); + rollup = newRollup; } function isValidKeysetHash(bytes32 ksHash) external view returns (bool) { diff --git a/src/mocks/SequencerInboxStub.sol b/src/mocks/SequencerInboxStub.sol index 3485fdd0..bf24ab9f 100644 --- a/src/mocks/SequencerInboxStub.sol +++ b/src/mocks/SequencerInboxStub.sol @@ -18,11 +18,9 @@ contract SequencerInboxStub is SequencerInbox { ISequencerInbox.MaxTimeVariation memory maxTimeVariation_, uint256 maxDataSize_, IReader4844 reader4844_, - IEigenDAServiceManager eigenDAServiceManager_, - IRollupManager eigenDARollupManager_, bool isUsingFeeToken_ - ) SequencerInbox(maxDataSize_, reader4844_, eigenDAServiceManager_, eigenDARollupManager_, isUsingFeeToken_) { + ) SequencerInbox(maxDataSize_, reader4844_, isUsingFeeToken_) { bridge = bridge_; rollup = IOwnable(msg.sender); delayBlocks = uint64(maxTimeVariation_.delayBlocks); diff --git a/src/osp/OneStepProverHostIo.sol b/src/osp/OneStepProverHostIo.sol index 579f9084..72e5c077 100644 --- a/src/osp/OneStepProverHostIo.sol +++ b/src/osp/OneStepProverHostIo.sol @@ -243,7 +243,7 @@ contract OneStepProverHostIo is IOneStepProver { } else if (inst.argumentData == 3) { // The machine is asking for a EigenDA versioned hash preimage - require(proofType == 1, "UNKNOWN_PREIMAGE_PROOF"); + require(proofType == 0, "UNKNOWN_EIGENDA_PREIMAGE_PROOF"); bytes calldata kzgProof = proof[proofOffset:]; diff --git a/src/rollup/RollupCreator.sol b/src/rollup/RollupCreator.sol index 0a7d39b3..6f8fe195 100644 --- a/src/rollup/RollupCreator.sol +++ b/src/rollup/RollupCreator.sol @@ -43,6 +43,8 @@ contract RollupCreator is Ownable { //// @dev The address of the batch poster, not used when set to zero address address[] batchPosters; address batchPosterManager; + address eigenDAServiceManager; + address eigenDARollupManager; } BridgeCreator public bridgeCreator; @@ -196,6 +198,10 @@ contract RollupCreator is Ownable { bridgeContracts.sequencerInbox.setBatchPosterManager(deployParams.batchPosterManager); } + // Setting EigenDAServiceManager and EigenDARollupManager + bridgeContracts.sequencerInbox.setEigenDAServiceManager(deployParams.eigenDAServiceManager); + bridgeContracts.sequencerInbox.setEigenDARollupManager(deployParams.eigenDARollupManager); + // Call setValidator on the newly created rollup contract just if validator set is not empty if (deployParams.validators.length != 0) { bool[] memory _vals = new bool[](deployParams.validators.length); diff --git a/test/foundry/BridgeCreator.t.sol b/test/foundry/BridgeCreator.t.sol index 18da6e53..0f270034 100644 --- a/test/foundry/BridgeCreator.t.sol +++ b/test/foundry/BridgeCreator.t.sol @@ -20,7 +20,7 @@ contract BridgeCreatorTest is Test { BridgeCreator.BridgeContracts ethBasedTemplates = BridgeCreator.BridgeContracts({ bridge: new Bridge(), - sequencerInbox: new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, false), + sequencerInbox: new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, false), inbox: new Inbox(MAX_DATA_SIZE), rollupEventInbox: new RollupEventInbox(), outbox: new Outbox() @@ -28,7 +28,7 @@ contract BridgeCreatorTest is Test { BridgeCreator.BridgeContracts erc20BasedTemplates = BridgeCreator.BridgeContracts({ bridge: new ERC20Bridge(), - sequencerInbox: new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, true), + sequencerInbox: new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, true), inbox: new ERC20Inbox(MAX_DATA_SIZE), rollupEventInbox: new ERC20RollupEventInbox(), outbox: new ERC20Outbox() diff --git a/test/foundry/RollupCreator.t.sol b/test/foundry/RollupCreator.t.sol index 8bf9f10f..fd77054f 100644 --- a/test/foundry/RollupCreator.t.sol +++ b/test/foundry/RollupCreator.t.sol @@ -38,7 +38,7 @@ contract RollupCreatorTest is Test { BridgeCreator.BridgeContracts public ethBasedTemplates = BridgeCreator.BridgeContracts({ bridge: new Bridge(), - sequencerInbox: new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, false), + sequencerInbox: new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, false), inbox: new Inbox(MAX_DATA_SIZE), rollupEventInbox: new RollupEventInbox(), outbox: new Outbox() @@ -46,7 +46,7 @@ contract RollupCreatorTest is Test { BridgeCreator.BridgeContracts public erc20BasedTemplates = BridgeCreator.BridgeContracts({ bridge: new ERC20Bridge(), - sequencerInbox: new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, true), + sequencerInbox: new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, true), inbox: new ERC20Inbox(MAX_DATA_SIZE), rollupEventInbox: new ERC20RollupEventInbox(), outbox: new ERC20Outbox() @@ -126,18 +126,23 @@ contract RollupCreatorTest is Test { address[] memory validators = new address[](2); validators[0] = makeAddr("validator1"); validators[1] = makeAddr("validator2"); - - RollupCreator.RollupDeploymentParams memory deployParams = RollupCreator - .RollupDeploymentParams({ - config: config, - batchPosters: batchPosters, - validators: validators, - maxDataSize: MAX_DATA_SIZE, - nativeToken: address(0), - deployFactoriesToL2: true, - maxFeePerGasForRetryables: MAX_FEE_PER_GAS, - batchPosterManager: batchPosterManager - }); + + address eigenDASvcManager = makeAddr("eigenDASvcManager"); + address eigenDARollupManager = makeAddr("rollupManager"); + + RollupCreator.RollupDeploymentParams memory deployParams = RollupCreator.RollupDeploymentParams({ + config: config, + batchPosters: batchPosters, + validators: validators, + maxDataSize: MAX_DATA_SIZE, + nativeToken: address(0), + deployFactoriesToL2: true, + maxFeePerGasForRetryables: MAX_FEE_PER_GAS, + batchPosterManager: batchPosterManager, + eigenDAServiceManager: eigenDASvcManager, + eigenDARollupManager: eigenDARollupManager + }); + address rollupAddress = rollupCreator.createRollup{value: factoryDeploymentFunds}( deployParams ); @@ -283,6 +288,9 @@ contract RollupCreatorTest is Test { validators[0] = makeAddr("validator1"); validators[1] = makeAddr("validator2"); + address eigenDASvcManager = makeAddr("eigenDASvcManager"); + address eigenDARollupManager = makeAddr("rollupManager"); + RollupCreator.RollupDeploymentParams memory deployParams = RollupCreator .RollupDeploymentParams({ config: config, @@ -292,7 +300,9 @@ contract RollupCreatorTest is Test { nativeToken: nativeToken, deployFactoriesToL2: true, maxFeePerGasForRetryables: MAX_FEE_PER_GAS, - batchPosterManager: batchPosterManager + batchPosterManager: batchPosterManager, + eigenDAServiceManager: eigenDASvcManager, + eigenDARollupManager: eigenDARollupManager }); address rollupAddress = rollupCreator.createRollup(deployParams); @@ -435,6 +445,8 @@ contract RollupCreatorTest is Test { address[] memory validators = new address[](2); validators[0] = makeAddr("validator1"); validators[1] = makeAddr("validator2"); + address eigenDASvcManager = makeAddr("eigenDASvcManager"); + address eigenDARollupManager = makeAddr("rollupManager"); RollupCreator.RollupDeploymentParams memory deployParams = RollupCreator .RollupDeploymentParams({ @@ -445,7 +457,9 @@ contract RollupCreatorTest is Test { nativeToken: address(0), deployFactoriesToL2: true, maxFeePerGasForRetryables: MAX_FEE_PER_GAS, - batchPosterManager: batchPosterManager + batchPosterManager: batchPosterManager, + eigenDAServiceManager: eigenDASvcManager, + eigenDARollupManager: eigenDARollupManager }); address rollupAddress = rollupCreator.createRollup{value: factoryDeploymentFunds}( deployParams diff --git a/test/foundry/SequencerInbox.t.sol b/test/foundry/SequencerInbox.t.sol index 6f4ff5fa..8c6e4fba 100644 --- a/test/foundry/SequencerInbox.t.sol +++ b/test/foundry/SequencerInbox.t.sol @@ -10,7 +10,7 @@ import "@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol" import {EigenDARollupUtils} from "@eigenda/eigenda-utils/libraries/EigenDARollupUtils.sol"; import {IEigenDAServiceManager} from "@eigenda/eigenda-utils/interfaces/IEigenDAServiceManager.sol"; -import {EigenDARollupManager} from "../../src/bridge/RollupManager.sol"; +import {IRollupManager, EigenDADummyManager} from "../../src/bridge/RollupManager.sol"; import {BN254} from "@eigenda/eigenda-utils/libraries/BN254.sol"; contract RollupMock { @@ -75,8 +75,6 @@ contract SequencerInboxTest is Test { SequencerInbox seqInboxImpl = new SequencerInbox( maxDataSize, isArbHosted ? IReader4844(address(0)) : dummyReader4844, - dummyEigenDAServiceManager, - rollupManager, false ); SequencerInbox seqInbox = SequencerInbox( @@ -112,7 +110,7 @@ contract SequencerInboxTest is Test { abi.encode(uint256(11)) ); SequencerInbox seqInboxImpl = new SequencerInbox( - maxDataSize, IReader4844(address(0)), dummyEigenDAServiceManager, rollupManager, true + maxDataSize, IReader4844(address(0)), true ); SequencerInbox seqInbox = SequencerInbox( address(new TransparentUpgradeableProxy(address(seqInboxImpl), proxyAdmin, "")) @@ -357,7 +355,7 @@ contract SequencerInboxTest is Test { /* solhint-disable func-name-mixedcase */ function testConstructor() public { SequencerInbox seqInboxLogic = - new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, false); + new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, false); assertEq(seqInboxLogic.maxDataSize(), MAX_DATA_SIZE, "Invalid MAX_DATA_SIZE"); assertEq(seqInboxLogic.isUsingFeeToken(), false, "Invalid isUsingFeeToken"); @@ -366,7 +364,7 @@ contract SequencerInboxTest is Test { assertEq(seqInboxProxy.isUsingFeeToken(), false, "Invalid isUsingFeeToken"); SequencerInbox seqInboxLogicFeeToken = - new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, true); + new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, true); assertEq(seqInboxLogicFeeToken.maxDataSize(), MAX_DATA_SIZE, "Invalid MAX_DATA_SIZE"); assertEq(seqInboxLogicFeeToken.isUsingFeeToken(), true, "Invalid isUsingFeeToken"); @@ -382,7 +380,7 @@ contract SequencerInboxTest is Test { _bridge.initialize(IOwnable(address(new RollupMock(rollupOwner)))); address seqInboxLogic = address( - new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, false) + new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, false) ); SequencerInbox seqInboxProxy = SequencerInbox(TestUtil.deployProxy(seqInboxLogic)); seqInboxProxy.initialize(IBridge(_bridge), maxTimeVariation); @@ -400,7 +398,7 @@ contract SequencerInboxTest is Test { _bridge.initialize(IOwnable(address(new RollupMock(rollupOwner))), nativeToken); address seqInboxLogic = address( - new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, true) + new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, true) ); SequencerInbox seqInboxProxy = SequencerInbox(TestUtil.deployProxy(seqInboxLogic)); seqInboxProxy.initialize(IBridge(_bridge), maxTimeVariation); @@ -416,7 +414,7 @@ contract SequencerInboxTest is Test { _bridge.initialize(IOwnable(address(new RollupMock(rollupOwner)))); address seqInboxLogic = address( - new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, true) + new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, true) ); SequencerInbox seqInboxProxy = SequencerInbox(TestUtil.deployProxy(seqInboxLogic)); @@ -432,7 +430,7 @@ contract SequencerInboxTest is Test { _bridge.initialize(IOwnable(address(new RollupMock(rollupOwner))), nativeToken); address seqInboxLogic = address( - new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, false) + new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, false) ); SequencerInbox seqInboxProxy = SequencerInbox(TestUtil.deployProxy(seqInboxLogic)); @@ -594,14 +592,14 @@ contract SequencerInboxTest is Test { function testAddSequencerL2BatchFromEigenDA() public { - EigenDARollupManager rollupManagerImpl = new EigenDARollupManager(); + EigenDADummyManager rollupManagerImpl = new EigenDADummyManager(); (SequencerInbox seqInbox, Bridge bridge) = deployRollup(false); // update the dummyEigenDAServiceManager to use the holesky serviceManager contract vm.startPrank(rollupOwner); // deploy rollup - seqInbox.updateEigenDARollupManager(address(rollupManagerImpl)); - seqInbox.updateEigenDAServiceManager(0xD4A7E1Bd8015057293f0D0A557088c286942e84b); + seqInbox.setEigenDARollupManager(address(rollupManagerImpl)); + seqInbox.setEigenDAServiceManager(0xD4A7E1Bd8015057293f0D0A557088c286942e84b); vm.stopPrank(); address delayedInboxSender = address(140); @@ -615,7 +613,7 @@ contract SequencerInboxTest is Test { // ed is EIGEN_DA_MESSAGE_HEADER_FLAG rest is abi.encodePacked(blobHeader.commitment.X, blobHeader.commitment.Y, blobHeader.dataLength) bytes memory data = - abi.encodePacked(hex"ed",blobHeader.commitment.X, blobHeader.commitment.Y, blobHeader.dataLength); + abi.encodePacked(hex"ed", blobHeader.commitment.X, blobHeader.commitment.Y, blobHeader.dataLength); uint256 subMessageCount = bridge.sequencerReportedSubMessageCount(); uint256 sequenceNumber = bridge.sequencerMessageCount(); @@ -630,7 +628,6 @@ contract SequencerInboxTest is Test { blobVerificationProof, blobHeader, delayedMessagesRead, - IGasRefunder(address(0)), subMessageCount, subMessageCount + 1 ); @@ -702,7 +699,6 @@ contract SequencerInboxTest is Test { illegalBlobVerificationProof, illegalBlobHeader, delayedMessagesRead, - IGasRefunder(address(0)), subMessageCount, subMessageCount + 1 ); @@ -711,7 +707,7 @@ contract SequencerInboxTest is Test { function testPostUpgradeInitAlreadyInit() public returns (SequencerInbox, SequencerInbox) { (SequencerInbox seqInbox,) = deployRollup(false); SequencerInbox seqInboxImpl = - new SequencerInbox(maxDataSize, dummyReader4844, dummyEigenDAServiceManager, rollupManager, false); + new SequencerInbox(maxDataSize, dummyReader4844, false); vm.expectRevert(abi.encodeWithSelector(AlreadyInit.selector)); vm.prank(proxyAdmin);