diff --git a/bin/bcoin-cli b/bin/bcoin-cli index 5074d516..040f4047 100755 --- a/bin/bcoin-cli +++ b/bin/bcoin-cli @@ -95,8 +95,9 @@ function removeKey(callback) { } function getWallet(callback) { - var options = { id: getID(), passphrase: argv.args[0] }; - client.getWallet(options.id, options.passphrase, function(err, wallet) { + var id = getID(); + var passphrase = argv.args[0]; + client.getWallet(id, passphrase, function(err, wallet) { if (err) return callback(err); utils.print(wallet); diff --git a/lib/bcoin/address.js b/lib/bcoin/address.js index bd7ad20f..02fd07d4 100644 --- a/lib/bcoin/address.js +++ b/lib/bcoin/address.js @@ -486,7 +486,7 @@ Address.parse = function parse(address) { if (version != null) { version = p.readU8(); assert(version >= 0 && version <= 16, 'Bad program version.'); - assert(p.readU8() === 0, 'Address version padding is zero.'); + assert(p.readU8() === 0, 'Address version padding is non-zero.'); } if (type === 'witnessscripthash') diff --git a/lib/bcoin/protocol/framer.js b/lib/bcoin/protocol/framer.js index fd5635a4..60718b62 100644 --- a/lib/bcoin/protocol/framer.js +++ b/lib/bcoin/protocol/framer.js @@ -165,9 +165,6 @@ Framer.address = function address(data, full, writer) { if (!data.services) data.services = 0; - if (!data.ipv4) - data.ipv4 = new Buffer([]); - if (!data.port) data.port = network.port; @@ -180,6 +177,8 @@ Framer.address = function address(data, full, writer) { data.ipv6 = utils.ip2array(data.ipv6, 6); p.writeBytes(data.ipv6); } else { + if (!data.ipv4) + data.ipv4 = new Buffer([0, 0, 0, 0]); data.ipv4 = utils.ip2array(data.ipv4, 4); // We don't have an ipv6, convert ipv4 to ipv4-mapped ipv6 address p.writeU32BE(0x00000000); @@ -608,13 +607,13 @@ Framer.headers = function _headers(block, writer) { Framer.reject = function reject(details, writer) { var p = new BufferWriter(writer); - var ccode = details.ccode; + var ccode = constants.reject[details.ccode] || constants.reject.invalid; if (ccode >= constants.reject.internal) ccode = constants.reject.invalid; p.writeVarString(details.message || '', 'ascii'); - p.writeU8(constants.reject[ccode] || constants.reject.invalid); + p.writeU8(ccode); p.writeVarString(details.reason || '', 'ascii'); if (details.data) p.writeHash(details.data); @@ -673,7 +672,7 @@ Framer.alert = function alert(data, writer) { p.write32(data.priority); p.writeVarString(data.comment, 'ascii'); p.writeVarString(data.statusBar, 'ascii'); - p.writeVarString('', 'ascii'); + p.writeVarString(data.reserved || '', 'ascii'); payload = p.render(); } else { payload = data.payload; diff --git a/lib/bcoin/protocol/parser.js b/lib/bcoin/protocol/parser.js index 06bedd7c..a72735b1 100644 --- a/lib/bcoin/protocol/parser.js +++ b/lib/bcoin/protocol/parser.js @@ -727,7 +727,7 @@ Parser.parseMempool = function parseMempool(p) { Parser.parseAlert = function parseAlert(p) { var version, relayUntil, expiration, id, cancel; var cancels, count, i, minVer, maxVer, subVers; - var priority, comment, statusBar, msg; + var priority, comment, statusBar, reserved; var payload, size; p = new BufferReader(p); @@ -757,7 +757,7 @@ Parser.parseAlert = function parseAlert(p) { priority = p.read32(); comment = p.readVarString('ascii'); statusBar = p.readVarString('ascii'); - p.readVarString('ascii'); + reserved = p.readVarString('ascii'); p.end(); return { @@ -773,6 +773,7 @@ Parser.parseAlert = function parseAlert(p) { priority: priority, comment: comment, statusBar: statusBar, + reserved: reserved, payload: payload, signature: signature, _size: size diff --git a/lib/bcoin/script.js b/lib/bcoin/script.js index 6017cf01..38d0c3dc 100644 --- a/lib/bcoin/script.js +++ b/lib/bcoin/script.js @@ -73,8 +73,8 @@ Witness.prototype.isScripthashInput = function isScripthashInput(redeem) { return Script.isScripthashInput(this.items, redeem, true); }; -Witness.prototype.isNonstandardInput = function isNonstandardInput(prev) { - return Script.isNonstandardInput(this.items, prev, true); +Witness.prototype.isUnknownInput = function isUnknownInput(prev) { + return Script.isUnknownInput(this.items, prev, true); }; Witness.prototype.getRedeem = function getRedeem() { @@ -1413,7 +1413,7 @@ Script.prototype.getType = function getType() { || 'unknown'; }; -Script.prototype.isNonstandard = function isNonstandard() { +Script.prototype.isUnknown = function isUnknown() { return this.getType() === 'unknown'; }; @@ -1826,11 +1826,11 @@ Script.getInputType = function getInputType(code, prev, isWitness) { return type; }; -Script.prototype.isNonstandardInput = function isNonstandardInput(prev) { - return Script.isNonstandardInput(this.code, prev, false); +Script.prototype.isUnknownInput = function isUnknownInput(prev) { + return Script.isUnknownInput(this.code, prev, false); }; -Script.isNonstandardInput = function isNonstandardInput(code, prev, isWitness) { +Script.isUnknownInput = function isUnknownInput(code, prev, isWitness) { return Script.getInputType(code, prev, isWitness) === 'unknown'; }; diff --git a/lib/bcoin/tx.js b/lib/bcoin/tx.js index b6de7abc..f42318df 100644 --- a/lib/bcoin/tx.js +++ b/lib/bcoin/tx.js @@ -894,7 +894,7 @@ TX.prototype.hasStandardInputs = function hasStandardInputs(flags) { if (!input.coin) return false; - if (input.coin.script.isNonstandard()) + if (input.coin.script.isUnknown()) return false; if ((flags & constants.flags.VERIFY_P2SH)