From 4893c7dba59587b5afe18ac988db279820870491 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Mon, 8 Aug 2016 15:55:00 -0700 Subject: [PATCH] rpc: misc fixes. --- lib/bcoin/address.js | 2 +- lib/bcoin/http/rpc.js | 45 +++++++++++++++++++++++++++++-------------- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/lib/bcoin/address.js b/lib/bcoin/address.js index c367ccf9..5e5bdaa0 100644 --- a/lib/bcoin/address.js +++ b/lib/bcoin/address.js @@ -545,7 +545,7 @@ Address.validate = function validate(address, type) { Address.getHash = function getHash(data, enc) { var hash; - if (utils.isHex(data)) + if (utils.isHex(data) && (data.length === 40 || data.length === 64)) return enc === 'hex' ? data : new Buffer(data, 'hex'); if (Buffer.isBuffer(data)) { diff --git a/lib/bcoin/http/rpc.js b/lib/bcoin/http/rpc.js index 8ab49ee3..da803940 100644 --- a/lib/bcoin/http/rpc.js +++ b/lib/bcoin/http/rpc.js @@ -296,13 +296,19 @@ RPC.prototype.getinfo = function getinfo(args, callback) { }; RPC.prototype.help = function help(args, callback) { + var json; + if (args.length === 0) return callback(null, 'Select a command.'); - args = args.slice(1); - args.help = true; + json = { + method: args[0], + params: [] + }; - this.execute(args, callback); + json.params.help = true; + + this.execute(json, callback); }; RPC.prototype.stop = function stop(args, callback) { @@ -348,7 +354,7 @@ RPC.prototype.getnetworkinfo = function getnetworkinfo(args, callback) { proxy_randomize_credentials: false } ], - relayfee: this.network.getMinRelay() / 100000000, + relayfee: +utils.btc(this.network.getMinRelay()), localaddresses: [], warnings: '' }); @@ -1185,8 +1191,10 @@ RPC.prototype.prioritisetransaction = function prioritisetransaction(args, callb RPC.prototype.submitblock = function submitblock(args, callback) { var block; - if (args.help || args.length < 1 || args.length > 2) - return callback(new RPCError('submitblock "hexdata" ( "jsonparametersobject" )')); + if (args.help || args.length < 1 || args.length > 2) { + return callback(new RPCError('submitblock "hexdata"' + + ' ( "jsonparametersobject" )')); + } block = bcoin.block.fromRaw(args[0], 'hex'); @@ -1303,8 +1311,10 @@ RPC.prototype.generatetoaddress = function generatetoaddress(args, callback) { var self = this; var address; - if (args.help || args.length < 2 || args.length > 3) - return callback(new RPCError('generatetoaddress numblocks address (maxtries)')); + if (args.help || args.length < 2 || args.length > 3) { + return callback(new RPCError('generatetoaddress' + + ' numblocks address ( maxtries )')); + } address = this.miner.address; this.miner.address = bcoin.address.fromBase58(args[1]); @@ -1481,7 +1491,7 @@ RPC.prototype.getrawtransaction = function getrawtransaction(args, callback) { return callback(err); if (!tx) - return callback(new RPCError('No information available about transaction')); + return callback(new RPCError('Transaction not found.')); if (!verbose) return callback(null, tx.toRaw().toString('hex')); @@ -1818,7 +1828,10 @@ RPC.prototype.validateaddress = function validateaddress(args, callback) { return callback(null, json); json.account = ring.name; - json.hdkeypath = ring.account + '/' + ring.change + '/' + ring.index; + json.hdkeypath = 'm' + + '/' + ring.account + '\'' + + '/' + ring.change + + '/' + ring.index; callback(null, json); }); @@ -2271,8 +2284,10 @@ RPC.prototype.getbalance = function getbalance(args, callback) { var minconf = 0; var account, value; - if (args.help || args.length > 3) - return callback(new RPCError('getbalance ( "account" minconf includeWatchonly )')); + if (args.help || args.length > 3) { + return callback(new RPCError('getbalance' + + ' ( "account" minconf includeWatchonly )')); + } if (args.length >= 1) { account = String(args[0]); @@ -2373,8 +2388,10 @@ RPC.prototype.getreceivedbyaddress = function getreceivedbyaddress(args, callbac var total = 0; var i, j, hash, tx, output; - if (args.help || args.length < 1 || args.length > 2) - return callback(new RPCError('getreceivedbyaddress "bitcoinaddress" ( minconf )')); + if (args.help || args.length < 1 || args.length > 2) { + return callback(new RPCError('getreceivedbyaddress' + + ' "bitcoinaddress" ( minconf )')); + } hash = bcoin.address.getHash(String(args[0]), 'hex');