diff --git a/deploy/EigenDAServiceManagerStubCreator.js b/deploy/EigenDAServiceManagerStubCreator.js index 31b1182c..74362412 100644 --- a/deploy/EigenDAServiceManagerStubCreator.js +++ b/deploy/EigenDAServiceManagerStubCreator.js @@ -1,10 +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 = [] + 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 495263c9..4fe29ca0 100644 --- a/deploy/SequencerInboxStubCreator.js +++ b/deploy/SequencerInboxStubCreator.js @@ -16,6 +16,18 @@ 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: [ @@ -24,10 +36,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/bridge/ISequencerInbox.sol b/src/bridge/ISequencerInbox.sol index 43279dcb..adc2ceba 100644 --- a/src/bridge/ISequencerInbox.sol +++ b/src/bridge/ISequencerInbox.sol @@ -193,30 +193,13 @@ 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 @@ -259,6 +242,11 @@ 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 ea1bc7ea..3acdb35b 100644 --- a/src/bridge/RollupManager.sol +++ b/src/bridge/RollupManager.sol @@ -8,93 +8,8 @@ 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 { @@ -114,9 +29,7 @@ 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 90014f6a..9fb15423 100644 --- a/src/bridge/SequencerInbox.sol +++ b/src/bridge/SequencerInbox.sol @@ -63,8 +63,8 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox IBridge public bridge; - address public eigenDAServiceManager; - address public eigenDARollupManager; + IEigenDAServiceManager public eigenDAServiceManager; + IRollupManager public eigenDARollupManager; /// @inheritdoc ISequencerInbox uint256 public constant HEADER_LENGTH = 40; @@ -140,6 +140,8 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox constructor( uint256 _maxDataSize, IReader4844 reader4844_, + IEigenDAServiceManager eigenDAServiceManager_, + IRollupManager eigenDARollupManager_, bool _isUsingFeeToken ) { maxDataSize = _maxDataSize; @@ -149,6 +151,8 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox if (reader4844_ == IReader4844(address(0))) revert InitParamZero("Reader4844"); } reader4844 = reader4844_; + eigenDAServiceManager = eigenDAServiceManager_; + eigenDARollupManager = eigenDARollupManager_; isUsingFeeToken = _isUsingFeeToken; } @@ -409,22 +413,19 @@ 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 @@ -452,14 +453,13 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox } emit SequencerBatchDelivered( - seqMessageIndex, + _sequenceNumber, beforeAcc, afterAcc, delayedAcc, totalDelayedMessagesRead, timeBounds, IBridge.BatchDataLocation.EigenDA - ); } @@ -785,7 +785,7 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox } /// @inheritdoc ISequencerInbox - function setRollupAddress() external onlyRollupOwner { + function updateRollupAddress() external onlyRollupOwner { IOwnable newRollup = bridge.rollup(); if (rollup == newRollup) revert RollupNotChanged(); rollup = newRollup; @@ -793,24 +793,15 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox } /// @inheritdoc ISequencerInbox - function setEigenDAServiceManager(address newEigenDAServiceManager) external onlyRollupOwner { - eigenDAServiceManager = newEigenDAServiceManager; - emit OwnerFunctionCalled(7); + function updateEigenDAServiceManager(address newEigenDAServiceManager) external onlyRollupOwner { + eigenDAServiceManager = IEigenDAServiceManager(newEigenDAServiceManager); + emit OwnerFunctionCalled(31); } /// @inheritdoc ISequencerInbox - 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 updateEigenDARollupManager(address newEigenDARollupManager) external onlyRollupOwner { + eigenDARollupManager = IRollupManager(newEigenDARollupManager); + emit OwnerFunctionCalled(32); } function isValidKeysetHash(bytes32 ksHash) external view returns (bool) { diff --git a/src/mocks/SequencerInboxStub.sol b/src/mocks/SequencerInboxStub.sol index bf24ab9f..3485fdd0 100644 --- a/src/mocks/SequencerInboxStub.sol +++ b/src/mocks/SequencerInboxStub.sol @@ -18,9 +18,11 @@ contract SequencerInboxStub is SequencerInbox { ISequencerInbox.MaxTimeVariation memory maxTimeVariation_, uint256 maxDataSize_, IReader4844 reader4844_, + IEigenDAServiceManager eigenDAServiceManager_, + IRollupManager eigenDARollupManager_, bool isUsingFeeToken_ - ) SequencerInbox(maxDataSize_, reader4844_, isUsingFeeToken_) { + ) SequencerInbox(maxDataSize_, reader4844_, eigenDAServiceManager_, eigenDARollupManager_, isUsingFeeToken_) { bridge = bridge_; rollup = IOwnable(msg.sender); delayBlocks = uint64(maxTimeVariation_.delayBlocks); diff --git a/src/osp/OneStepProverHostIo.sol b/src/osp/OneStepProverHostIo.sol index 72e5c077..579f9084 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 == 0, "UNKNOWN_EIGENDA_PREIMAGE_PROOF"); + require(proofType == 1, "UNKNOWN_PREIMAGE_PROOF"); bytes calldata kzgProof = proof[proofOffset:]; diff --git a/src/rollup/RollupCreator.sol b/src/rollup/RollupCreator.sol index 6f8fe195..0a7d39b3 100644 --- a/src/rollup/RollupCreator.sol +++ b/src/rollup/RollupCreator.sol @@ -43,8 +43,6 @@ 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; @@ -198,10 +196,6 @@ 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 0f270034..18da6e53 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, false), + sequencerInbox: new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, 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, true), + sequencerInbox: new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, 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 fd77054f..8bf9f10f 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, false), + sequencerInbox: new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, 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, true), + sequencerInbox: new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, true), inbox: new ERC20Inbox(MAX_DATA_SIZE), rollupEventInbox: new ERC20RollupEventInbox(), outbox: new ERC20Outbox() @@ -126,23 +126,18 @@ 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({ - 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 - }); - + + 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 rollupAddress = rollupCreator.createRollup{value: factoryDeploymentFunds}( deployParams ); @@ -288,9 +283,6 @@ 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, @@ -300,9 +292,7 @@ contract RollupCreatorTest is Test { nativeToken: nativeToken, deployFactoriesToL2: true, maxFeePerGasForRetryables: MAX_FEE_PER_GAS, - batchPosterManager: batchPosterManager, - eigenDAServiceManager: eigenDASvcManager, - eigenDARollupManager: eigenDARollupManager + batchPosterManager: batchPosterManager }); address rollupAddress = rollupCreator.createRollup(deployParams); @@ -445,8 +435,6 @@ 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({ @@ -457,9 +445,7 @@ contract RollupCreatorTest is Test { nativeToken: address(0), deployFactoriesToL2: true, maxFeePerGasForRetryables: MAX_FEE_PER_GAS, - batchPosterManager: batchPosterManager, - eigenDAServiceManager: eigenDASvcManager, - eigenDARollupManager: eigenDARollupManager + batchPosterManager: batchPosterManager }); address rollupAddress = rollupCreator.createRollup{value: factoryDeploymentFunds}( deployParams diff --git a/test/foundry/SequencerInbox.t.sol b/test/foundry/SequencerInbox.t.sol index 8c6e4fba..6f4ff5fa 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 {IRollupManager, EigenDADummyManager} from "../../src/bridge/RollupManager.sol"; +import {EigenDARollupManager} from "../../src/bridge/RollupManager.sol"; import {BN254} from "@eigenda/eigenda-utils/libraries/BN254.sol"; contract RollupMock { @@ -75,6 +75,8 @@ contract SequencerInboxTest is Test { SequencerInbox seqInboxImpl = new SequencerInbox( maxDataSize, isArbHosted ? IReader4844(address(0)) : dummyReader4844, + dummyEigenDAServiceManager, + rollupManager, false ); SequencerInbox seqInbox = SequencerInbox( @@ -110,7 +112,7 @@ contract SequencerInboxTest is Test { abi.encode(uint256(11)) ); SequencerInbox seqInboxImpl = new SequencerInbox( - maxDataSize, IReader4844(address(0)), true + maxDataSize, IReader4844(address(0)), dummyEigenDAServiceManager, rollupManager, true ); SequencerInbox seqInbox = SequencerInbox( address(new TransparentUpgradeableProxy(address(seqInboxImpl), proxyAdmin, "")) @@ -355,7 +357,7 @@ contract SequencerInboxTest is Test { /* solhint-disable func-name-mixedcase */ function testConstructor() public { SequencerInbox seqInboxLogic = - new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, false); + new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, false); assertEq(seqInboxLogic.maxDataSize(), MAX_DATA_SIZE, "Invalid MAX_DATA_SIZE"); assertEq(seqInboxLogic.isUsingFeeToken(), false, "Invalid isUsingFeeToken"); @@ -364,7 +366,7 @@ contract SequencerInboxTest is Test { assertEq(seqInboxProxy.isUsingFeeToken(), false, "Invalid isUsingFeeToken"); SequencerInbox seqInboxLogicFeeToken = - new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, true); + new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, true); assertEq(seqInboxLogicFeeToken.maxDataSize(), MAX_DATA_SIZE, "Invalid MAX_DATA_SIZE"); assertEq(seqInboxLogicFeeToken.isUsingFeeToken(), true, "Invalid isUsingFeeToken"); @@ -380,7 +382,7 @@ contract SequencerInboxTest is Test { _bridge.initialize(IOwnable(address(new RollupMock(rollupOwner)))); address seqInboxLogic = address( - new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, false) + new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, false) ); SequencerInbox seqInboxProxy = SequencerInbox(TestUtil.deployProxy(seqInboxLogic)); seqInboxProxy.initialize(IBridge(_bridge), maxTimeVariation); @@ -398,7 +400,7 @@ contract SequencerInboxTest is Test { _bridge.initialize(IOwnable(address(new RollupMock(rollupOwner))), nativeToken); address seqInboxLogic = address( - new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, true) + new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, true) ); SequencerInbox seqInboxProxy = SequencerInbox(TestUtil.deployProxy(seqInboxLogic)); seqInboxProxy.initialize(IBridge(_bridge), maxTimeVariation); @@ -414,7 +416,7 @@ contract SequencerInboxTest is Test { _bridge.initialize(IOwnable(address(new RollupMock(rollupOwner)))); address seqInboxLogic = address( - new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, true) + new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, true) ); SequencerInbox seqInboxProxy = SequencerInbox(TestUtil.deployProxy(seqInboxLogic)); @@ -430,7 +432,7 @@ contract SequencerInboxTest is Test { _bridge.initialize(IOwnable(address(new RollupMock(rollupOwner))), nativeToken); address seqInboxLogic = address( - new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, false) + new SequencerInbox(MAX_DATA_SIZE, dummyReader4844, dummyEigenDAServiceManager, rollupManager, false) ); SequencerInbox seqInboxProxy = SequencerInbox(TestUtil.deployProxy(seqInboxLogic)); @@ -592,14 +594,14 @@ contract SequencerInboxTest is Test { function testAddSequencerL2BatchFromEigenDA() public { - EigenDADummyManager rollupManagerImpl = new EigenDADummyManager(); + EigenDARollupManager rollupManagerImpl = new EigenDARollupManager(); (SequencerInbox seqInbox, Bridge bridge) = deployRollup(false); // update the dummyEigenDAServiceManager to use the holesky serviceManager contract vm.startPrank(rollupOwner); // deploy rollup - seqInbox.setEigenDARollupManager(address(rollupManagerImpl)); - seqInbox.setEigenDAServiceManager(0xD4A7E1Bd8015057293f0D0A557088c286942e84b); + seqInbox.updateEigenDARollupManager(address(rollupManagerImpl)); + seqInbox.updateEigenDAServiceManager(0xD4A7E1Bd8015057293f0D0A557088c286942e84b); vm.stopPrank(); address delayedInboxSender = address(140); @@ -613,7 +615,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(); @@ -628,6 +630,7 @@ contract SequencerInboxTest is Test { blobVerificationProof, blobHeader, delayedMessagesRead, + IGasRefunder(address(0)), subMessageCount, subMessageCount + 1 ); @@ -699,6 +702,7 @@ contract SequencerInboxTest is Test { illegalBlobVerificationProof, illegalBlobHeader, delayedMessagesRead, + IGasRefunder(address(0)), subMessageCount, subMessageCount + 1 ); @@ -707,7 +711,7 @@ contract SequencerInboxTest is Test { function testPostUpgradeInitAlreadyInit() public returns (SequencerInbox, SequencerInbox) { (SequencerInbox seqInbox,) = deployRollup(false); SequencerInbox seqInboxImpl = - new SequencerInbox(maxDataSize, dummyReader4844, false); + new SequencerInbox(maxDataSize, dummyReader4844, dummyEigenDAServiceManager, rollupManager, false); vm.expectRevert(abi.encodeWithSelector(AlreadyInit.selector)); vm.prank(proxyAdmin);