neo-go/pkg
Ekaterina Pavlova 0afd9ac0bb rpcsrv: align default error code with C# implementation
We had 400, 405 and 500 in getHTTPCodeForError, but none is explicitly
set in C#.

1. **405 code** (unknown method, `neorpc.MethodNotFoundCode`). The
resulting HTTP code returned by C# server is 200 OK:
```
anna@kiwi:~/Documents/GitProjects/bane-labs/go-ethereum$ curl -v -d '{
"jsonrpc": "2.0", "id": 1, "method": "unknown-method", "params": [] }'
http://seed1t5.neo.org:20332 | json_pp
  % Total    % Received % Xferd  Average Speed   Time    Time     Time
  Current
                                 Dload  Upload   Total   Spent    Left
                                 Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--
       0*   Trying 34.133.235.69:20332...
* Connected to seed1t5.neo.org (34.133.235.69) port 20332 (#0)
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--
       0> POST / HTTP/1.1
> Host: seed1t5.neo.org:20332
> User-Agent: curl/7.81.0
> Accept: */*
> Content-Length: 71
> Content-Type: application/x-www-form-urlencoded
>
} [71 bytes data]
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Tue, 12 Nov 2024 13:45:51 GMT
< Server: Kestrel
< Transfer-Encoding: chunked
<
{ [461 bytes data]
100   520    0   449  100    71    729    115 --:--:-- --:--:-- --:--:--
   844
* Connection #0 to host seed1t5.neo.org left intact
{
   "error" : {
      "code" : -32601,
      "data" : "   at Neo.Plugins.Result.True_Or(Boolean result,
      RpcError err)\n   at Neo.Plugins.RpcServer.ProcessRequestAsync
      (HttpContext context, JObject request)",
      "message" : "Method not found - The method 'unknown-method'
      doesn't exists. -    at Neo.Plugins.Result.True_Or(Boolean result,
       RpcError err)\n   at Neo.Plugins.RpcServer.ProcessRequestAsync
       (HttpContext context, JObject request)"
   },
   "id" : 1,
   "jsonrpc" : "2.0"
}
```
2. **400 code** (malformed request, `neorpc.BadRequestCode`). The
resulting HTTP code returned by C# server is 200 OK:
```
anna@kiwi:~/Documents/GitProjects/bane-labs/go-ethereum$ curl -v -d '{
"jsonrpc": "2.0", "id": 1, "method": "getapplicationlog", "params": ["]
}' http://seed1t5.neo.org:20332 | json_pp
  % Total    % Received % Xferd  Average Speed   Time    Time     Time
  Current
                                 Dload  Upload   Total   Spent    Left
                                 Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--
       0*   Trying 34.133.235.69:20332...
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--
       0* Connected to seed1t5.neo.org (34.133.235.69) port 20332 (#0)
> POST / HTTP/1.1
> Host: seed1t5.neo.org:20332
> User-Agent: curl/7.81.0
> Accept: */*
> Content-Length: 75
> Content-Type: application/x-www-form-urlencoded
>
} [75 bytes data]
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Tue, 12 Nov 2024 13:50:12 GMT
< Server: Kestrel
< Transfer-Encoding: chunked
<
{ [86 bytes data]
100   150    0    75  100    75     84     84 --:--:-- --:--:-- --:--:--
   169
* Connection #0 to host seed1t5.neo.org left intact
{
   "error" : {
      "code" : -32700,
      "message" : "Bad request"
   },
   "id" : null,
   "jsonrpc" : "2.0"
}
```
3. **500 code** (internal server error, `neorpc
.InternalServerErrorCode`). It's difficult to reproduce this error on
real network for C# server, but the resulting code is expected to be the
 same, 200 OK.

Close #3586

Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-11-12 17:08:01 +03:00
..
compiler vm: fix MODPOW operation 2024-10-31 17:49:02 +03:00
config services: add new service for fetching blocks from NeoFS 2024-09-11 08:50:31 +04:00
consensus *: fix linter exhaustive errors 2024-09-26 13:29:03 +03:00
core core: refactor TestEngineLimits 2024-10-18 19:10:47 +03:00
crypto *: improve for loop syntax 2024-08-30 21:45:18 +03:00
encoding *: improve for loop syntax 2024-08-30 21:45:18 +03:00
interop interop: fix linter issues 2024-10-11 12:41:06 +03:00
io io: specify Bytes() behavior a bit better for BufBinWriter 2024-11-05 16:58:33 +03:00
neorpc *: fix linter exhaustive errors 2024-09-26 13:29:03 +03:00
neotest neotest: sort coverage blocks within a test scope 2024-10-16 16:03:46 +03:00
network *: fix linter exhaustive errors 2024-09-26 13:29:03 +03:00
rpcclient rpcclient: improve GetNEPXXTransfers docs 2024-11-07 18:02:53 +03:00
services rpcsrv: align default error code with C# implementation 2024-11-12 17:08:01 +03:00
smartcontract *: fix linter exhaustive errors 2024-09-26 13:29:03 +03:00
util *: improve for loop syntax 2024-08-30 21:45:18 +03:00
vm emit: add some package doc 2024-11-07 18:44:55 +03:00
wallet *: use slices.Index/slices.Contains where appropriate 2024-08-27 08:24:52 +03:00