diff --git a/internal/ethapi/api.go b/internal/ethapi/api.go index 6452fcf37c..4fbf2566d5 100644 --- a/internal/ethapi/api.go +++ b/internal/ethapi/api.go @@ -1902,12 +1902,6 @@ func (api *TransactionAPI) SignTransaction(ctx context.Context, args Transaction if err != nil { return nil, err } - // If the transaction-to-sign was a blob transaction, then the signed one - // no longer retains the blobs, only the blob hashes. In this step, we need - // to put back the blob(s). - if args.IsEIP4844() { - signed = signed.WithBlobTxSidecar(types.NewBlobTxSidecar(sidecarVersion, args.Blobs, args.Commitments, args.Proofs)) - } data, err := signed.MarshalBinary() if err != nil { return nil, err diff --git a/internal/ethapi/api_test.go b/internal/ethapi/api_test.go index 561ce2c2d2..453ea88d5f 100644 --- a/internal/ethapi/api_test.go +++ b/internal/ethapi/api_test.go @@ -2805,10 +2805,15 @@ func TestSignBlobTransaction(t *testing.T) { t.Fatalf("failed to fill tx defaults: %v\n", err) } - _, err = api.SignTransaction(context.Background(), argsFromTransaction(res.Tx, b.acc.Address)) + result, err := api.SignTransaction(context.Background(), argsFromTransaction(res.Tx, b.acc.Address)) if err != nil { t.Fatalf("should not fail on blob transaction") } + // When no blobs are provided (only blob hashes), the signed transaction + // should not have an empty sidecar attached. + if result.Tx.BlobTxSidecar() != nil { + t.Fatal("signed transaction should not have a sidecar when no blobs were provided") + } } func TestSendBlobTransaction(t *testing.T) {