@@ -91,7 +91,6 @@ func (d *DACodecV7) NewDABatch(batch *Batch) (DABatch, error) {
9191
9292func (d * DACodecV7 ) constructBlob (batch * Batch ) (* kzg4844.Blob , common.Hash , []byte , error ) {
9393 blobBytes := make ([]byte , blobEnvelopeV7OffsetPayload )
94- blobBytes [blobEnvelopeV7OffsetVersion ] = uint8 (CodecV7 )
9594
9695 payloadBytes , err := d .constructBlobPayload (batch )
9796 if err != nil {
@@ -103,15 +102,17 @@ func (d *DACodecV7) constructBlob(batch *Batch) (*kzg4844.Blob, common.Hash, []b
103102 return nil , common.Hash {}, nil , fmt .Errorf ("failed to check batch compressed data compatibility: %w" , err )
104103 }
105104
105+ isCompressedFlag := uint8 (0x0 )
106106 if enableCompression {
107- blobBytes [ blobEnvelopeV7OffsetCompressedFlag ] = 0x1
107+ isCompressedFlag = 0x1
108108 payloadBytes = compressedPayloadBytes
109- } else {
110- blobBytes [blobEnvelopeV7OffsetCompressedFlag ] = 0x0
111109 }
112110
113111 sizeSlice := encodeSize3Bytes (uint32 (len (payloadBytes )))
112+
113+ blobBytes [blobEnvelopeV7OffsetVersion ] = uint8 (CodecV7 )
114114 copy (blobBytes [blobEnvelopeV7OffsetByteSize :blobEnvelopeV7OffsetCompressedFlag ], sizeSlice )
115+ blobBytes [blobEnvelopeV7OffsetCompressedFlag ] = isCompressedFlag
115116 blobBytes = append (blobBytes , payloadBytes ... )
116117
117118 if len (blobBytes ) > maxEffectiveBlobBytes {
@@ -179,12 +180,12 @@ func (d *DACodecV7) DecodeBlob(blob *kzg4844.Blob) (DABlobPayload, error) {
179180 }
180181
181182 // read the data size
182- blobEnvelopeSize := decodeSize3Bytes (rawBytes [blobEnvelopeV7OffsetByteSize :blobEnvelopeV7OffsetCompressedFlag ])
183- if blobEnvelopeSize + blobEnvelopeV7OffsetPayload > uint32 (len (rawBytes )) {
184- return nil , fmt .Errorf ("blob envelope size exceeds the raw data size: %d > %d" , blobEnvelopeSize , len (rawBytes ))
183+ blobPayloadSize := decodeSize3Bytes (rawBytes [blobEnvelopeV7OffsetByteSize :blobEnvelopeV7OffsetCompressedFlag ])
184+ if blobPayloadSize + blobEnvelopeV7OffsetPayload > uint32 (len (rawBytes )) {
185+ return nil , fmt .Errorf ("blob envelope size exceeds the raw data size: %d > %d" , blobPayloadSize , len (rawBytes ))
185186 }
186187
187- payloadBytes := rawBytes [blobEnvelopeV7OffsetPayload : blobEnvelopeV7OffsetPayload + blobEnvelopeSize ]
188+ payloadBytes := rawBytes [blobEnvelopeV7OffsetPayload : blobEnvelopeV7OffsetPayload + blobPayloadSize ]
188189
189190 // read the compressed flag and decompress if needed
190191 compressed := rawBytes [blobEnvelopeV7OffsetCompressedFlag ]
0 commit comments