more parsing.

This commit is contained in:
Christopher Jeffrey 2016-03-21 21:21:18 -07:00
parent ce0294f4bf
commit f564ef5735

View File

@ -101,8 +101,6 @@ workers.call = function call(method, args, callback) {
*/ */
bcoin.tx.prototype.verifyAsync = function verifyAsync(index, force, flags, callback) { bcoin.tx.prototype.verifyAsync = function verifyAsync(index, force, flags, callback) {
var tx;
callback = utils.asyncify(callback); callback = utils.asyncify(callback);
if (!force && this.ts !== 0) if (!force && this.ts !== 0)
@ -114,11 +112,7 @@ bcoin.tx.prototype.verifyAsync = function verifyAsync(index, force, flags, callb
if (this.isCoinbase()) if (this.isCoinbase())
return callback(null, true); return callback(null, true);
// Important: we need to serialize return workers.call('verify', [this, index, force, flags], callback);
// the coins for the worker.
tx = this.toExtended(true);
return workers.call('verify', [tx, index, force, flags], callback);
}; };
/** /**
@ -178,7 +172,7 @@ function createPacket(id, name, items) {
function createBody(name, items) { function createBody(name, items) {
var p = new BufferWriter(); var p = new BufferWriter();
var i; var i, item;
if (name) if (name)
p.writeVarString(name, 'ascii'); p.writeVarString(name, 'ascii');
@ -188,33 +182,38 @@ function createBody(name, items) {
p.writeUIntv(items.length); p.writeUIntv(items.length);
for (i = 0; i < items.length; i++) { for (i = 0; i < items.length; i++) {
switch (typeof items[i]) { item = items[i];
switch (typeof item) {
case 'string': case 'string':
p.writeU8(1); p.writeU8(1);
p.writeVarString(items[i], 'utf8'); p.writeVarString(item, 'utf8');
break; break;
case 'number': case 'number':
p.writeU8(2); p.writeU8(2);
p.write32(items[i]); p.write32(item);
break; break;
case 'boolean': case 'boolean':
p.writeU8(3); p.writeU8(3);
p.writeU8(items[i] ? 1 : 0); p.writeU8(item ? 1 : 0);
break; break;
case 'object': case 'object':
case 'undefined': case 'undefined':
if (items[i] == null) { if (item == null) {
p.writeU8(0); p.writeU8(0);
} else if (Buffer.isBuffer(items[i])) {
p.writeU8(5);
p.writeVarBytes(items[i]);
} else { } else {
p.writeU8(4); if (item.toExtended)
p.writeVarString(JSON.stringify(items[i]), 'utf8'); item = item.toExtended(true);
if (Buffer.isBuffer(item)) {
p.writeU8(5);
p.writeVarBytes(item);
} else {
p.writeU8(4);
p.writeVarString(JSON.stringify(item), 'utf8');
}
} }
break; break;
default: default:
assert(false, 'Bad type: ' + (typeof items[i])); assert(false, 'Bad type: ' + typeof item);
} }
} }