diff options
author | Gustav Simonsson <gustav.simonsson@gmail.com> | 2015-08-26 18:46:50 +0800 |
---|---|---|
committer | Gustav Simonsson <gustav.simonsson@gmail.com> | 2015-08-26 18:46:50 +0800 |
commit | 829201382b67e95ab31fca887234d1858c11c810 (patch) | |
tree | 33665cc499188069f06907e14165e8dbc8337e2f /rpc/shared | |
parent | abce09954b6901b446c004ee06b389c338922f28 (diff) | |
download | go-tangerine-829201382b67e95ab31fca887234d1858c11c810.tar go-tangerine-829201382b67e95ab31fca887234d1858c11c810.tar.gz go-tangerine-829201382b67e95ab31fca887234d1858c11c810.tar.bz2 go-tangerine-829201382b67e95ab31fca887234d1858c11c810.tar.lz go-tangerine-829201382b67e95ab31fca887234d1858c11c810.tar.xz go-tangerine-829201382b67e95ab31fca887234d1858c11c810.tar.zst go-tangerine-829201382b67e95ab31fca887234d1858c11c810.zip |
rpc: return error code for eth_getWork when no work ready
Diffstat (limited to 'rpc/shared')
-rw-r--r-- | rpc/shared/errors.go | 14 | ||||
-rw-r--r-- | rpc/shared/types.go | 3 |
2 files changed, 17 insertions, 0 deletions
diff --git a/rpc/shared/errors.go b/rpc/shared/errors.go index 85af1bb2f..d43858a40 100644 --- a/rpc/shared/errors.go +++ b/rpc/shared/errors.go @@ -64,6 +64,20 @@ func NewNotImplementedError(method string) *NotImplementedError { } } +type NotReadyError struct { + Method string +} + +func (e *NotReadyError) Error() string { + return fmt.Sprintf("%s method not ready", e.Method) +} + +func NewNotReadyError(method string) *NotReadyError { + return &NotReadyError{ + Method: method, + } +} + type DecodeParamError struct { err string } diff --git a/rpc/shared/types.go b/rpc/shared/types.go index 659b74bf6..f58924976 100644 --- a/rpc/shared/types.go +++ b/rpc/shared/types.go @@ -94,6 +94,9 @@ func NewRpcResponse(id interface{}, jsonrpcver string, reply interface{}, err er case *NotImplementedError: jsonerr := &ErrorObject{-32601, err.Error()} response = &ErrorResponse{Jsonrpc: jsonrpcver, Id: id, Error: jsonerr} + case *NotReadyError: + jsonerr := &ErrorObject{-32000, err.Error()} + response = &ErrorResponse{Jsonrpc: jsonrpcver, Id: id, Error: jsonerr} case *DecodeParamError, *InsufficientParamsError, *ValidationError, *InvalidTypeError: jsonerr := &ErrorObject{-32602, err.Error()} response = &ErrorResponse{Jsonrpc: jsonrpcver, Id: id, Error: jsonerr} |