rpc: misc fixes.

This commit is contained in:
Christopher Jeffrey 2016-09-17 19:20:28 -07:00
parent 5e18dddd37
commit 170cf0db28
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD

View File

@ -352,6 +352,9 @@ RPC.prototype.stop = function stop(args, callback) {
*/
RPC.prototype.getnetworkinfo = function getnetworkinfo(args, callback) {
if (args.help || args.length !== 0)
return callback(new RPCError('getnetworkinfo'));
callback(null, {
version: constants.USER_VERSION,
subversion: constants.USER_AGENT,
@ -359,29 +362,7 @@ RPC.prototype.getnetworkinfo = function getnetworkinfo(args, callback) {
localservices: this.pool.services,
timeoffset: bcoin.time.offset,
connections: this.pool.peers.all.length,
networks: [
{
name: 'ipv4',
limited: false,
reachable: false,
proxy: '',
proxy_randomize_credentials: false
},
{
name: 'ipv6',
limited: false,
reachable: false,
proxy: '',
proxy_randomize_credentials: false
},
{
name: 'onion',
limited: false,
reachable: false,
proxy: '',
proxy_randomize_credentials: false
}
],
networks: [],
relayfee: +utils.btc(this.network.getMinRelay()),
localaddresses: [],
warnings: ''
@ -389,29 +370,33 @@ RPC.prototype.getnetworkinfo = function getnetworkinfo(args, callback) {
};
RPC.prototype.addnode = function addnode(args, callback) {
var i, node, cmd, host, seed;
var i, node, cmd, host, seed, peer;
if (args.help || args.length !== 2)
return callback(new RPCError('addnode "node" "add|remove|onetry"'));
node = toString(args[0]);
cmd = toString(args[1]);
host = NetworkAddress.fromHostname(node, this.network);
addr = NetworkAddress.fromHostname(node, this.network);
switch (cmd) {
case 'add':
this.pool.seeds.push(host);
this.pool.seeds.push(addr);
break;
case 'remove':
for (i = 0; i < this.pool.seeds.length; i++) {
seed = this.pool.seeds[i];
if (seed.hostname === host.hostname) {
if (seed.hostname === addr.hostname) {
this.pool.seeds.splice(i, 1);
break;
}
}
break;
case 'onetry':
if (this.pool.peers.get(addr))
break;
peer = this.createPeer(addr);
this.peers.addPending(peer);
break;
}
@ -419,15 +404,15 @@ RPC.prototype.addnode = function addnode(args, callback) {
};
RPC.prototype.disconnectnode = function disconnectnode(args, callback) {
var node, peer;
var node, addr, peer;
if (args.help || args.length !== 1)
return callback(new RPCError('disconnectnode "node"'));
node = toString(args[0]);
node = NetworkAddress.fromHostname(node, this.network);
addr = NetworkAddress.fromHostname(node, this.network);
peer = this.pool.peers.get(node);
peer = this.pool.peers.get(addr);
if (peer)
peer.destroy();
@ -436,14 +421,15 @@ RPC.prototype.disconnectnode = function disconnectnode(args, callback) {
RPC.prototype.getaddednodeinfo = function getaddednodeinfo(args, callback) {
var out = [];
var i, host, peer, peers;
var i, host, addr, peer, peers;
if (args.help || args.length < 1 || args.length > 2)
return callback(new RPCError('getaddednodeinfo dummy ( "node" )'));
if (args.length === 2) {
host = toString(args[1]);
peer = this.pool.peers.get(host);
addr = NetworkAddress.fromHostname(host, this.network);
peer = this.pool.peers.get(addr);
if (!peer)
return callback(new RPCError('Node has not been added.'));
peers = [peer];
@ -2576,7 +2562,7 @@ RPC.prototype._scriptForWitness = function scriptForWitness(script) {
return bcoin.script.fromProgram(0, hash);
}
hash = crypto.sha256(script.toRaw());
hash = script.sha256();
return bcoin.script.fromProgram(0, hash);
};