move some deps around. drop inherits.

This commit is contained in:
Christopher Jeffrey 2016-02-21 04:57:33 -08:00
parent 10804959d5
commit c81770c2b1
22 changed files with 72 additions and 66 deletions

View File

@ -6,10 +6,6 @@
var bcoin = exports;
var assert = require('assert');
var inherits = require('inherits');
var elliptic = require('elliptic');
var bn = require('bn.js');
var hash = require('hash.js');
bcoin.isBrowser =
(typeof process !== 'undefined' && process.browser)
@ -21,7 +17,8 @@ if (process.env.BCOIN_DEBUG) {
bcoin.debug = +bcoin.debug === 1;
}
bcoin.dir = process.env.HOME + '/.bcoin';
bcoin.bn = require('bn.js');
bcoin.elliptic = require('elliptic');
if (!bcoin.isBrowser) {
bcoin.fs = require('f' + 's');
@ -34,8 +31,12 @@ if (!bcoin.isBrowser) {
utils.debug('Warning secp256k1 not found.'
+ ' Full block validation will be slow.');
}
} else {
bcoin.hash = require('hash.js');
}
bcoin.dir = process.env.HOME + '/.bcoin';
if (bcoin.fs) {
try {
bcoin.fs.statSync(bcoin.dir, 0o750);
@ -44,17 +45,10 @@ if (bcoin.fs) {
}
}
bcoin.inherits = inherits;
bcoin.elliptic = elliptic;
bcoin.bn = bn;
bcoin.hash = hash;
bcoin.ecdsa = elliptic.ec('secp256k1');
bcoin.ecdsa = bcoin.elliptic.ec('secp256k1');
assert(!bcoin.ecdsa.signature);
assert(!bcoin.ecdsa.keypair);
bcoin.ecdsa.signature = require('elliptic/lib/elliptic/ec/signature');
assert(!bcoin.ecdsa.keypair);
bcoin.ecdsa.keypair = require('elliptic/lib/elliptic/ec/key');
bcoin.utils = require('./bcoin/utils');

View File

@ -5,9 +5,7 @@
*/
var bcoin = require('../bcoin');
var hash = require('hash.js');
var bn = require('bn.js');
var inherits = require('inherits');
var EventEmitter = require('events').EventEmitter;
var utils = bcoin.utils;
var assert = utils.assert;
@ -68,7 +66,7 @@ function Address(options) {
this.setRedeem(options.redeem || options.script);
}
inherits(Address, EventEmitter);
utils.inherits(Address, EventEmitter);
Address.prototype.__defineGetter__('balance', function() {
return this.getBalance();

View File

@ -7,8 +7,6 @@
var bcoin = require('../bcoin');
var utils = bcoin.utils;
var assert = utils.assert;
var levelup = require('levelup');
var inherits = require('inherits');
var EventEmitter = require('events').EventEmitter;
var network = bcoin.protocol.network;
var fs = bcoin.fs;
@ -19,10 +17,14 @@ var fs = bcoin.fs;
function BlockDB(options) {
var self = this;
var levelup;
if (!(this instanceof BlockDB))
return new BlockDB(options);
// Some lazy loading
levelup = require('levelup');
EventEmitter.call(this);
if (!options)
@ -64,7 +66,7 @@ function BlockDB(options) {
});
}
inherits(BlockDB, EventEmitter);
utils.inherits(BlockDB, EventEmitter);
BlockDB.prototype.close = function close(callback) {
var self = this;

View File

@ -4,9 +4,7 @@
* https://github.com/indutny/bcoin
*/
var inherits = require('inherits');
var EventEmitter = require('events').EventEmitter;
var request = require('request');
var bcoin = require('../bcoin');
var bn = require('bn.js');
@ -62,7 +60,7 @@ function Chain(options) {
this._init();
}
inherits(Chain, EventEmitter);
utils.inherits(Chain, EventEmitter);
Chain.prototype._init = function _init() {
var self = this;
@ -283,6 +281,7 @@ Chain.prototype._preload = function _preload(callback) {
var self = this;
var url = 'https://headers.electrum.org/blockchain_headers';
var chainHeight, buf, height, stream;
var request;
if (!this.options.preload)
return callback();
@ -290,6 +289,12 @@ Chain.prototype._preload = function _preload(callback) {
if (network.type !== 'main')
return callback(new Error('Electrum.org only offers `main` headers.'));
try {
request = require('request');
} catch (e) {
return callback(e);
}
utils.debug('Loading %s', url);
stream = request.get(url);

View File

@ -4,7 +4,6 @@
* https://github.com/indutny/bcoin
*/
var inherits = require('inherits');
var EventEmitter = require('events').EventEmitter;
var bcoin = require('../bcoin');

View File

@ -4,7 +4,6 @@
* https://github.com/indutny/bcoin
*/
var inherits = require('inherits');
var EventEmitter = require('events').EventEmitter;
var bcoin = require('../bcoin');
@ -59,7 +58,7 @@ function ChainDB(chain, options) {
this._init();
}
inherits(ChainDB, EventEmitter);
utils.inherits(ChainDB, EventEmitter);
ChainDB.prototype._init = function _init() {
var genesis = bcoin.chainblock.fromJSON(this.chain, {

View File

@ -6,7 +6,6 @@
var bn = require('bn.js');
var bcoin = require('../bcoin');
var inherits = require('inherits');
var utils = bcoin.utils;
var assert = utils.assert;
var constants = bcoin.protocol.constants;
@ -68,7 +67,7 @@ function Coin(tx, index) {
assert(typeof this.spent === 'boolean');
}
inherits(Coin, bcoin.output);
utils.inherits(Coin, bcoin.output);
Coin.prototype.__defineGetter__('chain', function() {
return this._chain || bcoin.chain.global;

View File

@ -45,14 +45,14 @@ ec.verify = function verify(msg, sig, key, historical) {
// Note: We only do this for historical data!
// https://github.com/indutny/elliptic/issues/78
if (historical)
sig = bcoin.ec.normalizeLength(sig);
sig = ec.normalizeLength(sig);
try {
if (bcoin.secp256k1) {
// secp256k1 fails on low s values. This is
// bad for verifying historical data.
if (historical)
sig = bcoin.ec.toLowS(sig);
sig = ec.toLowS(sig);
msg = new Buffer(msg);
sig = new Buffer(sig);

View File

@ -51,9 +51,7 @@
*/
var bcoin = require('../bcoin');
var hash = require('hash.js');
var bn = require('bn.js');
var inherits = require('inherits');
var elliptic = require('elliptic');
var utils = bcoin.utils;
var assert = utils.assert;
@ -185,7 +183,7 @@ function HDPrivateKey(options) {
this.isPublic = false;
}
inherits(HDPrivateKey, HD);
utils.inherits(HDPrivateKey, HD);
HDPrivateKey.prototype.scan44 = function scan44(options, txByAddress, callback) {
var self = this;
@ -952,7 +950,7 @@ function HDPublicKey(options) {
this.isPublic = true;
}
inherits(HDPublicKey, HD);
utils.inherits(HDPublicKey, HD);
HDPublicKey.prototype.scan44 = HDPrivateKey.prototype.scan44;
HDPublicKey.prototype.deriveAccount44 = HDPrivateKey.prototype.deriveAccount44;

View File

@ -4,7 +4,6 @@
* https://github.com/indutny/bcoin
*/
var inherits = require('inherits');
var EventEmitter = require('events').EventEmitter;
var bcoin = require('../bcoin');
@ -42,7 +41,7 @@ function Mempool(node, options) {
this._init();
}
inherits(Mempool, EventEmitter);
utils.inherits(Mempool, EventEmitter);
Mempool.prototype._init = function _init() {
;

View File

@ -10,7 +10,6 @@ var assert = utils.assert;
var constants = bcoin.protocol.constants;
var bn = require('bn.js');
var inherits = require('inherits');
var EventEmitter = require('events').EventEmitter;
/**
@ -48,7 +47,7 @@ function Miner(pool, options) {
this._init();
}
inherits(Miner, EventEmitter);
utils.inherits(Miner, EventEmitter);
Miner.prototype._init = function _init() {
var self = this;

View File

@ -4,7 +4,6 @@
* https://github.com/indutny/bcoin
*/
var inherits = require('inherits');
var EventEmitter = require('events').EventEmitter;
var bcoin = require('../bcoin');
var bn = require('bn.js');
@ -49,7 +48,7 @@ function Node(options) {
this._init();
}
inherits(Node, EventEmitter);
utils.inherits(Node, EventEmitter);
Node.prototype._init = function _init() {
var self = this;

View File

@ -6,7 +6,6 @@
var bn = require('bn.js');
var bcoin = require('../bcoin');
var inherits = require('inherits');
var utils = bcoin.utils;
var assert = utils.assert;
var constants = bcoin.protocol.constants;

View File

@ -4,7 +4,6 @@
* https://github.com/indutny/bcoin
*/
var inherits = require('inherits');
var EventEmitter = require('events').EventEmitter;
var bcoin = require('../bcoin');
@ -97,7 +96,7 @@ function Peer(pool, options) {
this._init();
}
inherits(Peer, EventEmitter);
utils.inherits(Peer, EventEmitter);
Peer.uid = new bn(0);

View File

@ -4,7 +4,6 @@
* https://github.com/indutny/bcoin
*/
var inherits = require('inherits');
var EventEmitter = require('events').EventEmitter;
var bcoin = require('../bcoin');
@ -162,7 +161,7 @@ function Pool(options) {
});
}
inherits(Pool, EventEmitter);
utils.inherits(Pool, EventEmitter);
Pool.prototype._init = function _init() {
var self = this;

View File

@ -4,7 +4,6 @@
* https://github.com/indutny/bcoin
*/
var inherits = require('inherits');
var EventEmitter = require('events').EventEmitter;
var bn = require('bn.js');
@ -30,7 +29,7 @@ function Parser() {
this.packet = null;
}
inherits(Parser, EventEmitter);
utils.inherits(Parser, EventEmitter);
Parser.prototype._error = function _error(str) {
this.emit('error', new Error(str));

View File

@ -4,7 +4,6 @@
* https://github.com/indutny/bcoin
*/
var inherits = require('inherits');
var EventEmitter = require('events').EventEmitter;
var bcoin = require('../bcoin');
var bn = require('bn.js');
@ -46,7 +45,7 @@ function SPVNode(options) {
this._init();
}
inherits(SPVNode, EventEmitter);
utils.inherits(SPVNode, EventEmitter);
SPVNode.prototype._init = function _init() {
var self = this;

View File

@ -5,7 +5,6 @@
*/
var bn = require('bn.js');
var inherits = require('inherits');
var bcoin = require('../bcoin');
var utils = bcoin.utils;
var assert = bcoin.utils.assert;
@ -38,7 +37,7 @@ function TXPool(wallet, txs) {
this._init(txs);
}
inherits(TXPool, EventEmitter);
utils.inherits(TXPool, EventEmitter);
TXPool.prototype._init = function _init(txs) {
var self = this;

View File

@ -8,7 +8,6 @@ var utils = exports;
var bcoin = require('../bcoin');
var bn = require('bn.js');
var hash = require('hash.js');
var util = require('util');
/**
@ -153,7 +152,7 @@ utils.ripemd160 = function ripemd160(data, enc) {
var result;
if (!bcoin.crypto)
return hash.ripemd160().update(data, enc).digest();
return bcoin.hash.ripemd160().update(data, enc).digest();
if (Array.isArray(data))
data = new Buffer(data);
@ -167,7 +166,7 @@ utils.sha1 = function sha1(data, enc) {
var result;
if (!bcoin.crypto)
return hash.sha1().update(data, enc).digest();
return bcoin.hash.sha1().update(data, enc).digest();
if (Array.isArray(data))
data = new Buffer(data);
@ -189,7 +188,7 @@ utils.sha256 = function sha256(data, enc) {
var result;
if (!bcoin.crypto)
return hash.sha256().update(data, enc).digest();
return bcoin.hash.sha256().update(data, enc).digest();
if (Array.isArray(data))
data = new Buffer(data);
@ -207,7 +206,7 @@ utils.sha512hmac = function sha512hmac(data, salt) {
var hmac, result;
if (!bcoin.crypto) {
hmac = hash.hmac(hash.sha512, utils.toArray(salt));
hmac = bcoin.hash.hmac(hash.sha512, utils.toArray(salt));
return hmac.update(utils.toArray(data)).digest();
}
@ -1511,3 +1510,18 @@ utils.forEach = function forEach(arr, iter, callback) {
utils.mb = function mb(size) {
return size / 1024 / 1024 | 0;
};
utils.inherits = function inherits(obj, from) {
if (Object.create) {
obj.prototype = Object.create(from.prototype, {
constructor: {
value: obj,
enumerable: false
}
});
return;
}
var f = function() {};
f.prototype = from.prototype;
obj.prototype = new f;
};

View File

@ -5,9 +5,7 @@
*/
var bcoin = require('../bcoin');
var hash = require('hash.js');
var bn = require('bn.js');
var inherits = require('inherits');
var EventEmitter = require('events').EventEmitter;
var utils = bcoin.utils;
var assert = utils.assert;
@ -101,7 +99,7 @@ function Wallet(options) {
}, this);
}
inherits(Wallet, EventEmitter);
utils.inherits(Wallet, EventEmitter);
Wallet.prototype._init = function _init() {
var self = this;

View File

@ -4,7 +4,6 @@
* https://github.com/indutny/bcoin
*/
var inherits = require('inherits');
var EventEmitter = require('events').EventEmitter;
var bcoin = require('../bcoin');
@ -52,11 +51,13 @@ function WalletDB(options) {
this._init();
}
inherits(WalletDB, EventEmitter);
utils.inherits(WalletDB, EventEmitter);
WalletDB._db = {};
WalletDB.prototype._init = function _init() {
var levelup;
if (this.type === 'file' && !bcoin.fs) {
this.type = 'leveldb';
utils.debug('`fs` module not available. Falling back to leveldb.');
@ -84,6 +85,8 @@ WalletDB.prototype._init = function _init() {
if (this.type === 'leveldb') {
if (!WalletDB._db[this.file]) {
// Some lazy loading
levelup = require('levelup');
WalletDB._db[this.file] = new levelup(this.file, {
keyEncoding: 'ascii',
valueEncoding: 'utf8',

View File

@ -11,10 +11,14 @@
"repository": "git://github.com/indutny/bcoin.git",
"keywords": [
"bitcoin",
"blockchain",
"bcoin",
"wallet"
],
"author": "Fedor Indutny <fedor@indutny.com>",
"contributors": [
"Christopher Jeffrey <chjjeffrey@gmail.com> (https://github.com/chjj)"
],
"license": "MIT",
"bugs": {
"url": "https://github.com/indutny/bcoin/issues"
@ -26,16 +30,18 @@
"dependencies": {
"bn.js": "4.6.3",
"elliptic": "6.0.2",
"hash.js": "1.0.3",
"secp256k1": "3.0.0",
"inherits": "2.0.1",
"leveldown": "1.4.4",
"level-js": "2.2.3",
"levelup": "1.3.1",
"levelup": "1.3.1"
},
"optionalDependencies": {
"secp256k1": "3.0.0",
"request": "2.67.0"
},
"devDependencies": {
"hash.js": "1.0.3",
"level-js": "2.2.3",
"browserify": "13.0.0",
"uglify-js": "2.6.1",
"mocha": "1.21.5"
}
}