@@ -681,6 +681,7 @@ contract RollupTest is RollupBase {
681681 function testRevertInvalidTimestamp () public setUpFor ("empty_block_1 " ) {
682682 DecoderBase.Data memory data = load ("empty_block_1 " ).block;
683683 ProposedHeader memory header = data.header;
684+ vm.blobhashes (this .getBlobHashes (data.blobCommitments));
684685 bytes32 archive = data.archive;
685686
686687 Timestamp realTs = header.timestamp;
@@ -704,7 +705,7 @@ contract RollupTest is RollupBase {
704705 AttestationLibHelper.packAttestations (attestations),
705706 signers,
706707 attestationsAndSignersSignature,
707- new bytes ( 144 )
708+ data.blobCommitments
708709 );
709710 }
710711
@@ -720,6 +721,8 @@ contract RollupTest is RollupBase {
720721 // Tweak the coinbase.
721722 header.coinbase = address (0 );
722723
724+ bytes32 [] memory blobHashes = this .getBlobHashes (data.blobCommitments);
725+ vm.blobhashes (blobHashes);
723726 skipBlobCheck (address (rollup));
724727 vm.expectRevert (abi.encodeWithSelector (Errors.Rollup__InvalidCoinbase.selector ));
725728 ProposeArgs memory args = ProposeArgs ({
@@ -733,7 +736,7 @@ contract RollupTest is RollupBase {
733736 AttestationLibHelper.packAttestations (attestations),
734737 signers,
735738 attestationsAndSignersSignature,
736- new bytes ( 144 )
739+ data.blobCommitments
737740 );
738741 }
739742
@@ -777,6 +780,33 @@ contract RollupTest is RollupBase {
777780 _submitEpochProof (1 , 1 , blockLog.archive, data.archive, blobProofInputs, address (0 ));
778781 }
779782
783+ function testNoBlob () public setUpFor ("empty_block_1 " ) {
784+ DecoderBase.Data memory data = load ("empty_block_1 " ).block;
785+ ProposedHeader memory header = data.header;
786+ bytes32 archive = data.archive;
787+
788+ Timestamp realTs = header.timestamp;
789+
790+ vm.warp (max (block .timestamp , Timestamp.unwrap (realTs)));
791+
792+ header.gasFees.feePerL2Gas = uint128 (rollup.getManaBaseFeeAt (Timestamp.wrap (block .timestamp ), true ));
793+
794+ vm.expectRevert (abi.encodeWithSelector (Errors.Rollup__NoBlobsInBlock.selector ));
795+ ProposeArgs memory args = ProposeArgs ({
796+ header: header,
797+ archive: archive,
798+ stateReference: EMPTY_STATE_REFERENCE,
799+ oracleInput: OracleInput (0 )
800+ });
801+ rollup.propose (
802+ args,
803+ AttestationLibHelper.packAttestations (attestations),
804+ signers,
805+ attestationsAndSignersSignature,
806+ new bytes (144 )
807+ );
808+ }
809+
780810 function testTooManyBlocks () public setUpFor ("mixed_block_1 " ) {
781811 _proposeBlock ("mixed_block_1 " , 1 );
782812 DecoderBase.Data memory data = load ("mixed_block_1 " ).block;
0 commit comments