move some deps around. drop inherits.
This commit is contained in:
parent
10804959d5
commit
c81770c2b1
22
lib/bcoin.js
22
lib/bcoin.js
@ -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');
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -4,7 +4,6 @@
|
||||
* https://github.com/indutny/bcoin
|
||||
*/
|
||||
|
||||
var inherits = require('inherits');
|
||||
var EventEmitter = require('events').EventEmitter;
|
||||
|
||||
var bcoin = require('../bcoin');
|
||||
|
||||
@ -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, {
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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() {
|
||||
;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
};
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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',
|
||||
|
||||
16
package.json
16
package.json
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user