From 70fc47f343417a5bd71241d42bd579c2949b54ef Mon Sep 17 00:00:00 2001 From: Rainer Koirikivi Date: Mon, 3 Nov 2014 22:59:38 +0200 Subject: [PATCH] Friendlier error reporting for sendRawTransaction --- app/controllers/transactions.js | 17 ++++++++++++++++- lib/Rpc.js | 4 +--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/app/controllers/transactions.js b/app/controllers/transactions.js index d8090696..ed01c329 100644 --- a/app/controllers/transactions.js +++ b/app/controllers/transactions.js @@ -6,6 +6,7 @@ var Address = require('../models/Address'); var async = require('async'); var common = require('./common'); +var util = require('util'); var Rpc = require('../../lib/Rpc'); @@ -14,7 +15,21 @@ var bdb = require('../../lib/BlockDb').default(); exports.send = function(req, res) { Rpc.sendRawTransaction(req.body.rawtx, function(err, txid) { - if (err) return common.handleErrors(err, res); + if (err) { + var message; + if(err.code == -25) { + message = util.format( + 'Generic error %s (code %s)', + err.message, err.code); + } else if(err.code == -26) { + message = util.format( + 'Transaction rejected by network (code %s). Reason: %s', + err.code, err.message); + } else { + message = util.format('%s (code %s)', err.message, err.code); + } + return res.status(400).send(message); + } res.json({'txid' : txid}); }); }; diff --git a/lib/Rpc.js b/lib/Rpc.js index 50f41cce..bcf8d329 100644 --- a/lib/Rpc.js +++ b/lib/Rpc.js @@ -97,10 +97,8 @@ Rpc.getBlock = function(hash, cb) { }; Rpc.sendRawTransaction = function(rawtx, cb) { - var self = this; bitcoreRpc.sendRawTransaction(rawtx, function(err, txid) { - if (err && err.code === -5) return cb(err); // transaction already in block chain - if (err) return cb(self.errMsg(err)); + if (err) return cb(err); return cb(err, txid.result); });