optimize keys.

This commit is contained in:
Christopher Jeffrey 2016-06-12 11:16:36 -07:00
parent 6053497c0c
commit 46fbaf9514
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD

View File

@ -39,109 +39,109 @@ var layout = {
? new Buffer([0x52]) // R ? new Buffer([0x52]) // R
: '52', : '52',
e: function e(hash) { e: function e(hash) {
var key = new BufferWriter(); var key = new Buffer(33);
key.writeU8(0x65); // e key[0] = 0x65; // e
key.writeHash(hash); write(key, hash, 1);
key = key.render();
if (utils.isBrowser) if (utils.isBrowser)
key = key.toString('hex'); key = key.toString('hex');
return key; return key;
}, },
h: function h(hash) { h: function h(hash) {
var key = new BufferWriter(); var key = new Buffer(33);
key.writeU8(0x68); // h key[0] = 0x68; // h
key.writeHash(hash); write(key, hash, 1);
key = key.render();
if (utils.isBrowser) if (utils.isBrowser)
key = key.toString('hex'); key = key.toString('hex');
return key; return key;
}, },
H: function H(height) { H: function H(height) {
var key = new BufferWriter(); var key = new Buffer(5);
key.writeU8(0x48); // H key[0] = 0x48; // H
key.writeU32(height); key.writeUInt32LE(height, 1, true);
key = key.render();
if (utils.isBrowser) if (utils.isBrowser)
key = key.toString('hex'); key = key.toString('hex');
return key; return key;
}, },
n: function n(hash) { n: function n(hash) {
var key = new BufferWriter(); var key = new Buffer(33);
key.writeU8(0x6e); // n key[0] = 0x6e; // n
key.writeHash(hash); write(key, hash, 1);
key = key.render();
if (utils.isBrowser) if (utils.isBrowser)
key = key.toString('hex'); key = key.toString('hex');
return key; return key;
}, },
b: function b(hash) { b: function b(hash) {
var key = new BufferWriter(); var key = new Buffer(33);
key.writeU8(0x62); // b key[0] = 0x62; // b
key.writeHash(hash); write(key, hash, 1);
key = key.render();
if (utils.isBrowser) if (utils.isBrowser)
key = key.toString('hex'); key = key.toString('hex');
return key; return key;
}, },
t: function t(hash) { t: function t(hash) {
var key = new BufferWriter(); var key = new Buffer(33);
key.writeU8(0x74); // t key[0] = 0x74; // t
key.writeHash(hash); write(key, hash, 1);
key = key.render();
if (utils.isBrowser) if (utils.isBrowser)
key = key.toString('hex'); key = key.toString('hex');
return key; return key;
}, },
c: function c(hash) { c: function c(hash) {
var key = new BufferWriter(); var key = new Buffer(33);
key.writeU8(0x63); // c key[0] = 0x63; // c
key.writeHash(hash); write(key, hash, 1);
key = key.render();
if (utils.isBrowser) if (utils.isBrowser)
key = key.toString('hex'); key = key.toString('hex');
return key; return key;
}, },
u: function u(hash) { u: function u(hash) {
var key = new BufferWriter(); var key = new Buffer(33);
key.writeU8(0x75); // u key[0] = 0x75; // u
key.writeHash(hash); write(key, hash, 1);
key = key.render();
if (utils.isBrowser) if (utils.isBrowser)
key = key.toString('hex'); key = key.toString('hex');
return key; return key;
}, },
q: function q(height) { q: function q(height) {
var key = new BufferWriter(); var key = new Buffer(5);
key.writeU8(0x71); // q key[0] = 0x71; // q
key.writeU32(height); key.writeUInt32LE(height, 1, true);
key = key.render();
if (utils.isBrowser) if (utils.isBrowser)
key = key.toString('hex'); key = key.toString('hex');
return key; return key;
}, },
T: function T(address, hash) { T: function T(address, hash) {
var key = new BufferWriter(); var key;
if (address.length === 32 || address.length === 64) if (address.length === 32 || address.length === 64) {
key.writeU8(0xab); // W + T key = new Buffer(65);
else key[0] = 0xab; // W + T
key.writeU8(0x54); // T write(key, address, 1);
key.writeHash(address); write(key, hash, 33);
key.writeHash(hash); } else {
key = key.render(); key = new Buffer(53);
key[0] = 0x54; // T
write(key, address, 1);
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 key = new BufferWriter(); var key;
if (address.length === 32 || address.length === 64) if (address.length === 32 || address.length === 64) {
key.writeU8(0x9a); // W + C key = new Buffer(69);
else key[0] = 0x9a; // W + C
key.writeU8(0x43); // C write(key, address, 1);
key.writeHash(address); write(key, hash, 33);
key.writeHash(hash); key.writeUInt32LE(index, 65, true);
key.writeU32(index); } else {
key = key.render(); key = new Buffer(57);
key[0] = 0x43; // C
write(key, address, 1);
write(key, hash, 21);
key.writeUInt32LE(index, 53, true);
}
if (utils.isBrowser) if (utils.isBrowser)
key = key.toString('hex'); key = key.toString('hex');
return key; return key;
@ -1529,6 +1529,16 @@ NullCache.prototype.get = function get(key) {};
NullCache.prototype.has = function has(key) {}; NullCache.prototype.has = function has(key) {};
NullCache.prototype.reset = function reset() {}; NullCache.prototype.reset = function reset() {};
/*
* Helpers
*/
function write(data, str, off) {
if (Buffer.isBuffer(str))
return str.copy(data, off);
data.write(str, off, 'hex');
}
/* /*
* Expose * Expose
*/ */