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