From 9aba72d0d459ed8901e8e639d1f0ec287d6fc749 Mon Sep 17 00:00:00 2001 From: Chris Hager Date: Mon, 2 Jun 2025 20:56:50 +0200 Subject: [PATCH] Update rpcserver to goccy/go-json --- go.mod | 1 + go.sum | 2 ++ jsonrpc/mockserver.go | 3 ++- jsonrpc/request.go | 3 ++- jsonrpc/request_test.go | 3 ++- jsonrpc/response.go | 3 ++- rpcclient/client.go | 3 ++- rpcserver/jsonrpc_server.go | 3 ++- rpcserver/jsonrpc_server_test.go | 4 ++-- rpcserver/reflect.go | 3 ++- rpcserver/reflect_test.go | 3 ++- rpctypes/types.go | 3 ++- rpctypes/types_test.go | 3 ++- 13 files changed, 25 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 2814603..479aee9 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.24.0 require ( github.com/VictoriaMetrics/metrics v1.35.1 github.com/ethereum/go-ethereum v1.15.5 + github.com/goccy/go-json v0.10.5 github.com/google/uuid v1.3.1 github.com/sirupsen/logrus v1.9.3 github.com/stretchr/testify v1.10.0 diff --git a/go.sum b/go.sum index f9d7595..4dbd046 100644 --- a/go.sum +++ b/go.sum @@ -58,6 +58,8 @@ github.com/getsentry/sentry-go v0.27.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= +github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4= +github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= diff --git a/jsonrpc/mockserver.go b/jsonrpc/mockserver.go index fd5dadf..2cfae4a 100644 --- a/jsonrpc/mockserver.go +++ b/jsonrpc/mockserver.go @@ -1,12 +1,13 @@ package jsonrpc import ( - "encoding/json" "fmt" "net/http" "net/http/httptest" "sync" + "github.com/goccy/go-json" + "github.com/ethereum/go-ethereum/log" ) diff --git a/jsonrpc/request.go b/jsonrpc/request.go index 01bfa14..4ce08f8 100644 --- a/jsonrpc/request.go +++ b/jsonrpc/request.go @@ -3,9 +3,10 @@ package jsonrpc import ( "bytes" - "encoding/json" "errors" "net/http" + + "github.com/goccy/go-json" ) type JSONRPCRequest struct { diff --git a/jsonrpc/request_test.go b/jsonrpc/request_test.go index cc3de8e..f5d827d 100644 --- a/jsonrpc/request_test.go +++ b/jsonrpc/request_test.go @@ -1,9 +1,10 @@ package jsonrpc import ( - "encoding/json" "testing" + "github.com/goccy/go-json" + "github.com/stretchr/testify/assert" ) diff --git a/jsonrpc/response.go b/jsonrpc/response.go index ce40006..c3c58b8 100644 --- a/jsonrpc/response.go +++ b/jsonrpc/response.go @@ -2,8 +2,9 @@ package jsonrpc import ( - "encoding/json" "fmt" + + "github.com/goccy/go-json" ) // As per JSON-RPC 2.0 Specification diff --git a/rpcclient/client.go b/rpcclient/client.go index 58aa2fe..e367d47 100644 --- a/rpcclient/client.go +++ b/rpcclient/client.go @@ -10,13 +10,14 @@ package rpcclient import ( "bytes" "context" - "encoding/json" "errors" "fmt" "io" "net/http" "strconv" + "github.com/goccy/go-json" + "github.com/flashbots/go-utils/signature" ) diff --git a/rpcserver/jsonrpc_server.go b/rpcserver/jsonrpc_server.go index 3c31ab4..de3e65d 100644 --- a/rpcserver/jsonrpc_server.go +++ b/rpcserver/jsonrpc_server.go @@ -8,7 +8,6 @@ package rpcserver import ( "context" - "encoding/json" "fmt" "io" "log/slog" @@ -16,6 +15,8 @@ import ( "strings" "time" + "github.com/goccy/go-json" + "github.com/ethereum/go-ethereum/common" "github.com/flashbots/go-utils/signature" ) diff --git a/rpcserver/jsonrpc_server_test.go b/rpcserver/jsonrpc_server_test.go index 7f96bc9..f05c4bd 100644 --- a/rpcserver/jsonrpc_server_test.go +++ b/rpcserver/jsonrpc_server_test.go @@ -51,7 +51,7 @@ func TestHandler_ServeHTTP(t *testing.T) { }, "invalid json": { requestBody: `{"jsonrpc":"2.0","id":1,"method":"function","params":[1]`, - expectedResponse: `{"jsonrpc":"2.0","id":null,"error":{"code":-32700,"message":"unexpected end of JSON input"}}`, + expectedResponse: `{"jsonrpc":"2.0","id":null,"error":{"code":-32700,"message":"expected comma after object element"}}`, }, "method not found": { requestBody: `{"jsonrpc":"2.0","id":1,"method":"not_found","params":[1]}`, @@ -63,7 +63,7 @@ func TestHandler_ServeHTTP(t *testing.T) { }, "invalid params type": { requestBody: `{"jsonrpc":"2.0","id":1,"method":"function","params":["1"]}`, - expectedResponse: `{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"json: cannot unmarshal string into Go value of type int"}}`, + expectedResponse: `{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"json: cannot unmarshal number \" into Go value of type int"}}`, }, } diff --git a/rpcserver/reflect.go b/rpcserver/reflect.go index fddd653..6513caa 100644 --- a/rpcserver/reflect.go +++ b/rpcserver/reflect.go @@ -2,9 +2,10 @@ package rpcserver import ( "context" - "encoding/json" "errors" "reflect" + + "github.com/goccy/go-json" ) var ( diff --git a/rpcserver/reflect_test.go b/rpcserver/reflect_test.go index 5acdc78..7dd4e2d 100644 --- a/rpcserver/reflect_test.go +++ b/rpcserver/reflect_test.go @@ -2,11 +2,12 @@ package rpcserver import ( "context" - "encoding/json" "errors" "fmt" "testing" + "github.com/goccy/go-json" + "github.com/stretchr/testify/require" ) diff --git a/rpctypes/types.go b/rpctypes/types.go index a4542b4..55df014 100644 --- a/rpctypes/types.go +++ b/rpctypes/types.go @@ -5,12 +5,13 @@ import ( "bytes" "crypto/sha256" "encoding/binary" - "encoding/json" "errors" "hash" "math/big" "sort" + "github.com/goccy/go-json" + "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/core/types" diff --git a/rpctypes/types_test.go b/rpctypes/types_test.go index 97ee0e7..cfc403e 100644 --- a/rpctypes/types_test.go +++ b/rpctypes/types_test.go @@ -1,10 +1,11 @@ package rpctypes import ( - "encoding/json" "fmt" "testing" + "github.com/goccy/go-json" + "github.com/ethereum/go-ethereum/common/hexutil" "github.com/stretchr/testify/require" )