From 0ef42ae99a0c379f1ffa6f9f5d07b2e52b983cc3 Mon Sep 17 00:00:00 2001 From: marukai67 Date: Sat, 13 Dec 2025 15:30:41 +0100 Subject: [PATCH] Update api.go --- internal/ethapi/api.go | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/internal/ethapi/api.go b/internal/ethapi/api.go index eb437201d5..6d75d87227 100644 --- a/internal/ethapi/api.go +++ b/internal/ethapi/api.go @@ -1644,6 +1644,19 @@ func (api *TransactionAPI) currentBlobSidecarVersion() byte { } return types.BlobSidecarVersion0 } +// convertLegacyBlobSidecar upgrades a legacy blob sidecar to the expected version. +func (api *TransactionAPI) convertLegacyBlobSidecar(tx *types.Transaction) (*types.Transaction, error) { + if sc := tx.BlobTxSidecar(); sc != nil { + exp := api.currentBlobSidecarVersion() + if sc.Version == types.BlobSidecarVersion0 && exp == types.BlobSidecarVersion1 { + if err := sc.ToV1(); err != nil { + return nil, fmt.Errorf("blob sidecar conversion failed: %v", err) + } + tx = tx.WithBlobTxSidecar(sc) + } + } + return tx, nil +} // SendRawTransaction will add the signed transaction to the transaction pool. // The sender is responsible for signing the transaction and using the correct nonce. @@ -1654,15 +1667,9 @@ func (api *TransactionAPI) SendRawTransaction(ctx context.Context, input hexutil } // Convert legacy blob transaction proofs. - // TODO: remove in go-ethereum v1.17.x - if sc := tx.BlobTxSidecar(); sc != nil { - exp := api.currentBlobSidecarVersion() - if sc.Version == types.BlobSidecarVersion0 && exp == types.BlobSidecarVersion1 { - if err := sc.ToV1(); err != nil { - return common.Hash{}, fmt.Errorf("blob sidecar conversion failed: %v", err) - } - tx = tx.WithBlobTxSidecar(sc) - } + var err error + if tx, err = api.convertLegacyBlobSidecar(tx); err != nil { + return common.Hash{}, err } return SubmitTransaction(ctx, api.b, tx) @@ -1677,15 +1684,9 @@ func (api *TransactionAPI) SendRawTransactionSync(ctx context.Context, input hex } // Convert legacy blob transaction proofs. - // TODO: remove in go-ethereum v1.17.x - if sc := tx.BlobTxSidecar(); sc != nil { - exp := api.currentBlobSidecarVersion() - if sc.Version == types.BlobSidecarVersion0 && exp == types.BlobSidecarVersion1 { - if err := sc.ToV1(); err != nil { - return nil, fmt.Errorf("blob sidecar conversion failed: %v", err) - } - tx = tx.WithBlobTxSidecar(sc) - } + var err error + if tx, err = api.convertLegacyBlobSidecar(tx); err != nil { + return nil, err } ch := make(chan core.ChainEvent, 128)