diff --git a/integration/mainnet/eth_sendRawTransaction/test_01.json b/integration/mainnet/eth_sendRawTransaction/test_01.json index a3bc7b86..741459b4 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_01.json +++ b/integration/mainnet/eth_sendRawTransaction/test_01.json @@ -16,7 +16,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "Invalid RLP: Expected length of length less than or equal to 4"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_02.json b/integration/mainnet/eth_sendRawTransaction/test_02.json index 29dd2a87..0a27d199 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_02.json +++ b/integration/mainnet/eth_sendRawTransaction/test_02.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "Invalid RLP: Cannot decode stream of Transaction"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_03.json b/integration/mainnet/eth_sendRawTransaction/test_03.json index 1190c228..a47fbfb0 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_03.json +++ b/integration/mainnet/eth_sendRawTransaction/test_03.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "Invalid RLP: Transaction decoding returned null"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_04.json b/integration/mainnet/eth_sendRawTransaction/test_04.json index 3b7ddc21..b40485cf 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_04.json +++ b/integration/mainnet/eth_sendRawTransaction/test_04.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "Invalid RLP: Cannot decode stream of Transaction"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_05.json b/integration/mainnet/eth_sendRawTransaction/test_05.json index a28cd354..fdc03e00 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_05.json +++ b/integration/mainnet/eth_sendRawTransaction/test_05.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "Invalid RLP: Unknown transaction type 10"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_06.json b/integration/mainnet/eth_sendRawTransaction/test_06.json index 463ebc8d..5a83a417 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_06.json +++ b/integration/mainnet/eth_sendRawTransaction/test_06.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "Invalid RLP: Cannot decode stream of Transaction"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_07.json b/integration/mainnet/eth_sendRawTransaction/test_07.json index c3f52fb1..9c81fcf4 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_07.json +++ b/integration/mainnet/eth_sendRawTransaction/test_07.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "Invalid params"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_08.json b/integration/mainnet/eth_sendRawTransaction/test_08.json index bb0a4925..36691f65 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_08.json +++ b/integration/mainnet/eth_sendRawTransaction/test_08.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "missing value for required argument 0"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_09.json b/integration/mainnet/eth_sendRawTransaction/test_09.json index af4347df..ec24a230 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_09.json +++ b/integration/mainnet/eth_sendRawTransaction/test_09.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "missing value for required argument 0"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_10.json b/integration/mainnet/eth_sendRawTransaction/test_10.json index ff9bab34..c35aa512 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_10.json +++ b/integration/mainnet/eth_sendRawTransaction/test_10.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "Invalid params"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_11.json b/integration/mainnet/eth_sendRawTransaction/test_11.json index f89eb3a4..6a32c291 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_11.json +++ b/integration/mainnet/eth_sendRawTransaction/test_11.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "Invalid params"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_12.json b/integration/mainnet/eth_sendRawTransaction/test_12.json index bf0277d3..e2f99410 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_12.json +++ b/integration/mainnet/eth_sendRawTransaction/test_12.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "Invalid RLP: Unknown transaction type 9"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_13.json b/integration/mainnet/eth_sendRawTransaction/test_13.json index ddbf4985..376daf61 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_13.json +++ b/integration/mainnet/eth_sendRawTransaction/test_13.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "Invalid RLP: Unknown transaction type 127"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_14.json b/integration/mainnet/eth_sendRawTransaction/test_14.json index 496b9c2b..05b104fd 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_14.json +++ b/integration/mainnet/eth_sendRawTransaction/test_14.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "Invalid RLP: Legacy transactions are not allowed in EIP-2718 Typed Transaction Envelope"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_15.json b/integration/mainnet/eth_sendRawTransaction/test_15.json index a8e5df9e..c132c64f 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_15.json +++ b/integration/mainnet/eth_sendRawTransaction/test_15.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "Invalid RLP: Cannot decode stream of Transaction"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_16.json b/integration/mainnet/eth_sendRawTransaction/test_16.json index f2064d25..887cecbe 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_16.json +++ b/integration/mainnet/eth_sendRawTransaction/test_16.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "Invalid RLP: Cannot decode stream of Transaction"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_17.json b/integration/mainnet/eth_sendRawTransaction/test_17.json index db746155..b99954b1 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_17.json +++ b/integration/mainnet/eth_sendRawTransaction/test_17.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "Invalid params"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_18.json b/integration/mainnet/eth_sendRawTransaction/test_18.json index 501b0e6d..3e995882 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_18.json +++ b/integration/mainnet/eth_sendRawTransaction/test_18.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "Invalid params"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_19.json b/integration/mainnet/eth_sendRawTransaction/test_19.json index 37532291..8eecdfda 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_19.json +++ b/integration/mainnet/eth_sendRawTransaction/test_19.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "Invalid RLP: Transaction decoding returned null"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_20.json b/integration/mainnet/eth_sendRawTransaction/test_20.json index f1d9e887..b997de62 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_20.json +++ b/integration/mainnet/eth_sendRawTransaction/test_20.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "Invalid RLP: Transaction decoding returned null"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_21.json b/integration/mainnet/eth_sendRawTransaction/test_21.json index f94fd1a8..c3088bf9 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_21.json +++ b/integration/mainnet/eth_sendRawTransaction/test_21.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "Invalid RLP: Legacy transactions are not allowed in EIP-2718 Typed Transaction Envelope"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_22.json b/integration/mainnet/eth_sendRawTransaction/test_22.json index 880b6998..640bab17 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_22.json +++ b/integration/mainnet/eth_sendRawTransaction/test_22.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "missing value for required argument 0"} } } ] diff --git a/integration/mainnet/eth_sendRawTransaction/test_23.json b/integration/mainnet/eth_sendRawTransaction/test_23.json index 83626191..7c183719 100644 --- a/integration/mainnet/eth_sendRawTransaction/test_23.json +++ b/integration/mainnet/eth_sendRawTransaction/test_23.json @@ -14,7 +14,7 @@ "response": { "id": 1, "jsonrpc": "2.0", - "error": {"code": -32602, "message": null} + "error": {"code": -32602, "message": "missing value for required argument 0"} } } ] diff --git a/internal/compare/comparator.go b/internal/compare/comparator.go index 23739e98..66e7fa5a 100644 --- a/internal/compare/comparator.go +++ b/internal/compare/comparator.go @@ -126,24 +126,6 @@ func ProcessResponse( return } } - // Per-fixture "message": null sentinel -> compare only error code, ignore message. - if responseHasError && expectedHasError && expectedError != nil { - expErrMap, expErrIsMap := expectedError.(map[string]any) - if expErrIsMap { - if msg, hasMsg := expErrMap["message"]; hasMsg && msg == nil { - respErrMap, respErrIsMap := responseMap["error"].(map[string]any) - if respErrIsMap && jsonValuesEqual(respErrMap["code"], expErrMap["code"]) { - err := dumpJSONs(cfg.ForceDumpJSONs, daemonFile, expRspFile, outputDir, response, expectedResponse, &outcome.Metrics) - if err != nil { - outcome.Error = err - return - } - outcome.Success = true - return - } - } - } - } } // Detailed comparison: dump files and run diff diff --git a/internal/compare/comparator_test.go b/internal/compare/comparator_test.go index ecbcd0e1..e1981709 100644 --- a/internal/compare/comparator_test.go +++ b/internal/compare/comparator_test.go @@ -157,41 +157,6 @@ func TestProcessResponse_DoNotCompareError_DifferentCode(t *testing.T) { } } -func TestProcessResponse_NullMessageSentinel_SameCode(t *testing.T) { - dir := t.TempDir() - cfg := config.NewConfig() - - outcome := &testdata.TestOutcome{} - response := map[string]any{"jsonrpc": "2.0", "id": float64(1), "error": map[string]any{"code": float64(-32602), "message": "some informative implementation-specific message"}} - expected := map[string]any{"jsonrpc": "2.0", "id": float64(1), "error": map[string]any{"code": float64(-32602), "message": nil}} - - ProcessResponse(response, nil, expected, cfg, dir, "", "", "", outcome) - - if !outcome.Success { - t.Errorf("\"message\": null sentinel should accept matching code regardless of message, error: %v", outcome.Error) - } -} - -func TestProcessResponse_NullMessageSentinel_DifferentCode(t *testing.T) { - dir := t.TempDir() - cfg := config.NewConfig() - cfg.DiffKind = config.JsonDiffGo - - daemonFile := filepath.Join(dir, "response.json") - expRspFile := filepath.Join(dir, "expected.json") - diffFile := filepath.Join(dir, "diff.json") - - outcome := &testdata.TestOutcome{} - response := map[string]any{"jsonrpc": "2.0", "id": float64(1), "error": map[string]any{"code": float64(-32000), "message": "any"}} - expected := map[string]any{"jsonrpc": "2.0", "id": float64(1), "error": map[string]any{"code": float64(-32602), "message": nil}} - - ProcessResponse(response, nil, expected, cfg, dir, daemonFile, expRspFile, diffFile, outcome) - - if outcome.Success { - t.Error("\"message\": null sentinel should reject mismatched code") - } -} - func TestProcessResponse_DiffMismatch_JsonDiffGo(t *testing.T) { dir := t.TempDir() cfg := config.NewConfig()