From 16b2de085498dca69dfe55b1a9b1f7bd0d6440e5 Mon Sep 17 00:00:00 2001 From: Martin Holst Swende Date: Thu, 14 Mar 2024 09:48:28 +0100 Subject: [PATCH] eth/catalyst: prettier output on bad new payloads --- common/types.go | 11 +++++++++++ eth/catalyst/api.go | 20 +++++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/common/types.go b/common/types.go index aadca87f82..b914787d13 100644 --- a/common/types.go +++ b/common/types.go @@ -475,3 +475,14 @@ func (d *Decimal) UnmarshalJSON(input []byte) error { return err } } + +type PrettyBytes []byte + +// TerminalString implements log.TerminalStringer, formatting a string for console +// output during logging. +func (b PrettyBytes) TerminalString() string { + if len(b) < 7 { + return fmt.Sprintf("%x", b) + } + return fmt.Sprintf("%#x...%x (%dB)", b[:3], b[len(b)-3:], len(b)) +} diff --git a/eth/catalyst/api.go b/eth/catalyst/api.go index f549f29dc6..0c9ca60005 100644 --- a/eth/catalyst/api.go +++ b/eth/catalyst/api.go @@ -540,7 +540,25 @@ func (api *ConsensusAPI) newPayload(params engine.ExecutableData, versionedHashe log.Trace("Engine API request received", "method", "NewPayload", "number", params.Number, "hash", params.BlockHash) block, err := engine.ExecutableDataToBlock(params, versionedHashes, beaconRoot) if err != nil { - log.Warn("Invalid NewPayload params", "params", params, "error", err) + log.Warn("Invalid NewPayload params", + "params.Number", params.Number, + "params.ParentHash", params.ParentHash, + "params.BlockHash", params.BlockHash, + "params.StateRoot", params.StateRoot, + "params.FeeRecipient", params.FeeRecipient, + "params.LogsBloom", common.PrettyBytes(params.LogsBloom), + "params.Random", params.Random, + "params.GasLimit", params.GasLimit, + "params.GasUsed", params.GasUsed, + "params.Timestamp", params.Timestamp, + "params.ExtraData", params.ExtraData, + "params.BaseFeePerGas", params.BaseFeePerGas, + "params.BlobGasUsed", *params.BlobGasUsed, + "params.ExcessBlobGas", *params.ExcessBlobGas, + "len(params.Transactions)", len(params.Transactions), + "len(params.Withdrawals)", len(params.Withdrawals), + "beaconRoot", beaconRoot, + "error", err) return api.invalid(err, nil), nil } // Stash away the last update to warn the user if the beacon client goes offline