even more bufffer work.
This commit is contained in:
parent
465b23013d
commit
d56f7a3733
@ -445,7 +445,7 @@ Chain.prototype.byHeight = function byHeight(height) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
Chain.prototype.byHash = function byHash(hash) {
|
Chain.prototype.byHash = function byHash(hash) {
|
||||||
if (utils.isArray(hash))
|
if (utils.isBuffer(hash))
|
||||||
hash = utils.toHex(hash);
|
hash = utils.toHex(hash);
|
||||||
else if (hash.hash)
|
else if (hash.hash)
|
||||||
hash = hash.hash('hex');
|
hash = hash.hash('hex');
|
||||||
@ -480,7 +480,7 @@ Chain.prototype.getBlock = function getBlock(hash) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
Chain.prototype.getOrphan = function getOrphan(hash) {
|
Chain.prototype.getOrphan = function getOrphan(hash) {
|
||||||
if (utils.isArray(hash))
|
if (utils.isBuffer(hash))
|
||||||
hash = utils.toHex(hash);
|
hash = utils.toHex(hash);
|
||||||
else if (hash.hash)
|
else if (hash.hash)
|
||||||
hash = hash.hash('hex');
|
hash = hash.hash('hex');
|
||||||
@ -533,7 +533,7 @@ Chain.prototype.locatorHashes = function locatorHashes(start) {
|
|||||||
var i;
|
var i;
|
||||||
|
|
||||||
if (start) {
|
if (start) {
|
||||||
if (utils.isArray(start))
|
if (utils.isBuffer(start))
|
||||||
start = utils.toHex(start);
|
start = utils.toHex(start);
|
||||||
else if (start.hash)
|
else if (start.hash)
|
||||||
start = start.hash('hex');
|
start = start.hash('hex');
|
||||||
@ -577,7 +577,7 @@ Chain.prototype.getOrphanRoot = function getOrphanRoot(hash) {
|
|||||||
var self = this;
|
var self = this;
|
||||||
var root = hash;
|
var root = hash;
|
||||||
|
|
||||||
if (utils.isArray(hash))
|
if (utils.isBuffer(hash))
|
||||||
hash = utils.toHex(hash);
|
hash = utils.toHex(hash);
|
||||||
else if (hash.hash)
|
else if (hash.hash)
|
||||||
hash = hash.hash('hex');
|
hash = hash.hash('hex');
|
||||||
|
|||||||
@ -138,7 +138,7 @@ function HDPrivateKey(options) {
|
|||||||
|
|
||||||
if (options.seed
|
if (options.seed
|
||||||
&& typeof options.seed === 'object'
|
&& typeof options.seed === 'object'
|
||||||
&& !Array.isArray(options.seed)
|
&& !utils.isBuffer(options.seed)
|
||||||
&& !(options.seed instanceof bcoin.hd.seed)) {
|
&& !(options.seed instanceof bcoin.hd.seed)) {
|
||||||
options.seed = bcoin.hd.seed(options.seed);
|
options.seed = bcoin.hd.seed(options.seed);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1030,7 +1030,7 @@ Pool.prototype.search = function search(id, range, e) {
|
|||||||
// Optional id argument
|
// Optional id argument
|
||||||
if ((id !== null
|
if ((id !== null
|
||||||
&& typeof id === 'object'
|
&& typeof id === 'object'
|
||||||
&& !Array.isArray(id))
|
&& !utils.isBuffer(id))
|
||||||
|| typeof id === 'number') {
|
|| typeof id === 'number') {
|
||||||
range = id;
|
range = id;
|
||||||
id = null;
|
id = null;
|
||||||
|
|||||||
@ -197,7 +197,7 @@ Parser.prototype.parseInvList = function parseInvList(p) {
|
|||||||
for (i = 0, off = 0; i < count; i++, off += 36) {
|
for (i = 0, off = 0; i < count; i++, off += 36) {
|
||||||
items.push({
|
items.push({
|
||||||
type: constants.invByVal[readU32(p, off)],
|
type: constants.invByVal[readU32(p, off)],
|
||||||
hash: p.slice(off + 4, off + 36)
|
hash: utils.toArray(p.slice(off + 4, off + 36))
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -220,7 +220,7 @@ Parser.prototype.parseMerkleBlock = function parseMerkleBlock(p) {
|
|||||||
hashes = new Array(hashCount);
|
hashes = new Array(hashCount);
|
||||||
|
|
||||||
for (i = 0; i < hashCount; i++)
|
for (i = 0; i < hashCount; i++)
|
||||||
hashes[i] = p.slice(off + i * 32, off + (i + 1) * 32);
|
hashes[i] = utils.toArray(p.slice(off + i * 32, off + (i + 1) * 32));
|
||||||
|
|
||||||
off = off + 32 * hashCount;
|
off = off + 32 * hashCount;
|
||||||
flagCount = utils.readIntv(p, off);
|
flagCount = utils.readIntv(p, off);
|
||||||
@ -230,12 +230,12 @@ Parser.prototype.parseMerkleBlock = function parseMerkleBlock(p) {
|
|||||||
if (off + flagCount > p.length)
|
if (off + flagCount > p.length)
|
||||||
return this._error('Invalid flag count');
|
return this._error('Invalid flag count');
|
||||||
|
|
||||||
flags = p.slice(off, off + flagCount);
|
flags = utils.toArray(p.slice(off, off + flagCount));
|
||||||
|
|
||||||
return {
|
return {
|
||||||
version: readU32(p, 0),
|
version: readU32(p, 0),
|
||||||
prevBlock: p.slice(4, 36),
|
prevBlock: utils.toArray(p.slice(4, 36)),
|
||||||
merkleRoot: p.slice(36, 68),
|
merkleRoot: utils.toArray(p.slice(36, 68)),
|
||||||
ts: readU32(p, 68),
|
ts: readU32(p, 68),
|
||||||
bits: readU32(p, 72),
|
bits: readU32(p, 72),
|
||||||
nonce: readU32(p, 76),
|
nonce: readU32(p, 76),
|
||||||
@ -266,9 +266,9 @@ Parser.prototype.parseHeaders = function parseHeaders(p) {
|
|||||||
start = off;
|
start = off;
|
||||||
header.version = readU32(p, off);
|
header.version = readU32(p, off);
|
||||||
off += 4;
|
off += 4;
|
||||||
header.prevBlock = p.slice(off, off + 32);
|
header.prevBlock = utils.toArray(p.slice(off, off + 32));
|
||||||
off += 32;
|
off += 32;
|
||||||
header.merkleRoot = p.slice(off, off + 32);
|
header.merkleRoot = utils.toArray(p.slice(off, off + 32));
|
||||||
off += 32;
|
off += 32;
|
||||||
header.ts = readU32(p, off);
|
header.ts = readU32(p, off);
|
||||||
off += 4;
|
off += 4;
|
||||||
@ -307,8 +307,8 @@ Parser.prototype.parseBlock = function parseBlock(p) {
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
version: readU32(p, 0),
|
version: readU32(p, 0),
|
||||||
prevBlock: p.slice(4, 36),
|
prevBlock: utils.toArray(p.slice(4, 36)),
|
||||||
merkleRoot: p.slice(36, 68),
|
merkleRoot: utils.toArray(p.slice(36, 68)),
|
||||||
ts: readU32(p, 68),
|
ts: readU32(p, 68),
|
||||||
bits: readU32(p, 72),
|
bits: readU32(p, 72),
|
||||||
nonce: readU32(p, 76),
|
nonce: readU32(p, 76),
|
||||||
@ -335,10 +335,9 @@ Parser.prototype.parseTXIn = function parseTXIn(p) {
|
|||||||
return {
|
return {
|
||||||
size: off + scriptLen + 4,
|
size: off + scriptLen + 4,
|
||||||
out: {
|
out: {
|
||||||
hash: p.slice(0, 32),
|
hash: utils.toArray(p.slice(0, 32)),
|
||||||
index: readU32(p, 32)
|
index: readU32(p, 32)
|
||||||
},
|
},
|
||||||
// script: bcoin.script.decode(p.slice(off, off + scriptLen)),
|
|
||||||
script: bcoin.script.decode(utils.toArray(p.slice(off, off + scriptLen))),
|
script: bcoin.script.decode(utils.toArray(p.slice(off, off + scriptLen))),
|
||||||
seq: readU32(p, off + scriptLen)
|
seq: readU32(p, off + scriptLen)
|
||||||
};
|
};
|
||||||
@ -359,8 +358,6 @@ Parser.prototype.parseTXOut = function parseTXOut(p) {
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
size: off + scriptLen,
|
size: off + scriptLen,
|
||||||
// value: new bn(p.slice(0, 8).reverse()),
|
|
||||||
// script: bcoin.script.decode(p.slice(off, off + scriptLen))
|
|
||||||
value: new bn(utils.toArray(p.slice(0, 8)).reverse()),
|
value: new bn(utils.toArray(p.slice(0, 8)).reverse()),
|
||||||
script: bcoin.script.decode(utils.toArray(p.slice(off, off + scriptLen)))
|
script: bcoin.script.decode(utils.toArray(p.slice(off, off + scriptLen)))
|
||||||
};
|
};
|
||||||
@ -461,7 +458,7 @@ Parser.prototype.parseReject = function parseReject(p) {
|
|||||||
|
|
||||||
off += reasonLen;
|
off += reasonLen;
|
||||||
|
|
||||||
data = p.slice(off, off + 32);
|
data = utils.toArray(p.slice(off, off + 32));
|
||||||
|
|
||||||
return {
|
return {
|
||||||
message: message,
|
message: message,
|
||||||
|
|||||||
@ -1020,7 +1020,7 @@ script.isMultisig = function isMultisig(s, pubs) {
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
// compat
|
// compat
|
||||||
if (pubs && !Array.isArray(pubs[0]))
|
if (pubs && !utils.isBuffer(pubs[0]))
|
||||||
pubs = [pubs];
|
pubs = [pubs];
|
||||||
|
|
||||||
m = s[0];
|
m = s[0];
|
||||||
@ -1321,7 +1321,7 @@ script.isCoinbase = function isCoinbase(s, block, strict) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
script.isSig = function isSig(sig, allowZero) {
|
script.isSig = function isSig(sig, allowZero) {
|
||||||
if (!Array.isArray(sig))
|
if (!utils.isBuffer(sig))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (allowZero && sig.length === 0)
|
if (allowZero && sig.length === 0)
|
||||||
@ -1344,7 +1344,7 @@ script.isSig = function isSig(sig, allowZero) {
|
|||||||
script.isValidSig = function isValidSig(sig, allowZero) {
|
script.isValidSig = function isValidSig(sig, allowZero) {
|
||||||
var lenR, lenS;
|
var lenR, lenS;
|
||||||
|
|
||||||
if (!Array.isArray(sig))
|
if (!utils.isBuffer(sig))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Empty signature. Not strictly DER encoded, but allowed to provide a
|
// Empty signature. Not strictly DER encoded, but allowed to provide a
|
||||||
|
|||||||
@ -243,7 +243,7 @@ TXPool.prototype.unspent = function unspent() {
|
|||||||
TXPool.prototype.hasUnspent = function hasUnspent(hash, unspent) {
|
TXPool.prototype.hasUnspent = function hasUnspent(hash, unspent) {
|
||||||
var has;
|
var has;
|
||||||
|
|
||||||
if (Array.isArray(hash) && hash.length && typeof hash[0] !== 'number') {
|
if (utils.isBuffer(hash) && hash.length && typeof hash[0] !== 'number') {
|
||||||
unspent = this.unspent();
|
unspent = this.unspent();
|
||||||
has = hash.map(function(hash) {
|
has = hash.map(function(hash) {
|
||||||
var h = this.hasUnspent(hash, unspent);
|
var h = this.hasUnspent(hash, unspent);
|
||||||
@ -256,7 +256,7 @@ TXPool.prototype.hasUnspent = function hasUnspent(hash, unspent) {
|
|||||||
return has;
|
return has;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Array.isArray(hash))
|
if (utils.isBuffer(hash))
|
||||||
hash = utils.toHex(hash);
|
hash = utils.toHex(hash);
|
||||||
else if (hash.out)
|
else if (hash.out)
|
||||||
hash = hash.out.hash;
|
hash = hash.out.hash;
|
||||||
|
|||||||
@ -99,7 +99,7 @@ TX.prototype._input = function _input(obj, index) {
|
|||||||
|
|
||||||
if (obj instanceof TX)
|
if (obj instanceof TX)
|
||||||
options = { tx: obj, index: index };
|
options = { tx: obj, index: index };
|
||||||
else if (typeof obj === 'string' || Array.isArray(obj))
|
else if (typeof obj === 'string' || utils.isBuffer(obj))
|
||||||
options = { hash: obj, index: index };
|
options = { hash: obj, index: index };
|
||||||
else
|
else
|
||||||
options = obj;
|
options = obj;
|
||||||
@ -325,7 +325,7 @@ TX.prototype.signInput = function signInput(input, key, type) {
|
|||||||
|
|
||||||
// Build the scriptSig and sign it
|
// Build the scriptSig and sign it
|
||||||
TX.prototype.scriptSig = function scriptSig(input, key, pub, type) {
|
TX.prototype.scriptSig = function scriptSig(input, key, pub, type) {
|
||||||
if (!Array.isArray(pub)) {
|
if (!utils.isBuffer(pub)) {
|
||||||
type = pub;
|
type = pub;
|
||||||
pub = key.getPublic(true, 'array');
|
pub = key.getPublic(true, 'array');
|
||||||
}
|
}
|
||||||
|
|||||||
@ -150,19 +150,24 @@ utils.isBase58 = function isBase58(msg) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
utils.ripemd160 = function ripemd160(data, enc) {
|
utils.ripemd160 = function ripemd160(data, enc) {
|
||||||
|
// return hash.ripemd160().update(data, enc).digest();
|
||||||
|
var hash;
|
||||||
if (Array.isArray(data))
|
if (Array.isArray(data))
|
||||||
data = new Buffer(data);
|
data = new Buffer(data);
|
||||||
return crypto.createHash('ripemd160').update(data, enc).digest();
|
hash = crypto.createHash('ripemd160').update(data, enc).digest();
|
||||||
return hash.ripemd160().update(data, enc).digest();
|
return utils.toArray(hash);
|
||||||
};
|
};
|
||||||
|
|
||||||
utils.sha1 = function sha1(data, enc) {
|
utils.sha1 = function sha1(data, enc) {
|
||||||
return crypto.createHash('sha1').update(data, enc).digest();
|
// return hash.sha1().update(data, enc).digest();
|
||||||
return hash.sha1().update(data, enc).digest();
|
var hash;
|
||||||
|
if (Array.isArray(data))
|
||||||
|
data = new Buffer(data);
|
||||||
|
hash = crypto.createHash('sha1').update(data, enc).digest();
|
||||||
|
return utils.toArray(hash);
|
||||||
};
|
};
|
||||||
|
|
||||||
utils.ripesha = function ripesha(data, enc) {
|
utils.ripesha = function ripesha(data, enc) {
|
||||||
// return hash.ripemd160().update(utils.sha256(data, enc)).digest();
|
|
||||||
return utils.ripemd160(utils.sha256(data, enc));
|
return utils.ripemd160(utils.sha256(data, enc));
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -171,10 +176,12 @@ utils.checksum = function checksum(data, enc) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
utils.sha256 = function sha256(data, enc) {
|
utils.sha256 = function sha256(data, enc) {
|
||||||
|
// return hash.sha256().update(data, enc).digest();
|
||||||
|
var hash;
|
||||||
if (Array.isArray(data))
|
if (Array.isArray(data))
|
||||||
data = new Buffer(data);
|
data = new Buffer(data);
|
||||||
return crypto.createHash('sha256').update(data, enc).digest();
|
hash = crypto.createHash('sha256').update(data, enc).digest();
|
||||||
return hash.sha256().update(data, enc).digest();
|
return utils.toArray(hash);
|
||||||
};
|
};
|
||||||
|
|
||||||
utils.dsha256 = function dsha256(data, enc) {
|
utils.dsha256 = function dsha256(data, enc) {
|
||||||
@ -353,10 +360,15 @@ utils.array2ascii = function array2ascii(arr, printable) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
utils.array2utf8 = function array2utf8(arr) {
|
utils.array2utf8 = function array2utf8(arr) {
|
||||||
|
if (Buffer.isBuffer(arr))
|
||||||
|
return arr.toString('utf8');
|
||||||
return new Buffer(arr).toString('utf8');
|
return new Buffer(arr).toString('utf8');
|
||||||
};
|
};
|
||||||
|
|
||||||
utils.copy = function copy(src, dst, off, force) {
|
utils.copy = function copy(src, dst, off, force) {
|
||||||
|
if (Buffer.isBuffer(src) && Buffer.isBuffer(dst) && !force)
|
||||||
|
return src.copy(dst, off, 0, src.length);
|
||||||
|
|
||||||
var len = src.length;
|
var len = src.length;
|
||||||
var i = 0;
|
var i = 0;
|
||||||
|
|
||||||
@ -373,6 +385,9 @@ utils.stringify = function stringify(arr) {
|
|||||||
var res = '';
|
var res = '';
|
||||||
var i = 0;
|
var i = 0;
|
||||||
|
|
||||||
|
if (Buffer.isBuffer(arr))
|
||||||
|
return arr.toString('ascii');
|
||||||
|
|
||||||
for (; i < arr.length; i++)
|
for (; i < arr.length; i++)
|
||||||
res += String.fromCharCode(arr[i]);
|
res += String.fromCharCode(arr[i]);
|
||||||
|
|
||||||
@ -614,6 +629,8 @@ utils.isSatoshi = function isSatoshi(val) {
|
|||||||
return new bn(val, 10);
|
return new bn(val, 10);
|
||||||
if (utils.isHex(val))
|
if (utils.isHex(val))
|
||||||
return new bn(val, 'hex');
|
return new bn(val, 'hex');
|
||||||
|
if (Buffer.isBuffer(val))
|
||||||
|
return new bn(utils.toArray(val));
|
||||||
if (Array.isArray(val))
|
if (Array.isArray(val))
|
||||||
return new bn(val);
|
return new bn(val);
|
||||||
return false;
|
return false;
|
||||||
@ -658,11 +675,12 @@ utils.isArrayLike = function isArrayLike(msg) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
utils.isArray = function isArray(msg) {
|
utils.isArray = function isArray(msg) {
|
||||||
if (Array.isArray(msg))
|
return Array.isArray(msg);
|
||||||
return true;
|
};
|
||||||
if (Buffer.isBuffer(msg))
|
|
||||||
return true;
|
utils.isBuffer = function isBuffer(msg) {
|
||||||
return false;
|
utils.assert(!Buffer.isBuffer(msg));
|
||||||
|
return Array.isArray(msg);
|
||||||
};
|
};
|
||||||
|
|
||||||
utils.toKeyArray = function toKeyArray(msg) {
|
utils.toKeyArray = function toKeyArray(msg) {
|
||||||
@ -869,7 +887,7 @@ utils.hash = function hash(obj, enc) {
|
|||||||
if (typeof obj === 'string')
|
if (typeof obj === 'string')
|
||||||
return enc === 'hex' ? obj : utils.toArray(obj, 'hex');
|
return enc === 'hex' ? obj : utils.toArray(obj, 'hex');
|
||||||
|
|
||||||
if (Array.isArray(obj))
|
if (utils.isBuffer(obj))
|
||||||
return enc === 'hex' ? utils.toHex(obj) : obj;
|
return enc === 'hex' ? utils.toHex(obj) : obj;
|
||||||
|
|
||||||
if (typeof obj.hash === 'function')
|
if (typeof obj.hash === 'function')
|
||||||
|
|||||||
@ -328,7 +328,7 @@ Wallet.addr2hash = function addr2hash(addr, prefix) {
|
|||||||
if (prefix == null && typeof addr === 'string')
|
if (prefix == null && typeof addr === 'string')
|
||||||
prefix = Wallet.prefixes[addr[0]];
|
prefix = Wallet.prefixes[addr[0]];
|
||||||
|
|
||||||
if (!Array.isArray(addr))
|
if (!utils.isBuffer(addr))
|
||||||
addr = utils.fromBase58(addr);
|
addr = utils.fromBase58(addr);
|
||||||
|
|
||||||
prefix = network.prefixes[prefix || 'pubkeyhash'];
|
prefix = network.prefixes[prefix || 'pubkeyhash'];
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user