refactor.

This commit is contained in:
Christopher Jeffrey 2016-06-12 12:44:25 -07:00
parent 7e5b6a2ff7
commit 07261da2e2
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD

View File

@ -36,83 +36,43 @@ var Parser = bcoin.protocol.parser;
var layout = {
R: !utils.isBrowser
? new Buffer([0x52]) // R
? new Buffer([0x52])
: '52',
e: function e(hash) {
var key = new Buffer(33);
key[0] = 0x65; // e
write(key, hash, 1);
if (utils.isBrowser)
key = key.toString('hex');
return key;
return pair(0x65, hash);
},
h: function h(hash) {
var key = new Buffer(33);
key[0] = 0x68; // h
write(key, hash, 1);
if (utils.isBrowser)
key = key.toString('hex');
return key;
return pair(0x68, hash);
},
H: function H(height) {
var key = new Buffer(5);
key[0] = 0x48; // H
key.writeUInt32LE(height, 1, true);
if (utils.isBrowser)
key = key.toString('hex');
return key;
return ipair(0x48, height);
},
n: function n(hash) {
var key = new Buffer(33);
key[0] = 0x6e; // n
write(key, hash, 1);
if (utils.isBrowser)
key = key.toString('hex');
return key;
return pair(0x6e, hash);
},
b: function b(hash) {
var key = new Buffer(33);
key[0] = 0x62; // b
write(key, hash, 1);
if (utils.isBrowser)
key = key.toString('hex');
return key;
return pair(0x62, hash);
},
t: function t(hash) {
var key = new Buffer(33);
key[0] = 0x74; // t
write(key, hash, 1);
if (utils.isBrowser)
key = key.toString('hex');
return key;
return pair(0x74, hash);
},
c: function c(hash) {
var key = new Buffer(33);
key[0] = 0x63; // c
write(key, hash, 1);
if (utils.isBrowser)
key = key.toString('hex');
return key;
return pair(0x63, hash);
},
u: function u(hash) {
var key = new Buffer(33);
key[0] = 0x75; // u
write(key, hash, 1);
if (utils.isBrowser)
key = key.toString('hex');
return key;
return pair(0x75, hash);
},
q: function q(height) {
var key = new Buffer(5);
key[0] = 0x71; // q
key.writeUInt32LE(height, 1, true);
if (utils.isBrowser)
key = key.toString('hex');
return key;
return ipair(0x71, height);
},
T: function T(address, hash) {
var len = address.length;
var key;
if (address.length === 32 || address.length === 64) {
if (typeof address === 'string')
len /= 2;
if (len === 32) {
key = new Buffer(65);
key[0] = 0xab; // W + T
write(key, address, 1);
@ -123,13 +83,20 @@ var layout = {
write(key, address, 1);
write(key, hash, 21);
}
if (utils.isBrowser)
key = key.toString('hex');
return key;
},
C: function C(address, hash, index) {
var len = address.length;
var key;
if (address.length === 32 || address.length === 64) {
if (typeof address === 'string')
len /= 2;
if (len === 32) {
key = new Buffer(69);
key[0] = 0x9a; // W + C
write(key, address, 1);
@ -142,8 +109,10 @@ var layout = {
write(key, hash, 21);
key.writeUInt32LE(index, 53, true);
}
if (utils.isBrowser)
key = key.toString('hex');
return key;
},
Cc: function Cc(key) {
@ -1539,6 +1508,24 @@ function write(data, str, off) {
data.write(str, off, 'hex');
}
function pair(prefix, hash) {
var key = new Buffer(33);
key[0] = prefix;
write(key, hash, 1);
if (utils.isBrowser)
key = key.toString('hex');
return key;
}
function ipair(prefix, num) {
var key = new Buffer(5);
key[0] = prefix;
key.writeUInt32LE(num, 1, true);
if (utils.isBrowser)
key = key.toString('hex');
return key;
}
/*
* Expose
*/