Friendlier error reporting for sendRawTransaction

This commit is contained in:
Rainer Koirikivi 2014-11-03 22:59:38 +02:00
parent a10e2b4a43
commit 70fc47f343
2 changed files with 17 additions and 4 deletions

View File

@ -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});
});
};

View File

@ -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);
});