From 8b11a933c1b868f02b7ebd29469ef335920aac52 Mon Sep 17 00:00:00 2001 From: Brannon King Date: Wed, 29 Dec 2021 16:58:17 -0500 Subject: [PATCH] [lbry] rpc: made invalidate/reconsiderBlock return RPC errors --- rpcserver.go | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/rpcserver.go b/rpcserver.go index 195d1c6c..378155a0 100644 --- a/rpcserver.go +++ b/rpcserver.go @@ -3012,10 +3012,20 @@ func handleInvalidateBlock(s *rpcServer, cmd interface{}, closeChan <-chan struc hash, err := chainhash.NewHashFromStr(c.BlockHash) if err != nil { - return nil, err + return nil, &btcjson.RPCError{ + Code: btcjson.ErrRPCInvalidParameter, + Message: "Unable to parse hash: " + err.Error(), + } } - return nil, s.cfg.Chain.InvalidateBlock(hash) + err = s.cfg.Chain.InvalidateBlock(hash) + if err != nil { + return nil, &btcjson.RPCError{ + Code: btcjson.ErrRPCInternal.Code, + Message: "Unable to invalidate block: " + err.Error(), + } + } + return nil, nil } // handleReconsiderBlock implements the reconsiderblock command @@ -3024,10 +3034,20 @@ func handleReconsiderBlock(s *rpcServer, cmd interface{}, closeChan <-chan struc hash, err := chainhash.NewHashFromStr(c.BlockHash) if err != nil { - return nil, err + return nil, &btcjson.RPCError{ + Code: btcjson.ErrRPCInvalidParameter, + Message: "Unable to parse hash: " + err.Error(), + } } - return nil, s.cfg.Chain.ReconsiderBlock(hash) + err = s.cfg.Chain.ReconsiderBlock(hash) + if err != nil { + return nil, &btcjson.RPCError{ + Code: btcjson.ErrRPCInternal.Code, + Message: "Unable to reconsider block: " + err.Error(), + } + } + return nil, nil } // handleHelp implements the help command. @@ -4303,7 +4323,7 @@ func (s *rpcServer) processRequest(request *btcjson.Request, isAdmin bool, close } else { jsonErr = &btcjson.RPCError{ Code: btcjson.ErrRPCInvalidRequest.Code, - Message: "Invalid request: malformed", + Message: "Invalid request: " + err.Error(), } } }