diff --git a/lib/bcoin/http/rpc.js b/lib/bcoin/http/rpc.js index df037814..f84528c4 100644 --- a/lib/bcoin/http/rpc.js +++ b/lib/bcoin/http/rpc.js @@ -1548,10 +1548,16 @@ RPC.prototype.signrawtransaction = function signrawtransaction(args, callback) { this.node.fillCoins(merged, function(err) { if (err) return callback(err); + self.wallet.fillCoins(merged, function(err) { if (err) return callback(err); - self._signrawtransaction(merged, txs, args, callback); + + try { + self._signrawtransaction(merged, txs, args, callback); + } catch (e) { + callback(e); + } }); }); }; @@ -1737,7 +1743,11 @@ RPC.prototype._createRedeem = function _createRedeem(args, callback) { if (err) return callback(err); - script = bcoin.script.fromMultisig(m, n, keys); + try { + script = bcoin.script.fromMultisig(m, n, keys); + } catch (e) { + return next(new RPCError('Invalid parameters.')); + } if (script.toRaw().length > constants.script.MAX_PUSH) return callback(new RPCError('Redeem script exceeds size limit.')); @@ -2976,4 +2986,8 @@ function RPCError(msg) { utils.inherits(RPCError, Error); +/* + * Expose + */ + module.exports = RPC;