From 13b69e2c84b3b495d2b277d15bc6f3b1138fc6b3 Mon Sep 17 00:00:00 2001 From: Donald Adu-Poku Date: Mon, 5 Nov 2018 00:13:03 +0000 Subject: [PATCH] rpcserver: Fix sendrawtransaction error code. --- rpcserver.go | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/rpcserver.go b/rpcserver.go index e3b556a2b7..f66131068a 100644 --- a/rpcserver.go +++ b/rpcserver.go @@ -4998,16 +4998,14 @@ func handleSendRawTransaction(s *rpcServer, cmd interface{}, closeChan <-chan st // go wrong, so log it as an actual error. In both cases, a // JSON-RPC error is returned to the client with the // deserialization error code (to match bitcoind behavior). - if _, ok := err.(mempool.RuleError); ok { + if rErr, ok := err.(mempool.RuleError); ok { err = fmt.Errorf("Rejected transaction %v: %v", tx.Hash(), err) rpcsLog.Debugf("%v", err) - txRuleErr, ok := err.(mempool.TxRuleError) - if ok { - if txRuleErr.RejectCode == wire.RejectDuplicate { - // return a dublicate tx error - return nil, rpcDuplicateTxError("%v", err) - } + txRuleErr, ok := rErr.Err.(mempool.TxRuleError) + if ok && txRuleErr.RejectCode == wire.RejectDuplicate { + // return a duplicate tx error + return nil, rpcDuplicateTxError("%v", err) } // return a generic rule error