add comments

This commit is contained in:
maskpp 2025-08-17 19:18:00 +08:00
parent 2824f3ce6d
commit 3eb09d06c1

View file

@ -312,36 +312,39 @@ func (tx *BlobTx) decode(input []byte) error {
return err return err
} }
// If the bLen is equal to the length of the input, it means that the sidecar is not present.
if len(input) == bLen {
return nil
}
type sidecarNoVersion struct { type sidecarNoVersion struct {
Blobs []kzg4844.Blob // Blobs needed by the blob pool Blobs []kzg4844.Blob // Blobs needed by the blob pool
Commitments []kzg4844.Commitment // Commitments needed by the blob pool Commitments []kzg4844.Commitment // Commitments needed by the blob pool
Proofs []kzg4844.Proof // Proofs needed by the blob pool Proofs []kzg4844.Proof // Proofs needed by the blob pool
} }
// If the input is shorter than the RLP-encoded transaction, it means // Decode the sidecar, which may or may not have a version byte.
// that the transaction does not have a sidecar. var (
if input = input[bLen:]; len(input) > 0 { version = byte(0)
var ( sidecar = sidecarNoVersion{}
version = byte(0) )
sidecar = sidecarNoVersion{} input = input[bLen:]
) kind, content, _, err := rlp.Split(input)
kind, content, _, err := rlp.Split(input) // If the first element is a byte, it means that the sidecar version is encoded.
// If the first element is a byte, it means that the sidecar version is encoded. if kind == rlp.Byte {
if kind == rlp.Byte { if err = rlp.DecodeBytes(content, &version); err != nil {
if err = rlp.DecodeBytes(content, &version); err != nil {
return err
}
input = input[len(content):]
}
if err = rlp.DecodeBytes(input, &sidecar); err != nil {
return err return err
} }
tx.Sidecar = &BlobTxSidecar{ input = input[len(content):]
Version: version, }
Blobs: sidecar.Blobs, if err = rlp.DecodeBytes(input, &sidecar); err != nil {
Commitments: sidecar.Commitments, return err
Proofs: sidecar.Proofs, }
} tx.Sidecar = &BlobTxSidecar{
Version: version,
Blobs: sidecar.Blobs,
Commitments: sidecar.Commitments,
Proofs: sidecar.Proofs,
} }
return nil return nil
} }