diff --git a/bench/coin.js b/bench/coin.js index dcd128be..1516c64c 100644 --- a/bench/coin.js +++ b/bench/coin.js @@ -2,7 +2,7 @@ var BN = require('bn.js'); var constants = require('../lib/protocol/constants'); -var utils = require('../lib/utils/utils'); +var util = require('../lib/utils/util'); var assert = require('assert'); var scriptTypes = constants.scriptTypes; var bench = require('./bench'); diff --git a/bench/mnemonic.js b/bench/mnemonic.js index 35b6a4cc..ce29dd22 100644 --- a/bench/mnemonic.js +++ b/bench/mnemonic.js @@ -3,7 +3,7 @@ var BN = require('bn.js'); var bcoin = require('../').set('main'); var constants = bcoin.constants; -var utils = bcoin.utils; +var util = bcoin.util; var assert = require('assert'); var bench = require('./bench'); var Mnemonic = bcoin.hd.Mnemonic; diff --git a/bench/script.js b/bench/script.js index 444082d1..44d94a2c 100644 --- a/bench/script.js +++ b/bench/script.js @@ -3,7 +3,7 @@ var BN = require('bn.js'); var bcoin = require('../').set('main'); var constants = bcoin.constants; -var utils = bcoin.utils; +var util = bcoin.util; var assert = require('assert'); var scriptTypes = constants.scriptTypes; var opcodes = constants.opcodes; diff --git a/bench/tx.js b/bench/tx.js index 7b3a2eb8..15dee5cc 100644 --- a/bench/tx.js +++ b/bench/tx.js @@ -3,7 +3,7 @@ var BN = require('bn.js'); var bcoin = require('../').set('main'); var constants = bcoin.constants; -var utils = bcoin.utils; +var util = bcoin.util; var assert = require('assert'); var scriptTypes = constants.scriptTypes; var bench = require('./bench'); diff --git a/bench/walletdb.js b/bench/walletdb.js index e8bba8f6..0f9d1be1 100644 --- a/bench/walletdb.js +++ b/bench/walletdb.js @@ -3,7 +3,7 @@ var BN = require('bn.js'); var bcoin = require('../').set('main'); var constants = bcoin.constants; -var utils = bcoin.utils; +var util = bcoin.util; var assert = require('assert'); var scriptTypes = constants.scriptTypes; var bench = require('./bench'); diff --git a/bin/cli b/bin/cli index d339fd10..0c1a8ef8 100755 --- a/bin/cli +++ b/bin/cli @@ -3,11 +3,11 @@ 'use strict'; var config = require('../lib/node/config'); -var utils = require('../lib/utils/utils'); +var util = require('../lib/utils/util'); var co = require('../lib/utils/co'); var Client = require('../lib/http/client'); var Wallet = require('../lib/http/wallet'); -var Amount = require('../lib/utils/amount'); +var Amount = require('../lib/btc/amount'); var main; function CLI() { @@ -164,7 +164,7 @@ CLI.prototype.getTX = co(function* getTX() { var hash = this.argv[0]; var txs, tx; - if (utils.isBase58(hash)) { + if (util.isBase58(hash)) { txs = yield this.client.getTXByAddress(hash); this.log(txs); return; @@ -202,7 +202,7 @@ CLI.prototype.getCoin = co(function* getCoin() { var index = this.argv[1]; var coins, coin; - if (utils.isBase58(hash)) { + if (util.isBase58(hash)) { coins = yield this.client.getCoinsByAddress(hash); this.log(coins); return; @@ -378,7 +378,7 @@ CLI.prototype.retoken = co(function* retoken() { CLI.prototype.rescan = co(function* rescan() { var height = this.argv[0]; - if (!utils.isUInt32(height)) + if (!util.isUInt32(height)) height = null; yield this.client.rescan(height); @@ -421,13 +421,13 @@ CLI.prototype.importKey = co(function* importKey() { if (!key) throw new Error('No key for import.'); - if (utils.isBase58(key)) { + if (util.isBase58(key)) { yield this.wallet.importPrivate(key); this.log('Imported private key.'); return; } - if (utils.isHex(key)) { + if (util.isHex(key)) { yield this.wallet.importPublic(key); this.log('Imported public key.'); return; diff --git a/browser/index.js b/browser/index.js index 78c59901..aa541d51 100644 --- a/browser/index.js +++ b/browser/index.js @@ -2,7 +2,7 @@ 'use strict'; -var utils = bcoin.utils; +var util = bcoin.util; var body = document.getElementsByTagName('body')[0]; var log = document.getElementById('log'); var wdiv = document.getElementById('wallet'); @@ -27,18 +27,18 @@ floating.onmouseup = function(ev) { }; function show(obj) { - floating.innerHTML = escape(utils.inspectify(obj, false)); + floating.innerHTML = escape(util.inspectify(obj, false)); floating.style.display = 'block'; } logger = new bcoin.logger({ level: 'debug' }); logger.writeConsole = function(level, args) { - var msg = utils.format(args, false); + var msg = util.format(args, false); if (++scrollback > 1000) { log.innerHTML = ''; scrollback = 1; } - log.innerHTML += '' + utils.now() + ' '; + log.innerHTML += '' + util.now() + ' '; if (level === 'error') log.innerHTML += '[' + level + '] '; else diff --git a/browser/wsproxy.js b/browser/wsproxy.js index cbb8a098..3c0e62bc 100644 --- a/browser/wsproxy.js +++ b/browser/wsproxy.js @@ -2,7 +2,7 @@ var net = require('net'); var IOServer = require('socket.io'); -var utils = require('../lib/utils/utils'); +var util = require('../lib/utils/util'); var IP = require('../lib/utils/ip'); var BufferWriter = require('../lib/utils/writer'); var EventEmitter = require('events').EventEmitter; @@ -30,7 +30,7 @@ function WSProxy(options) { this._init(); } -utils.inherits(WSProxy, EventEmitter); +util.inherits(WSProxy, EventEmitter); WSProxy.prototype._init = function _init() { var self = this; @@ -73,7 +73,7 @@ WSProxy.prototype._handleConnect = function _handleConnect(ws, port, host, nonce return; } - if (!utils.isNumber(port) + if (!util.isNumber(port) || typeof host !== 'string' || host.length === 0) { this.log('Client gave bad arguments (%s).', state.host); @@ -83,7 +83,7 @@ WSProxy.prototype._handleConnect = function _handleConnect(ws, port, host, nonce } if (this.pow) { - if (!utils.isNumber(nonce)) { + if (!util.isNumber(nonce)) { this.log('Client did not solve proof of work.', state.host); ws.emit('tcp close'); ws.disconnect(); @@ -97,7 +97,7 @@ WSProxy.prototype._handleConnect = function _handleConnect(ws, port, host, nonce pow.writeString(host, 'ascii'); pow = pow.render(); - if (utils.cmp(utils.hash256(pow), this.target) > 0) { + if (util.cmp(util.hash256(pow), this.target) > 0) { this.log('Client did not solve proof of work (%s).', state.host); ws.emit('tcp close'); ws.disconnect(); @@ -193,7 +193,7 @@ WSProxy.prototype.attach = function attach(server) { function SocketState(server, socket) { this.pow = server.pow; this.target = server.target; - this.snonce = utils.nonce(true); + this.snonce = util.nonce(true); this.socket = null; this.host = IP.normalize(socket.conn.remoteAddress); this.remoteHost = null; diff --git a/lib/bcoin.js b/lib/bcoin.js index 8eee380a..973e47d9 100644 --- a/lib/bcoin.js +++ b/lib/bcoin.js @@ -11,15 +11,15 @@ 'use strict'; var env = require('./env'); -var utils = require('./utils/utils'); -var global = utils.global; +var util = require('./utils/util'); +var global = util.global; /* * Expose bcoin globally in the * browser. Necessary for workers. */ -if (utils.isBrowser) +if (util.isBrowser) global.bcoin = env; module.exports = env; diff --git a/lib/bip70/paymentdetails.js b/lib/bip70/paymentdetails.js index f3124fe8..84de1c0f 100644 --- a/lib/bip70/paymentdetails.js +++ b/lib/bip70/paymentdetails.js @@ -7,7 +7,7 @@ 'use strict'; var assert = require('assert'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var Output = require('../primitives/output'); var protobuf = require('../utils/protobuf'); var ProtoReader = protobuf.ProtoReader; @@ -19,7 +19,7 @@ function PaymentDetails(options) { this.network = null; this.outputs = []; - this.time = utils.now(); + this.time = util.now(); this.expires = -1; this.memo = null; this.paymentUrl = null; @@ -46,12 +46,12 @@ PaymentDetails.prototype.fromOptions = function fromOptions(options) { } if (options.time != null) { - assert(utils.isNumber(options.time)); + assert(util.isNumber(options.time)); this.time = options.time; } if (options.expires != null) { - assert(utils.isNumber(options.expires)); + assert(util.isNumber(options.expires)); this.expires = options.expires; } @@ -78,7 +78,7 @@ PaymentDetails.fromOptions = function fromOptions(options) { PaymentDetails.prototype.isExpired = function isExpired() { if (this.expires === -1) return false; - return utils.now() > this.expires; + return util.now() > this.expires; }; PaymentDetails.prototype.setData = function setData(data, enc) { diff --git a/lib/bip70/paymentrequest.js b/lib/bip70/paymentrequest.js index 9541fb2a..1b72fa59 100644 --- a/lib/bip70/paymentrequest.js +++ b/lib/bip70/paymentrequest.js @@ -7,7 +7,7 @@ 'use strict'; var assert = require('assert'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var crypto = require('../crypto/crypto'); var x509 = require('./x509'); var PEM = require('../utils/pem'); @@ -32,7 +32,7 @@ function PaymentRequest(options) { PaymentRequest.prototype.fromOptions = function fromOptions(options) { if (options.version != null) { - assert(utils.isNumber(options.version)); + assert(util.isNumber(options.version)); this.version = options.version; } diff --git a/lib/bip70/x509.js b/lib/bip70/x509.js index e7b332b6..180b15a4 100644 --- a/lib/bip70/x509.js +++ b/lib/bip70/x509.js @@ -9,7 +9,7 @@ var assert = require('assert'); var ASN1 = require('../utils/asn1'); var PEM = require('../utils/pem'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var crypto = require('../crypto/crypto'); var pk = require('./pk'); var x509 = exports; @@ -294,7 +294,7 @@ x509.verifyChain = function verifyChain(chain) { function isHash(data) { if (typeof data === 'string') - return utils.isHex(data) && data.length === 64; + return util.isHex(data) && data.length === 64; if (Buffer.isBuffer(data)) return data.length === 32; diff --git a/lib/utils/amount.js b/lib/btc/amount.js similarity index 93% rename from lib/utils/amount.js rename to lib/btc/amount.js index 362cbc27..602fbc69 100644 --- a/lib/utils/amount.js +++ b/lib/btc/amount.js @@ -7,7 +7,7 @@ 'use strict'; var assert = require('assert'); -var utils = require('./utils'); +var util = require('../utils/util'); /** * Amount @@ -77,7 +77,7 @@ Amount.prototype.toString = function toString() { }; Amount.prototype.fromValue = function fromValue(value) { - assert(utils.isInt53(value), 'Value must be an int64.'); + assert(util.isInt53(value), 'Value must be an int64.'); this.value = value; return this; }; @@ -158,7 +158,7 @@ Amount.prototype.inspect = function inspect() { */ Amount.btc = function btc(value, num) { - if (utils.isFloat(value)) + if (util.isFloat(value)) return value; return Amount.serialize(value, 8, num); @@ -178,7 +178,7 @@ Amount.serialize = function serialize(value, dec, num) { var negative = false; var hi, lo, result; - assert(utils.isInt(value), 'Non-satoshi value for conversion.'); + assert(util.isInt(value), 'Non-satoshi value for conversion.'); if (value < 0) { value = -value; @@ -220,7 +220,7 @@ Amount.serialize = function serialize(value, dec, num) { */ Amount.serializeUnsafe = function serializeUnsafe(value, dec, num) { - assert(utils.isInt(value), 'Non-satoshi value for conversion.'); + assert(util.isInt(value), 'Non-satoshi value for conversion.'); value /= pow10(dec); value = value.toFixed(dec); @@ -245,7 +245,7 @@ Amount.serializeUnsafe = function serializeUnsafe(value, dec, num) { */ Amount.value = function value(value, num) { - if (utils.isInt(value)) + if (util.isInt(value)) return value; return Amount.parse(value, 8, num); @@ -272,11 +272,11 @@ Amount.parse = function parse(value, dec, num) { var parts, hi, lo, result; if (num && typeof value === 'number') { - assert(utils.isNumber(value), 'Non-BTC value for conversion.'); + assert(util.isNumber(value), 'Non-BTC value for conversion.'); value = value.toString(10); } - assert(utils.isFloat(value), 'Non-BTC value for conversion.'); + assert(util.isFloat(value), 'Non-BTC value for conversion.'); if (value[0] === '-') { negative = true; @@ -327,10 +327,10 @@ Amount.parse = function parse(value, dec, num) { Amount.parseUnsafe = function parseUnsafe(value, dec, num) { if (typeof value === 'string') { - assert(utils.isFloat(value), 'Non-BTC value for conversion.'); + assert(util.isFloat(value), 'Non-BTC value for conversion.'); value = parseFloat(value, 10); } else { - assert(utils.isNumber(value), 'Non-BTC value for conversion.'); + assert(util.isNumber(value), 'Non-BTC value for conversion.'); assert(num, 'Cannot parse number.'); } diff --git a/lib/utils/btcutils.js b/lib/btc/btcutils.js similarity index 98% rename from lib/utils/btcutils.js rename to lib/btc/btcutils.js index 85745aa2..80b553fc 100644 --- a/lib/utils/btcutils.js +++ b/lib/btc/btcutils.js @@ -10,7 +10,7 @@ var assert = require('assert'); var BN = require('bn.js'); var constants = require('../protocol/constants'); -var utils = require('./utils'); +var util = require('../utils/util'); var Amount = require('./amount'); var btcutils = exports; @@ -195,7 +195,7 @@ btcutils.getRate = function getRate(size, fee) { */ btcutils.btc = function btc(value) { - if (utils.isFloat(value)) + if (util.isFloat(value)) return value; return Amount.fromValue(value).toBTC(); }; @@ -212,7 +212,7 @@ btcutils.btc = function btc(value) { */ btcutils.satoshi = function satoshi(value) { - if (utils.isInt(value)) + if (util.isInt(value)) return value; return Amount.fromBTC(value).toValue(); }; diff --git a/lib/utils/errors.js b/lib/btc/errors.js similarity index 94% rename from lib/utils/errors.js rename to lib/btc/errors.js index ad4575bd..7ef0ec6e 100644 --- a/lib/utils/errors.js +++ b/lib/btc/errors.js @@ -7,7 +7,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var constants = require('../protocol/constants'); var Amount = require('./amount'); @@ -57,10 +57,10 @@ function VerifyError(msg, code, reason, score) { + ' (code=' + code + ', score=' + score + ', height=' + this.height - + ', hash=' + utils.revHex(this.hash.toString('hex')) + ')'; + + ', hash=' + util.revHex(this.hash.toString('hex')) + ')'; } -utils.inherits(VerifyError, Error); +util.inherits(VerifyError, Error); /** * Verication result. @@ -120,7 +120,7 @@ function ScriptError(code, op, ip) { } } -utils.inherits(ScriptError, Error); +util.inherits(ScriptError, Error); /** * An error thrown from the coin selector. @@ -150,7 +150,7 @@ function FundingError(msg, available, required) { this.requiredFunds = required; } -utils.inherits(FundingError, Error); +util.inherits(FundingError, Error); /* * Expose diff --git a/lib/btc/index.js b/lib/btc/index.js new file mode 100644 index 00000000..af9a8f98 --- /dev/null +++ b/lib/btc/index.js @@ -0,0 +1,6 @@ +'use strict'; + +exports.Amount = require('./amount'); +exports.btcutils = require('./btcutils'); +exports.errors = require('./errors'); +exports.uri = require('./uri'); diff --git a/lib/utils/uri.js b/lib/btc/uri.js similarity index 97% rename from lib/utils/uri.js rename to lib/btc/uri.js index 32737d57..165209cf 100644 --- a/lib/utils/uri.js +++ b/lib/btc/uri.js @@ -6,7 +6,7 @@ 'use strict'; -var utils = require('./utils'); +var util = require('../utils/util'); var Address = require('../primitives/address'); var Amount = require('./amount'); var assert = require('assert'); @@ -33,7 +33,7 @@ URI.prototype.fromOptions = function fromOptions(options) { this.address.fromOptions(options.address); if (options.amount != null) { - assert(utils.isNumber(options.amount)); + assert(util.isNumber(options.amount)); this.amount = options.amount; } diff --git a/lib/chain/chain.js b/lib/chain/chain.js index 7b522da2..ebff9a6b 100644 --- a/lib/chain/chain.js +++ b/lib/chain/chain.js @@ -12,13 +12,13 @@ var Network = require('../protocol/network'); var Logger = require('../node/logger'); var ChainDB = require('./chaindb'); var constants = require('../protocol/constants'); -var utils = require('../utils/utils'); -var btcutils = require('../utils/btcutils'); +var util = require('../utils/util'); +var btcutils = require('../btc/btcutils'); var Locker = require('../utils/locker'); var ChainEntry = require('./chainentry'); var CoinView = require('./coinview'); var assert = require('assert'); -var errors = require('../utils/errors'); +var errors = require('../btc/errors'); var VerifyError = errors.VerifyError; var VerifyResult = errors.VerifyResult; var time = require('../net/time'); @@ -88,7 +88,7 @@ function Chain(options) { this.synced = false; this.state = new DeploymentState(); this.stateCache = {}; - this._time = utils.hrtime(); + this._time = util.hrtime(); this.orphan = { map: {}, @@ -100,7 +100,7 @@ function Chain(options) { this._init(); } -utils.inherits(Chain, AsyncObject); +util.inherits(Chain, AsyncObject); /** * Initialize the chain. @@ -119,7 +119,7 @@ Chain.prototype._init = function _init() { } this.locker.on('purge', function(total, size) { - self.logger.warning('Warning: %dmb of pending objects. Purging.', utils.mb(size)); + self.logger.warning('Warning: %dmb of pending objects. Purging.', util.mb(size)); }); this.on('competitor', function(block, entry) { @@ -152,7 +152,7 @@ Chain.prototype._init = function _init() { self.logger.warning( 'Fork at height %d: expected=%s received=%s', height, - utils.revHex(expected), + util.revHex(expected), block.rhash ); }); @@ -161,7 +161,7 @@ Chain.prototype._init = function _init() { self.logger.warning( 'Reorg at height %d: old=%s new=%s', height, - utils.revHex(expected), + util.revHex(expected), block.rhash ); }); @@ -181,7 +181,7 @@ Chain.prototype._init = function _init() { this.on('purge', function(count, size) { self.logger.debug('Warning: %d (%dmb) orphans cleared!', - count, utils.mb(size)); + count, util.mb(size)); }); }; @@ -1405,7 +1405,7 @@ Chain.prototype.isSlow = function isSlow() { */ Chain.prototype.mark = function mark() { - this._time = utils.hrtime(); + this._time = util.hrtime(); }; /** @@ -1426,10 +1426,10 @@ Chain.prototype.finish = function finish(block, entry) { return; // Report memory for debugging. - utils.gc(); + util.gc(); this.logger.memory(); - elapsed = utils.hrtime(this._time); + elapsed = util.hrtime(this._time); time = elapsed[0] * 1000 + elapsed[1] / 1e6; this.logger.info( @@ -1647,7 +1647,7 @@ Chain.prototype.isInitial = function isInitial(force) { if (this.height < this.bestHeight - 24 * 6) return true; - if (this.tip.ts < utils.now() - this.network.block.maxTipAge) + if (this.tip.ts < util.now() - this.network.block.maxTipAge) return true; return false; @@ -1661,7 +1661,7 @@ Chain.prototype.isInitial = function isInitial(force) { Chain.prototype.getProgress = function getProgress() { var start = this.network.genesis.ts; var current = this.tip.ts - start; - var end = utils.now() - start - 40 * 60; + var end = util.now() - start - 40 * 60; return Math.min(1, current / end); }; diff --git a/lib/chain/chaindb.js b/lib/chain/chaindb.js index f027005d..bde2482c 100644 --- a/lib/chain/chaindb.js +++ b/lib/chain/chaindb.js @@ -9,11 +9,11 @@ var AsyncObject = require('../utils/async'); var constants = require('../protocol/constants'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var assert = require('assert'); var BufferWriter = require('../utils/writer'); var BufferReader = require('../utils/reader'); -var Amount = require('../utils/amount'); +var Amount = require('../btc/amount'); var encoding = require('../utils/encoding'); var co = require('../utils/co'); var Network = require('../protocol/network'); @@ -65,7 +65,7 @@ function ChainDB(chain) { compression: true, cacheSize: 16 << 20, writeBufferSize: 8 << 20, - bufferKeys: !utils.isBrowser + bufferKeys: !util.isBrowser }); this.state = new ChainState(); @@ -91,7 +91,7 @@ function ChainDB(chain) { this.coinCache = new LRU(this.coinWindow, getSize); } -utils.inherits(ChainDB, AsyncObject); +util.inherits(ChainDB, AsyncObject); /** * Database layout. @@ -1010,7 +1010,7 @@ ChainDB.prototype.scan = co(function* scan(start, filter, iter) { if (typeof start === 'number') this.logger.info('Scanning from height %d.', start); else - this.logger.info('Scanning from block %s.', utils.revHex(start)); + this.logger.info('Scanning from block %s.', util.revHex(start)); entry = yield this.getEntry(start); @@ -1822,7 +1822,7 @@ ChainState.prototype.__defineGetter__('hash', function() { }); ChainState.prototype.__defineGetter__('rhash', function() { - return utils.revHex(this.hash); + return util.revHex(this.hash); }); ChainState.prototype.clone = function clone() { diff --git a/lib/chain/chainentry.js b/lib/chain/chainentry.js index 0f881c25..0c22a8a4 100644 --- a/lib/chain/chainentry.js +++ b/lib/chain/chainentry.js @@ -10,8 +10,8 @@ var BN = require('bn.js'); var Network = require('../protocol/network'); var constants = require('../protocol/constants'); -var utils = require('../utils/utils'); -var btcutils = require('../utils/btcutils'); +var util = require('../utils/util'); +var btcutils = require('../btc/btcutils'); var crypto = require('../crypto/crypto'); var assert = require('assert'); var BufferWriter = require('../utils/writer'); @@ -76,12 +76,12 @@ function ChainEntry(chain, options, prev) { ChainEntry.prototype.fromOptions = function fromOptions(options, prev) { assert(options, 'Block data is required.'); assert(typeof options.hash === 'string'); - assert(utils.isNumber(options.version)); + assert(util.isNumber(options.version)); assert(typeof options.prevBlock === 'string'); assert(typeof options.merkleRoot === 'string'); - assert(utils.isNumber(options.ts)); - assert(utils.isNumber(options.bits)); - assert(utils.isNumber(options.nonce)); + assert(util.isNumber(options.ts)); + assert(util.isNumber(options.bits)); + assert(util.isNumber(options.nonce)); assert(!options.chainwork || BN.isBN(options.chainwork)); this.hash = options.hash; @@ -189,7 +189,7 @@ ChainEntry.prototype.getAncestors = co(function* getAncestors(max) { if (max === 0) return ancestors; - assert(utils.isNumber(max)); + assert(util.isNumber(max)); // Try to do this iteratively and synchronously // so we don't have to wait on nextTicks. @@ -376,7 +376,7 @@ ChainEntry.prototype.hasBit = function hasBit(deployment) { }; ChainEntry.prototype.__defineGetter__('rhash', function() { - return utils.revHex(this.hash); + return util.revHex(this.hash); }); /** @@ -481,10 +481,10 @@ ChainEntry.fromRaw = function fromRaw(chain, data) { ChainEntry.prototype.toJSON = function toJSON() { return { - hash: utils.revHex(this.hash), + hash: util.revHex(this.hash), version: this.version, - prevBlock: utils.revHex(this.prevBlock), - merkleRoot: utils.revHex(this.merkleRoot), + prevBlock: util.revHex(this.prevBlock), + merkleRoot: util.revHex(this.merkleRoot), ts: this.ts, bits: this.bits, nonce: this.nonce, @@ -502,18 +502,18 @@ ChainEntry.prototype.toJSON = function toJSON() { ChainEntry.prototype.fromJSON = function fromJSON(json) { assert(json, 'Block data is required.'); assert(typeof json.hash === 'string'); - assert(utils.isNumber(json.version)); + assert(util.isNumber(json.version)); assert(typeof json.prevBlock === 'string'); assert(typeof json.merkleRoot === 'string'); - assert(utils.isNumber(json.ts)); - assert(utils.isNumber(json.bits)); - assert(utils.isNumber(json.nonce)); + assert(util.isNumber(json.ts)); + assert(util.isNumber(json.bits)); + assert(util.isNumber(json.nonce)); assert(typeof json.chainwork === 'string'); - this.hash = utils.revHex(json.hash); + this.hash = util.revHex(json.hash); this.version = json.version; - this.prevBlock = utils.revHex(json.prevBlock); - this.merkleRoot = utils.revHex(json.merkleRoot); + this.prevBlock = util.revHex(json.prevBlock); + this.merkleRoot = util.revHex(json.merkleRoot); this.ts = json.ts; this.bits = json.bits; this.nonce = json.nonce; diff --git a/lib/chain/coins.js b/lib/chain/coins.js index dd733c09..20264c81 100644 --- a/lib/chain/coins.js +++ b/lib/chain/coins.js @@ -6,7 +6,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var assert = require('assert'); var constants = require('../protocol/constants'); var Coin = require('../primitives/coin'); @@ -51,7 +51,7 @@ function Coins(options) { Coins.prototype.fromOptions = function fromOptions(options) { if (options.version != null) { - assert(utils.isNumber(options.version)); + assert(util.isNumber(options.version)); this.version = options.version; } @@ -61,7 +61,7 @@ Coins.prototype.fromOptions = function fromOptions(options) { } if (options.height != null) { - assert(utils.isNumber(options.height)); + assert(util.isNumber(options.height)); this.height = options.height; } diff --git a/lib/chain/layout-browser.js b/lib/chain/layout-browser.js index fb30592f..b6983efc 100644 --- a/lib/chain/layout-browser.js +++ b/lib/chain/layout-browser.js @@ -6,8 +6,8 @@ 'use strict'; -var utils = require('../utils/utils'); -var pad32 = utils.pad32; +var util = require('../utils/util'); +var pad32 = util.pad32; var layout = { R: 'R', diff --git a/lib/crypto/backend.js b/lib/crypto/backend.js index b8918419..ed85d19e 100644 --- a/lib/crypto/backend.js +++ b/lib/crypto/backend.js @@ -6,7 +6,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var crypto = require('crypto'); var backend = exports; @@ -35,13 +35,13 @@ if (!crypto.pbkdf2) backend.encipher = function encipher(data, key, iv) { var cipher = crypto.createCipheriv('aes-256-cbc', key, iv); - return utils.concat(cipher.update(data), cipher.final()); + return util.concat(cipher.update(data), cipher.final()); }; backend.decipher = function decipher(data, key, iv) { var decipher = crypto.createDecipheriv('aes-256-cbc', key, iv); try { - return utils.concat(decipher.update(data), decipher.final()); + return util.concat(decipher.update(data), decipher.final()); } catch (e) { throw new Error('Bad key for decryption.'); } diff --git a/lib/crypto/ec-secp256k1.js b/lib/crypto/ec-secp256k1.js index 5bf3033b..dbbd9ba3 100644 --- a/lib/crypto/ec-secp256k1.js +++ b/lib/crypto/ec-secp256k1.js @@ -8,7 +8,7 @@ 'use strict'; var assert = require('assert'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var crypto = require('./crypto'); var secp256k1 = require('secp256k1'); @@ -251,12 +251,12 @@ ec.isLowS = function isLowS(sig) { return false; } - if (utils.equal(s, ZERO_S)) + if (util.equal(s, ZERO_S)) return false; // If S is greater than half the order, // it's too high. - if (utils.cmp(s, HALF_ORDER) > 0) + if (util.cmp(s, HALF_ORDER) > 0) return false; return true; diff --git a/lib/crypto/scrypt-async.js b/lib/crypto/scrypt-async.js index db3e73f7..eb0fe710 100644 --- a/lib/crypto/scrypt-async.js +++ b/lib/crypto/scrypt-async.js @@ -33,7 +33,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var crypto = require('./crypto'); var native = require('../utils/native').binding; var U32Array = typeof Uint32Array === 'function' ? Uint32Array : Array; @@ -166,7 +166,7 @@ function blockmix_salsa8(B, Y, Yo, r, callback) { for (i = 0; i < r; i++) blkcpy(B, Y, (i + r) * 64, Yo + (i * 2 + 1) * 64, 64); - utils.nextTick(callback); + util.nextTick(callback); } function integerify(B, r) { diff --git a/lib/db/ldb.js b/lib/db/ldb.js index c8a4440d..032e1d61 100644 --- a/lib/db/ldb.js +++ b/lib/db/ldb.js @@ -9,7 +9,7 @@ var assert = require('assert'); var LowlevelUp = require('./lowlevelup'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var backends = require('./backends'); /** @@ -31,7 +31,7 @@ function LDB(options) { var target = LDB.getTarget(options); if (target.backend !== 'rbt') - utils.mkdir(target.location, true); + util.mkdir(target.location, true); return new LowlevelUp(target.location, { // Generic diff --git a/lib/db/lowlevelup.js b/lib/db/lowlevelup.js index cf3d5b91..edc2b560 100644 --- a/lib/db/lowlevelup.js +++ b/lib/db/lowlevelup.js @@ -9,7 +9,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var assert = require('assert'); var AsyncObject = require('../utils/async'); var co = require('../utils/co'); @@ -55,7 +55,7 @@ function LowlevelUp(file, options) { this.binding = this.db.binding; } -utils.inherits(LowlevelUp, AsyncObject); +util.inherits(LowlevelUp, AsyncObject); /** * Open the database (recallable). @@ -472,7 +472,7 @@ LowlevelUp.prototype.checkVersion = co(function* checkVersion(key, version) { */ LowlevelUp.prototype.clone = co(function* clone(path) { - var options = utils.merge({}, this.options); + var options = util.merge({}, this.options); var opt = { keys: true, values: true }; var hwm = 256 << 20; var total = 0; diff --git a/lib/db/rbt.js b/lib/db/rbt.js index 646417ca..7df37de3 100644 --- a/lib/db/rbt.js +++ b/lib/db/rbt.js @@ -6,7 +6,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var assert = require('assert'); var DUMMY = new Buffer([0]); var RED = 0; @@ -42,7 +42,7 @@ function RBT(location, options) { this.options = options; this.root = SENTINEL; - this.compare = options.compare || utils.cmp; + this.compare = options.compare || util.cmp; } /** @@ -586,7 +586,7 @@ RBT.prototype.open = function open(options, callback) { this.options = options; - utils.nextTick(callback); + util.nextTick(callback); }; /** @@ -595,7 +595,7 @@ RBT.prototype.open = function open(options, callback) { */ RBT.prototype.close = function close(callback) { - utils.nextTick(callback); + util.nextTick(callback); }; /** @@ -622,7 +622,7 @@ RBT.prototype.get = function get(key, options, callback) { err = new Error('RBT_NOTFOUND: Key not found.'); err.notFound = true; err.type = 'NotFoundError'; - utils.nextTick(function() { + util.nextTick(function() { callback(err); }); return; @@ -631,7 +631,7 @@ RBT.prototype.get = function get(key, options, callback) { if (options.asBuffer === false) value = value.toString('utf8'); - utils.nextTick(function() { + util.nextTick(function() { callback(null, value); }); }; @@ -652,7 +652,7 @@ RBT.prototype.put = function put(key, value, options, callback) { this.insert(key, value); - utils.nextTick(callback); + util.nextTick(callback); }; /** @@ -670,7 +670,7 @@ RBT.prototype.del = function del(key, options, callback) { this.remove(key); - utils.nextTick(callback); + util.nextTick(callback); }; /** @@ -741,7 +741,7 @@ RBT.prototype.approximateSize = function approximateSize(start, end, callback) { size += item.value.length; } - utils.nextTick(function() { + util.nextTick(function() { callback(null, size); }); }; @@ -753,7 +753,7 @@ RBT.prototype.approximateSize = function approximateSize(start, end, callback) { */ RBT.destroy = function destroy(location, callback) { - utils.nextTick(callback); + util.nextTick(callback); }; /** @@ -763,7 +763,7 @@ RBT.destroy = function destroy(location, callback) { */ RBT.repair = function repair(location, callback) { - utils.nextTick(callback); + util.nextTick(callback); }; /** @@ -948,7 +948,7 @@ Batch.prototype.write = function write(callback) { var i, op; if (!this.tree) { - utils.nextTick(function() { + util.nextTick(function() { callback(new Error('Already written.')); }); return; @@ -964,7 +964,7 @@ Batch.prototype.write = function write(callback) { this.tree.remove(op.key); break; default: - utils.nextTick(function() { + util.nextTick(function() { callback(new Error('Bad operation: ' + op.type)); }); return; @@ -976,7 +976,7 @@ Batch.prototype.write = function write(callback) { this.options = null; this.tree = null; - utils.nextTick(callback); + util.nextTick(callback); return this; }; @@ -1048,7 +1048,7 @@ Iterator.prototype.next = function(callback) { var item, key, value; if (this.ended) { - utils.nextTick(function() { + util.nextTick(function() { callback(new Error('Cannot call next after end.')); }); return; @@ -1062,14 +1062,14 @@ Iterator.prototype.next = function(callback) { if (this.options.limit != null) { if (this.total++ >= this.options.limit) { this._end(); - utils.nextTick(callback); + util.nextTick(callback); return; } } if (!item) { this._end(); - utils.nextTick(callback); + util.nextTick(callback); return; } @@ -1088,7 +1088,7 @@ Iterator.prototype.next = function(callback) { if (this.options.valueAsBuffer === false) value = value.toString('utf8'); - utils.nextTick(function() { + util.nextTick(function() { callback(null, key, value); }); }; @@ -1106,7 +1106,7 @@ Iterator.prototype.seek = function seek(key) { if (typeof key === 'string') key = new Buffer(key, 'utf8'); - this.index = utils.binarySearch(this.snapshot, key, function(a, b) { + this.index = util.binarySearch(this.snapshot, key, function(a, b) { return self.tree.compare(a.key, b); }, true); }; @@ -1132,7 +1132,7 @@ Iterator.prototype._end = function end() { Iterator.prototype.end = function end(callback) { if (this.ended) { - utils.nextTick(function() { + util.nextTick(function() { callback(new Error('Already ended.')); }); return; @@ -1141,7 +1141,7 @@ Iterator.prototype.end = function end(callback) { this.ended = true; this._end(); - utils.nextTick(callback); + util.nextTick(callback); }; /* diff --git a/lib/env.js b/lib/env.js index a5acb4c4..298a1925 100644 --- a/lib/env.js +++ b/lib/env.js @@ -113,6 +113,13 @@ function Environment() { this.require('bn', 'bn.js'); this.require('elliptic', 'elliptic'); + // BTC + this.require('btc', './btc'); + this.require('amount', './btc/amount'); + this.require('btcutils', './btc/btcutils'); + this.require('errors', './btc/errors'); + this.require('uri', './btc/uri'); + // Horrible BIP this.require('bip70', './bip70'); @@ -200,13 +207,11 @@ function Environment() { this.require('witness', './script/witness'); // Utils - this.require('common', './utils'); // -> common + this.require('utils', './utils'); this.require('base58', './utils/base58'); - this.require('btcutils', './utils/btcutils'); this.require('co', './utils/co'); this.require('reader', './utils/reader'); - this.require('uri', './utils/uri'); - this.require('utils', './utils/utils'); + this.require('util', './utils/util'); this.require('writer', './utils/writer'); // Wallet diff --git a/lib/hd/mnemonic.js b/lib/hd/mnemonic.js index bfbbeb58..bca0532e 100644 --- a/lib/hd/mnemonic.js +++ b/lib/hd/mnemonic.js @@ -6,7 +6,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var crypto = require('../crypto/crypto'); var assert = require('assert'); var constants = require('../protocol/constants'); @@ -72,7 +72,7 @@ Mnemonic.prototype.fromOptions = function fromOptions(options) { options = { phrase: options }; if (options.bits != null) { - assert(utils.isNumber(options.bits)); + assert(util.isNumber(options.bits)); assert(options.bits >= constants.hd.MIN_ENTROPY); assert(options.bits <= constants.hd.MAX_ENTROPY); assert(options.bits % 32 === 0); @@ -245,7 +245,7 @@ Mnemonic.prototype.fromPhrase = function fromPhrase(phrase) { for (i = 0; i < words.length; i++) { word = words[i]; - index = utils.binarySearch(wordlist, word, utils.strcmp); + index = util.binarySearch(wordlist, word, util.strcmp); if (index === -1) throw new Error('Could not find word.'); @@ -340,7 +340,7 @@ Mnemonic.getLanguage = function getLanguage(word) { for (i = 0; i < Mnemonic.languages.length; i++) { lang = Mnemonic.languages[i]; wordlist = Mnemonic.getWordlist(lang); - if (utils.binarySearch(wordlist, word, utils.strcmp) !== -1) + if (util.binarySearch(wordlist, word, util.strcmp) !== -1) return lang; } @@ -379,7 +379,7 @@ Mnemonic.prototype.toJSON = function toJSON() { */ Mnemonic.prototype.fromJSON = function fromJSON(json) { - assert(utils.isNumber(json.bits)); + assert(util.isNumber(json.bits)); assert(typeof json.language === 'string'); assert(typeof json.entropy === 'string'); assert(typeof json.phrase === 'string'); diff --git a/lib/hd/private.js b/lib/hd/private.js index b777e280..55b5313b 100644 --- a/lib/hd/private.js +++ b/lib/hd/private.js @@ -6,7 +6,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var crypto = require('../crypto/crypto'); var ec = require('../crypto/ec'); var assert = require('assert'); @@ -84,9 +84,9 @@ function HDPrivateKey(options) { HDPrivateKey.prototype.fromOptions = function fromOptions(options) { assert(options, 'No options for HD private key.'); - assert(utils.isNumber(options.depth)); + assert(util.isNumber(options.depth)); assert(Buffer.isBuffer(options.parentFingerPrint)); - assert(utils.isNumber(options.childIndex)); + assert(util.isNumber(options.childIndex)); assert(Buffer.isBuffer(options.chainCode)); assert(Buffer.isBuffer(options.privateKey)); assert(options.depth <= 0xff, 'Depth is too high.'); @@ -285,7 +285,7 @@ HDPrivateKey.prototype.getID = function getID(index) { */ HDPrivateKey.prototype.deriveAccount44 = function deriveAccount44(accountIndex, cache) { - assert(utils.isNumber(accountIndex), 'Account index must be a number.'); + assert(util.isNumber(accountIndex), 'Account index must be a number.'); assert(this.isMaster(), 'Cannot derive account index.'); return this .derive(44, true, cache) @@ -429,10 +429,10 @@ HDPrivateKey.prototype.equal = function equal(obj) { return this.network === obj.network && this.depth === obj.depth - && utils.equal(this.parentFingerPrint, obj.parentFingerPrint) + && util.equal(this.parentFingerPrint, obj.parentFingerPrint) && this.childIndex === obj.childIndex - && utils.equal(this.chainCode, obj.chainCode) - && utils.equal(this.privateKey, obj.privateKey); + && util.equal(this.chainCode, obj.chainCode) + && util.equal(this.privateKey, obj.privateKey); }; /** @@ -452,7 +452,7 @@ HDPrivateKey.prototype.compare = function compare(key) { if (cmp !== 0) return cmp; - cmp = utils.cmp(this.parentFingerPrint, key.parentFingerPrint); + cmp = util.cmp(this.parentFingerPrint, key.parentFingerPrint); if (cmp !== 0) return cmp; @@ -462,12 +462,12 @@ HDPrivateKey.prototype.compare = function compare(key) { if (cmp !== 0) return cmp; - cmp = utils.cmp(this.chainCode, key.chainCode); + cmp = util.cmp(this.chainCode, key.chainCode); if (cmp !== 0) return cmp; - cmp = utils.cmp(this.privateKey, key.privateKey); + cmp = util.cmp(this.privateKey, key.privateKey); if (cmp !== 0) return cmp; diff --git a/lib/hd/public.js b/lib/hd/public.js index 35ace54a..925f8c1f 100644 --- a/lib/hd/public.js +++ b/lib/hd/public.js @@ -6,7 +6,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var crypto = require('../crypto/crypto'); var ec = require('../crypto/ec'); var assert = require('assert'); @@ -74,9 +74,9 @@ function HDPublicKey(options) { HDPublicKey.prototype.fromOptions = function fromOptions(options) { assert(options, 'No options for HDPublicKey'); - assert(utils.isNumber(options.depth)); + assert(util.isNumber(options.depth)); assert(Buffer.isBuffer(options.parentFingerPrint)); - assert(utils.isNumber(options.childIndex)); + assert(util.isNumber(options.childIndex)); assert(Buffer.isBuffer(options.chainCode)); assert(Buffer.isBuffer(options.publicKey)); @@ -323,10 +323,10 @@ HDPublicKey.prototype.equal = function equal(obj) { return this.network === obj.network && this.depth === obj.depth - && utils.equal(this.parentFingerPrint, obj.parentFingerPrint) + && util.equal(this.parentFingerPrint, obj.parentFingerPrint) && this.childIndex === obj.childIndex - && utils.equal(this.chainCode, obj.chainCode) - && utils.equal(this.publicKey, obj.publicKey); + && util.equal(this.chainCode, obj.chainCode) + && util.equal(this.publicKey, obj.publicKey); }; /** @@ -346,7 +346,7 @@ HDPublicKey.prototype.compare = function compare(key) { if (cmp !== 0) return cmp; - cmp = utils.cmp(this.parentFingerPrint, key.parentFingerPrint); + cmp = util.cmp(this.parentFingerPrint, key.parentFingerPrint); if (cmp !== 0) return cmp; @@ -356,12 +356,12 @@ HDPublicKey.prototype.compare = function compare(key) { if (cmp !== 0) return cmp; - cmp = utils.cmp(this.chainCode, key.chainCode); + cmp = util.cmp(this.chainCode, key.chainCode); if (cmp !== 0) return cmp; - cmp = utils.cmp(this.publicKey, key.publicKey); + cmp = util.cmp(this.publicKey, key.publicKey); if (cmp !== 0) return cmp; diff --git a/lib/http/base.js b/lib/http/base.js index 733f0d5f..64933a6d 100644 --- a/lib/http/base.js +++ b/lib/http/base.js @@ -8,7 +8,7 @@ 'use strict'; var AsyncObject = require('../utils/async'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var assert = require('assert'); var url = require('url'); @@ -48,7 +48,7 @@ function HTTPBase(options) { this._init(); } -utils.inherits(HTTPBase, AsyncObject); +util.inherits(HTTPBase, AsyncObject); /** * Initialize server. @@ -161,7 +161,7 @@ HTTPBase.prototype._initRouter = function _initRouter() { return done(err); // Avoid stack overflows - utils.nextTick(function() { + util.nextTick(function() { try { callback.call(route.ctx, req, res, _send, next); } catch (e) { @@ -264,7 +264,7 @@ HTTPBase.prototype._handle = function _handle(req, res, _send, callback) { handler = self.stack[i++]; - utils.nextTick(function() { + util.nextTick(function() { if (handler.path && req.pathname.indexOf(handler.path) !== 0) return next(); diff --git a/lib/http/client.js b/lib/http/client.js index 17020196..d0d860fb 100644 --- a/lib/http/client.js +++ b/lib/http/client.js @@ -10,8 +10,8 @@ var Network = require('../protocol/network'); var AsyncObject = require('../utils/async'); var RPCClient = require('./rpcclient'); -var Amount = require('../utils/amount'); -var utils = require('../utils/utils'); +var Amount = require('../btc/amount'); +var util = require('../utils/util'); var co = require('../utils/co'); var request = require('./request').promise; @@ -45,7 +45,7 @@ function HTTPClient(options) { this.rpc = new RPCClient(options); } -utils.inherits(HTTPClient, AsyncObject); +util.inherits(HTTPClient, AsyncObject); /** * Open the client, wait for socket to connect. @@ -617,7 +617,7 @@ HTTPClient.prototype.getWalletCoin = function getWalletCoin(id, account, hash, i */ HTTPClient.prototype.send = function send(id, options) { - options = utils.merge({}, options); + options = util.merge({}, options); options.outputs = options.outputs || []; if (options.rate) @@ -666,7 +666,7 @@ HTTPClient.prototype.setPassphrase = function setPassphrase(id, old, new_) { */ HTTPClient.prototype.createTX = function createTX(id, options) { - options = utils.merge({}, options); + options = util.merge({}, options); if (options.rate) options.rate = Amount.btc(options.rate); @@ -696,7 +696,7 @@ HTTPClient.prototype.sign = function sign(id, tx, options) { if (!options) options = {}; - body = utils.merge({}, options); + body = util.merge({}, options); body.tx = toHex(tx); return this._post('/wallet/' + id + '/sign', body); diff --git a/lib/http/rpc.js b/lib/http/rpc.js index 2560daa4..42bb895d 100644 --- a/lib/http/rpc.js +++ b/lib/http/rpc.js @@ -6,14 +6,14 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var co = require('../utils/co'); var crypto = require('../crypto/crypto'); var assert = require('assert'); var constants = require('../protocol/constants'); var ec = require('../crypto/ec'); var time = require('../net/time'); -var Amount = require('../utils/amount'); +var Amount = require('../btc/amount'); var NetworkAddress = require('../primitives/netaddress'); var Script = require('../script/script'); var Address = require('../primitives/address'); @@ -63,7 +63,7 @@ function RPC(node) { this.coinbase = {}; } -utils.inherits(RPC, EventEmitter); +util.inherits(RPC, EventEmitter); RPC.prototype.execute = function execute(json) { switch (json.method) { @@ -498,7 +498,7 @@ RPC.prototype.getnettotals = function getnettotals(args) { return Promise.resolve({ totalbytesrecv: recv, totalbytessent: sent, - timemillis: utils.ms() + timemillis: util.ms() }); }; @@ -520,8 +520,8 @@ RPC.prototype.getpeerinfo = function getpeerinfo(args) { lastrecv: peer.lastRecv / 1000 | 0, bytessent: peer.socket.bytesWritten, bytesrecv: peer.socket.bytesRead, - conntime: peer.ts !== 0 ? utils.now() - peer.ts : 0, - timeoffset: peer.version ? peer.version.ts - utils.now() : 0, + conntime: peer.ts !== 0 ? util.now() - peer.ts : 0, + timeoffset: peer.version ? peer.version.ts - util.now() : 0, pingtime: peer.lastPing !== -1 ? peer.lastPing / 1000 : 0, minping: peer.minPing !== -1 ? peer.minPing / 1000 : 0, version: peer.version ? peer.version.version : 0, @@ -672,7 +672,7 @@ RPC.prototype.getblockchaininfo = co(function* getblockchaininfo(args) { chain: 'main', blocks: this.chain.height, headers: this.chain.bestHeight, - bestblockhash: utils.revHex(this.chain.tip.hash), + bestblockhash: util.revHex(this.chain.tip.hash), difficulty: this._getDifficulty(), mediantime: yield this.chain.tip.getMedianTimeAsync(), verificationprogress: this.chain.getProgress(), @@ -778,7 +778,7 @@ RPC.prototype._txToJSON = function _txToJSON(tx) { if (tx.isCoinbase()) { out.coinbase = input.script.toJSON(); } else { - out.txid = utils.revHex(input.prevout.hash); + out.txid = util.revHex(input.prevout.hash); out.vout = input.prevout.index; out.scriptSig = { asm: input.script.toASM(), @@ -879,20 +879,20 @@ RPC.prototype._headerToJSON = co(function* _headerToJSON(entry) { var nextHash = yield this.chain.db.getNextHash(entry.hash); return { - hash: utils.revHex(entry.hash), + hash: util.revHex(entry.hash), confirmations: this.chain.height - entry.height + 1, height: entry.height, version: entry.version, - merkleroot: utils.revHex(entry.merkleRoot), + merkleroot: util.revHex(entry.merkleRoot), time: entry.ts, mediantime: medianTime, bits: entry.bits, difficulty: this._getDifficulty(entry), chainwork: entry.chainwork.toString('hex', 64), previousblockhash: entry.prevBlock !== constants.NULL_HASH - ? utils.revHex(entry.prevBlock) + ? util.revHex(entry.prevBlock) : null, - nextblockhash: nextHash ? utils.revHex(nextHash) : null + nextblockhash: nextHash ? util.revHex(nextHash) : null }; }); @@ -902,14 +902,14 @@ RPC.prototype._blockToJSON = co(function* _blockToJSON(entry, block, txDetails) var nextHash = yield this.chain.db.getNextHash(entry.hash); return { - hash: utils.revHex(entry.hash), + hash: util.revHex(entry.hash), confirmations: this.chain.height - entry.height + 1, strippedsize: block.getBaseSize(), size: block.getSize(), weight: block.getWeight(), height: entry.height, version: entry.version, - merkleroot: utils.revHex(entry.merkleRoot), + merkleroot: util.revHex(entry.merkleRoot), tx: block.txs.map(function(tx) { if (txDetails) return self._txToJSON(tx); @@ -921,9 +921,9 @@ RPC.prototype._blockToJSON = co(function* _blockToJSON(entry, block, txDetails) difficulty: this._getDifficulty(entry), chainwork: entry.chainwork.toString('hex', 64), previousblockhash: entry.prevBlock !== constants.NULL_HASH - ? utils.revHex(entry.prevBlock) + ? util.revHex(entry.prevBlock) : null, - nextblockhash: nextHash ? utils.revHex(nextHash) : null + nextblockhash: nextHash ? util.revHex(nextHash) : null }; }); @@ -1117,7 +1117,7 @@ RPC.prototype._mempoolToJSON = function _mempoolToJSON(verbose) { hashes = this.mempool.getSnapshot(); - return hashes.map(utils.revHex); + return hashes.map(util.revHex); }; RPC.prototype._entryToJSON = function _entryToJSON(entry) { @@ -1136,7 +1136,7 @@ RPC.prototype._entryToJSON = function _entryToJSON(entry) { ancestorcount: this.mempool.countAncestors(tx), ancestorsize: entry.sizes, ancestorfees: Amount.btc(entry.fees, true), - depends: this.mempool.getDepends(tx).map(utils.revHex) + depends: this.mempool.getDepends(tx).map(util.revHex) }; }; @@ -1264,7 +1264,7 @@ RPC.prototype.verifytxoutproof = co(function* verifytxoutproof(args) { for (i = 0; i < block.matches.length; i++) { hash = block.matches[i]; - res.push(utils.revHex(hash)); + res.push(util.revHex(hash)); } return res; @@ -1414,7 +1414,7 @@ RPC.prototype.getwork = co(function* getwork(args) { throw new RPCError('getwork ( "data" )'); if (args.length === 1) { - if (!utils.isHex(args[0])) + if (!util.isHex(args[0])) throw new RPCError('Invalid parameter.'); data = new Buffer(args[0], 'hex'); @@ -1482,7 +1482,7 @@ RPC.prototype.getblocktemplate = co(function* getblocktemplate(args) { lpid = opt.longpollid; if (mode === 'proposal') { - if (!utils.isHex(opt.data)) + if (!util.isHex(opt.data)) throw new RPCError('Invalid parameter.'); block = Block.fromRaw(opt.data, 'hex'); @@ -1494,7 +1494,7 @@ RPC.prototype.getblocktemplate = co(function* getblocktemplate(args) { rules = []; for (i = 0; i < opt.rules.length; i++) rules.push(toString(opt.rules[i])); - } else if (utils.isNumber(opt.maxversion)) { + } else if (util.isNumber(opt.maxversion)) { version = opt.maxversion; } @@ -1620,10 +1620,10 @@ RPC.prototype.__template = co(function* _template(version, coinbase, rules) { rules: vbrules, vbavailable: vbavailable, vbrequired: 0, - previousblockhash: utils.revHex(block.prevBlock), + previousblockhash: util.revHex(block.prevBlock), transactions: txs, - longpollid: this.chain.tip.rhash + utils.pad32(this._totalTX()), - target: utils.revHex(attempt.target.toString('hex')), + longpollid: this.chain.tip.rhash + util.pad32(this._totalTX()), + target: util.revHex(attempt.target.toString('hex')), submitold: false, mintime: block.ts, maxtime: time.now() + 2 * 60 * 60, @@ -1635,7 +1635,7 @@ RPC.prototype.__template = co(function* _template(version, coinbase, rules) { sizelimit: constants.block.MAX_SIZE, weightlimit: constants.block.MAX_WEIGHT, curtime: block.ts, - bits: utils.hex32(block.bits), + bits: util.hex32(block.bits), height: attempt.height }; @@ -1693,10 +1693,10 @@ RPC.prototype._poll = co(function* _poll(lpid) { watched = lpid.slice(0, 64); lastTX = +lpid.slice(64, 74); - if (!utils.isHex(watched) || !utils.isNumber(lastTX)) + if (!util.isHex(watched) || !util.isNumber(lastTX)) throw new RPCError('Invalid parameter.'); - watched = utils.revHex(watched); + watched = util.revHex(watched); if (this.chain.tip.hash !== watched) return; @@ -1740,7 +1740,7 @@ RPC.prototype._bindChain = function _bindChain() { if (!self.attempt) return; - if (utils.now() - self.start > 5) + if (util.now() - self.start > 5) self._clearBlock(); }); }; @@ -1761,7 +1761,7 @@ RPC.prototype._getAttempt = co(function* _getAttempt(update) { attempt = yield this.miner.createBlock(); this.attempt = attempt; - this.start = utils.now(); + this.start = util.now(); this.coinbase[attempt.block.merkleRoot] = attempt.coinbase.clone(); return attempt; @@ -1833,7 +1833,7 @@ RPC.prototype.prioritisetransaction = function prioritisetransaction(args) { if (!hash) return Promise.reject(new RPCError('Invalid parameter')); - if (!utils.isNumber(pri) || !utils.isNumber(fee)) + if (!util.isNumber(pri) || !util.isNumber(fee)) return Promise.reject(new RPCError('Invalid parameter')); entry = this.mempool.getEntry(hash); @@ -1911,7 +1911,7 @@ RPC.prototype.setgenerate = co(function* setgenerate(args) { this.proclimit = toNumber(args[1], 0); if (this.mining) - this.miner.start().catch(utils.nop); + this.miner.start().catch(util.nop); else yield this.miner.stop(); @@ -2017,12 +2017,12 @@ RPC.prototype.createrawtransaction = function createrawtransaction(args) { sequence--; if (!hash - || !utils.isNumber(index) + || !util.isNumber(index) || index < 0) { return Promise.reject(new RPCError('Invalid parameter')); } - if (utils.isNumber(input.sequence)) { + if (util.isNumber(input.sequence)) { sequence = toNumber(input.sequence); if (input.sequence < 0 || input.sequence > 0xffffffff) return Promise.reject(new RPCError('Invalid parameter')); @@ -2030,7 +2030,7 @@ RPC.prototype.createrawtransaction = function createrawtransaction(args) { input = new Input({ prevout: { - hash: utils.revHex(hash), + hash: util.revHex(hash), index: index }, sequence: sequence @@ -2145,7 +2145,7 @@ RPC.prototype.sendrawtransaction = function sendrawtransaction(args) { + ' "hexstring" ( allowhighfees )')); } - if (!utils.isHex(args[0])) + if (!util.isHex(args[0])) return Promise.reject(new RPCError('Invalid parameter')); tx = TX.fromRaw(args[0], 'hex'); @@ -2166,7 +2166,7 @@ RPC.prototype.signrawtransaction = co(function* signrawtransaction(args) { + ' sighashtype )'); } - if (!utils.isHex(args[0])) + if (!util.isHex(args[0])) throw new RPCError('Invalid parameter'); raw = new Buffer(args[0], 'hex'); @@ -2205,7 +2205,7 @@ RPC.prototype._signrawtransaction = co(function* signrawtransaction(merged, txs, for (i = 0; i < k.length; i++) { secret = k[i]; - if (!utils.isBase58(secret)) + if (!util.isBase58(secret)) throw new RPCError('Invalid parameter'); key = KeyRing.fromSecret(secret); @@ -2230,15 +2230,15 @@ RPC.prototype._signrawtransaction = co(function* signrawtransaction(merged, txs, value = toSatoshi(prev.amount); if (!hash - || !utils.isNumber(index) + || !util.isNumber(index) || index < 0 - || !utils.isHex(script)) { + || !util.isHex(script)) { throw new RPCError('Invalid parameter'); } script = Script.fromRaw(script, 'hex'); coins.push(new Coin({ - hash: utils.revHex(hash), + hash: util.revHex(hash), index: index, script: script, value: value, @@ -2246,7 +2246,7 @@ RPC.prototype._signrawtransaction = co(function* signrawtransaction(merged, txs, height: -1 })); - if (keys.length === 0 || !utils.isHex(prev.redeemScript)) + if (keys.length === 0 || !util.isHex(prev.redeemScript)) continue; if (script.isScripthash() || script.isWitnessScripthash()) { @@ -2341,7 +2341,7 @@ RPC.prototype.fundrawtransaction = co(function* fundrawtransaction(args) { RPC.prototype._createRedeem = co(function* _createRedeem(args) { var i, m, n, keys, hash, script, key, ring; - if (!utils.isNumber(args[0]) + if (!util.isNumber(args[0]) || !Array.isArray(args[1]) || args[0] < 1 || args[1].length < args[0] @@ -2356,8 +2356,8 @@ RPC.prototype._createRedeem = co(function* _createRedeem(args) { for (i = 0; i < keys.length; i++) { key = keys[i]; - if (!utils.isBase58(key)) { - if (!utils.isHex(key)) + if (!util.isBase58(key)) { + if (!util.isHex(key)) throw new RPCError('Invalid key.'); keys[i] = new Buffer(key, 'hex'); continue; @@ -2749,14 +2749,14 @@ RPC.prototype.dumpwallet = co(function* dumpwallet(args) { throw new RPCError('Invalid parameter.'); file = toString(args[0]); - time = utils.date(); + time = util.date(); out = [ - utils.fmt('# Wallet Dump created by BCoin %s', constants.USER_VERSION), - utils.fmt('# * Created on %s', time), - utils.fmt('# * Best block at time of backup was %d (%s),', + util.fmt('# Wallet Dump created by BCoin %s', constants.USER_VERSION), + util.fmt('# * Created on %s', time), + util.fmt('# * Best block at time of backup was %d (%s),', this.chain.height, this.chain.tip.rhash), - utils.fmt('# mined on %s', utils.date(this.chain.tip.ts)), - utils.fmt('# * File: %s', file), + util.fmt('# mined on %s', util.date(this.chain.tip.ts)), + util.fmt('# * File: %s', file), '' ]; @@ -2778,7 +2778,7 @@ RPC.prototype.dumpwallet = co(function* dumpwallet(args) { if (ring.branch === 1) fmt = '%s %s change=1 addr=%s'; - str = utils.fmt(fmt, ring.toSecret(), time, address); + str = util.fmt(fmt, ring.toSecret(), time, address); out.push(str); } @@ -3085,10 +3085,10 @@ RPC.prototype._toWalletTX = co(function* _toWalletTX(tx) { json = { amount: Amount.btc(receive ? received : -sent, true), confirmations: details.confirmations, - blockhash: details.block ? utils.revHex(details.block) : null, + blockhash: details.block ? util.revHex(details.block) : null, blockindex: details.index, blocktime: details.ts, - txid: utils.revHex(details.hash), + txid: util.revHex(details.hash), walletconflicts: [], time: details.ps, timereceived: details.ps, @@ -3269,7 +3269,7 @@ RPC.prototype.importpubkey = co(function* importpubkey(args) { pubkey = toString(args[0]); - if (!utils.isHex(pubkey)) + if (!util.isHex(pubkey)) throw new RPCError('Invalid paremeter.'); if (args.length > 1) @@ -3337,7 +3337,7 @@ RPC.prototype.listlockunspent = function listlockunspent(args) { for (i = 0; i < outpoints.length; i++) { outpoint = outpoints[i]; out.push({ - txid: utils.revHex(outpoint.hash), + txid: util.revHex(outpoint.hash), vout: outpoint.index }); } @@ -3522,7 +3522,7 @@ RPC.prototype.listsinceblock = co(function* listsinceblock(args) { return { transactions: out, lastblock: highest && highest.block - ? utils.revHex(highest.block) + ? util.revHex(highest.block) : constants.NULL_HASH }; }); @@ -3592,10 +3592,10 @@ RPC.prototype._toListTX = co(function* _toListTX(tx) { label: member.path ? member.path.name : undefined, vout: index, confirmations: details.confirmations, - blockhash: details.block ? utils.revHex(details.block) : null, + blockhash: details.block ? util.revHex(details.block) : null, blockindex: details.index, blocktime: details.ts, - txid: utils.revHex(details.hash), + txid: util.revHex(details.hash), walletconflicts: [], time: details.ps, timereceived: details.ps, @@ -3707,7 +3707,7 @@ RPC.prototype.listunspent = co(function* listunspent(args) { ring = yield this.wallet.getKey(hash); out.push({ - txid: utils.revHex(coin.hash), + txid: util.revHex(coin.hash), vout: coin.index, address: address ? address.toBase58(this.network) : null, account: ring ? ring.name : undefined, @@ -4009,7 +4009,7 @@ RPC.prototype.importprunedfunds = co(function* importprunedfunds(args) { tx = args[0]; block = args[1]; - if (!utils.isHex(tx) || !utils.isHex(block)) + if (!util.isHex(tx) || !util.isHex(block)) throw new RPCError('Invalid parameter.'); tx = TX.fromRaw(tx, 'hex'); @@ -4069,10 +4069,10 @@ RPC.prototype.getmemory = function getmemory(args) { mem = process.memoryUsage(); return Promise.resolve({ - rss: utils.mb(mem.rss), - jsheap: utils.mb(mem.heapUsed), - jsheaptotal: utils.mb(mem.heapTotal), - nativeheap: utils.mb(mem.rss - mem.heapTotal) + rss: util.mb(mem.rss), + jsheap: util.mb(mem.heapUsed), + jsheaptotal: util.mb(mem.heapTotal), + nativeheap: util.mb(mem.rss - mem.heapTotal) }); }; @@ -4135,7 +4135,7 @@ function RPCError(msg) { this.message = msg; } -utils.inherits(RPCError, Error); +util.inherits(RPCError, Error); function toBool(obj, def) { if (typeof obj === 'boolean' || typeof obj === 'number') @@ -4144,7 +4144,7 @@ function toBool(obj, def) { } function toNumber(obj, def) { - if (utils.isNumber(obj)) + if (util.isNumber(obj)) return obj; return def != null ? def : -1; } @@ -4170,11 +4170,11 @@ function toObject(obj, def) { function toHash(obj) { if (!isHash(obj)) return null; - return utils.revHex(obj); + return util.revHex(obj); } function isHash(obj) { - return utils.isHex(obj) && obj.length === 64; + return util.isHex(obj) && obj.length === 64; } function toSatoshi(obj) { diff --git a/lib/http/server.js b/lib/http/server.js index e9f213ba..49085850 100644 --- a/lib/http/server.js +++ b/lib/http/server.js @@ -14,10 +14,10 @@ var EventEmitter = require('events').EventEmitter; var assert = require('assert'); var constants = require('../protocol/constants'); var HTTPBase = require('./base'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var co = require('../utils/co'); var base58 = require('../utils/base58'); -var Amount = require('../utils/amount'); +var Amount = require('../btc/amount'); var Address = require('../primitives/address'); var Bloom = require('../utils/bloom'); var TX = require('../primitives/tx'); @@ -92,7 +92,7 @@ function HTTPServer(options) { this._init(); } -utils.inherits(HTTPServer, EventEmitter); +util.inherits(HTTPServer, EventEmitter); /** * Initialize routes. @@ -131,7 +131,7 @@ HTTPServer.prototype._init = function _init() { res.setHeader('X-Bcoin-Agent', constants.USER_AGENT); res.setHeader('X-Bcoin-Network', this.network.type); res.setHeader('X-Bcoin-Height', this.chain.height + ''); - res.setHeader('X-Bcoin-Tip', utils.revHex(this.chain.tip.hash)); + res.setHeader('X-Bcoin-Tip', util.revHex(this.chain.tip.hash)); next(); }); @@ -249,15 +249,15 @@ HTTPServer.prototype._init = function _init() { if (params.block != null) { if (typeof params.block === 'number') { - assert(utils.isUInt32(params.block), 'Height must be a number.'); + assert(util.isUInt32(params.block), 'Height must be a number.'); options.height = params.block; } else { enforce(typeof params.block === 'string', 'Hash must be a string.'); if (params.block.length !== 64) { options.height = Number(params.block); - enforce(utils.isUInt32(options.height), 'Height must be a number.'); + enforce(util.isUInt32(options.height), 'Height must be a number.'); } else { - options.hash = utils.revHex(params.block); + options.hash = util.revHex(params.block); } } } @@ -265,42 +265,42 @@ HTTPServer.prototype._init = function _init() { if (params.hash) { enforce(typeof params.hash === 'string', 'Hash must be a string.'); enforce(params.hash.length === 64, 'Hash must be a string.'); - options.hash = utils.revHex(params.hash); + options.hash = util.revHex(params.hash); } if (params.index != null) { options.index = Number(params.index); - enforce(utils.isUInt32(options.index), 'Index must be a number.'); + enforce(util.isUInt32(options.index), 'Index must be a number.'); } if (params.height != null) { options.height = Number(params.height); - enforce(utils.isUInt32(options.height), 'Height must be a number.'); + enforce(util.isUInt32(options.height), 'Height must be a number.'); } if (params.start != null) { options.start = Number(params.start); - enforce(utils.isUInt32(options.start), 'Start must be a number.'); + enforce(util.isUInt32(options.start), 'Start must be a number.'); } if (params.end != null) { options.end = Number(params.end); - enforce(utils.isUInt32(options.end), 'End must be a number.'); + enforce(util.isUInt32(options.end), 'End must be a number.'); } if (params.limit != null) { options.limit = Number(params.limit); - enforce(utils.isUInt32(options.limit), 'Limit must be a number.'); + enforce(util.isUInt32(options.limit), 'Limit must be a number.'); } if (params.age != null) { options.age = Number(params.age); - enforce(utils.isUInt32(options.age), 'Age must be a number.'); + enforce(util.isUInt32(options.age), 'Age must be a number.'); } if (params.confirmations != null) { options.confirmations = Number(params.confirmations); - enforce(utils.isNumber(options.confirmations), + enforce(util.isNumber(options.confirmations), 'Confirmations must be a number.'); } @@ -318,23 +318,23 @@ HTTPServer.prototype._init = function _init() { if (params.m != null) { options.m = Number(params.m); - enforce(utils.isUInt32(options.m), 'm must be a number.'); + enforce(util.isUInt32(options.m), 'm must be a number.'); } if (params.n != null) { options.n = Number(params.n); - enforce(utils.isUInt32(options.n), 'n must be a number.'); + enforce(util.isUInt32(options.n), 'n must be a number.'); } if (params.blocks != null) { options.blocks = Number(params.blocks); - enforce(utils.isUInt32(options.blocks), 'Blocks must be a number.'); + enforce(util.isUInt32(options.blocks), 'Blocks must be a number.'); } if (params.subtractFee != null) { if (typeof params.subtractFee === 'number') { options.subtractFee = params.subtractFee; - enforce(utils.isUInt32(options.subtractFee), 'subtractFee must be a number.'); + enforce(util.isUInt32(options.subtractFee), 'subtractFee must be a number.'); } else { options.subtractFee = params.subtractFee; enforce(typeof options.subtractFee === 'boolean', 'subtractFee must be a boolean.'); @@ -353,7 +353,7 @@ HTTPServer.prototype._init = function _init() { if (params.timeout != null) { options.timeout = Number(params.timeout); - enforce(utils.isNumber(options.timeout), 'Timeout must be a number.'); + enforce(util.isNumber(options.timeout), 'Timeout must be a number.'); } if (params.witness != null) { @@ -414,7 +414,7 @@ HTTPServer.prototype._init = function _init() { if (params.account != null) { if (typeof params.account === 'number') { options.account = params.account; - enforce(utils.isUInt32(options.account), 'Account must be a number.'); + enforce(util.isUInt32(options.account), 'Account must be a number.'); } else { enforce(typeof params.account === 'string', 'Account must be a string.'); options.account = params.account; @@ -465,7 +465,7 @@ HTTPServer.prototype._init = function _init() { } if (params.token) { - enforce(utils.isHex(params.token), 'Wallet token must be a hex string.'); + enforce(util.isHex(params.token), 'Wallet token must be a hex string.'); enforce(params.token.length === 64, 'Wallet token must be 32 bytes.'); options.token = new Buffer(params.token, 'hex'); } @@ -586,8 +586,8 @@ HTTPServer.prototype._init = function _init() { progress: this.chain.getProgress(), mempoolTX: totalTX, mempoolSize: size, - uptime: Math.floor(utils.uptime()), - systemTime: utils.now(), + uptime: Math.floor(util.uptime()), + systemTime: util.now(), adjustedTime: time.now(), timeOffset: time.offset, memory: getMemory() @@ -1277,7 +1277,7 @@ HTTPServer.prototype._initIO = function _initIO() { return callback(); } - if (!utils.isHex256(token)) + if (!util.isHex256(token)) return callback({ error: 'Invalid parameter.' }); token = new Buffer(token, 'hex'); @@ -1351,7 +1351,7 @@ HTTPServer.prototype._initIO = function _initIO() { var blocks = args[0]; var rate; - if (blocks != null && !utils.isNumber(blocks)) + if (blocks != null && !util.isNumber(blocks)) return callback({ error: 'Invalid parameter.' }); if (!socket.api) @@ -1373,7 +1373,7 @@ HTTPServer.prototype._initIO = function _initIO() { var data = args[0]; var tx; - if (!utils.isHex(data)) + if (!util.isHex(data)) return callback({ error: 'Invalid parameter.' }); if (!socket.api) @@ -1391,14 +1391,14 @@ HTTPServer.prototype._initIO = function _initIO() { socket.on('scan', function(args, callback) { var start = args[0]; - if (!utils.isHex256(start) && !utils.isUInt32(start)) + if (!util.isHex256(start) && !util.isUInt32(start)) return callback({ error: 'Invalid parameter.' }); if (!socket.api) return callback({ error: 'Not authorized.' }); if (typeof start === 'string') - start = utils.revHex(start); + start = util.revHex(start); socket.scan(start).then(callback, function(err) { callback({ error: err.message }); @@ -1556,7 +1556,7 @@ function ClientSocket(server, socket) { this._init(); } -utils.inherits(ClientSocket, EventEmitter); +util.inherits(ClientSocket, EventEmitter); ClientSocket.prototype._init = function _init() { var self = this; @@ -1598,7 +1598,7 @@ ClientSocket.prototype.addFilter = function addFilter(chunks) { for (i = 0; i < chunks.length; i++) { data = chunks[i]; - if (!utils.isHex(data)) + if (!util.isHex(data)) throw new Error('Not a hex string.'); this.filter.add(data, 'hex'); @@ -1863,10 +1863,10 @@ function getMemory() { mem = process.memoryUsage(); return { - rss: utils.mb(mem.rss), - jsHeap: utils.mb(mem.heapUsed), - jsHeapTotal: utils.mb(mem.heapTotal), - nativeHeap: utils.mb(mem.rss - mem.heapTotal) + rss: util.mb(mem.rss), + jsHeap: util.mb(mem.heapUsed), + jsHeapTotal: util.mb(mem.heapTotal), + nativeHeap: util.mb(mem.rss - mem.heapTotal) }; } diff --git a/lib/http/wallet.js b/lib/http/wallet.js index f1e3c73a..88a89e8b 100644 --- a/lib/http/wallet.js +++ b/lib/http/wallet.js @@ -10,7 +10,7 @@ var assert = require('assert'); var EventEmitter = require('events').EventEmitter; var Network = require('../protocol/network'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var co = require('../utils/co'); var Client = require('./client'); @@ -54,7 +54,7 @@ function HTTPWallet(options) { this._init(); } -utils.inherits(HTTPWallet, EventEmitter); +util.inherits(HTTPWallet, EventEmitter); /** * Initialize the wallet. diff --git a/lib/mempool/fees.js b/lib/mempool/fees.js index 4b29ab17..29c3230c 100644 --- a/lib/mempool/fees.js +++ b/lib/mempool/fees.js @@ -8,14 +8,14 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var assert = require('assert'); var constants = require('../protocol/constants'); var BufferReader = require('../utils/reader'); var BufferWriter = require('../utils/writer'); var Logger = require('../node/logger'); var Network = require('../protocol/network'); -var global = utils.global; +var global = util.global; var Float64Array = global.Float64Array || Array; var Int32Array = global.Int32Array || Array; @@ -457,7 +457,7 @@ PolicyEstimator.prototype.removeTX = function removeTX(hash) { if (!item) { this.logger.spam( 'estimatefee: Mempool tx %s not found.', - utils.revHex(hash)); + util.revHex(hash)); return; } @@ -670,7 +670,7 @@ PolicyEstimator.prototype.estimateFee = function estimateFee(target, smart) { if (smart == null) smart = true; - assert(utils.isUInt32(target), 'Target must be a number.'); + assert(util.isUInt32(target), 'Target must be a number.'); assert(target <= this.feeStats.maxConfirms, 'Too many confirmations for estimate.'); @@ -722,7 +722,7 @@ PolicyEstimator.prototype.estimatePriority = function estimatePriority(target, s if (smart == null) smart = true; - assert(utils.isUInt32(target), 'Target must be a number.'); + assert(util.isUInt32(target), 'Target must be a number.'); assert(target <= this.priStats.maxConfirms, 'Too many confirmations for estimate.'); @@ -816,12 +816,12 @@ function DoubleMap() { } DoubleMap.prototype.insert = function insert(key, value) { - var i = utils.binarySearch(this.buckets, key, compare, true); + var i = util.binarySearch(this.buckets, key, compare, true); this.buckets.splice(i, 0, [key, value]); }; DoubleMap.prototype.search = function search(key) { - var i = utils.binarySearch(this.buckets, key, compare, true); + var i = util.binarySearch(this.buckets, key, compare, true); assert(this.buckets.length !== 0, 'Cannot search.'); return this.buckets[i][1]; }; diff --git a/lib/mempool/mempool.js b/lib/mempool/mempool.js index bb1c7e84..6bf8ce93 100644 --- a/lib/mempool/mempool.js +++ b/lib/mempool/mempool.js @@ -8,11 +8,11 @@ var AsyncObject = require('../utils/async'); var constants = require('../protocol/constants'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var co = require('../utils/co'); var assert = require('assert'); var crypto = require('../crypto/crypto'); -var errors = require('../utils/errors'); +var errors = require('../btc/errors'); var VerifyError = errors.VerifyError; var VerifyResult = errors.VerifyResult; var flags = constants.flags; @@ -109,7 +109,7 @@ function Mempool(options) { this.minRelay = this.network.minRelay; } -utils.inherits(Mempool, AsyncObject); +util.inherits(Mempool, AsyncObject); /** * Open the chain, wait for the database to load. @@ -254,7 +254,7 @@ Mempool.prototype.limitMempoolSize = function limitMempoolSize(entryHash) { return trimmed; hashes = this.getSnapshot(); - end = utils.now() - this.expiryTime; + end = util.now() - this.expiryTime; for (i = 0; i < hashes.length; i++) { hash = hashes[i]; @@ -309,7 +309,7 @@ Mempool.prototype.limitOrphans = function limitOrphans() { hash = orphans[i]; orphans.splice(i, 1); - this.logger.spam('Removing orphan %s from mempool.', utils.revHex(hash)); + this.logger.spam('Removing orphan %s from mempool.', util.revHex(hash)); this.removeOrphan(hash); } @@ -900,7 +900,7 @@ Mempool.prototype.verify = co(function* verify(entry) { // annoying or make others' transactions take longer // to confirm. if (this.limitFree && entry.fee < minFee) { - now = utils.now(); + now = util.now(); // Use an exponentially decaying ~10-minute window: this.freeCount *= Math.pow(1 - 1 / 600, now - this.lastTime); @@ -1842,7 +1842,7 @@ AddressIndex.prototype.addTX = function addTX(tx) { this.index[hash] = items; } - utils.binaryInsert(items, tx.hash(), utils.cmp); + util.binaryInsert(items, tx.hash(), util.cmp); } this.map[key] = hashes; @@ -1863,7 +1863,7 @@ AddressIndex.prototype.removeTX = function removeTX(tx) { if (!items) continue; - utils.binaryRemove(items, tx.hash(), utils.cmp); + util.binaryRemove(items, tx.hash(), util.cmp); if (items.length === 0) delete this.index[hash]; @@ -1907,7 +1907,7 @@ AddressIndex.prototype.addCoin = function addCoin(coin) { } outpoint = Outpoint(coin.hash, coin.index).toRaw(); - utils.binaryInsert(items, outpoint, utils.cmp); + util.binaryInsert(items, outpoint, util.cmp); this.map[key] = hash; }; @@ -1926,7 +1926,7 @@ AddressIndex.prototype.removeCoin = function removeCoin(coin) { return; outpoint = Outpoint(coin.hash, coin.index).toRaw(); - utils.binaryRemove(items, outpoint, utils.cmp); + util.binaryRemove(items, outpoint, util.cmp); if (items.length === 0) delete this.index[hash]; diff --git a/lib/mempool/mempoolentry.js b/lib/mempool/mempoolentry.js index bf1bcf66..388a6d24 100644 --- a/lib/mempool/mempoolentry.js +++ b/lib/mempool/mempoolentry.js @@ -7,8 +7,8 @@ 'use strict'; var constants = require('../protocol/constants'); -var utils = require('../utils/utils'); -var btcutils = require('../utils/btcutils'); +var util = require('../utils/util'); +var btcutils = require('../btc/btcutils'); /** * Represents a mempool entry. @@ -100,7 +100,7 @@ MempoolEntry.prototype.fromTX = function fromTX(tx, height) { this.size = size; this.priority = priority; this.fee = fee; - this.ts = utils.now(); + this.ts = util.now(); this.value = value; this.dependencies = dependencies; diff --git a/lib/mining/miner.js b/lib/mining/miner.js index 99a37d12..3bc575c8 100644 --- a/lib/mining/miner.js +++ b/lib/mining/miner.js @@ -7,7 +7,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var co = require('../utils/co'); var assert = require('assert'); var constants = require('../protocol/constants'); @@ -62,7 +62,7 @@ function Miner(options) { this._init(); } -utils.inherits(Miner, AsyncObject); +util.inherits(Miner, AsyncObject); /** * Initialize the miner options. @@ -73,7 +73,7 @@ Miner.prototype._initOptions = function _initOptions(options) { var i, flags; if (options.version != null) { - assert(utils.isNumber(options.version)); + assert(util.isNumber(options.version)); this.version = options.version; } @@ -95,28 +95,28 @@ Miner.prototype._initOptions = function _initOptions(options) { } if (options.minWeight != null) { - assert(utils.isNumber(options.minWeight)); + assert(util.isNumber(options.minWeight)); this.minWeight = options.minWeight; } if (options.maxWeight != null) { - assert(utils.isNumber(options.maxWeight)); + assert(util.isNumber(options.maxWeight)); this.maxWeight = options.maxWeight; } if (options.maxSigops != null) { - assert(utils.isNumber(options.maxSigops)); + assert(util.isNumber(options.maxSigops)); assert(options.maxSigops <= constants.block.MAX_SIGOPS_WEIGHT); this.maxSigops = options.maxSigops; } if (options.priorityWeight != null) { - assert(utils.isNumber(options.priorityWeight)); + assert(util.isNumber(options.priorityWeight)); this.priorityWeight = options.priorityWeight; } if (options.minPriority != null) { - assert(utils.isNumber(options.minPriority)); + assert(util.isNumber(options.minPriority)); this.minPriority = options.minPriority; } }; @@ -535,7 +535,7 @@ Queue.prototype.size = function size() { }; Queue.prototype.push = function push(item) { - utils.binaryInsert(this.items, item, this.cmp); + util.binaryInsert(this.items, item, this.cmp); }; Queue.prototype.pop = function pop() { diff --git a/lib/mining/minerblock.js b/lib/mining/minerblock.js index dc2640ae..4f66a7a6 100644 --- a/lib/mining/minerblock.js +++ b/lib/mining/minerblock.js @@ -8,8 +8,8 @@ 'use strict'; var assert = require('assert'); -var utils = require('../utils/utils'); -var btcutils = require('../utils/btcutils'); +var util = require('../utils/util'); +var btcutils = require('../btc/btcutils'); var co = require('../utils/co'); var crypto = require('../crypto/crypto'); var constants = require('../protocol/constants'); @@ -78,7 +78,7 @@ function MinerBlock(options) { this._init(); } -utils.inherits(MinerBlock, EventEmitter); +util.inherits(MinerBlock, EventEmitter); /** * Nonce range interval. @@ -93,7 +93,7 @@ MinerBlock.prototype.__defineGetter__('hashes', function() { }); MinerBlock.prototype.__defineGetter__('rate', function() { - return (this.block.nonce / (utils.now() - this.begin)) | 0; + return (this.block.nonce / (util.now() - this.begin)) | 0; }); /** @@ -122,7 +122,7 @@ MinerBlock.prototype._init = function _init() { // of ours. This isn't really // necessary nowdays due to bip34 // (used above). - input.script.set(2, utils.nonce()); + input.script.set(2, util.nonce()); // Let the world know this little // miner succeeded. @@ -374,7 +374,7 @@ MinerBlock.prototype.mine = function mine() { var nonce; // Track how long we've been at it. - this.begin = utils.now(); + this.begin = util.now(); assert(this.block.ts > this.tip.ts); @@ -403,7 +403,7 @@ MinerBlock.prototype.mineAsync = co(function* mineAsync() { var nonce; // Track how long we've been at it. - this.begin = utils.now(); + this.begin = util.now(); assert(this.block.ts > this.tip.ts); @@ -468,7 +468,7 @@ MinerBlock.prototype.sendStatus = function sendStatus() { hashes: this.hashes, hashrate: this.rate, height: this.height, - best: utils.revHex(this.tip.hash) + best: util.revHex(this.tip.hash) }); }; diff --git a/lib/net/bip150.js b/lib/net/bip150.js index daa51dbc..e8e12a52 100644 --- a/lib/net/bip150.js +++ b/lib/net/bip150.js @@ -9,7 +9,7 @@ 'use strict'; var EventEmitter = require('events').EventEmitter; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var co = require('../utils/co'); var crypto = require('../crypto/crypto'); var packets = require('./packets'); @@ -69,7 +69,7 @@ function BIP150(bip151, hostname, outbound, db, identity) { this.timeout = null; } -utils.inherits(BIP150, EventEmitter); +util.inherits(BIP150, EventEmitter); BIP150.prototype.isAuthed = function isAuthed() { if (this.outbound) @@ -85,7 +85,7 @@ BIP150.prototype.challenge = function challenge(hash) { assert(!this.challengeReceived, 'Peer challenged twice.'); this.challengeReceived = true; - if (utils.equal(hash, constants.ZERO_HASH)) + if (util.equal(hash, constants.ZERO_HASH)) throw new Error('Auth failure.'); msg = this.hash(this.input.sid, type, this.publicKey); @@ -112,7 +112,7 @@ BIP150.prototype.reply = function reply(data) { assert(!this.replyReceived, 'Peer replied twice.'); this.replyReceived = true; - if (utils.equal(data, constants.ZERO_SIG64)) + if (util.equal(data, constants.ZERO_SIG64)) throw new Error('Auth failure.'); if (!this.peerIdentity) diff --git a/lib/net/bip151.js b/lib/net/bip151.js index 21d2827b..a43c4c3c 100644 --- a/lib/net/bip151.js +++ b/lib/net/bip151.js @@ -13,7 +13,7 @@ 'use strict'; var EventEmitter = require('events').EventEmitter; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var co = require('../utils/co'); var crypto = require('../crypto/crypto'); var assert = require('assert'); @@ -109,7 +109,7 @@ BIP151Stream.prototype.init = function init(publicKey) { this.chacha.init(this.k1, this.iv); this.aead.init(this.k2, this.iv); - this.lastRekey = utils.now(); + this.lastRekey = util.now(); }; /** @@ -120,7 +120,7 @@ BIP151Stream.prototype.init = function init(publicKey) { */ BIP151Stream.prototype.shouldRekey = function shouldRekey(data) { - var now = utils.now(); + var now = util.now(); this.processed += data.length; @@ -322,7 +322,7 @@ function BIP151(cipher) { this.bip150 = null; } -utils.inherits(BIP151, EventEmitter); +util.inherits(BIP151, EventEmitter); /** * Emit an error. @@ -330,7 +330,7 @@ utils.inherits(BIP151, EventEmitter); */ BIP151.prototype.error = function error() { - var msg = utils.fmt.apply(utils, arguments); + var msg = util.fmt.apply(utils, arguments); this.emit('error', new Error(msg)); }; @@ -409,7 +409,7 @@ BIP151.prototype.encinit = function encinit(publicKey, cipher) { BIP151.prototype.encack = function encack(publicKey) { assert(this.initSent, 'Unsolicited ACK.'); - if (utils.equal(publicKey, constants.ZERO_KEY)) { + if (util.equal(publicKey, constants.ZERO_KEY)) { assert(this.handshake, 'No initialization before rekey.'); if (this.bip150 && this.bip150.auth) { @@ -636,7 +636,7 @@ BIP151.prototype.parse = function parse(data) { // varint-cmdlen(1) str-cmd(1) u32-size(4) payload(0) if (size < 6 || size > constants.MAX_MESSAGE * 3) { this.waiting = 4; - this.error('Bad packet size: %d.', utils.mb(size)); + this.error('Bad packet size: %d.', util.mb(size)); return; } diff --git a/lib/net/bip152.js b/lib/net/bip152.js index 855775e0..6ceeb13e 100644 --- a/lib/net/bip152.js +++ b/lib/net/bip152.js @@ -6,7 +6,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var BufferReader = require('../utils/reader'); var BufferWriter = require('../utils/writer'); var co = require('../utils/co'); @@ -50,7 +50,7 @@ function CompactBlock(options) { this.fromOptions(options); } -utils.inherits(CompactBlock, AbstractBlock); +util.inherits(CompactBlock, AbstractBlock); CompactBlock.prototype._verify = function _verify(ret) { return this.verifyHeaders(ret); @@ -349,7 +349,7 @@ CompactBlock.prototype.fromBlock = function fromBlock(block, witness, nonce) { this.totalTX = block.totalTX; if (!nonce) - nonce = utils.nonce(true); + nonce = util.nonce(true); this.keyNonce = nonce; diff --git a/lib/net/packets.js b/lib/net/packets.js index b7059e4f..abf63e70 100644 --- a/lib/net/packets.js +++ b/lib/net/packets.js @@ -9,7 +9,7 @@ var BN = require('bn.js'); var constants = require('../protocol/constants'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var assert = require('assert'); var crypto = require('../crypto/crypto'); var time = require('./time'); @@ -131,7 +131,7 @@ function VersionPacket(options) { this.fromOptions(options); } -utils.inherits(VersionPacket, Packet); +util.inherits(VersionPacket, Packet); VersionPacket.prototype.cmd = 'version'; VersionPacket.prototype.type = exports.types.VERSION; @@ -378,7 +378,7 @@ function PingPacket(nonce) { this.nonce = nonce || null; } -utils.inherits(PingPacket, Packet); +util.inherits(PingPacket, Packet); PingPacket.prototype.cmd = 'ping'; PingPacket.prototype.type = exports.types.PING; @@ -443,7 +443,7 @@ function PongPacket(nonce) { this.nonce = nonce || new BN(0); } -utils.inherits(PongPacket, Packet); +util.inherits(PongPacket, Packet); PongPacket.prototype.cmd = 'pong'; PongPacket.prototype.type = exports.types.PONG; @@ -542,7 +542,7 @@ function AlertPacket(options) { this.fromOptions(options); } -utils.inherits(AlertPacket, Packet); +util.inherits(AlertPacket, Packet); AlertPacket.prototype.cmd = 'alert'; AlertPacket.prototype.type = exports.types.ALERT; @@ -772,7 +772,7 @@ function GetAddrPacket() { Packet.call(this); } -utils.inherits(GetAddrPacket, Packet); +util.inherits(GetAddrPacket, Packet); GetAddrPacket.prototype.cmd = 'getaddr'; GetAddrPacket.prototype.type = exports.types.GETADDR; @@ -826,7 +826,7 @@ function AddrPacket(items) { this.items = items || []; } -utils.inherits(AddrPacket, Packet); +util.inherits(AddrPacket, Packet); AddrPacket.prototype.cmd = 'addr'; AddrPacket.prototype.type = exports.types.ADDR; @@ -899,7 +899,7 @@ function InvPacket(items) { this.items = items || []; } -utils.inherits(InvPacket, Packet); +util.inherits(InvPacket, Packet); InvPacket.prototype.cmd = 'inv'; InvPacket.prototype.type = exports.types.INV; @@ -970,7 +970,7 @@ function GetDataPacket(items) { InvPacket.call(this, items); } -utils.inherits(GetDataPacket, InvPacket); +util.inherits(GetDataPacket, InvPacket); GetDataPacket.prototype.cmd = 'getdata'; GetDataPacket.prototype.type = exports.types.GETDATA; @@ -1003,7 +1003,7 @@ function NotFoundPacket(items) { InvPacket.call(this, items); } -utils.inherits(NotFoundPacket, InvPacket); +util.inherits(NotFoundPacket, InvPacket); NotFoundPacket.prototype.cmd = 'notfound'; NotFoundPacket.prototype.type = exports.types.NOTFOUND; @@ -1042,7 +1042,7 @@ function GetBlocksPacket(locator, stop) { this.stop = stop || null; } -utils.inherits(GetBlocksPacket, Packet); +util.inherits(GetBlocksPacket, Packet); GetBlocksPacket.prototype.cmd = 'getblocks'; GetBlocksPacket.prototype.type = exports.types.GETBLOCKS; @@ -1124,7 +1124,7 @@ function GetHeadersPacket(locator, stop) { GetBlocksPacket.call(this, locator, stop); } -utils.inherits(GetHeadersPacket, GetBlocksPacket); +util.inherits(GetHeadersPacket, GetBlocksPacket); GetHeadersPacket.prototype.cmd = 'getheaders'; GetHeadersPacket.prototype.type = exports.types.GETHEADERS; @@ -1159,7 +1159,7 @@ function HeadersPacket(items) { this.items = items || []; } -utils.inherits(HeadersPacket, Packet); +util.inherits(HeadersPacket, Packet); HeadersPacket.prototype.cmd = 'headers'; HeadersPacket.prototype.type = exports.types.HEADERS; @@ -1228,7 +1228,7 @@ function SendHeadersPacket() { Packet.call(this); } -utils.inherits(SendHeadersPacket, Packet); +util.inherits(SendHeadersPacket, Packet); SendHeadersPacket.prototype.cmd = 'sendheaders'; SendHeadersPacket.prototype.type = exports.types.SENDHEADERS; @@ -1285,7 +1285,7 @@ function BlockPacket(block, witness) { this.witness = witness || false; } -utils.inherits(BlockPacket, Packet); +util.inherits(BlockPacket, Packet); BlockPacket.prototype.cmd = 'block'; BlockPacket.prototype.type = exports.types.BLOCK; @@ -1345,7 +1345,7 @@ function TXPacket(tx, witness) { this.witness = witness || false; } -utils.inherits(TXPacket, Packet); +util.inherits(TXPacket, Packet); TXPacket.prototype.cmd = 'tx'; TXPacket.prototype.type = exports.types.TX; @@ -1411,7 +1411,7 @@ function RejectPacket(options) { this.fromOptions(options); } -utils.inherits(RejectPacket, Packet); +util.inherits(RejectPacket, Packet); RejectPacket.prototype.cmd = 'reject'; RejectPacket.prototype.type = exports.types.REJECT; @@ -1595,7 +1595,7 @@ function MempoolPacket() { Packet.call(this); } -utils.inherits(MempoolPacket, Packet); +util.inherits(MempoolPacket, Packet); MempoolPacket.prototype.cmd = 'mempool'; MempoolPacket.prototype.type = exports.types.MEMPOOL; @@ -1662,7 +1662,7 @@ function FilterLoadPacket(filter, n, tweak, update) { } } -utils.inherits(FilterLoadPacket, Packet); +util.inherits(FilterLoadPacket, Packet); FilterLoadPacket.prototype.cmd = 'filterload'; FilterLoadPacket.prototype.type = exports.types.FILTERLOAD; @@ -1784,7 +1784,7 @@ function FilterAddPacket(data) { this.data = data || DUMMY; } -utils.inherits(FilterAddPacket, Packet); +util.inherits(FilterAddPacket, Packet); FilterAddPacket.prototype.cmd = 'filteradd'; FilterAddPacket.prototype.type = exports.types.FILTERADD; @@ -1843,7 +1843,7 @@ function FilterClearPacket() { Packet.call(this); } -utils.inherits(FilterClearPacket, Packet); +util.inherits(FilterClearPacket, Packet); FilterClearPacket.prototype.cmd = 'filterclear'; FilterClearPacket.prototype.type = exports.types.FILTERCLEAR; @@ -1897,7 +1897,7 @@ function MerkleBlockPacket(block) { this.block = block || new MerkleBlock(); } -utils.inherits(MerkleBlockPacket, Packet); +util.inherits(MerkleBlockPacket, Packet); MerkleBlockPacket.prototype.cmd = 'merkleblock'; MerkleBlockPacket.prototype.type = exports.types.MERKLEBLOCK; @@ -1955,7 +1955,7 @@ function GetUTXOsPacket(mempool, prevout) { this.prevout = prevout || []; } -utils.inherits(GetUTXOsPacket, Packet); +util.inherits(GetUTXOsPacket, Packet); GetUTXOsPacket.prototype.cmd = 'getutxos'; GetUTXOsPacket.prototype.type = exports.types.GETUTXOS; @@ -2040,7 +2040,7 @@ function UTXOsPacket(options) { this.fromOptions(options); } -utils.inherits(UTXOsPacket, Packet); +util.inherits(UTXOsPacket, Packet); UTXOsPacket.prototype.cmd = 'utxos'; UTXOsPacket.prototype.type = exports.types.UTXOS; @@ -2053,7 +2053,7 @@ UTXOsPacket.prototype.type = exports.types.UTXOS; UTXOsPacket.prototype.fromOptions = function fromOptions(options) { if (options.height != null) { - assert(utils.isNumber(options.height)); + assert(util.isNumber(options.height)); this.height = options.height; } @@ -2196,7 +2196,7 @@ function HaveWitnessPacket() { Packet.call(this); } -utils.inherits(HaveWitnessPacket, Packet); +util.inherits(HaveWitnessPacket, Packet); HaveWitnessPacket.prototype.cmd = 'havewitness'; HaveWitnessPacket.prototype.type = exports.types.HAVEWITNESS; @@ -2250,7 +2250,7 @@ function FeeFilterPacket(rate) { this.rate = rate || 0; } -utils.inherits(FeeFilterPacket, Packet); +util.inherits(FeeFilterPacket, Packet); FeeFilterPacket.prototype.cmd = 'feefilter'; FeeFilterPacket.prototype.type = exports.types.FEEFILTER; @@ -2316,7 +2316,7 @@ function SendCmpctPacket(mode, version) { this.version = version || 1; } -utils.inherits(SendCmpctPacket, Packet); +util.inherits(SendCmpctPacket, Packet); SendCmpctPacket.prototype.cmd = 'sendcmpct'; SendCmpctPacket.prototype.type = exports.types.SENDCMPCT; @@ -2384,7 +2384,7 @@ function CmpctBlockPacket(block, witness) { this.witness = witness || false; } -utils.inherits(CmpctBlockPacket, Packet); +util.inherits(CmpctBlockPacket, Packet); CmpctBlockPacket.prototype.cmd = 'cmpctblock'; CmpctBlockPacket.prototype.type = exports.types.CMPCTBLOCK; @@ -2441,7 +2441,7 @@ function GetBlockTxnPacket(request) { this.request = request || new bip152.TXRequest(); } -utils.inherits(GetBlockTxnPacket, Packet); +util.inherits(GetBlockTxnPacket, Packet); GetBlockTxnPacket.prototype.cmd = 'getblocktxn'; GetBlockTxnPacket.prototype.type = exports.types.GETBLOCKTXN; @@ -2499,7 +2499,7 @@ function BlockTxnPacket(response, witness) { this.witness = witness || false; } -utils.inherits(BlockTxnPacket, Packet); +util.inherits(BlockTxnPacket, Packet); BlockTxnPacket.prototype.cmd = 'blocktxn'; BlockTxnPacket.prototype.type = exports.types.BLOCKTXN; @@ -2559,7 +2559,7 @@ function EncinitPacket(publicKey, cipher) { this.cipher = cipher || 0; } -utils.inherits(EncinitPacket, Packet); +util.inherits(EncinitPacket, Packet); EncinitPacket.prototype.cmd = 'encinit'; EncinitPacket.prototype.type = exports.types.ENCINIT; @@ -2624,7 +2624,7 @@ function EncackPacket(publicKey) { this.publicKey = publicKey || constants.ZERO_KEY; } -utils.inherits(EncackPacket, Packet); +util.inherits(EncackPacket, Packet); EncackPacket.prototype.cmd = 'encack'; EncackPacket.prototype.type = exports.types.ENCACK; @@ -2687,7 +2687,7 @@ function AuthChallengePacket(hash) { this.hash = hash || constants.ZERO_HASH; } -utils.inherits(AuthChallengePacket, Packet); +util.inherits(AuthChallengePacket, Packet); AuthChallengePacket.prototype.cmd = 'authchallenge'; AuthChallengePacket.prototype.type = exports.types.AUTHCHALLENGE; @@ -2750,7 +2750,7 @@ function AuthReplyPacket(signature) { this.signature = signature || constants.ZERO_SIG64; } -utils.inherits(AuthReplyPacket, Packet); +util.inherits(AuthReplyPacket, Packet); AuthReplyPacket.prototype.cmd = 'authreply'; AuthReplyPacket.prototype.type = exports.types.AUTHREPLY; @@ -2813,7 +2813,7 @@ function AuthProposePacket(hash) { this.hash = hash || constants.ZERO_HASH; } -utils.inherits(AuthProposePacket, Packet); +util.inherits(AuthProposePacket, Packet); AuthProposePacket.prototype.cmd = 'authpropose'; AuthProposePacket.prototype.type = exports.types.AUTHPROPOSE; @@ -2879,7 +2879,7 @@ function UnknownPacket(cmd, data) { this.data = data; } -utils.inherits(UnknownPacket, Packet); +util.inherits(UnknownPacket, Packet); UnknownPacket.prototype.type = exports.types.UNKNOWN; diff --git a/lib/net/parser.js b/lib/net/parser.js index 043885f0..2b98dea6 100644 --- a/lib/net/parser.js +++ b/lib/net/parser.js @@ -9,7 +9,7 @@ var Network = require('../protocol/network'); var EventEmitter = require('events').EventEmitter; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var crypto = require('../crypto/crypto'); var assert = require('assert'); var constants = require('../protocol/constants'); @@ -44,7 +44,7 @@ function Parser(options) { this._init(); } -utils.inherits(Parser, EventEmitter); +util.inherits(Parser, EventEmitter); /** * Initialize. Bind to events. @@ -76,7 +76,7 @@ Parser.prototype._init = function _init(str) { */ Parser.prototype.error = function error() { - var msg = utils.fmt.apply(utils, arguments); + var msg = util.fmt.apply(utils, arguments); this.emit('error', new Error(msg)); }; @@ -135,7 +135,7 @@ Parser.prototype.parse = function parse(data) { if (checksum !== this.header.checksum) { this.waiting = 24; this.header = null; - return this.error('Invalid checksum: %d.', utils.hex32(checksum)); + return this.error('Invalid checksum: %d.', util.hex32(checksum)); } try { @@ -165,7 +165,7 @@ Parser.prototype.parseHeader = function parseHeader(data) { magic = data.readUInt32LE(0, true); if (magic !== this.network.magic) - return this.error('Invalid magic value: %s.', utils.hex32(magic)); + return this.error('Invalid magic value: %s.', util.hex32(magic)); // Count length of the cmd for (i = 0; data[i + 4] !== 0 && i < 12; i++); @@ -179,7 +179,7 @@ Parser.prototype.parseHeader = function parseHeader(data) { if (size > constants.MAX_MESSAGE) { this.waiting = 24; - return this.error('Packet length too large: %dmb.', utils.mb(size)); + return this.error('Packet length too large: %dmb.', util.mb(size)); } this.waiting = size; diff --git a/lib/net/peer.js b/lib/net/peer.js index b3172c87..48f8cd18 100644 --- a/lib/net/peer.js +++ b/lib/net/peer.js @@ -10,7 +10,7 @@ var assert = require('assert'); var EventEmitter = require('events').EventEmitter; var tcp = require('./tcp'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var co = require('../utils/co'); var Parser = require('./parser'); var Framer = require('./framer'); @@ -169,7 +169,7 @@ function Peer(pool, addr, socket) { this._init(); } -utils.inherits(Peer, EventEmitter); +util.inherits(Peer, EventEmitter); /** * Globally incremented unique id. @@ -311,7 +311,7 @@ Peer.prototype._connect = function _connect() { return new Promise(function(resolve, reject) { self.socket.once('connect', function() { - self.ts = utils.now(); + self.ts = util.now(); self.connected = true; self.emit('connect'); @@ -660,8 +660,8 @@ Peer.prototype.sendPing = function sendPing() { return Promise.resolve(); } - this.lastPing = utils.ms(); - this.challenge = utils.nonce(); + this.lastPing = util.ms(); + this.challenge = util.nonce(); return this.send(new packets.PingPacket(this.challenge)); }; @@ -772,7 +772,7 @@ Peer.prototype.write = function write(data) { if (this.destroyed) return Promise.resolve(); - this.lastSend = utils.ms(); + this.lastSend = util.ms(); if (this.socket.write(data) === false) { return new Promise(function(resolve, reject) { @@ -839,7 +839,7 @@ Peer.prototype.error = function error(err, keep) { if (typeof args[args.length - 1] === 'boolean') keep = args.pop(); - msg = utils.fmt.apply(utils, args); + msg = util.fmt.apply(utils, args); err = new Error(msg); } @@ -972,7 +972,7 @@ Peer.prototype._onPacket = co(function* onPacket(packet) { */ Peer.prototype.__onPacket = co(function* onPacket(packet) { - this.lastRecv = utils.ms(); + this.lastRecv = util.ms(); if (this.bip151 && !this.bip151.completed @@ -1482,7 +1482,7 @@ Peer.prototype._getBroadcasted = function _getBroadcasted(item) { this.logger.debug( 'Peer requested %s %s as a %s packet (%s).', entry.type === constants.inv.TX ? 'tx' : 'block', - utils.revHex(entry.hash), + util.revHex(entry.hash), item.hasWitness() ? 'witness' : 'normal', this.hostname); @@ -1791,7 +1791,7 @@ Peer.prototype._handlePing = co(function* _handlePing(packet) { Peer.prototype._handlePong = function _handlePong(packet) { var nonce = packet.nonce; - var now = utils.ms(); + var now = util.ms(); if (!this.challenge) { this.logger.debug('Peer sent an unsolicited pong (%s).', this.hostname); @@ -2312,11 +2312,11 @@ Peer.prototype.sendGetHeaders = function sendGetHeaders(locator, stop) { if (packet.locator.length > 0) { height = this.chain.checkHeight(packet.locator[0]); - hash = utils.revHex(packet.locator[0]); + hash = util.revHex(packet.locator[0]); } if (stop) - stop = utils.revHex(stop); + stop = util.revHex(stop); this.logger.debug( 'Height: %d, Hash: %s, Stop: %s', @@ -2342,11 +2342,11 @@ Peer.prototype.sendGetBlocks = function getBlocks(locator, stop) { if (packet.locator.length > 0) { height = this.chain.checkHeight(packet.locator[0]); - hash = utils.revHex(packet.locator[0]); + hash = util.revHex(packet.locator[0]); } if (stop) - stop = utils.revHex(stop); + stop = util.revHex(stop); this.logger.debug( 'Height: %d, Hash: %s, Stop: %s', @@ -2597,7 +2597,7 @@ RequestEntry.prototype._onTimeout = function _onTimeout() { if (!queue) return; - if (utils.binaryRemove(queue, this, compare)) { + if (util.binaryRemove(queue, this, compare)) { if (queue.length === 0) delete this.peer.requestMap[this.cmd]; this.reject(new Error('Timed out: ' + this.cmd)); diff --git a/lib/net/pool.js b/lib/net/pool.js index ead7d638..e7ff90b0 100644 --- a/lib/net/pool.js +++ b/lib/net/pool.js @@ -10,11 +10,11 @@ var assert = require('assert'); var EventEmitter = require('events').EventEmitter; var AsyncObject = require('../utils/async'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var IP = require('../utils/ip'); var co = require('../utils/co'); var constants = require('../protocol/constants'); -var errors = require('../utils/errors'); +var errors = require('../btc/errors'); var VerifyError = errors.VerifyError; var VerifyResult = errors.VerifyResult; var NetworkAddress = require('../primitives/netaddress'); @@ -132,7 +132,7 @@ function Pool(options) { this.blockType = constants.inv.BLOCK; this.txType = constants.inv.TX; - this.localNonce = utils.nonce(); + this.localNonce = util.nonce(); this.spvFilter = null; this.txFilter = null; @@ -158,7 +158,7 @@ function Pool(options) { this._init(); }; -utils.inherits(Pool, AsyncObject); +util.inherits(Pool, AsyncObject); /** * Initialize options. @@ -178,7 +178,7 @@ Pool.prototype._initOptions = function _initOptions() { if (this.options.port != null) this.port = this.options.port; - this.address.ts = utils.now(); + this.address.ts = util.now(); this.address.services = this.services; this.address.setPort(this.port); @@ -435,7 +435,7 @@ Pool.prototype.listen = function listen() { Pool.prototype.unlisten = function unlisten() { var self = this; - if (utils.isBrowser) + if (util.isBrowser) return Promise.resolve(); if (!this.server) @@ -613,7 +613,7 @@ Pool.prototype.addLoader = function addLoader() { this.peers.addLoader(peer); this.fillPeers(); - utils.nextTick(function() { + util.nextTick(function() { self.emit('loader', peer); }); }; @@ -641,7 +641,7 @@ Pool.prototype.setLoader = function setLoader(peer) { peer.sync(); - utils.nextTick(function() { + util.nextTick(function() { self.emit('loader', peer); }); }; @@ -963,7 +963,7 @@ Pool.prototype._handleBlock = co(function* _handleBlock(block, peer) { + ' blocks=%d orphans=%d active=%d' + ' queue=%d target=%s peers=%d' + ' pending=%d jobs=%d', - utils.date(block.ts), + util.date(block.ts), this.chain.height, this.chain.bestHeight, (this.chain.getProgress() * 100).toFixed(2) + '%', @@ -1122,7 +1122,7 @@ Pool.prototype.createPeer = function createPeer(addr, socket) { var data, code; if (payload.data) - data = utils.revHex(payload.data); + data = util.revHex(payload.data); code = constants.rejectByVal[payload.code]; @@ -1392,7 +1392,7 @@ Pool.prototype.addLeech = function addLeech(addr, socket) { this.peers.addLeech(peer); - utils.nextTick(function() { + util.nextTick(function() { self.emit('leech', peer); }); }; @@ -1426,7 +1426,7 @@ Pool.prototype.addPeer = function addPeer() { this.peers.addPending(peer); - utils.nextTick(function() { + util.nextTick(function() { self.emit('peer', peer); }); }; @@ -1553,7 +1553,7 @@ Pool.prototype.getData = co(function* getData(peer, type, hash) { if (type === this.txType) { if (peer.queueTX.length === 0) { - utils.nextTick(function() { + util.nextTick(function() { self.logger.debug( 'Requesting %d/%d txs from peer with getdata (%s).', peer.queueTX.length, @@ -1600,7 +1600,7 @@ Pool.prototype.has = co(function* has(peer, type, hash) { if (this.hasReject(hash)) { this.logger.spam( 'Peer sent a known reject of %s (%s).', - utils.revHex(hash), peer.hostname); + util.revHex(hash), peer.hostname); return true; } @@ -1965,15 +1965,15 @@ PeerList.prototype.addLeech = function addLeech(peer) { }; PeerList.prototype.promote = function promote(peer) { - if (utils.binaryRemove(this.pending, peer, compare)) - utils.binaryInsert(this.regular, peer, compare); + if (util.binaryRemove(this.pending, peer, compare)) + util.binaryInsert(this.regular, peer, compare); }; PeerList.prototype.remove = function remove(peer) { - utils.binaryRemove(this.pending, peer, compare); - utils.binaryRemove(this.regular, peer, compare); - utils.binaryRemove(this.leeches, peer, compare); - utils.binaryRemove(this.all, peer, compare); + util.binaryRemove(this.pending, peer, compare); + util.binaryRemove(this.regular, peer, compare); + util.binaryRemove(this.leeches, peer, compare); + util.binaryRemove(this.all, peer, compare); assert(this.map[peer.hostname]); delete this.map[peer.hostname]; @@ -1989,9 +1989,9 @@ PeerList.prototype.demoteLoader = function demoteLoader() { assert(peer); this.load = null; if (peer.ack) - utils.binaryInsert(this.regular, peer, compare); + util.binaryInsert(this.regular, peer, compare); else - utils.binaryInsert(this.pending, peer, compare); + util.binaryInsert(this.pending, peer, compare); }; PeerList.prototype.repurpose = function repurpose(peer) { @@ -2002,8 +2002,8 @@ PeerList.prototype.repurpose = function repurpose(peer) { if (this.load) this.demoteLoader(); - r1 = utils.binaryRemove(this.pending, peer, compare); - r2 = utils.binaryRemove(this.regular, peer, compare); + r1 = util.binaryRemove(this.pending, peer, compare); + r2 = util.binaryRemove(this.regular, peer, compare); assert(r1 || r2); @@ -2158,7 +2158,7 @@ HostList.prototype.add = function add(addr) { if (this.map[addr.hostname]) return; - utils.binaryInsert(this.items, addr, compare); + util.binaryInsert(this.items, addr, compare); this.map[addr.hostname] = addr; @@ -2177,7 +2177,7 @@ HostList.prototype.remove = function remove(addr) { if (!addr) return; - utils.binaryRemove(this.items, addr, compare); + util.binaryRemove(this.items, addr, compare); delete this.map[addr.hostname]; @@ -2190,7 +2190,7 @@ HostList.prototype.remove = function remove(addr) { */ HostList.prototype.ban = function ban(addr) { - this.misbehaving[addr.host] = utils.now(); + this.misbehaving[addr.host] = util.now(); this.remove(addr); }; @@ -2214,7 +2214,7 @@ HostList.prototype.isMisbehaving = function isMisbehaving(addr) { var time = this.misbehaving[addr.host]; if (time != null) { - if (utils.now() > time + constants.BAN_TIME) { + if (util.now() > time + constants.BAN_TIME) { delete this.misbehaving[addr.host]; return false; } @@ -2359,9 +2359,9 @@ LoadRequest.prototype.finish = function finish() { } if (this.type === this.pool.txType) - utils.binaryRemove(this.peer.queueTX, this, compare); + util.binaryRemove(this.peer.queueTX, this, compare); else - utils.binaryRemove(this.peer.queueBlock, this, compare); + util.binaryRemove(this.peer.queueBlock, this, compare); if (this.timeout != null) { clearTimeout(this.timeout); @@ -2379,7 +2379,7 @@ LoadRequest.prototype.inspect = function inspect() { + ' id=' + this.id + ' type=' + (this.type === this.pool.txType ? 'tx' : 'block') + ' active=' + this.active - + ' hash=' + utils.revHex(this.hash) + + ' hash=' + util.revHex(this.hash) + '>'; }; @@ -2433,7 +2433,7 @@ function BroadcastItem(pool, item) { assert((this.type & constants.WITNESS_MASK) === 0); } -utils.inherits(BroadcastItem, EventEmitter); +util.inherits(BroadcastItem, EventEmitter); /** * Add a callback to be executed on ack, timeout, or reject. @@ -2453,7 +2453,7 @@ BroadcastItem.prototype.start = function start() { assert(!this.pool.invMap[this.hash], 'Already started.'); this.pool.invMap[this.hash] = this; - utils.binaryInsert(this.pool.invItems, this, compare); + util.binaryInsert(this.pool.invItems, this, compare); this.refresh(); @@ -2501,7 +2501,7 @@ BroadcastItem.prototype.finish = function finish(err) { this.timeout = null; delete this.pool.invMap[this.hash]; - utils.binaryRemove(this.pool.invItems, this, compare); + util.binaryRemove(this.pool.invItems, this, compare); for (i = 0; i < this.callback.length; i++) this.callback[i](err); @@ -2553,7 +2553,7 @@ BroadcastItem.prototype.inspect = function inspect() { return ''; }; diff --git a/lib/net/proxysocket.js b/lib/net/proxysocket.js index 3e64ea43..8a4f7bde 100644 --- a/lib/net/proxysocket.js +++ b/lib/net/proxysocket.js @@ -1,6 +1,6 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var crypto = require('../crypto/crypto'); var BufferWriter = require('../utils/writer'); var assert = require('assert'); @@ -30,7 +30,7 @@ function ProxySocket(uri) { this._init(); } -utils.inherits(ProxySocket, EventEmitter); +util.inherits(ProxySocket, EventEmitter); ProxySocket.prototype._init = function _init() { var self = this; @@ -106,7 +106,7 @@ ProxySocket.prototype.connect = function connect(port, host) { return this.once('info', connect.bind(this, port, host)); if (this.info.pow) { - utils.log( + util.log( 'Solving proof of work to create socket (%d, %s) -- please wait.', port, host); @@ -121,9 +121,9 @@ ProxySocket.prototype.connect = function connect(port, host) { nonce++; assert(nonce <= 0xffffffff, 'Could not create socket.'); pow.writeUInt32LE(nonce, 0, true); - } while (utils.cmp(crypto.hash256(pow), this.target) > 0); + } while (util.cmp(crypto.hash256(pow), this.target) > 0); - utils.log('Solved proof of work: %d', nonce); + util.log('Solved proof of work: %d', nonce); } this.socket.emit('tcp connect', port, host, nonce); diff --git a/lib/net/time.js b/lib/net/time.js index 4b51f11e..927daca0 100644 --- a/lib/net/time.js +++ b/lib/net/time.js @@ -7,7 +7,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var EventEmitter = require('events').EventEmitter; /** @@ -40,7 +40,7 @@ function TimeData(limit) { this._checked = false; } -utils.inherits(TimeData, EventEmitter); +util.inherits(TimeData, EventEmitter); /** * Add time data. @@ -49,7 +49,7 @@ utils.inherits(TimeData, EventEmitter); */ TimeData.prototype.add = function add(host, time) { - var sample = time - utils.now(); + var sample = time - util.now(); var i, median, match, offset; if (this.samples.length >= this.limit) @@ -60,7 +60,7 @@ TimeData.prototype.add = function add(host, time) { this.known[host] = sample; - utils.binaryInsert(this.samples, sample, compare); + util.binaryInsert(this.samples, sample, compare); this.emit('sample', sample, this.samples.length); @@ -97,7 +97,7 @@ TimeData.prototype.add = function add(host, time) { */ TimeData.prototype.now = function now() { - return utils.now() + this.offset; + return util.now() + this.offset; }; /* diff --git a/lib/node/config.js b/lib/node/config.js index 4b68a02d..a5ee781c 100644 --- a/lib/node/config.js +++ b/lib/node/config.js @@ -7,7 +7,7 @@ 'use strict'; var Network = require('../protocol/network'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var assert = require('assert'); var fs = require('fs'); @@ -68,14 +68,14 @@ config.parse = function parse(options) { merge(data, arg); } - if (data.config && !utils.isBrowser) { + if (data.config && !util.isBrowser) { prefix = config.getPrefix(data); filename = data.config; if (typeof filename !== 'string') filename = resolve(prefix, 'bcoin.conf'); - dirname = utils.normalize(filename, true); + dirname = util.normalize(filename, true); conf = config.readConfig(filename, prefix, dirname); raw = merge(conf.data, raw); data = merge(conf, data); @@ -97,7 +97,7 @@ config.parse = function parse(options) { // Force fast properties // after all those merges. - utils.fastProp(data); + util.fastProp(data); return data; }; @@ -114,11 +114,11 @@ config.getPrefix = function getPrefix(data) { var network; if (!prefix) - prefix = utils.HOME + '/.bcoin'; + prefix = util.HOME + '/.bcoin'; network = Network.get(data.network).type; - prefix = utils.normalize(prefix); + prefix = util.normalize(prefix); if (network !== 'main') prefix += '/' + network; @@ -441,11 +441,11 @@ config.parseQuery = function parseQuery(query) { var data = {}; var i, parts, index, pair, key, value, alias; - if (!utils.isBrowser) + if (!util.isBrowser) return data; if (query == null) { - query = utils.global.location.search; + query = util.global.location.search; if (typeof query !== 'string') return data; query = query.substring(1); @@ -603,7 +603,7 @@ function path(value, prefix, dirname) { switch (value[0]) { case '~': // home dir - value = utils.HOME + value.substring(1); + value = util.HOME + value.substring(1); break; case '@': // prefix if (prefix) @@ -615,7 +615,7 @@ function path(value, prefix, dirname) { break; } - return utils.normalize(value); + return util.normalize(value); } function bool(value) { @@ -677,7 +677,7 @@ function file(value, prefix, dirname, enc) { function resolve(a, b) { if (b[0] === '/') return b; - return utils.normalize(a + '/' + b); + return util.normalize(a + '/' + b); } function readFile(file) { diff --git a/lib/node/fullnode.js b/lib/node/fullnode.js index 51e43b12..6c54a6eb 100644 --- a/lib/node/fullnode.js +++ b/lib/node/fullnode.js @@ -8,7 +8,7 @@ 'use strict'; var constants = require('../protocol/constants'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var co = require('../utils/co'); var Node = require('./node'); var Chain = require('../chain/chain'); @@ -168,7 +168,7 @@ function FullNode(options) { this._init(); } -utils.inherits(FullNode, Node); +util.inherits(FullNode, Node); /** * Initialize the node. diff --git a/lib/node/logger.js b/lib/node/logger.js index 622163db..6a67cac6 100644 --- a/lib/node/logger.js +++ b/lib/node/logger.js @@ -6,7 +6,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var assert = require('assert'); var fs = require('fs'); @@ -245,9 +245,9 @@ Logger.prototype.writeConsole = function writeConsole(level, args) { prefix = '[' + level + '] '; - if (utils.isBrowser) { + if (util.isBrowser) { msg = typeof args[0] !== 'object' - ? utils.format(args, false) + ? util.format(args, false) : args[0]; msg = prefix + msg; @@ -262,7 +262,7 @@ Logger.prototype.writeConsole = function writeConsole(level, args) { prefix = '\x1b[' + color + 'm' + prefix + '\x1b[m'; } - msg = prefix + utils.format(args, this.colors); + msg = prefix + util.format(args, this.colors); return level === 'error' ? process.stderr.write(msg + '\n') @@ -288,17 +288,17 @@ Logger.prototype.writeStream = function writeStream(level, args) { if (fs.unsupported) return; - utils.mkdir(this.file, true); + util.mkdir(this.file, true); this.stream = fs.createWriteStream(this.file, { flags: 'a' }); this.stream.on('error', function() {}); } prefix = '[' + level + '] '; - msg = prefix + utils.format(args, false); - msg = '(' + utils.date() + '): ' + msg + '\n'; + msg = prefix + util.format(args, false); + msg = '(' + util.date() + '): ' + msg + '\n'; - if (!utils.isBrowser) + if (!util.isBrowser) msg = process.pid + ' ' + msg; this.stream.write(msg); @@ -317,7 +317,7 @@ Logger.prototype._error = function error(err) { if (this.closed) return; - if (utils.isBrowser && this.console) + if (util.isBrowser && this.console) console.error(err); msg = (err.message + '').replace(/^ *Error: */, ''); @@ -343,10 +343,10 @@ Logger.prototype.memory = function memory() { mem = process.memoryUsage(); this.debug('Memory: rss=%dmb, js-heap=%d/%dmb native-heap=%dmb', - utils.mb(mem.rss), - utils.mb(mem.heapUsed), - utils.mb(mem.heapTotal), - utils.mb(mem.rss - mem.heapTotal)); + util.mb(mem.rss), + util.mb(mem.heapUsed), + util.mb(mem.heapTotal), + util.mb(mem.rss - mem.heapTotal)); }; /* diff --git a/lib/node/node.js b/lib/node/node.js index b6d93ce3..12220b7f 100644 --- a/lib/node/node.js +++ b/lib/node/node.js @@ -8,7 +8,7 @@ 'use strict'; var AsyncObject = require('../utils/async'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var co = require('../utils/co'); var assert = require('assert'); var Network = require('../protocol/network'); @@ -55,7 +55,7 @@ function Node(options) { this.__init(); } -utils.inherits(Node, AsyncObject); +util.inherits(Node, AsyncObject); /** * Initialize node. @@ -186,12 +186,12 @@ Node.prototype.parseOptions = function parseOptions(options) { options.network = Network.get(options.network); if (!options.prefix) - options.prefix = utils.HOME + '/.bcoin'; + options.prefix = util.HOME + '/.bcoin'; if (!options.db) options.db = 'memory'; - options.prefix = utils.normalize(options.prefix); + options.prefix = util.normalize(options.prefix); if (options.logFile && typeof options.logFile !== 'string') { options.logFile = options.prefix; @@ -201,7 +201,7 @@ Node.prototype.parseOptions = function parseOptions(options) { } options.logFile = options.logFile - ? utils.normalize(options.logFile) + ? util.normalize(options.logFile) : null; if (options.fast) { diff --git a/lib/node/spvnode.js b/lib/node/spvnode.js index 80c2c6d3..22fba59b 100644 --- a/lib/node/spvnode.js +++ b/lib/node/spvnode.js @@ -7,7 +7,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var co = require('../utils/co'); var Node = require('./node'); var Chain = require('../chain/chain'); @@ -108,7 +108,7 @@ function SPVNode(options) { this._init(); } -utils.inherits(SPVNode, Node); +util.inherits(SPVNode, Node); /** * Initialize the node. diff --git a/lib/primitives/abstractblock.js b/lib/primitives/abstractblock.js index 17170d41..b418ac8b 100644 --- a/lib/primitives/abstractblock.js +++ b/lib/primitives/abstractblock.js @@ -9,10 +9,10 @@ var assert = require('assert'); var constants = require('../protocol/constants'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var crypto = require('../crypto/crypto'); -var btcutils = require('../utils/btcutils'); -var VerifyResult = require('../utils/errors').VerifyResult; +var btcutils = require('../btc/btcutils'); +var VerifyResult = require('../btc/errors').VerifyResult; var BufferWriter = require('../utils/writer'); var time = require('../net/time'); var InvItem = require('./invitem'); @@ -72,12 +72,12 @@ function AbstractBlock(options) { AbstractBlock.prototype.parseOptions = function parseOptions(options) { assert(options, 'Block data is required.'); - assert(utils.isNumber(options.version)); + assert(util.isNumber(options.version)); assert(typeof options.prevBlock === 'string'); assert(typeof options.merkleRoot === 'string'); - assert(utils.isNumber(options.ts)); - assert(utils.isNumber(options.bits)); - assert(utils.isNumber(options.nonce)); + assert(util.isNumber(options.ts)); + assert(util.isNumber(options.bits)); + assert(util.isNumber(options.nonce)); this.version = options.version; this.prevBlock = options.prevBlock; @@ -87,12 +87,12 @@ AbstractBlock.prototype.parseOptions = function parseOptions(options) { this.nonce = options.nonce; if (options.totalTX != null) { - assert(utils.isNumber(options.totalTX)); + assert(util.isNumber(options.totalTX)); this.totalTX = options.totalTX; } if (options.height != null) { - assert(utils.isNumber(options.height)); + assert(util.isNumber(options.height)); this.height = options.height; } @@ -110,18 +110,18 @@ AbstractBlock.prototype.parseOptions = function parseOptions(options) { AbstractBlock.prototype.parseJSON = function parseJSON(json) { assert(json, 'Block data is required.'); - assert(utils.isNumber(json.version)); + assert(util.isNumber(json.version)); assert(typeof json.prevBlock === 'string'); assert(typeof json.merkleRoot === 'string'); - assert(utils.isNumber(json.ts)); - assert(utils.isNumber(json.bits)); - assert(utils.isNumber(json.nonce)); - assert(utils.isNumber(json.totalTX)); - assert(utils.isNumber(json.height)); + assert(util.isNumber(json.ts)); + assert(util.isNumber(json.bits)); + assert(util.isNumber(json.nonce)); + assert(util.isNumber(json.totalTX)); + assert(util.isNumber(json.height)); this.version = json.version; - this.prevBlock = utils.revHex(json.prevBlock); - this.merkleRoot = utils.revHex(json.merkleRoot); + this.prevBlock = util.revHex(json.prevBlock); + this.merkleRoot = util.revHex(json.merkleRoot); this.ts = json.ts; this.bits = json.bits; this.nonce = json.nonce; @@ -257,7 +257,7 @@ AbstractBlock.prototype.setHeight = function setHeight(height) { }; AbstractBlock.prototype.__defineGetter__('rhash', function() { - return utils.revHex(this.hash('hex')); + return util.revHex(this.hash('hex')); }); /** diff --git a/lib/primitives/address.js b/lib/primitives/address.js index 37325c5a..22fc1ad8 100644 --- a/lib/primitives/address.js +++ b/lib/primitives/address.js @@ -10,7 +10,7 @@ var Network = require('../protocol/network'); var networks = require('../protocol/networks'); var constants = require('../protocol/constants'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var crypto = require('../crypto/crypto'); var assert = require('assert'); var BufferWriter = require('../utils/writer'); @@ -407,8 +407,8 @@ Address.prototype.fromHash = function fromHash(hash, type, version, network) { network = Network.get(network); assert(Buffer.isBuffer(hash)); - assert(utils.isNumber(type)); - assert(utils.isNumber(version)); + assert(util.isNumber(type)); + assert(util.isNumber(version)); assert(Address.getPrefix(type, network) !== -1, 'Not a valid address type.'); diff --git a/lib/primitives/block.js b/lib/primitives/block.js index f9be7521..de9c7409 100644 --- a/lib/primitives/block.js +++ b/lib/primitives/block.js @@ -8,12 +8,12 @@ 'use strict'; var assert = require('assert'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var crypto = require('../crypto/crypto'); -var btcutils = require('../utils/btcutils'); +var btcutils = require('../btc/btcutils'); var constants = require('../protocol/constants'); var AbstractBlock = require('./abstractblock'); -var VerifyResult = require('../utils/errors').VerifyResult; +var VerifyResult = require('../btc/errors').VerifyResult; var BufferWriter = require('../utils/writer'); var BufferReader = require('../utils/reader'); var TX = require('./tx'); @@ -49,7 +49,7 @@ function Block(options) { this.fromOptions(options); } -utils.inherits(Block, AbstractBlock); +util.inherits(Block, AbstractBlock); /** * Inject properties from options object. @@ -568,12 +568,12 @@ Block.prototype.inspect = function inspect() { height: this.height, size: this.getSize(), virtualSize: this.getVirtualSize(), - date: utils.date(this.ts), + date: util.date(this.ts), version: this.version, - prevBlock: utils.revHex(this.prevBlock), - merkleRoot: utils.revHex(this.merkleRoot), + prevBlock: util.revHex(this.prevBlock), + merkleRoot: util.revHex(this.merkleRoot), commitmentHash: this.commitmentHash - ? utils.revHex(this.commitmentHash) + ? util.revHex(this.commitmentHash) : null, ts: this.ts, bits: this.bits, @@ -596,8 +596,8 @@ Block.prototype.toJSON = function toJSON(network) { hash: this.rhash, height: this.height, version: this.version, - prevBlock: utils.revHex(this.prevBlock), - merkleRoot: utils.revHex(this.merkleRoot), + prevBlock: util.revHex(this.prevBlock), + merkleRoot: util.revHex(this.merkleRoot), ts: this.ts, bits: this.bits, nonce: this.nonce, diff --git a/lib/primitives/coin.js b/lib/primitives/coin.js index 2f7cad3f..ba5c61a2 100644 --- a/lib/primitives/coin.js +++ b/lib/primitives/coin.js @@ -8,10 +8,10 @@ 'use strict'; var assert = require('assert'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var constants = require('../protocol/constants'); var Network = require('../protocol/network'); -var Amount = require('../utils/amount'); +var Amount = require('../btc/amount'); var Output = require('./output'); var Script = require('../script/script'); var Network = require('../protocol/network'); @@ -53,7 +53,7 @@ function Coin(options) { this.fromOptions(options); } -utils.inherits(Coin, Output); +util.inherits(Coin, Output); /** * Inject options into coin. @@ -63,12 +63,12 @@ utils.inherits(Coin, Output); Coin.prototype.fromOptions = function fromOptions(options) { assert(options, 'Coin data is required.'); - assert(utils.isNumber(options.version)); - assert(utils.isNumber(options.height)); - assert(utils.isNumber(options.value)); + assert(util.isNumber(options.version)); + assert(util.isNumber(options.height)); + assert(util.isNumber(options.value)); assert(typeof options.coinbase === 'boolean'); assert(options.hash == null || typeof options.hash === 'string'); - assert(options.index == null || utils.isNumber(options.index)); + assert(options.index == null || util.isNumber(options.index)); this.version = options.version; this.height = options.height; @@ -126,7 +126,7 @@ Coin.prototype.inspect = function inspect() { value: Amount.btc(this.value), script: this.script, coinbase: this.coinbase, - hash: this.hash ? utils.revHex(this.hash) : null, + hash: this.hash ? util.revHex(this.hash) : null, index: this.index, address: this.getAddress() }; @@ -155,7 +155,7 @@ Coin.prototype.toJSON = function toJSON(network) { script: this.script.toJSON(), address: address, coinbase: this.coinbase, - hash: this.hash ? utils.revHex(this.hash) : null, + hash: this.hash ? util.revHex(this.hash) : null, index: this.index }; }; @@ -178,19 +178,19 @@ Coin.fromJSON = function fromJSON(json) { Coin.prototype.fromJSON = function fromJSON(json) { assert(json, 'Coin data required.'); - assert(utils.isNumber(json.version)); - assert(utils.isNumber(json.height)); + assert(util.isNumber(json.version)); + assert(util.isNumber(json.height)); assert(typeof json.value === 'string'); assert(typeof json.coinbase === 'boolean'); assert(!json.hash || typeof json.hash === 'string'); - assert(!json.index || utils.isNumber(json.index)); + assert(!json.index || util.isNumber(json.index)); this.version = json.version; this.height = json.height; this.value = Amount.value(json.value); this.script.fromJSON(json.script); this.coinbase = json.coinbase; - this.hash = json.hash ? utils.revHex(json.hash) : null; + this.hash = json.hash ? util.revHex(json.hash) : null; this.index = json.index; return this; @@ -331,7 +331,7 @@ Coin.fromCompressed = function fromCompressed(data, enc) { */ Coin.prototype.fromTX = function fromTX(tx, index) { - assert(utils.isNumber(index)); + assert(util.isNumber(index)); this.version = tx.version; this.height = tx.height; this.value = tx.outputs[index].value; diff --git a/lib/primitives/headers.js b/lib/primitives/headers.js index 01b3db11..5cfb35cc 100644 --- a/lib/primitives/headers.js +++ b/lib/primitives/headers.js @@ -7,7 +7,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var AbstractBlock = require('./abstractblock'); var BufferWriter = require('../utils/writer'); var BufferReader = require('../utils/reader'); @@ -27,7 +27,7 @@ function Headers(options) { AbstractBlock.call(this, options); } -utils.inherits(Headers, AbstractBlock); +util.inherits(Headers, AbstractBlock); /** * Do non-contextual verification on the headers. @@ -63,10 +63,10 @@ Headers.prototype.inspect = function inspect() { type: 'headers', hash: this.rhash, height: this.height, - date: utils.date(this.ts), + date: util.date(this.ts), version: this.version, - prevBlock: utils.revHex(this.prevBlock), - merkleRoot: utils.revHex(this.merkleRoot), + prevBlock: util.revHex(this.prevBlock), + merkleRoot: util.revHex(this.merkleRoot), ts: this.ts, bits: this.bits, nonce: this.nonce, diff --git a/lib/primitives/input.js b/lib/primitives/input.js index e7cdaef3..6d45532c 100644 --- a/lib/primitives/input.js +++ b/lib/primitives/input.js @@ -7,7 +7,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var assert = require('assert'); var constants = require('../protocol/constants'); var Network = require('../protocol/network'); @@ -62,7 +62,7 @@ Input.prototype.fromOptions = function fromOptions(options) { this.script.fromOptions(options.script); if (options.sequence != null) { - assert(utils.isNumber(options.sequence)); + assert(util.isNumber(options.sequence)); this.sequence = options.sequence; } @@ -291,7 +291,7 @@ Input.prototype.toJSON = function toJSON(network) { Input.prototype.fromJSON = function fromJSON(json) { assert(json, 'Input data is required.'); - assert(utils.isNumber(json.sequence)); + assert(util.isNumber(json.sequence)); this.prevout.fromJSON(json.prevout); this.coin = json.coin ? Coin.fromJSON(json.coin) : null; this.script.fromJSON(json.script); diff --git a/lib/primitives/keyring.js b/lib/primitives/keyring.js index 83acf9bb..8b0461cd 100644 --- a/lib/primitives/keyring.js +++ b/lib/primitives/keyring.js @@ -8,7 +8,7 @@ 'use strict'; var constants = require('../protocol/constants'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var crypto = require('../crypto/crypto'); var assert = require('assert'); var networks = require('../protocol/networks'); @@ -610,14 +610,14 @@ KeyRing.prototype.ownHash = function ownHash(hash) { if (!hash) return false; - if (utils.equal(hash, this.keyHash)) + if (util.equal(hash, this.keyHash)) return true; - if (utils.equal(hash, this.scriptHash)) + if (util.equal(hash, this.scriptHash)) return true; if (this.witness) { - if (utils.equal(hash, this.nestedHash)) + if (util.equal(hash, this.nestedHash)) return true; } @@ -673,15 +673,15 @@ KeyRing.prototype.ownOutput = function ownOutput(tx, index) { KeyRing.prototype.getRedeem = function(hash) { if (this.program) { - if (utils.equal(hash, this.nestedHash)) + if (util.equal(hash, this.nestedHash)) return this.program; } if (this.script) { - if (utils.equal(hash, this.scriptHash160)) + if (util.equal(hash, this.scriptHash160)) return this.script; - if (utils.equal(hash, this.scriptHash256)) + if (util.equal(hash, this.scriptHash256)) return this.script; } diff --git a/lib/primitives/memblock.js b/lib/primitives/memblock.js index d8dc1c76..c4a7e728 100644 --- a/lib/primitives/memblock.js +++ b/lib/primitives/memblock.js @@ -7,7 +7,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var AbstractBlock = require('./abstractblock'); var Block = require('./block'); var Script = require('../script/script'); @@ -54,7 +54,7 @@ function MemBlock(options) { this.fromOptions(options); } -utils.inherits(MemBlock, AbstractBlock); +util.inherits(MemBlock, AbstractBlock); /** * Inject properties from options object. diff --git a/lib/primitives/merkleblock.js b/lib/primitives/merkleblock.js index d46ef721..f6aa4057 100644 --- a/lib/primitives/merkleblock.js +++ b/lib/primitives/merkleblock.js @@ -7,13 +7,13 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var crypto = require('../crypto/crypto'); var assert = require('assert'); var constants = require('../protocol/constants'); var DUMMY = new Buffer([0]); var AbstractBlock = require('./abstractblock'); -var VerifyResult = require('../utils/errors').VerifyResult; +var VerifyResult = require('../btc/errors').VerifyResult; var BufferWriter = require('../utils/writer'); var BufferReader = require('../utils/reader'); var Headers = require('./headers'); @@ -48,7 +48,7 @@ function MerkleBlock(options) { this.fromOptions(options); } -utils.inherits(MerkleBlock, AbstractBlock); +util.inherits(MerkleBlock, AbstractBlock); /** * Inject properties from options object. @@ -227,7 +227,7 @@ MerkleBlock.prototype.extractTree = function extractTree() { left = traverse(height - 1, pos * 2); if (pos * 2 + 1 < width(height - 1)) { right = traverse(height - 1, pos * 2 + 1); - if (utils.equal(right, left)) + if (util.equal(right, left)) failed = true; } else { right = left; @@ -320,10 +320,10 @@ MerkleBlock.prototype.inspect = function inspect() { type: 'merkleblock', hash: this.rhash, height: this.height, - date: utils.date(this.ts), + date: util.date(this.ts), version: this.version, - prevBlock: utils.revHex(this.prevBlock), - merkleRoot: utils.revHex(this.merkleRoot), + prevBlock: util.revHex(this.prevBlock), + merkleRoot: util.revHex(this.merkleRoot), ts: this.ts, bits: this.bits, nonce: this.nonce, @@ -423,14 +423,14 @@ MerkleBlock.prototype.toJSON = function toJSON() { hash: this.rhash, height: this.height, version: this.version, - prevBlock: utils.revHex(this.prevBlock), - merkleRoot: utils.revHex(this.merkleRoot), + prevBlock: util.revHex(this.prevBlock), + merkleRoot: util.revHex(this.merkleRoot), ts: this.ts, bits: this.bits, nonce: this.nonce, totalTX: this.totalTX, hashes: this.hashes.map(function(hash) { - return utils.revHex(hash.toString('hex')); + return util.revHex(hash.toString('hex')); }), flags: this.flags.toString('hex') }; @@ -453,7 +453,7 @@ MerkleBlock.prototype.fromJSON = function fromJSON(json) { this.parseJSON(json); for (i = 0; i < json.hashes.length; i++) { - hash = utils.revHex(json.hashes[i]); + hash = util.revHex(json.hashes[i]); this.hashes.push(new Buffer(hash, 'hex')); } diff --git a/lib/primitives/mtx.js b/lib/primitives/mtx.js index 00ff5f77..6fe8139f 100644 --- a/lib/primitives/mtx.js +++ b/lib/primitives/mtx.js @@ -8,12 +8,12 @@ 'use strict'; var assert = require('assert'); -var utils = require('../utils/utils'); -var btcutils = require('../utils/btcutils'); +var util = require('../utils/util'); +var btcutils = require('../btc/btcutils'); var constants = require('../protocol/constants'); var Script = require('../script/script'); var opcodes = Script.opcodes; -var FundingError = require('../utils/errors').FundingError; +var FundingError = require('../btc/errors').FundingError; var TX = require('./tx'); var Input = require('./input'); var Output = require('./output'); @@ -74,7 +74,7 @@ function MTX(options) { this.fromOptions(options); } -utils.inherits(MTX, TX); +util.inherits(MTX, TX); /** * Inject properties from options object. @@ -86,12 +86,12 @@ MTX.prototype.fromOptions = function fromOptions(options) { var i; if (options.version != null) { - assert(utils.isNumber(options.version)); + assert(util.isNumber(options.version)); this.version = options.version; } if (options.flag != null) { - assert(utils.isNumber(options.flag)); + assert(util.isNumber(options.flag)); this.flag = options.flag; } @@ -108,17 +108,17 @@ MTX.prototype.fromOptions = function fromOptions(options) { } if (options.locktime != null) { - assert(utils.isNumber(options.locktime)); + assert(util.isNumber(options.locktime)); this.locktime = options.locktime; } if (options.ps != null) { - assert(utils.isNumber(options.ps)); + assert(util.isNumber(options.ps)); this.ps = options.ps; } if (options.changeIndex != null) { - assert(utils.isNumber(options.changeIndex)); + assert(util.isNumber(options.changeIndex)); this.changeIndex = options.changeIndex; } @@ -198,7 +198,7 @@ MTX.prototype.addOutput = function addOutput(options, value) { output.mutable = true; if (options instanceof Script) { - assert(utils.isNumber(value)); + assert(util.isNumber(value)); assert(value >= 0); output.script.fromOptions(options); output.value = value; @@ -347,7 +347,7 @@ MTX.prototype.scriptVector = function scriptVector(prev, vector, ring) { // P2PK if (prev.isPubkey()) { - if (!utils.equal(prev.get(0), ring.publicKey)) + if (!util.equal(prev.get(0), ring.publicKey)) return false; vector.set(0, opcodes.OP_0); @@ -357,7 +357,7 @@ MTX.prototype.scriptVector = function scriptVector(prev, vector, ring) { // P2PKH if (prev.isPubkeyhash()) { - if (!utils.equal(prev.get(2), ring.keyHash)) + if (!util.equal(prev.get(2), ring.keyHash)) return false; vector.set(0, opcodes.OP_0); @@ -485,7 +485,7 @@ MTX.prototype.signVector = function signVector(prev, vector, sig, ring) { // P2PK if (prev.isPubkey()) { // Make sure the pubkey is ours. - if (!utils.equal(ring.publicKey, prev.get(0))) + if (!util.equal(ring.publicKey, prev.get(0))) return false; // Already signed. @@ -504,7 +504,7 @@ MTX.prototype.signVector = function signVector(prev, vector, sig, ring) { // P2PKH if (prev.isPubkeyhash()) { // Make sure the pubkey hash is ours. - if (!utils.equal(ring.keyHash, prev.get(2))) + if (!util.equal(ring.keyHash, prev.get(2))) return false; // Already signed. @@ -560,7 +560,7 @@ MTX.prototype.signVector = function signVector(prev, vector, sig, ring) { // Find the key index so we can place // the signature in the same index. - keyIndex = utils.indexOf(keys, ring.publicKey); + keyIndex = util.indexOf(keys, ring.publicKey); // Our public key is not in the prev_out // script. We tried to sign a transaction @@ -658,7 +658,7 @@ MTX.prototype.combine = function combine(index, prev, vector, version, data) { if (res) { map[pub] = sig; - if (utils.equal(sig, data)) + if (util.equal(sig, data)) result = true; break; } @@ -1211,7 +1211,7 @@ MTX.prototype.subtractFee = function subtractFee(fee, index) { if (!hash) continue; - if (utils.indexOf(addrs, hash) === -1) + if (util.indexOf(addrs, hash) === -1) continue; } @@ -1496,31 +1496,31 @@ CoinSelector.prototype.fromOptions = function fromOptions(options) { } if (options.height != null) { - assert(utils.isNumber(options.height)); + assert(util.isNumber(options.height)); assert(options.height >= -1); this.height = options.height; } if (options.confirmations != null) { - assert(utils.isNumber(options.confirmations)); + assert(util.isNumber(options.confirmations)); assert(options.confirmations >= -1); this.confirmations = options.confirmations; } if (options.hardFee != null) { - assert(utils.isNumber(options.hardFee)); + assert(util.isNumber(options.hardFee)); assert(options.hardFee >= -1); this.hardFee = options.hardFee; } if (options.rate != null) { - assert(utils.isNumber(options.rate)); + assert(util.isNumber(options.rate)); assert(options.rate >= 0); this.rate = options.rate; } if (options.maxFee != null) { - assert(utils.isNumber(options.maxFee)); + assert(util.isNumber(options.maxFee)); assert(options.maxFee >= -1); this.maxFee = options.maxFee; } @@ -1541,13 +1541,13 @@ CoinSelector.prototype.fromOptions = function fromOptions(options) { } if (options.m != null) { - assert(utils.isNumber(options.m)); + assert(util.isNumber(options.m)); assert(options.m >= 1); this.m = options.m; } if (options.n != null) { - assert(utils.isNumber(options.n)); + assert(util.isNumber(options.n)); assert(options.n >= 1); this.n = options.n; } @@ -1816,11 +1816,11 @@ function sortRandom(a, b) { } function sortInputs(a, b) { - return utils.cmp(a.prevout.toRaw(), b.prevout.toRaw()); + return util.cmp(a.prevout.toRaw(), b.prevout.toRaw()); } function sortOutputs(a, b) { - return utils.cmp(a.toRaw(), b.toRaw()); + return util.cmp(a.toRaw(), b.toRaw()); } /* diff --git a/lib/primitives/netaddress.js b/lib/primitives/netaddress.js index 465eff98..45e75c40 100644 --- a/lib/primitives/netaddress.js +++ b/lib/primitives/netaddress.js @@ -9,7 +9,7 @@ var constants = require('../protocol/constants'); var Network = require('../protocol/network'); var time = require('../net/time'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var IP = require('../utils/ip'); var assert = require('assert'); var BufferWriter = require('../utils/writer'); @@ -172,7 +172,7 @@ NetworkAddress.prototype.inspect = function inspect() { + ' id=' + this.id + ' hostname=' + IP.hostname(this.host, this.port) + ' services=' + this.services.toString(2) - + ' date=' + utils.date(this.ts) + + ' date=' + util.date(this.ts) + '>'; }; diff --git a/lib/primitives/outpoint.js b/lib/primitives/outpoint.js index 92b192f4..2077f482 100644 --- a/lib/primitives/outpoint.js +++ b/lib/primitives/outpoint.js @@ -6,7 +6,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var assert = require('assert'); var constants = require('../protocol/constants'); var BufferWriter = require('../utils/writer'); @@ -38,7 +38,7 @@ function Outpoint(hash, index) { Outpoint.prototype.fromOptions = function fromOptions(options) { assert(typeof options.hash === 'string'); - assert(utils.isNumber(options.index)); + assert(util.isNumber(options.index)); this.hash = options.hash; this.index = options.index; return this; @@ -112,8 +112,8 @@ Outpoint.fromRaw = function fromRaw(data) { Outpoint.prototype.fromJSON = function fromJSON(json) { assert(typeof json.hash === 'string'); - assert(utils.isNumber(json.index)); - this.hash = utils.revHex(json.hash); + assert(util.isNumber(json.index)); + this.hash = util.revHex(json.hash); this.index = json.index; return this; }; @@ -128,7 +128,7 @@ Outpoint.prototype.fromJSON = function fromJSON(json) { Outpoint.prototype.toJSON = function toJSON() { return { - hash: utils.revHex(this.hash), + hash: util.revHex(this.hash), index: this.index }; }; @@ -151,7 +151,7 @@ Outpoint.fromJSON = function fromJSON(json) { */ Outpoint.prototype.fromTX = function fromTX(tx, index) { - assert(utils.isNumber(index)); + assert(util.isNumber(index)); this.hash = tx.hash('hex'); this.index = index; return this; @@ -174,7 +174,7 @@ Outpoint.fromTX = function fromTX(tx, index) { */ Outpoint.prototype.inspect = function inspect() { - return ''; + return ''; }; /* diff --git a/lib/primitives/output.js b/lib/primitives/output.js index 915a2f96..51124c8d 100644 --- a/lib/primitives/output.js +++ b/lib/primitives/output.js @@ -7,9 +7,9 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var constants = require('../protocol/constants'); -var Amount = require('../utils/amount'); +var Amount = require('../btc/amount'); var Network = require('../protocol/network'); var Script = require('../script/script'); var BufferWriter = require('../utils/writer'); @@ -48,7 +48,7 @@ Output.prototype.fromOptions = function fromOptions(options) { assert(options, 'Output data is required.'); if (options.value) { - assert(utils.isNumber(options.value)); + assert(util.isNumber(options.value)); this.value = options.value; } diff --git a/lib/primitives/tx.js b/lib/primitives/tx.js index 343a773a..16f2abb7 100644 --- a/lib/primitives/tx.js +++ b/lib/primitives/tx.js @@ -8,16 +8,16 @@ 'use strict'; var assert = require('assert'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var crypto = require('../crypto/crypto'); -var btcutils = require('../utils/btcutils'); -var Amount = require('../utils/amount'); +var btcutils = require('../btc/btcutils'); +var Amount = require('../btc/amount'); var constants = require('../protocol/constants'); var Network = require('../protocol/network'); var Script = require('../script/script'); var Stack = require('../script/stack'); var BufferWriter = require('../utils/writer'); -var VerifyResult = require('../utils/errors').VerifyResult; +var VerifyResult = require('../btc/errors').VerifyResult; var Input = require('./input'); var Output = require('./output'); var Outpoint = require('./outpoint'); @@ -81,7 +81,7 @@ function TX(options) { this.ts = 0; this.block = null; this.index = -1; - this.ps = utils.now(); + this.ps = util.now(); this.height = -1; this.mutable = false; @@ -116,12 +116,12 @@ TX.prototype.fromOptions = function fromOptions(options) { assert(options, 'TX data is required.'); if (options.version != null) { - assert(utils.isNumber(options.version)); + assert(util.isNumber(options.version)); this.version = options.version; } if (options.flag != null) { - assert(utils.isNumber(options.flag)); + assert(util.isNumber(options.flag)); this.flag = options.flag; } @@ -138,12 +138,12 @@ TX.prototype.fromOptions = function fromOptions(options) { } if (options.locktime != null) { - assert(utils.isNumber(options.locktime)); + assert(util.isNumber(options.locktime)); this.locktime = options.locktime; } if (options.ts != null) - assert(utils.isNumber(options.locktime)); + assert(util.isNumber(options.locktime)); this.ts = options.ts; if (options.block !== undefined) { @@ -152,17 +152,17 @@ TX.prototype.fromOptions = function fromOptions(options) { } if (options.index != null) { - assert(utils.isNumber(options.index)); + assert(util.isNumber(options.index)); this.index = options.index; } if (options.ps != null) { - assert(utils.isNumber(options.ps)); + assert(util.isNumber(options.ps)); this.ps = options.ps; } if (options.height != null) { - assert(utils.isNumber(options.height)); + assert(util.isNumber(options.height)); this.height = options.height; } @@ -256,7 +256,7 @@ TX.prototype.witnessHash = function witnessHash(enc) { if (this.isCoinbase()) { return enc === 'hex' ? constants.NULL_HASH - : utils.copy(constants.ZERO_HASH); + : util.copy(constants.ZERO_HASH); } if (!this.hasWitness()) @@ -490,7 +490,7 @@ TX.prototype.signatureHashV0 = function signatureHashV0(index, prev, type) { // Bitcoind used to return 1 as an error code: // it ended up being treated like a hash. if (index >= this.outputs.length) - return utils.copy(constants.ONE_HASH); + return util.copy(constants.ONE_HASH); } // Remove all code separators. @@ -615,7 +615,7 @@ TX.prototype.signatureHashV1 = function signatureHashV1(index, prev, type) { this._hashPrevouts = prevouts; } } else { - prevouts = utils.copy(constants.ZERO_HASH); + prevouts = util.copy(constants.ZERO_HASH); } if (!(type & constants.hashType.ANYONECANPAY) @@ -637,7 +637,7 @@ TX.prototype.signatureHashV1 = function signatureHashV1(index, prev, type) { this._hashSequence = sequences; } } else { - sequences = utils.copy(constants.ZERO_HASH); + sequences = util.copy(constants.ZERO_HASH); } if ((type & 0x1f) !== constants.hashType.SINGLE @@ -661,7 +661,7 @@ TX.prototype.signatureHashV1 = function signatureHashV1(index, prev, type) { output = this.outputs[index]; outputs = crypto.hash256(output.toRaw()); } else { - outputs = utils.copy(constants.ZERO_HASH); + outputs = util.copy(constants.ZERO_HASH); } input = this.inputs[index]; @@ -1132,7 +1132,7 @@ TX.prototype.fillCoins = function fillCoins(coins) { /** * Check finality of transaction by examining nLockTime and nSequences. * @example - * tx.isFinal(network.height + 1, utils.now()); + * tx.isFinal(network.height + 1, util.now()); * @param {Number} height - Height at which to test. This * is usually the chain height, or the chain height + 1 * when the transaction entered the mempool. @@ -1554,7 +1554,7 @@ TX.prototype.getWitnessStandard = function getWitnessStandard() { hash = crypto.hash160(input.witness.get(1)); - if (!utils.equal(hash, prev.get(1))) + if (!util.equal(hash, prev.get(1))) return BAD_WITNESS; continue; @@ -1576,7 +1576,7 @@ TX.prototype.getWitnessStandard = function getWitnessStandard() { hash = crypto.sha256(redeem); - if (!utils.equal(hash, prev.get(1))) + if (!util.equal(hash, prev.get(1))) return BAD_WITNESS; // Based on Johnson Lau's calculations: @@ -1994,16 +1994,16 @@ TX.prototype.isWatched = function isWatched(filter) { TX.prototype.__defineGetter__('rblock', function() { return this.block - ? utils.revHex(this.block) + ? util.revHex(this.block) : null; }); TX.prototype.__defineGetter__('rhash', function() { - return utils.revHex(this.hash('hex')); + return util.revHex(this.hash('hex')); }); TX.prototype.__defineGetter__('rwhash', function() { - return utils.revHex(this.witnessHash('hex')); + return util.revHex(this.witnessHash('hex')); }); TX.prototype.__defineGetter__('txid', function() { @@ -2033,7 +2033,7 @@ TX.prototype.inspect = function inspect() { var rate = this.getRate(); // Rate can exceed 53 bits in testing. - if (!utils.isSafeInteger(rate)) + if (!util.isSafeInteger(rate)) rate = 0; return { @@ -2046,8 +2046,8 @@ TX.prototype.inspect = function inspect() { fee: Amount.btc(this.getFee()), minFee: Amount.btc(this.getMinFee()), rate: Amount.btc(rate), - date: utils.date(this.ts || this.ps), - block: this.block ? utils.revHex(this.block) : null, + date: util.date(this.ts || this.ps), + block: this.block ? util.revHex(this.block) : null, ts: this.ts, ps: this.ps, index: this.index, @@ -2071,19 +2071,19 @@ TX.prototype.toJSON = function toJSON(network) { var rate = this.getRate(); // Rate can exceed 53 bits in testing. - if (!utils.isSafeInteger(rate)) + if (!util.isSafeInteger(rate)) rate = 0; network = Network.get(network); return { - hash: utils.revHex(this.hash('hex')), - witnessHash: utils.revHex(this.witnessHash('hex')), + hash: util.revHex(this.hash('hex')), + witnessHash: util.revHex(this.witnessHash('hex')), height: this.height, - block: this.block ? utils.revHex(this.block) : null, + block: this.block ? util.revHex(this.block) : null, ts: this.ts, ps: this.ps, - date: utils.date(this.ts || this.ps), + date: util.date(this.ts || this.ps), index: this.index, fee: Amount.btc(this.getFee()), rate: Amount.btc(rate), @@ -2110,18 +2110,18 @@ TX.prototype.fromJSON = function fromJSON(json) { assert(json, 'TX data is required.'); assert.equal(json.type, 'tx'); - assert(utils.isNumber(json.version)); - assert(utils.isNumber(json.flag)); + assert(util.isNumber(json.version)); + assert(util.isNumber(json.flag)); assert(Array.isArray(json.inputs)); assert(Array.isArray(json.outputs)); - assert(utils.isNumber(json.locktime)); + assert(util.isNumber(json.locktime)); assert(!json.block || typeof json.block === 'string'); - assert(utils.isNumber(json.height)); - assert(utils.isNumber(json.ts)); - assert(utils.isNumber(json.ps)); - assert(utils.isNumber(json.index)); + assert(util.isNumber(json.height)); + assert(util.isNumber(json.ts)); + assert(util.isNumber(json.ps)); + assert(util.isNumber(json.index)); - this.block = json.block ? utils.revHex(json.block) : null; + this.block = json.block ? util.revHex(json.block) : null; this.height = json.height; this.ts = json.ts; this.ps = json.ps; diff --git a/lib/protocol/constants.js b/lib/protocol/constants.js index 03c401eb..56ecb2e6 100644 --- a/lib/protocol/constants.js +++ b/lib/protocol/constants.js @@ -11,7 +11,7 @@ * @module constants */ -var utils = require('../utils/utils'); +var util = require('../utils/util'); /** * Minimum protocol version we're willing to talk to. @@ -103,7 +103,7 @@ exports.inv = { * @const {RevMap} */ -exports.invByVal = utils.revMap(exports.inv); +exports.invByVal = util.revMap(exports.inv); /** * Witness mask for inv types. @@ -156,7 +156,7 @@ exports.bloom = { * @const {RevMap} */ -exports.filterFlagsByVal = utils.revMap(exports.filterFlags); +exports.filterFlagsByVal = util.revMap(exports.filterFlags); /** * Script opcodes. @@ -304,7 +304,7 @@ exports.opcodes = { * @const {RevMap} */ -exports.opcodesByVal = utils.revMap(exports.opcodes); +exports.opcodesByVal = util.revMap(exports.opcodes); /** * One bitcoin in satoshis. @@ -367,7 +367,7 @@ exports.hashType = { * @const {RevMap} */ -exports.hashTypeByVal = utils.revMap(exports.hashType); +exports.hashTypeByVal = util.revMap(exports.hashType); /** * Amount to multiply base/non-witness sizes by. @@ -515,7 +515,7 @@ exports.reject = { * @const {RevMap} */ -exports.rejectByVal = utils.revMap(exports.reject); +exports.rejectByVal = util.revMap(exports.reject); /** * HD-related constants. @@ -753,7 +753,7 @@ exports.scriptTypes = { * @const {RevMap} */ -exports.scriptTypesByVal = utils.revMap(exports.scriptTypes); +exports.scriptTypesByVal = util.revMap(exports.scriptTypes); /** * Script and locktime flags. See {@link VerifyFlags}. diff --git a/lib/script/encoding.js b/lib/script/encoding.js index 52826c8b..e16784a9 100644 --- a/lib/script/encoding.js +++ b/lib/script/encoding.js @@ -9,11 +9,11 @@ var BN = require('bn.js'); var constants = require('../protocol/constants'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var assert = require('assert'); var opcodes = constants.opcodes; var STACK_FALSE = new Buffer(0); -var ScriptError = require('../utils/errors').ScriptError; +var ScriptError = require('../btc/errors').ScriptError; /** * Test whether the data element is a ripemd160 hash. @@ -432,7 +432,7 @@ exports.num = function num(value, flags, size) { exports.array = function(value) { var neg, result; - if (utils.isNumber(value)) + if (util.isNumber(value)) value = new BN(value); assert(BN.isBN(value)); diff --git a/lib/script/opcode.js b/lib/script/opcode.js index 20c8f940..ebaf1d25 100644 --- a/lib/script/opcode.js +++ b/lib/script/opcode.js @@ -9,7 +9,7 @@ var BN = require('bn.js'); var constants = require('../protocol/constants'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var encoding = require('./encoding'); var BufferWriter = require('../utils/writer'); var assert = require('assert'); @@ -144,7 +144,7 @@ Opcode.fromNumber = function fromNumber(num) { */ Opcode.fromSmall = function fromSmall(num) { - assert(utils.isNumber(num) && num >= 0 && num <= 16); + assert(util.isNumber(num) && num >= 0 && num <= 16); return new Opcode(num === 0 ? 0 : num + 0x50); }; diff --git a/lib/script/program.js b/lib/script/program.js index 0ac3c3eb..9ed9a208 100644 --- a/lib/script/program.js +++ b/lib/script/program.js @@ -8,7 +8,7 @@ 'use strict'; var constants = require('../protocol/constants'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var assert = require('assert'); var scriptTypes = constants.scriptTypes; @@ -28,7 +28,7 @@ function Program(version, data) { if (!(this instanceof Program)) return new Program(version, data); - assert(utils.isNumber(version)); + assert(util.isNumber(version)); assert(Buffer.isBuffer(data)); assert(version >= 0 && version <= 16); assert(data.length >= 2 && data.length <= 40); diff --git a/lib/script/script.js b/lib/script/script.js index b3d9fa1f..d71b9c9a 100644 --- a/lib/script/script.js +++ b/lib/script/script.js @@ -9,7 +9,7 @@ var BN = require('bn.js'); var constants = require('../protocol/constants'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var crypto = require('../crypto/crypto'); var assert = require('assert'); var BufferWriter = require('../utils/writer'); @@ -18,7 +18,7 @@ var opcodes = constants.opcodes; var STACK_TRUE = new Buffer([1]); var STACK_FALSE = new Buffer(0); var STACK_NEGATE = new Buffer([0x81]); -var ScriptError = require('../utils/errors').ScriptError; +var ScriptError = require('../btc/errors').ScriptError; var scriptTypes = constants.scriptTypes; var Program = require('./program'); var Opcode = require('./opcode'); @@ -723,7 +723,7 @@ Script.prototype.execute = function execute(stack, flags, tx, index, version) { v1 = stack.top(-2); v2 = stack.top(-1); - res = utils.equal(v1, v2); + res = util.equal(v1, v2); // if (op == opcodes.OP_NOTEQUAL) // res = !res; @@ -1112,7 +1112,7 @@ Script.prototype.execute = function execute(stack, flags, tx, index, version) { v1 = stack.top(-2); v2 = stack.top(-1); - stack.set(-2, utils.concat(v1, v2)); + stack.set(-2, util.concat(v1, v2)); stack.pop(); @@ -1169,7 +1169,7 @@ Script.prototype.execute = function execute(stack, flags, tx, index, version) { if (stack.length < 1) throw new ScriptError('INVALID_STACK_OPERATION', op, ip); - val = utils.copy(stack.top(-1)); + val = util.copy(stack.top(-1)); stack.set(-1, val); for (i = 0; i < val.length; i++) @@ -1183,7 +1183,7 @@ Script.prototype.execute = function execute(stack, flags, tx, index, version) { if (stack.length < 2) throw new ScriptError('INVALID_STACK_OPERATION', op, ip); - v1 = utils.copy(stack.top(-2)); + v1 = util.copy(stack.top(-2)); v2 = stack.top(-1); if (v1.length < v2.length) { @@ -1390,7 +1390,7 @@ Script.prototype.removeData = function removeData(data) { if (!Script.isMinimal(op.data, op.value)) continue; - if (utils.equal(op.data, data)) + if (util.equal(op.data, data)) index.push(i); } @@ -1424,7 +1424,7 @@ Script.prototype.indexOf = function indexOf(data) { if (!op.data) continue; - if (utils.equal(op.data, data)) + if (util.equal(op.data, data)) return i; } @@ -1573,7 +1573,7 @@ Script.fromPubkeyhash = function fromPubkeyhash(hash) { Script.prototype.fromMultisig = function fromMultisig(m, n, keys) { var i; - assert(utils.isNumber(m) && utils.isNumber(n)); + assert(util.isNumber(m) && util.isNumber(n)); assert(Array.isArray(keys)); assert(keys.length === n, '`n` keys are required for multisig.'); assert(m >= 1 && m <= n); @@ -1673,7 +1673,7 @@ Script.fromNulldata = function fromNulldata(flags) { */ Script.prototype.fromProgram = function fromProgram(version, data) { - assert(utils.isNumber(version) && version >= 0 && version <= 16); + assert(util.isNumber(version) && version >= 0 && version <= 16); assert(Buffer.isBuffer(data) && data.length >= 2 && data.length <= 40); this.push(Opcode.fromSmall(version)); this.push(data); @@ -2394,7 +2394,7 @@ Script.getCoinbaseHeight = function getCoinbaseHeight(raw) { // Ensure the miner serialized the // number in the most minimal fashion. - if (!utils.equal(data, op.data)) + if (!util.equal(data, op.data)) return -1; return height.toNumber(); @@ -3013,7 +3013,7 @@ Script.prototype.fromString = function fromString(code) { } assert(op.indexOf('0x') === 0, 'Unknown opcode.'); op = op.substring(2); - assert(utils.isHex(op), 'Unknown opcode.'); + assert(util.isHex(op), 'Unknown opcode.'); op = new Buffer(op, 'hex'); p.writeBytes(op); continue; @@ -3138,7 +3138,7 @@ Script.verify = function verify(input, witness, output, tx, i, flags) { hadWitness = true; // Input script must be exactly one push of the redeem script. - if (!utils.equal(input.raw, Opcode.fromPush(raw).toRaw())) + if (!util.equal(input.raw, Opcode.fromPush(raw).toRaw())) throw new ScriptError('WITNESS_MALLEATED_P2SH'); // Verify the program in the redeem script. @@ -3194,7 +3194,7 @@ Script.verifyProgram = function verifyProgram(witness, output, flags, tx, i) { witnessScript = stack.pop(); - if (!utils.equal(crypto.sha256(witnessScript), program.data)) + if (!util.equal(crypto.sha256(witnessScript), program.data)) throw new ScriptError('WITNESS_PROGRAM_MISMATCH'); redeem = new Script(witnessScript); @@ -3353,7 +3353,7 @@ Script.verifyMast = function verifyMast(program, stack, output, flags, tx, i) { mastRoot.writeBytes(scriptRoot); mastRoot = crypto.hash256(mastRoot.render()); - if (!utils.equal(mastRoot, program.data)) + if (!util.equal(mastRoot, program.data)) throw new ScriptError('WITNESS_PROGRAM_MISMATCH'); if (version === 0) { @@ -3650,7 +3650,7 @@ Script.isScript = function isScript(obj) { function sortKeys(keys) { return keys.slice().sort(function(a, b) { - return utils.cmp(a, b); + return util.cmp(a, b); }); } diff --git a/lib/script/sigcache.js b/lib/script/sigcache.js index 38de3018..17a11c0e 100644 --- a/lib/script/sigcache.js +++ b/lib/script/sigcache.js @@ -6,7 +6,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var ec = require('../crypto/ec'); var assert = require('assert'); @@ -26,7 +26,7 @@ function SigCache(size) { if (size == null) size = 10000; - assert(utils.isNumber(size)); + assert(util.isNumber(size)); assert(size >= 0); this.size = size; @@ -40,7 +40,7 @@ function SigCache(size) { */ SigCache.prototype.resize = function resize(size) { - assert(utils.isNumber(size)); + assert(util.isNumber(size)); assert(size >= 0); this.size = size; @@ -145,7 +145,7 @@ function SigCacheEntry(sig, key) { */ SigCacheEntry.prototype.equal = function equal(sig, key) { - return utils.equal(this.sig, sig) && utils.equal(this.key, key); + return util.equal(this.sig, sig) && util.equal(this.key, key); }; /* diff --git a/lib/script/witness.js b/lib/script/witness.js index d29fe09c..2c1e0192 100644 --- a/lib/script/witness.js +++ b/lib/script/witness.js @@ -9,7 +9,7 @@ var BN = require('bn.js'); var constants = require('../protocol/constants'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var assert = require('assert'); var opcodes = constants.opcodes; var STACK_FALSE = new Buffer(0); @@ -295,7 +295,7 @@ Witness.prototype.compile = function compile() { */ Witness.prototype.indexOf = function indexOf(data) { - return utils.indexOf(this.items, data); + return util.indexOf(this.items, data); }; /** diff --git a/lib/utils/async.js b/lib/utils/async.js index 48a05a06..df2dd83e 100644 --- a/lib/utils/async.js +++ b/lib/utils/async.js @@ -6,7 +6,7 @@ 'use strict'; -var utils = require('./utils'); +var util = require('./util'); var co = require('./co'); var Locker = require('./locker'); var assert = require('assert'); @@ -33,7 +33,7 @@ function AsyncObject() { this.loaded = false; } -utils.inherits(AsyncObject, EventEmitter); +util.inherits(AsyncObject, EventEmitter); /** * Open the object (recallable). diff --git a/lib/utils/index.js b/lib/utils/index.js index d58341f9..f75fa492 100644 --- a/lib/utils/index.js +++ b/lib/utils/index.js @@ -1,15 +1,12 @@ 'use strict'; -exports.Amount = require('./amount'); exports.ASN1 = require('./asn1'); exports.AsyncObject = require('./async'); exports.base58 = require('./base58'); exports.Bloom = require('./bloom'); exports.RollingFilter = exports.Bloom.Rolling; -exports.btcutils = require('./btcutils'); exports.co = require('./co'); exports.encoding = require('./encoding'); -exports.errors = require('./errors'); exports.IP = require('./ip'); exports.lazy = require('./lazy'); exports.Locker = require('./locker'); @@ -23,6 +20,5 @@ exports.protobuf = require('./protobuf'); exports.ProtoWriter = exports.protobuf.ProtoWriter; exports.ProtoReader = exports.protobuf.ProtoReader; exports.BufferReader = require('./reader'); -exports.uri = require('./uri'); -exports.utils = require('./utils'); +exports.util = require('./util'); exports.BufferWriter = require('./writer'); diff --git a/lib/utils/locker.js b/lib/utils/locker.js index f4011e12..2bc77814 100644 --- a/lib/utils/locker.js +++ b/lib/utils/locker.js @@ -8,7 +8,7 @@ 'use strict'; var EventEmitter = require('events').EventEmitter; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var assert = require('assert'); /** @@ -36,7 +36,7 @@ function Locker(add) { this.unlocker = this.unlock.bind(this); } -utils.inherits(Locker, EventEmitter); +util.inherits(Locker, EventEmitter); /** * Create a closure scoped locker. @@ -87,7 +87,7 @@ Locker.prototype.lock = function lock(arg1, arg2) { if (force) { assert(this.busy); - return Promise.resolve(utils.nop); + return Promise.resolve(util.nop); } if (this.busy) { @@ -213,11 +213,11 @@ MappedLock.prototype.lock = function lock(key, force) { return Promise.reject(new Error('Locker is destroyed.')); if (key == null) - return Promise.resolve(utils.nop); + return Promise.resolve(util.nop); if (force) { assert(this.busy[key]); - return Promise.resolve(utils.nop); + return Promise.resolve(util.nop); } if (this.busy[key]) { diff --git a/lib/utils/protobuf.js b/lib/utils/protobuf.js index 6c334585..770b9a5a 100644 --- a/lib/utils/protobuf.js +++ b/lib/utils/protobuf.js @@ -6,7 +6,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var assert = require('assert'); var BufferReader = require('../utils/reader'); var BufferWriter = require('../utils/writer'); @@ -28,7 +28,7 @@ function ProtoReader(data, zeroCopy) { BufferReader.call(this, data, zeroCopy); } -utils.inherits(ProtoReader, BufferReader); +util.inherits(ProtoReader, BufferReader); ProtoReader.prototype.readVarint = function readVarint() { var result = exports.readVarint(this.data, this.offset); @@ -151,7 +151,7 @@ function ProtoWriter(options) { BufferWriter.call(this, options); } -utils.inherits(ProtoWriter, BufferWriter); +util.inherits(ProtoWriter, BufferWriter); ProtoWriter.prototype.writeVarint = function writeVarint(num) { var size = exports.sizeVarint(num); @@ -167,7 +167,7 @@ ProtoWriter.prototype.writeFieldVarint = function writeFieldVarint(tag, value) { }; ProtoWriter.prototype.writeFieldU64 = function writeFieldU64(tag, value) { - assert(utils.isSafeInteger(value)); + assert(util.isSafeInteger(value)); this.writeFieldVarint(tag, value); }; @@ -218,7 +218,7 @@ exports.readVarint = function readVarint(data, off) { size++; } - assert(utils.isSafeInteger(num), 'Number exceeds 2^53-1.'); + assert(util.isSafeInteger(num), 'Number exceeds 2^53-1.'); return { size: size, value: num }; }; @@ -226,7 +226,7 @@ exports.readVarint = function readVarint(data, off) { exports.writeVarint = function writeVarint(data, num, off) { var ch; - assert(utils.isSafeInteger(num), 'Number exceeds 2^53-1.'); + assert(util.isSafeInteger(num), 'Number exceeds 2^53-1.'); do { assert(off < data.length); @@ -245,7 +245,7 @@ exports.writeVarint = function writeVarint(data, num, off) { exports.sizeVarint = function sizeVarint(num) { var size = 0; - assert(utils.isSafeInteger(num), 'Number exceeds 2^53-1.'); + assert(util.isSafeInteger(num), 'Number exceeds 2^53-1.'); do { num -= num % 0x80; diff --git a/lib/utils/utils.js b/lib/utils/util.js similarity index 78% rename from lib/utils/utils.js rename to lib/utils/util.js index 9650d119..a6b0ea53 100644 --- a/lib/utils/utils.js +++ b/lib/utils/util.js @@ -1,5 +1,5 @@ /*! - * utils.js - utils for bcoin + * util.js - utils for bcoin * Copyright (c) 2014-2015, Fedor Indutny (MIT License) * Copyright (c) 2014-2016, Christopher Jeffrey (MIT License). * https://github.com/bcoin-org/bcoin @@ -10,11 +10,11 @@ /* global gc */ var assert = require('assert'); -var util = require('util'); +var nodeUtil = require('util'); var fs = require('fs'); var os = require('os'); var BN = require('bn.js'); -var utils = exports; +var util = exports; var Number, Math, Date; /** @@ -22,7 +22,7 @@ var Number, Math, Date; * @const {Object} */ -utils.global = (function() { +util.global = (function() { /* global self */ if (this) @@ -44,16 +44,16 @@ utils.global = (function() { * Globals */ -Number = utils.global.Number; -Math = utils.global.Math; -Date = utils.global.Date; +Number = util.global.Number; +Math = util.global.Math; +Date = util.global.Date; /** * Whether we're in a browser or not. * @const {Boolean} */ -utils.isBrowser = +util.isBrowser = (typeof process !== 'undefined' && process.browser) || typeof window !== 'undefined'; @@ -63,9 +63,9 @@ utils.isBrowser = */ if (os.homedir) { - utils.HOME = os.homedir(); + util.HOME = os.homedir(); } else { - utils.HOME = process.env.HOME + util.HOME = process.env.HOME || process.env.USERPROFILE || process.env.HOMEPATH || '/'; @@ -78,7 +78,7 @@ if (os.homedir) { * @method */ -utils.nop = function() {}; +util.nop = function() {}; /** * Garbage collector for `--expose-gc`. @@ -87,7 +87,7 @@ utils.nop = function() {}; * @method */ -utils.gc = !utils.isBrowser && typeof gc === 'function' ? gc : utils.nop; +util.gc = !util.isBrowser && typeof gc === 'function' ? gc : util.nop; /** * Clone a buffer. @@ -95,7 +95,7 @@ utils.gc = !utils.isBrowser && typeof gc === 'function' ? gc : utils.nop; * @returns {Buffer} */ -utils.copy = function copy(data) { +util.copy = function copy(data) { var clone = new Buffer(data.length); data.copy(clone, 0, 0, data.length); return clone; @@ -108,7 +108,7 @@ utils.copy = function copy(data) { * @returns {Buffer} */ -utils.concat = function concat(a, b) { +util.concat = function concat(a, b) { var data = new Buffer(a.length + b.length); a.copy(data, 0); b.copy(data, a.length); @@ -122,7 +122,7 @@ utils.concat = function concat(a, b) { * @returns {Boolean} */ -utils.isBase58 = function isBase58(obj) { +util.isBase58 = function isBase58(obj) { return typeof obj === 'string' && /^[1-9a-zA-Z]+$/.test(obj); }; @@ -131,7 +131,7 @@ utils.isBase58 = function isBase58(obj) { * @returns {Number} */ -utils.uptime = function uptime() { +util.uptime = function uptime() { if (!process.uptime) return 0; return process.uptime(); @@ -143,11 +143,11 @@ utils.uptime = function uptime() { * @returns {Array} */ -utils.hrtime = function hrtime(time) { +util.hrtime = function hrtime(time) { var now, ms, sec; - if (utils.isBrowser) { - now = utils.ms(); + if (util.isBrowser) { + now = util.ms(); if (time) { time = time[0] * 1000 + time[1] / 1e6; now -= time; @@ -171,7 +171,7 @@ utils.hrtime = function hrtime(time) { * @returns {Boolean} */ -utils.isHex = function isHex(obj) { +util.isHex = function isHex(obj) { return typeof obj === 'string' && /^[0-9a-f]+$/i.test(obj) && obj.length % 2 === 0; @@ -184,7 +184,7 @@ utils.isHex = function isHex(obj) { * @returns {Boolean} */ -utils.equal = function equal(a, b) { +util.equal = function equal(a, b) { var i; if (!Buffer.isBuffer(a)) @@ -215,7 +215,7 @@ utils.equal = function equal(a, b) { * @returns {Promise} */ -utils.nextTick = require('./nexttick'); +util.nextTick = require('./nexttick'); /** * Reverse a hex-string (used because of @@ -224,7 +224,7 @@ utils.nextTick = require('./nexttick'); * @returns {String} Reversed hex string. */ -utils.revHex = function revHex(data) { +util.revHex = function revHex(data) { var out = ''; var i; @@ -243,7 +243,7 @@ utils.revHex = function revHex(data) { * @returns {Object} target */ -utils.merge = function merge(target) { +util.merge = function merge(target) { var i, j, obj, keys, key; for (i = 1; i < arguments.length; i++) { @@ -259,7 +259,7 @@ utils.merge = function merge(target) { }; if (Object.assign) - utils.merge = Object.assign; + util.merge = Object.assign; /** * Max safe integer (53 bits). @@ -267,7 +267,7 @@ if (Object.assign) * @default */ -utils.MAX_SAFE_INTEGER = 0x1fffffffffffff; +util.MAX_SAFE_INTEGER = 0x1fffffffffffff; /** * Max 52 bit integer (safe for additions). @@ -276,7 +276,7 @@ utils.MAX_SAFE_INTEGER = 0x1fffffffffffff; * @default */ -utils.MAX_SAFE_ADDITION = 0xfffffffffffff; +util.MAX_SAFE_ADDITION = 0xfffffffffffff; /** * Test whether a number is below MAX_SAFE_INTEGER. @@ -284,10 +284,10 @@ utils.MAX_SAFE_ADDITION = 0xfffffffffffff; * @returns {Boolean} */ -utils.isSafeInteger = function isSafeInteger(value) { +util.isSafeInteger = function isSafeInteger(value) { if (Number.isSafeInteger) return Number.isSafeInteger(value); - return Math.abs(value) <= utils.MAX_SAFE_INTEGER; + return Math.abs(value) <= util.MAX_SAFE_INTEGER; }; /** @@ -297,10 +297,10 @@ utils.isSafeInteger = function isSafeInteger(value) { * @returns {Boolean} */ -utils.isNumber = function isNumber(value) { +util.isNumber = function isNumber(value) { return typeof value === 'number' && isFinite(value) - && utils.isSafeInteger(value); + && util.isSafeInteger(value); }; /** @@ -309,8 +309,8 @@ utils.isNumber = function isNumber(value) { * @returns {Boolean} */ -utils.isInt = function isInt(value) { - return utils.isNumber(value) && value % 1 === 0; +util.isInt = function isInt(value) { + return util.isNumber(value) && value % 1 === 0; }; /** @@ -319,8 +319,8 @@ utils.isInt = function isInt(value) { * @returns {Boolean} */ -utils.isInt32 = function isInt32(value) { - return utils.isInt(value) && Math.abs(value) <= 0x7fffffff; +util.isInt32 = function isInt32(value) { + return util.isInt(value) && Math.abs(value) <= 0x7fffffff; }; /** @@ -329,8 +329,8 @@ utils.isInt32 = function isInt32(value) { * @returns {Boolean} */ -utils.isUInt32 = function isUInt32(value) { - return utils.isInt(value) && value >= 0 && value <= 0xffffffff; +util.isUInt32 = function isUInt32(value) { + return util.isInt(value) && value >= 0 && value <= 0xffffffff; }; /** @@ -339,8 +339,8 @@ utils.isUInt32 = function isUInt32(value) { * @returns {Boolean} */ -utils.isInt53 = function isInt53(value) { - return utils.isSafeInteger(value) && utils.isInt(value); +util.isInt53 = function isInt53(value) { + return util.isSafeInteger(value) && util.isInt(value); }; /** @@ -349,8 +349,8 @@ utils.isInt53 = function isInt53(value) { * @returns {Boolean} */ -utils.isUInt53 = function isUInt53(value) { - return utils.isSafeInteger(value) && utils.isInt(value) && value >= 0; +util.isUInt53 = function isUInt53(value) { + return util.isSafeInteger(value) && util.isInt(value) && value >= 0; }; /** @@ -359,8 +359,8 @@ utils.isUInt53 = function isUInt53(value) { * @returns {Boolean} */ -utils.isHex160 = function isHex160(hash) { - return utils.isHex(hash) && hash.length === 40; +util.isHex160 = function isHex160(hash) { + return util.isHex(hash) && hash.length === 40; }; /** @@ -369,8 +369,8 @@ utils.isHex160 = function isHex160(hash) { * @returns {Boolean} */ -utils.isHex256 = function isHex256(hash) { - return utils.isHex(hash) && hash.length === 64; +util.isHex256 = function isHex256(hash) { + return util.isHex(hash) && hash.length === 64; }; /** @@ -379,7 +379,7 @@ utils.isHex256 = function isHex256(hash) { * @returns {Boolean} */ -utils.isFloat = function isFloat(value) { +util.isFloat = function isFloat(value) { return typeof value === 'string' && /^-?(\d+)?(?:\.\d*)?$/.test(value) && value.length !== 0 @@ -393,9 +393,9 @@ utils.isFloat = function isFloat(value) { * @return {String} */ -utils.inspectify = function inspectify(obj, color) { +util.inspectify = function inspectify(obj, color) { return typeof obj !== 'string' - ? util.inspect(obj, null, 20, color !== false) + ? nodeUtil.inspect(obj, null, 20, color !== false) : obj; }; @@ -404,7 +404,7 @@ utils.inspectify = function inspectify(obj, color) { * @function */ -utils.fmt = util.format; +util.fmt = nodeUtil.format; /** * Format a string. @@ -413,14 +413,14 @@ utils.fmt = util.format; * @return {String} */ -utils.format = function format(args, color) { +util.format = function format(args, color) { color = color ? (process.stdout ? process.stdout.isTTY : false) : false; return typeof args[0] === 'object' - ? utils.inspectify(args[0], color) - : util.format.apply(util, args); + ? util.inspectify(args[0], color) + : nodeUtil.format.apply(nodeUtil, args); }; /** @@ -429,22 +429,22 @@ utils.format = function format(args, color) { * @param {...String} args */ -utils.log = function log() { +util.log = function log() { var args = new Array(arguments.length); var i, msg; for (i = 0; i < args.length; i++) args[i] = arguments[i]; - if (utils.isBrowser) { + if (util.isBrowser) { msg = typeof args[0] !== 'object' - ? utils.format(args, false) + ? util.format(args, false) : args[0]; console.log(msg); return; } - msg = utils.format(args, true); + msg = util.format(args, true); process.stdout.write(msg + '\n'); }; @@ -454,22 +454,22 @@ utils.log = function log() { * @param {...String} args */ -utils.error = function error() { +util.error = function error() { var args = new Array(arguments.length); var i, msg; for (i = 0; i < args.length; i++) args[i] = arguments[i]; - if (utils.isBrowser) { + if (util.isBrowser) { msg = typeof args[0] !== 'object' - ? utils.format(args, false) + ? util.format(args, false) : args[0]; console.error(msg); return; } - msg = utils.format(args, true); + msg = util.format(args, true); process.stderr.write(msg + '\n'); }; @@ -479,7 +479,7 @@ utils.error = function error() { * @returns {String[]} */ -utils.uniq = function uniq(obj) { +util.uniq = function uniq(obj) { var table = {}; var out = []; var i = 0; @@ -499,8 +499,8 @@ utils.uniq = function uniq(obj) { * @returns {Number} */ -utils.now = function now() { - return Math.floor(utils.ms() / 1000); +util.now = function now() { + return Math.floor(util.ms() / 1000); }; /** @@ -508,7 +508,7 @@ utils.now = function now() { * @returns {Number} */ -utils.ms = function ms() { +util.ms = function ms() { if (Date.now) return Date.now(); return +new Date(); @@ -520,9 +520,9 @@ utils.ms = function ms() { * @returns {String} */ -utils.date = function date(ts) { +util.date = function date(ts) { if (ts == null) - ts = utils.now(); + ts = util.now(); return new Date(ts * 1000).toISOString().slice(0, -5) + 'Z'; }; @@ -533,9 +533,9 @@ utils.date = function date(ts) { * @returns {Number} */ -utils.time = function time(date) { +util.time = function time(date) { if (date == null) - return utils.now(); + return util.now(); return new Date(date) / 1000 | 0; }; @@ -545,7 +545,7 @@ utils.time = function time(date) { * @returns {BN} */ -utils.nonce = function _nonce(buffer) { +util.nonce = function _nonce(buffer) { var nonce = new Buffer(8); nonce.writeUInt32LE((Math.random() * 0x100000000) >>> 0, 0, true); @@ -563,7 +563,7 @@ utils.nonce = function _nonce(buffer) { * @returns {Boolean} */ -utils.isZero = function isZero(data) { +util.isZero = function isZero(data) { var i; assert(Buffer.isBuffer(data)); @@ -583,7 +583,7 @@ utils.isZero = function isZero(data) { * @returns {Number} -1, 1, or 0. */ -utils.strcmp = function strcmp(a, b) { +util.strcmp = function strcmp(a, b) { var len = Math.min(a.length, b.length); var i; @@ -610,13 +610,13 @@ utils.strcmp = function strcmp(a, b) { * @returns {Number} -1, 1, or 0. */ -utils.cmp = function cmp(a, b) { +util.cmp = function cmp(a, b) { return a.compare(b); }; // Warning: polymorphism. if (!Buffer.prototype.compare) - utils.cmp = utils.strcmp; + util.cmp = util.strcmp; /** * Convert bytes to mb. @@ -624,7 +624,7 @@ if (!Buffer.prototype.compare) * @returns {Number} mb */ -utils.mb = function mb(size) { +util.mb = function mb(size) { return Math.floor(size / 1024 / 1024); }; @@ -634,7 +634,7 @@ utils.mb = function mb(size) { * @param {Function} from - Parent constructor. */ -utils.inherits = function inherits(obj, from) { +util.inherits = function inherits(obj, from) { var f; obj.super_ = from; @@ -671,7 +671,7 @@ utils.inherits = function inherits(obj, from) { * @returns {Number} Index (-1 if not found). */ -utils.indexOf = function indexOf(obj, data) { +util.indexOf = function indexOf(obj, data) { var i; assert(Array.isArray(obj)); @@ -680,7 +680,7 @@ utils.indexOf = function indexOf(obj, data) { for (i = 0; i < obj.length; i++) { if (!Buffer.isBuffer(obj[i])) continue; - if (utils.equal(obj[i], data)) + if (util.equal(obj[i], data)) return i; } @@ -694,7 +694,7 @@ utils.indexOf = function indexOf(obj, data) { * @returns {String} Padded number. */ -utils.pad32 = function pad32(num) { +util.pad32 = function pad32(num) { assert(num >= 0); num = num + ''; switch (num.length) { @@ -730,7 +730,7 @@ utils.pad32 = function pad32(num) { * @returns {String} Padded number. */ -utils.hex32 = function hex32(num) { +util.hex32 = function hex32(num) { assert(num >= 0); num = num.toString(16); switch (num.length) { @@ -761,7 +761,7 @@ utils.hex32 = function hex32(num) { * @returns {Object} Map. */ -utils.toMap = function toMap(obj) { +util.toMap = function toMap(obj) { var map = {}; var i, value; @@ -779,7 +779,7 @@ utils.toMap = function toMap(obj) { * @returns {Object} Reversed map. */ -utils.revMap = function revMap(map) { +util.revMap = function revMap(map) { var reversed = {}; var keys = Object.keys(map); var i, key; @@ -798,7 +798,7 @@ utils.revMap = function revMap(map) { * @returns {Array} Values. */ -utils.values = function values(map) { +util.values = function values(map) { var keys = Object.keys(map); var out = []; var i, key; @@ -820,7 +820,7 @@ utils.values = function values(map) { * @returns {Number} Index. */ -utils.binarySearch = function binarySearch(items, key, compare, insert) { +util.binarySearch = function binarySearch(items, key, compare, insert) { var start = 0; var end = items.length - 1; var pos, cmp; @@ -852,8 +852,8 @@ utils.binarySearch = function binarySearch(items, key, compare, insert) { * @returns {Number} index */ -utils.binaryInsert = function binaryInsert(items, item, compare, uniq) { - var i = utils.binarySearch(items, item, compare, true); +util.binaryInsert = function binaryInsert(items, item, compare, uniq) { + var i = util.binarySearch(items, item, compare, true); if (uniq && i < items.length) { if (compare(items[i], item) === 0) @@ -878,8 +878,8 @@ utils.binaryInsert = function binaryInsert(items, item, compare, uniq) { * @returns {Boolean} */ -utils.binaryRemove = function binaryRemove(items, item, compare) { - var i = utils.binarySearch(items, item, compare, false); +util.binaryRemove = function binaryRemove(items, item, compare) { + var i = util.binarySearch(items, item, compare, false); if (i === -1) return false; items.splice(i, 1); @@ -892,15 +892,15 @@ utils.binaryRemove = function binaryRemove(items, item, compare) { * @returns {Buffer[]} */ -utils.uniqBuffer = function uniqBuffer(items) { +util.uniqBuffer = function uniqBuffer(items) { var out = []; var i, j, item; for (i = 0; i < items.length; i++) { item = items[i]; - j = utils.binarySearch(out, item, utils.cmp, true); + j = util.binarySearch(out, item, util.cmp, true); - if (j < out.length && utils.cmp(out[j], item) === 0) + if (j < out.length && util.cmp(out[j], item) === 0) continue; if (j === 0) @@ -920,7 +920,7 @@ utils.uniqBuffer = function uniqBuffer(items) { * @param {Boolean?} dirname */ -utils.normalize = function normalize(path, dirname) { +util.normalize = function normalize(path, dirname) { var parts; path = path.replace(/\\/g, '/'); @@ -939,7 +939,7 @@ utils.normalize = function normalize(path, dirname) { * @param {String} path */ -utils.mkdirp = function mkdirp(path) { +util.mkdirp = function mkdirp(path) { var i, parts, stat; if (fs.unsupported) @@ -985,18 +985,18 @@ utils.mkdirp = function mkdirp(path) { * @param {Boolean?} dirname */ -utils.mkdir = function mkdir(path, dirname) { - if (utils.isBrowser) +util.mkdir = function mkdir(path, dirname) { + if (util.isBrowser) return; - path = utils.normalize(path, dirname); + path = util.normalize(path, dirname); - if (utils._paths[path]) + if (util._paths[path]) return; - utils._paths[path] = true; + util._paths[path] = true; - return utils.mkdirp(path); + return util.mkdirp(path); }; /** @@ -1005,13 +1005,13 @@ utils.mkdir = function mkdir(path, dirname) { * @type {Object} */ -utils._paths = {}; +util._paths = {}; /** * Ensure hidden-class mode for object. * @param {Object} obj */ -utils.fastProp = function fastProp(obj) { +util.fastProp = function fastProp(obj) { ({ __proto__: obj }); }; diff --git a/lib/wallet/account.js b/lib/wallet/account.js index 7190904d..7b7fcc0d 100644 --- a/lib/wallet/account.js +++ b/lib/wallet/account.js @@ -6,7 +6,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var co = require('../utils/co'); var assert = require('assert'); var BufferReader = require('../utils/reader'); @@ -107,10 +107,10 @@ Account.prototype.fromOptions = function fromOptions(options) { var i; assert(options, 'Options are required.'); - assert(utils.isNumber(options.wid)); + assert(util.isNumber(options.wid)); assert(common.isName(options.id), 'Bad Wallet ID.'); assert(HD.isHD(options.accountKey), 'Account key is required.'); - assert(utils.isNumber(options.accountIndex), 'Account index is required.'); + assert(util.isNumber(options.accountIndex), 'Account index is required.'); this.wid = options.wid; this.id = options.id; @@ -147,37 +147,37 @@ Account.prototype.fromOptions = function fromOptions(options) { } if (options.m != null) { - assert(utils.isNumber(options.m)); + assert(util.isNumber(options.m)); this.m = options.m; } if (options.n != null) { - assert(utils.isNumber(options.n)); + assert(util.isNumber(options.n)); this.n = options.n; } if (options.accountIndex != null) { - assert(utils.isNumber(options.accountIndex)); + assert(util.isNumber(options.accountIndex)); this.accountIndex = options.accountIndex; } if (options.receiveDepth != null) { - assert(utils.isNumber(options.receiveDepth)); + assert(util.isNumber(options.receiveDepth)); this.receiveDepth = options.receiveDepth; } if (options.changeDepth != null) { - assert(utils.isNumber(options.changeDepth)); + assert(util.isNumber(options.changeDepth)); this.changeDepth = options.changeDepth; } if (options.nestedDepth != null) { - assert(utils.isNumber(options.nestedDepth)); + assert(util.isNumber(options.nestedDepth)); this.nestedDepth = options.nestedDepth; } if (options.lookahead != null) { - assert(utils.isNumber(options.lookahead)); + assert(util.isNumber(options.lookahead)); assert(options.lookahead >= 0); assert(options.lookahead <= Account.MAX_LOOKAHEAD); this.lookahead = options.lookahead; @@ -296,13 +296,13 @@ Account.prototype.pushKey = function pushKey(key) { if (key.equal(this.accountKey)) throw new Error('Cannot add own key.'); - index = utils.binaryInsert(this.keys, key, cmp, true); + index = util.binaryInsert(this.keys, key, cmp, true); if (index === -1) return false; if (this.keys.length > this.n - 1) { - utils.binaryRemove(this.keys, key, cmp); + util.binaryRemove(this.keys, key, cmp); throw new Error('Cannot add more keys.'); } @@ -336,7 +336,7 @@ Account.prototype.spliceKey = function spliceKey(key) { if (this.keys.length === this.n - 1) throw new Error('Cannot remove key.'); - return utils.binaryRemove(this.keys, key, cmp); + return util.binaryRemove(this.keys, key, cmp); }; /** diff --git a/lib/wallet/layout-browser.js b/lib/wallet/layout-browser.js index 29752433..92e17397 100644 --- a/lib/wallet/layout-browser.js +++ b/lib/wallet/layout-browser.js @@ -6,8 +6,8 @@ 'use strict'; -var utils = require('../utils/utils'); -var pad32 = utils.pad32; +var util = require('../utils/util'); +var pad32 = util.pad32; var layouts = exports; layouts.walletdb = { diff --git a/lib/wallet/masterkey.js b/lib/wallet/masterkey.js index 0ff4c8b6..c70dfab6 100644 --- a/lib/wallet/masterkey.js +++ b/lib/wallet/masterkey.js @@ -6,7 +6,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var Locker = require('../utils/locker'); var co = require('../utils/co'); var crypto = require('../crypto/crypto'); @@ -110,22 +110,22 @@ MasterKey.prototype.fromOptions = function fromOptions(options) { } if (options.rounds != null) { - assert(utils.isNumber(options.rounds)); + assert(util.isNumber(options.rounds)); this.N = options.rounds; } if (options.N != null) { - assert(utils.isNumber(options.N)); + assert(util.isNumber(options.N)); this.N = options.N; } if (options.r != null) { - assert(utils.isNumber(options.r)); + assert(util.isNumber(options.r)); this.r = options.r; } if (options.p != null) { - assert(utils.isNumber(options.p)); + assert(util.isNumber(options.p)); this.p = options.p; } @@ -210,7 +210,7 @@ MasterKey.prototype.start = function start(timeout) { if (timeout === -1) return; - this.until = utils.now() + timeout; + this.until = util.now() + timeout; this.timer = setTimeout(this._onTimeout, timeout * 1000); }; diff --git a/lib/wallet/records.js b/lib/wallet/records.js index f3379472..7809800a 100644 --- a/lib/wallet/records.js +++ b/lib/wallet/records.js @@ -6,7 +6,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var assert = require('assert'); var constants = require('../protocol/constants'); var BufferReader = require('../utils/reader'); @@ -146,7 +146,7 @@ BlockMeta.prototype.fromEntry = function fromEntry(entry) { */ BlockMeta.prototype.fromJSON = function fromJSON(json) { - this.hash = utils.revHex(json.hash); + this.hash = util.revHex(json.hash); this.height = json.height; this.ts = json.ts; return this; @@ -222,7 +222,7 @@ BlockMeta.prototype.toRaw = function toRaw(writer) { BlockMeta.prototype.toJSON = function toJSON() { return { - hash: utils.revHex(this.hash), + hash: util.revHex(this.hash), height: this.height, ts: this.ts }; @@ -340,7 +340,7 @@ BlockMapRecord.prototype.remove = function remove(hash, wid) { return false; if (tx.wids.length === 0) { - result = utils.binaryRemove(this.txs, tx, cmpid); + result = util.binaryRemove(this.txs, tx, cmpid); assert(result); delete this.index[tx.hash]; } @@ -362,11 +362,11 @@ function TXMapRecord(hash, wids) { TXMapRecord.id = 0; TXMapRecord.prototype.add = function add(wid) { - return utils.binaryInsert(this.wids, wid, cmp, true) !== -1; + return util.binaryInsert(this.wids, wid, cmp, true) !== -1; }; TXMapRecord.prototype.remove = function remove(wid) { - return utils.binaryRemove(this.wids, wid, cmp); + return util.binaryRemove(this.wids, wid, cmp); }; TXMapRecord.prototype.toRaw = function toRaw(writer) { @@ -394,11 +394,11 @@ function OutpointMapRecord(hash, index, wids) { } OutpointMapRecord.prototype.add = function add(wid) { - return utils.binaryInsert(this.wids, wid, cmp, true) !== -1; + return util.binaryInsert(this.wids, wid, cmp, true) !== -1; }; OutpointMapRecord.prototype.remove = function remove(wid) { - return utils.binaryRemove(this.wids, wid, cmp); + return util.binaryRemove(this.wids, wid, cmp); }; OutpointMapRecord.prototype.toRaw = function toRaw(writer) { @@ -425,11 +425,11 @@ function PathMapRecord(hash, wids) { } PathMapRecord.prototype.add = function add(wid) { - return utils.binaryInsert(this.wids, wid, cmp, true) !== -1; + return util.binaryInsert(this.wids, wid, cmp, true) !== -1; }; PathMapRecord.prototype.remove = function remove(wid) { - return utils.binaryRemove(this.wids, wid, cmp); + return util.binaryRemove(this.wids, wid, cmp); }; PathMapRecord.prototype.toRaw = function toRaw(writer) { diff --git a/lib/wallet/txdb.js b/lib/wallet/txdb.js index d7512336..09fab03f 100644 --- a/lib/wallet/txdb.js +++ b/lib/wallet/txdb.js @@ -7,15 +7,15 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var LRU = require('../utils/lru'); var co = require('../utils/co'); var assert = require('assert'); var constants = require('../protocol/constants'); var BufferReader = require('../utils/reader'); var BufferWriter = require('../utils/writer'); -var btcutils = require('../utils/btcutils'); -var Amount = require('../utils/amount'); +var btcutils = require('../btc/btcutils'); +var Amount = require('../btc/amount'); var TX = require('../primitives/tx'); var Coin = require('../primitives/coin'); var Outpoint = require('../primitives/outpoint'); @@ -872,7 +872,7 @@ TXDB.prototype.removeBlock = co(function* removeBlock(tx, height) { size = data.readUInt32LE(40, true); assert(size > 0); - assert(utils.equal(data.slice(-32), hash)); + assert(util.equal(data.slice(-32), hash)); if (size === 1) { this.del(key); @@ -2722,10 +2722,10 @@ TXDB.prototype.getAccountBalance = co(function* getAccountBalance(account) { TXDB.prototype.zap = co(function* zap(account, age) { var hashes = []; - var now = utils.now(); + var now = util.now(); var i, txs, tx, hash; - assert(utils.isUInt32(age)); + assert(util.isUInt32(age)); txs = yield this.getRange(account, { start: 0, @@ -3119,7 +3119,7 @@ Details.prototype.setInput = function setInput(i, path, coin) { if (path) { member.path = path; - utils.binaryInsert(this.accounts, path.account, cmp, true); + util.binaryInsert(this.accounts, path.account, cmp, true); } }; @@ -3134,7 +3134,7 @@ Details.prototype.setOutput = function setOutput(i, path) { if (path) { member.path = path; - utils.binaryInsert(this.accounts, path.account, cmp, true); + util.binaryInsert(this.accounts, path.account, cmp, true); } }; @@ -3207,18 +3207,18 @@ Details.prototype.toJSON = function toJSON() { var rate = this.getRate(fee); // Rate can exceed 53 bits in testing. - if (!utils.isSafeInteger(rate)) + if (!util.isSafeInteger(rate)) rate = 0; return { wid: this.wid, id: this.id, - hash: utils.revHex(this.hash), + hash: util.revHex(this.hash), height: this.height, - block: this.block ? utils.revHex(this.block) : null, + block: this.block ? util.revHex(this.block) : null, ts: this.ts, ps: this.ps, - date: utils.date(this.ts || this.ps), + date: util.date(this.ts || this.ps), index: this.index, size: this.size, virtualSize: this.vsize, @@ -3401,10 +3401,10 @@ BlockRecord.prototype.toRaw = function toRaw(writer) { BlockRecord.prototype.toJSON = function toJSON() { return { - hash: utils.revHex(this.hash), + hash: util.revHex(this.hash), height: this.height, ts: this.ts, - hashes: this.hashes.map(utils.revHex) + hashes: this.hashes.map(util.revHex) }; }; diff --git a/lib/wallet/wallet.js b/lib/wallet/wallet.js index 120b9f09..d47e4ec8 100644 --- a/lib/wallet/wallet.js +++ b/lib/wallet/wallet.js @@ -11,11 +11,11 @@ var assert = require('assert'); var EventEmitter = require('events').EventEmitter; var constants = require('../protocol/constants'); var Network = require('../protocol/network'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var Locker = require('../utils/locker'); var co = require('../utils/co'); var crypto = require('../crypto/crypto'); -var btcutils = require('../utils/btcutils'); +var btcutils = require('../btc/btcutils'); var BufferReader = require('../utils/reader'); var BufferWriter = require('../utils/writer'); var base58 = require('../utils/base58'); @@ -90,7 +90,7 @@ function Wallet(db, options) { this.fromOptions(options); } -utils.inherits(Wallet, EventEmitter); +util.inherits(Wallet, EventEmitter); /** * Inject properties from options object. @@ -121,7 +121,7 @@ Wallet.prototype.fromOptions = function fromOptions(options) { } if (options.wid != null) { - assert(utils.isNumber(options.wid)); + assert(util.isNumber(options.wid)); this.wid = options.wid; } @@ -141,7 +141,7 @@ Wallet.prototype.fromOptions = function fromOptions(options) { } if (options.accountDepth != null) { - assert(utils.isNumber(options.accountDepth)); + assert(util.isNumber(options.accountDepth)); this.accountDepth = options.accountDepth; } @@ -152,7 +152,7 @@ Wallet.prototype.fromOptions = function fromOptions(options) { } if (options.tokenDepth != null) { - assert(utils.isNumber(options.tokenDepth)); + assert(util.isNumber(options.tokenDepth)); this.tokenDepth = options.tokenDepth; } @@ -1572,7 +1572,7 @@ Wallet.prototype.increaseFee = co(function* increaseFee(hash, rate, passphrase) if (!tx.hasCoins()) throw new Error('Not all coins available.'); - if (!utils.isUInt32(rate)) + if (!util.isUInt32(rate)) throw new Error('Rate must be a number.'); oldFee = tx.getFee(); @@ -1883,7 +1883,7 @@ Wallet.prototype.syncOutputDepth = co(function* syncOutputDepth(details) { accounts[path.account].push(path); } - accounts = utils.values(accounts); + accounts = util.values(accounts); for (i = 0; i < accounts.length; i++) { paths = accounts[i]; diff --git a/lib/wallet/walletdb.js b/lib/wallet/walletdb.js index 713fb708..c61ded3b 100644 --- a/lib/wallet/walletdb.js +++ b/lib/wallet/walletdb.js @@ -9,13 +9,13 @@ var assert = require('assert'); var AsyncObject = require('../utils/async'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var co = require('../utils/co'); var Locker = require('../utils/locker'); var LRU = require('../utils/lru'); var encoding = require('../utils/encoding'); var crypto = require('../crypto/crypto'); -var btcutils = require('../utils/btcutils'); +var btcutils = require('../btc/btcutils'); var constants = require('../protocol/constants'); var Network = require('../protocol/network'); var Path = require('./path'); @@ -94,11 +94,11 @@ function WalletDB(options) { maxOpenFiles: this.options.maxFiles, cacheSize: 8 << 20, writeBufferSize: 4 << 20, - bufferKeys: !utils.isBrowser + bufferKeys: !util.isBrowser }); } -utils.inherits(WalletDB, AsyncObject); +util.inherits(WalletDB, AsyncObject); /** * Database layout. @@ -276,7 +276,7 @@ WalletDB.prototype.scan = co(function* scan(height) { if (height == null) height = this.state.startHeight; - assert(utils.isUInt32(height), 'WDB: Must pass in a height.'); + assert(util.isUInt32(height), 'WDB: Must pass in a height.'); yield this.rollback(height); @@ -753,7 +753,7 @@ WalletDB.prototype.auth = co(function* auth(wid, token) { return; if (typeof token === 'string') { - if (!utils.isHex256(token)) + if (!util.isHex256(token)) throw new Error('WDB: Authentication error.'); token = new Buffer(token, 'hex'); } @@ -1338,7 +1338,7 @@ WalletDB.prototype.testInput = co(function* testInput(input, result) { return; for (i = 0; i < map.wids.length; i++) - utils.binaryInsert(result, map.wids[i], cmp, true); + util.binaryInsert(result, map.wids[i], cmp, true); }); /** @@ -1370,7 +1370,7 @@ WalletDB.prototype.getWalletsByTX = co(function* getWalletsByTX(tx) { } for (j = 0; j < map.wids.length; j++) - utils.binaryInsert(result, map.wids[j], cmp, true); + util.binaryInsert(result, map.wids[j], cmp, true); } } @@ -1386,7 +1386,7 @@ WalletDB.prototype.getWalletsByTX = co(function* getWalletsByTX(tx) { continue; for (j = 0; j < map.wids.length; j++) - utils.binaryInsert(result, map.wids[j], cmp, true); + util.binaryInsert(result, map.wids[j], cmp, true); } if (result.length === 0) @@ -1424,7 +1424,7 @@ WalletDB.prototype.init = co(function* init() { this.logger.info( 'Initializing WalletDB chain state at %s (%d).', - utils.revHex(tip.hash), tip.height); + util.revHex(tip.hash), tip.height); yield this.resetState(tip, false); }); @@ -1543,7 +1543,7 @@ WalletDB.prototype.maybeMark = co(function* maybeMark(tip) { return; this.logger.info('Marking WalletDB start block at %s (%d).', - utils.revHex(tip.hash), tip.height); + util.revHex(tip.hash), tip.height); yield this.resetState(tip, true); }); @@ -1821,7 +1821,7 @@ WalletDB.prototype._addBlock = co(function* addBlock(entry, txs) { if (total > 0) { this.logger.info('Connected WalletDB block %s (tx=%d).', - utils.revHex(tip.hash), total); + util.revHex(tip.hash), total); } return total; @@ -1886,7 +1886,7 @@ WalletDB.prototype._removeBlock = co(function* removeBlock(entry) { yield this.syncState(prev); this.logger.warning('Disconnected wallet block %s (tx=%d).', - utils.revHex(tip.hash), block.txs.length); + util.revHex(tip.hash), block.txs.length); return block.txs.length; }); diff --git a/lib/wallet/walletkey.js b/lib/wallet/walletkey.js index bc41f687..29931034 100644 --- a/lib/wallet/walletkey.js +++ b/lib/wallet/walletkey.js @@ -9,7 +9,7 @@ var constants = require('../protocol/constants'); var KeyRing = require('../primitives/keyring'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var Path = require('./path'); /** @@ -35,7 +35,7 @@ function WalletKey(options, network) { this.index = -1; } -utils.inherits(WalletKey, KeyRing); +util.inherits(WalletKey, KeyRing); /** * Instantiate key ring from options. diff --git a/lib/workers/framer.js b/lib/workers/framer.js index 8737b71f..a67a754f 100644 --- a/lib/workers/framer.js +++ b/lib/workers/framer.js @@ -9,7 +9,7 @@ var EventEmitter = require('events').EventEmitter; var BN = require('bn.js'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var assert = require('assert'); var BufferWriter = require('../utils/writer'); var KeyRing = require('../primitives/keyring'); @@ -28,7 +28,7 @@ function Framer() { EventEmitter.call(this); } -utils.inherits(Framer, EventEmitter); +util.inherits(Framer, EventEmitter); Framer.prototype.packet = function packet(job, cmd, items) { var payload = this.body(items); diff --git a/lib/workers/master.js b/lib/workers/master.js index 1d8a6869..ebf019f1 100644 --- a/lib/workers/master.js +++ b/lib/workers/master.js @@ -8,13 +8,13 @@ 'use strict'; var EventEmitter = require('events').EventEmitter; -var utils = require('../utils/utils'); -var global = utils.global; +var util = require('../utils/util'); +var global = util.global; var Network = require('../protocol/network'); var jobs = require('./jobs'); var Parser = require('./parser-client'); var Framer = require('./framer'); -var global = utils.global; +var global = util.global; var server; /** @@ -35,7 +35,7 @@ function Master() { this._init(); } -utils.inherits(Master, EventEmitter); +util.inherits(Master, EventEmitter); /** * Initialize master. Bind events. @@ -45,7 +45,7 @@ utils.inherits(Master, EventEmitter); Master.prototype._init = function _init() { var self = this; - if (utils.isBrowser) { + if (util.isBrowser) { global.onerror = function onerror(err) { self.emit('error', err); }; @@ -64,9 +64,9 @@ Master.prototype._init = function _init() { self.emit('data', data); }); // Nowhere to send these errors: - process.stdin.on('error', utils.nop); - process.stdout.on('error', utils.nop); - process.stderr.on('error', utils.nop); + process.stdin.on('error', util.nop); + process.stdout.on('error', util.nop); + process.stderr.on('error', util.nop); } this.on('data', function(data) { @@ -98,7 +98,7 @@ Master.prototype.set = function set(network) { */ Master.prototype.write = function write(data) { - if (utils.isBrowser) { + if (util.isBrowser) { if (global.postMessage.length === 2) { data.__proto__ = Uint8Array.prototype; global.postMessage({ buf: data }, [data]); @@ -144,7 +144,7 @@ Master.prototype.sendEvent = function sendEvent() { */ Master.prototype.destroy = function destroy() { - if (utils.isBrowser) + if (util.isBrowser) return global.close(); return process.exit(0); }; @@ -176,8 +176,8 @@ Master.prototype.listen = function listen(env) { Network.set(env.BCOIN_WORKER_NETWORK); - utils.log = this.log.bind(this); - utils.error = utils.log; + util.log = this.log.bind(this); + util.error = util.log; this.on('error', function(err) { self.sendEvent('worker error', fromError(err)); @@ -217,7 +217,7 @@ function fromError(err) { server = new Master(); -if (utils.isBrowser) +if (util.isBrowser) global.master = server; module.exports = server; diff --git a/lib/workers/parser-client.js b/lib/workers/parser-client.js index aba8fc9d..9b296095 100644 --- a/lib/workers/parser-client.js +++ b/lib/workers/parser-client.js @@ -7,7 +7,7 @@ 'use strict'; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var ServerParser = require('./parser'); var MTX = require('../primitives/mtx'); var TX = require('../primitives/tx'); @@ -25,7 +25,7 @@ function Parser() { ServerParser.call(this); } -utils.inherits(Parser, ServerParser); +util.inherits(Parser, ServerParser); Parser.prototype.parseKeyRing = function parseKeyRing(data) { return KeyRing.fromRaw(data); diff --git a/lib/workers/parser.js b/lib/workers/parser.js index 2371c7f6..66bc292d 100644 --- a/lib/workers/parser.js +++ b/lib/workers/parser.js @@ -9,7 +9,7 @@ var EventEmitter = require('events').EventEmitter; var BN = require('bn.js'); -var utils = require('../utils/utils'); +var util = require('../utils/util'); var assert = require('assert'); var BufferReader = require('../utils/reader'); var Script = require('../script/script'); @@ -32,7 +32,7 @@ function Parser() { this.total = 0; } -utils.inherits(Parser, EventEmitter); +util.inherits(Parser, EventEmitter); Parser.prototype.feed = function feed(data) { var chunk; diff --git a/lib/workers/workerpool.js b/lib/workers/workerpool.js index f5e78aba..a79ad4db 100644 --- a/lib/workers/workerpool.js +++ b/lib/workers/workerpool.js @@ -8,9 +8,9 @@ 'use strict'; var EventEmitter = require('events').EventEmitter; -var utils = require('../utils/utils'); +var util = require('../utils/util'); var co = require('../utils/co'); -var global = utils.global; +var global = util.global; var Network = require('../protocol/network'); var jobs = require('./jobs'); var Parser = require('./parser'); @@ -47,7 +47,7 @@ function WorkerPool(options) { this.enabled = true; } -utils.inherits(WorkerPool, EventEmitter); +util.inherits(WorkerPool, EventEmitter); /** * Whether workers are supported. @@ -56,7 +56,7 @@ utils.inherits(WorkerPool, EventEmitter); WorkerPool.support = true; -if (utils.isBrowser) { +if (util.isBrowser) { WorkerPool.support = typeof global.Worker === 'function' || typeof global.postMessage === 'function'; } @@ -94,7 +94,7 @@ WorkerPool._exitBound = false; */ WorkerPool._bindExit = function _bindExit() { - if (utils.isBrowser) + if (util.isBrowser) return; if (WorkerPool._exitBound) @@ -106,7 +106,7 @@ WorkerPool._bindExit = function _bindExit() { WorkerPool.cleanup(); if (err) { - utils.error(err.stack + ''); + util.error(err.stack + ''); process.exit(1); return; } @@ -235,7 +235,7 @@ WorkerPool.prototype.execute = function execute(method, args, timeout) { if (!this.enabled || !WorkerPool.support) { return new Promise(function(resolve, reject) { - utils.nextTick(function() { + util.nextTick(function() { try { result = jobs.execute(method, args); } catch (e) { @@ -393,7 +393,7 @@ function Worker(id) { this.framer = new Framer(); this.parser = new Parser(); - this.setMaxListeners(utils.MAX_SAFE_INTEGER); + this.setMaxListeners(util.MAX_SAFE_INTEGER); this.uid = 0; this.id = id != null ? id : -1; this.child = null; @@ -401,7 +401,7 @@ function Worker(id) { this._init(); } -utils.inherits(Worker, EventEmitter); +util.inherits(Worker, EventEmitter); /** * Initialize worker. Bind to events. @@ -416,7 +416,7 @@ Worker.prototype._init = function _init() { BCOIN_WORKER_NETWORK: Network.type }; - if (utils.isBrowser) { + if (util.isBrowser) { this.child = new global.Worker('/bcoin-worker.js'); this.child.onerror = function onerror(err) { @@ -439,7 +439,7 @@ Worker.prototype._init = function _init() { } else { this.child = cp.spawn(process.argv[0], [__dirname + '/worker.js'], { stdio: 'pipe', - env: utils.merge({}, process.env, penv) + env: util.merge({}, process.env, penv) }); this.child.on('error', function(err) { @@ -505,8 +505,8 @@ Worker.prototype._bind = function _bind() { }); this.on('log', function(items) { - utils.log('Worker %d:', self.id); - utils.log.apply(utils, items); + util.log('Worker %d:', self.id); + util.log.apply(utils, items); }); this.on('packet', function(packet) { @@ -546,7 +546,7 @@ Worker.prototype._bind = function _bind() { */ Worker.prototype.write = function write(data) { - if (utils.isBrowser) { + if (util.isBrowser) { if (this.child.postMessage.length === 2) { data.__proto__ = Uint8Array.prototype; this.child.postMessage({ buf: data }, [data]); @@ -592,7 +592,7 @@ Worker.prototype.sendEvent = function sendEvent() { */ Worker.prototype.destroy = function destroy() { - if (utils.isBrowser) { + if (util.isBrowser) { this.child.terminate(); this.emit('exit', -1, 'SIGTERM'); return; @@ -693,10 +693,10 @@ exports.set = function set(options) { if (typeof options.useWorkers === 'boolean') this.pool.enabled = options.useWorkers; - if (utils.isNumber(options.maxWorkers)) + if (util.isNumber(options.maxWorkers)) this.pool.size = options.maxWorkers; - if (utils.isNumber(options.workerTimeout)) + if (util.isNumber(options.workerTimeout)) this.pool.timeout = options.workerTimeout; }; diff --git a/migrate/ensure-tip-index.js b/migrate/ensure-tip-index.js index ad920b64..5bcdc96e 100644 --- a/migrate/ensure-tip-index.js +++ b/migrate/ensure-tip-index.js @@ -4,7 +4,7 @@ var co = require('../lib/utils/co'); var BufferWriter = require('../lib/utils/writer'); var BufferReader = require('../lib/utils/reader'); var crypto = require('../lib/crypto/crypto'); -var utils = require('../lib/utils/utils'); +var util = require('../lib/utils/util'); var LDB = require('../lib/db/ldb'); var BN = require('bn.js'); var DUMMY = new Buffer([0]); @@ -129,7 +129,7 @@ var indexTips = co(function* indexTips() { for (i = 0; i < tips.length; i++) { tip = tips[i]; - console.log('Indexing chain tip: %s.', utils.revHex(tip)); + console.log('Indexing chain tip: %s.', util.revHex(tip)); batch.put(pair('p', tip), DUMMY); } }); diff --git a/migrate/walletdb3to4.js b/migrate/walletdb3to4.js index 0e4b4467..0a5002c9 100644 --- a/migrate/walletdb3to4.js +++ b/migrate/walletdb3to4.js @@ -7,7 +7,7 @@ var BufferWriter = require('../lib/utils/writer'); var BufferReader = require('../lib/utils/reader'); var TX = require('../lib/primitives/tx'); var Coin = require('../lib/primitives/coin'); -var utils = require('../lib/utils/utils'); +var util = require('../lib/utils/util'); var co = bcoin.co; var layout = WalletDB.layout; var tlayout = TXDB.layout; @@ -72,7 +72,7 @@ var updateTXDB = co(function* updateTXDB() { batch.del(key); } - txs = utils.values(txs); + txs = util.values(txs); yield batch.write(); yield db.close(); diff --git a/migrate/walletdb4to5.js b/migrate/walletdb4to5.js index 01dcd8d5..0468b9a5 100644 --- a/migrate/walletdb4to5.js +++ b/migrate/walletdb4to5.js @@ -3,7 +3,7 @@ var bcoin = require('../'); var constants = require('../lib/protocol/constants'); var BufferWriter = require('../lib/utils/writer'); var BufferReader = require('../lib/utils/reader'); -var utils = require('../lib/utils/utils'); +var util = require('../lib/utils/util'); var co = bcoin.co; var file = process.argv[2]; var db, batch; diff --git a/migrate/walletdb5to6.js b/migrate/walletdb5to6.js index 1fdd26be..e5d1f54e 100644 --- a/migrate/walletdb5to6.js +++ b/migrate/walletdb5to6.js @@ -3,7 +3,7 @@ var bcoin = require('../'); var constants = require('../lib/protocol/constants'); var BufferWriter = require('../lib/utils/writer'); var BufferReader = require('../lib/utils/reader'); -var utils = require('../lib/utils/utils'); +var util = require('../lib/utils/util'); var co = bcoin.co; var file = process.argv[2]; var db, batch; diff --git a/test/aes-test.js b/test/aes-test.js index 71f452aa..8a0d23c5 100644 --- a/test/aes-test.js +++ b/test/aes-test.js @@ -1,7 +1,7 @@ 'use strict'; var BN = require('bn.js'); -var utils = require('../lib/utils/utils'); +var util = require('../lib/utils/util'); var crypto = require('../lib/crypto/crypto'); var assert = require('assert'); var aes = require('../lib/crypto/aes'); diff --git a/test/bip150-test.js b/test/bip150-test.js index 017714bb..a36610fd 100644 --- a/test/bip150-test.js +++ b/test/bip150-test.js @@ -2,7 +2,7 @@ var BN = require('bn.js'); var bcoin = require('../').set('main'); -var utils = bcoin.utils; +var util = bcoin.util; var crypto = require('../lib/crypto/crypto'); var constants = bcoin.constants; var network = bcoin.networks; diff --git a/test/bip151-test.js b/test/bip151-test.js index 1135ec98..0fd5fd2b 100644 --- a/test/bip151-test.js +++ b/test/bip151-test.js @@ -2,7 +2,7 @@ var BN = require('bn.js'); var bcoin = require('../').set('main'); -var utils = bcoin.utils; +var util = bcoin.util; var crypto = require('../lib/crypto/crypto'); var constants = bcoin.constants; var network = bcoin.networks; diff --git a/test/bip70-test.js b/test/bip70-test.js index 23af3079..52d372d0 100644 --- a/test/bip70-test.js +++ b/test/bip70-test.js @@ -2,7 +2,7 @@ var BN = require('bn.js'); var bcoin = require('../').set('main'); -var utils = bcoin.utils; +var util = bcoin.util; var crypto = require('../lib/crypto/crypto'); var constants = bcoin.constants; var network = bcoin.networks; @@ -155,8 +155,8 @@ describe('BIP70', function() { network: 'testnet', paymentUrl: 'http://bcoin.io/payme', memo: 'foobar', - time: utils.now(), - expires: utils.now() + 3600, + time: util.now(), + expires: util.now() + 3600, outputs: [ { value: 10000, address: bcoin.address() }, { value: 50000, address: bcoin.address() } @@ -176,7 +176,7 @@ describe('BIP70', function() { assert.equal(request.version, 25); assert.equal(request.paymentDetails.paymentUrl, 'http://bcoin.io/payme'); assert.equal(request.paymentDetails.network, 'testnet'); - assert(request.paymentDetails.time <= utils.now()); + assert(request.paymentDetails.time <= util.now()); assert.equal(request.paymentDetails.expires, request.paymentDetails.time + 3600); assert.equal(request.paymentDetails.outputs.length, 2); diff --git a/test/block-test.js b/test/block-test.js index d7705b3f..5bd3b41d 100644 --- a/test/block-test.js +++ b/test/block-test.js @@ -2,8 +2,8 @@ var BN = require('bn.js'); var bcoin = require('../').set('main'); -var utils = bcoin.utils; -var btcutils = require('../lib/utils/btcutils'); +var util = bcoin.util; +var btcutils = require('../lib/btc/btcutils'); var crypto = require('../lib/crypto/crypto'); var Bloom = require('../lib/utils/bloom'); var constants = bcoin.constants; diff --git a/test/bloom-test.js b/test/bloom-test.js index cabdf17c..aed3b440 100644 --- a/test/bloom-test.js +++ b/test/bloom-test.js @@ -1,7 +1,7 @@ 'use strict'; var bcoin = require('../').set('main'); -var utils = bcoin.utils; +var util = bcoin.util; var crypto = require('../lib/crypto/crypto'); var Bloom = require('../lib/utils/bloom'); var murmur3 = require('../lib/utils/murmur3'); diff --git a/test/chain-test.js b/test/chain-test.js index c55671c6..20a38d6d 100644 --- a/test/chain-test.js +++ b/test/chain-test.js @@ -3,7 +3,7 @@ var BN = require('bn.js'); var bcoin = require('../').set('regtest'); var constants = bcoin.constants; -var utils = bcoin.utils; +var util = bcoin.util; var crypto = require('../lib/crypto/crypto'); var assert = require('assert'); var opcodes = constants.opcodes; diff --git a/test/hd-test.js b/test/hd-test.js index 5638f7e0..e84d40fe 100644 --- a/test/hd-test.js +++ b/test/hd-test.js @@ -2,7 +2,7 @@ var BN = require('bn.js'); var bcoin = require('../').set('main'); -var utils = bcoin.utils; +var util = bcoin.util; var base58 = require('../lib/utils/base58'); var crypto = require('../lib/crypto/crypto'); var assert = require('assert'); diff --git a/test/http-test.js b/test/http-test.js index 820701a7..174de940 100644 --- a/test/http-test.js +++ b/test/http-test.js @@ -4,12 +4,12 @@ var BN = require('bn.js'); var bcoin = require('../').set('regtest'); var constants = bcoin.constants; var network = bcoin.networks; -var utils = bcoin.utils; +var util = bcoin.util; var crypto = require('../lib/crypto/crypto'); var assert = require('assert'); var scriptTypes = constants.scriptTypes; var co = require('../lib/utils/co'); -var Amount = require('../lib/utils/amount'); +var Amount = require('../lib/btc/amount'); var cob = co.cob; var dummyInput = { diff --git a/test/mempool-test.js b/test/mempool-test.js index 8452c9cb..bb63e1bb 100644 --- a/test/mempool-test.js +++ b/test/mempool-test.js @@ -3,7 +3,7 @@ var BN = require('bn.js'); var bcoin = require('../').set('main'); var constants = bcoin.constants; -var utils = bcoin.utils; +var util = bcoin.util; var crypto = require('../lib/crypto/crypto'); var assert = require('assert'); var opcodes = constants.opcodes; diff --git a/test/mnemonic-test.js b/test/mnemonic-test.js index b2feb382..7112d898 100644 --- a/test/mnemonic-test.js +++ b/test/mnemonic-test.js @@ -2,7 +2,7 @@ var BN = require('bn.js'); var bcoin = require('../').set('main'); -var utils = bcoin.utils; +var util = bcoin.util; var crypto = require('../lib/crypto/crypto'); var assert = require('assert'); var mnemonic1 = require('./data/mnemonic1').english; diff --git a/test/protocol-test.js b/test/protocol-test.js index ff1b1dec..8a828bbf 100644 --- a/test/protocol-test.js +++ b/test/protocol-test.js @@ -4,7 +4,7 @@ var bcoin = require('../').set('main'); var assert = require('assert'); var constants = bcoin.constants; var network = bcoin.network.get(); -var utils = bcoin.utils; +var util = bcoin.util; var crypto = require('../lib/crypto/crypto'); var fs = require('fs'); var alertData = fs.readFileSync(__dirname + '/data/alertTests.raw'); @@ -42,7 +42,7 @@ describe('Protocol', function() { ts: bcoin.now(), remote: new NetworkAddress(), local: new NetworkAddress(), - nonce: utils.nonce(), + nonce: util.nonce(), agent: constants.USER_AGENT, height: 0, relay: false @@ -61,7 +61,7 @@ describe('Protocol', function() { ts: bcoin.now(), remote: new NetworkAddress(), local: new NetworkAddress(), - nonce: utils.nonce(), + nonce: util.nonce(), agent: constants.USER_AGENT, height: 10, relay: true @@ -82,13 +82,13 @@ describe('Protocol', function() { services: constants.LOCAL_SERVICES, host: '127.0.0.1', port: 8333, - ts: utils.now() + ts: util.now() }), new NetworkAddress({ services: constants.LOCAL_SERVICES, host: '::123:456:789a', port: 18333, - ts: utils.now() + ts: util.now() }) ]; diff --git a/test/script-test.js b/test/script-test.js index 82df00fb..8711ef3d 100644 --- a/test/script-test.js +++ b/test/script-test.js @@ -4,7 +4,7 @@ var bcoin = require('../').set('main'); var assert = require('assert'); var Script = bcoin.script; var Stack = bcoin.stack; -var utils = bcoin.utils; +var util = bcoin.util; var crypto = require('../lib/crypto/crypto'); var constants = bcoin.constants; var opcodes = bcoin.constants.opcodes; @@ -149,9 +149,9 @@ describe('Script', function() { var s = bcoin.script.fromString( 'OP_1 OP_DUP OP_PUSHDATA1' ); - assert(utils.equal(s.raw, new Buffer('51764c', 'hex'))); + assert(util.equal(s.raw, new Buffer('51764c', 'hex'))); delete s.raw; - assert(utils.equal(s.encode(), new Buffer('51764c', 'hex'))); + assert(util.equal(s.encode(), new Buffer('51764c', 'hex'))); try { s.execute(stack); } catch (e) { @@ -162,9 +162,9 @@ describe('Script', function() { var s = bcoin.script.fromString( 'OP_1 OP_DUP OP_PUSHDATA2 0x01' ); - assert(utils.equal(s.raw, new Buffer('51764d01', 'hex'))); + assert(util.equal(s.raw, new Buffer('51764d01', 'hex'))); delete s.raw; - assert(utils.equal(s.encode(), new Buffer('51764d01', 'hex'))); + assert(util.equal(s.encode(), new Buffer('51764d01', 'hex'))); err = null; try { s.execute(stack); @@ -176,9 +176,9 @@ describe('Script', function() { var s = bcoin.script.fromString( 'OP_1 OP_DUP OP_PUSHDATA4 0x0001' ); - assert(utils.equal(s.raw, new Buffer('51764e0001', 'hex'))); + assert(util.equal(s.raw, new Buffer('51764e0001', 'hex'))); delete s.raw; - assert(utils.equal(s.encode(), new Buffer('51764e0001', 'hex'))); + assert(util.equal(s.encode(), new Buffer('51764e0001', 'hex'))); err = null; try { s.execute(stack); @@ -190,9 +190,9 @@ describe('Script', function() { var s = bcoin.script.fromString( 'OP_1 OP_DUP OP_PUSHDATA1 0x02 0x01' ); - assert(utils.equal(s.raw, new Buffer('51764c0201', 'hex'))); + assert(util.equal(s.raw, new Buffer('51764c0201', 'hex'))); delete s.raw; - assert(utils.equal(s.encode(), new Buffer('51764c0201', 'hex'))); + assert(util.equal(s.encode(), new Buffer('51764c0201', 'hex'))); err = null; try { s.execute(stack); @@ -204,9 +204,9 @@ describe('Script', function() { var s = bcoin.script.fromString( 'OP_1 OP_DUP OP_PUSHDATA2 0x0200 0x01' ); - assert(utils.equal(s.raw, new Buffer('51764d020001', 'hex'))); + assert(util.equal(s.raw, new Buffer('51764d020001', 'hex'))); delete s.raw; - assert(utils.equal(s.encode(), new Buffer('51764d020001', 'hex'))); + assert(util.equal(s.encode(), new Buffer('51764d020001', 'hex'))); err = null; try { s.execute(stack); diff --git a/test/tx-test.js b/test/tx-test.js index 6cd589c0..bf7d15b8 100644 --- a/test/tx-test.js +++ b/test/tx-test.js @@ -3,7 +3,7 @@ var BN = require('bn.js'); var bcoin = require('../').set('main'); var assert = require('assert'); -var utils = bcoin.utils; +var util = bcoin.util; var crypto = require('../lib/crypto/crypto'); var constants = bcoin.constants; var opcodes = bcoin.constants.opcodes; @@ -190,7 +190,7 @@ describe('TX', function() { version: 1, height: -1, coinbase: false, - hash: utils.revHex(hash), + hash: util.revHex(hash), index: index, script: script, value: value != null ? parseInt(value, 10) : 0 @@ -202,7 +202,7 @@ describe('TX', function() { tx: tx, flags: flags, comments: tx.hasCoins() - ? utils.inspectify(tx.inputs[0].coin.script, false) + ? util.inspectify(tx.inputs[0].coin.script, false) : 'coinbase', data: data }; @@ -287,7 +287,7 @@ describe('TX', function() { clearCache(script, nocache); var index = data[2]; var type = data[3]; - var expected = utils.revHex(data[4]); + var expected = util.revHex(data[4]); var hexType = type & 3; if (type & 0x80) hexType |= 0x80; @@ -463,7 +463,7 @@ describe('TX', function() { }); it('should fail on >51 bit fees from multiple txs', function() { - var data = utils.merge({}, bcoin.network.get().genesis, { height: 0 }); + var data = util.merge({}, bcoin.network.get().genesis, { height: 0 }); var block = new bcoin.block(data); for (var i = 0; i < 3; i++) { var tx = bcoin.tx({ @@ -515,7 +515,7 @@ describe('TX', function() { var tx = bcoin.tx({ version: 1, flag: 1, - inputs: [createInput(utils.MAX_SAFE_INTEGER)], + inputs: [createInput(util.MAX_SAFE_INTEGER)], outputs: [{ script: [], value: constants.MAX_MONEY @@ -533,7 +533,7 @@ describe('TX', function() { inputs: [createInput(constants.MAX_MONEY)], outputs: [{ script: [], - value: utils.MAX_SAFE_INTEGER + value: util.MAX_SAFE_INTEGER }], locktime: 0 }); @@ -545,7 +545,7 @@ describe('TX', function() { var tx = bcoin.tx({ version: 1, flag: 1, - inputs: [createInput(utils.MAX_SAFE_INTEGER)], + inputs: [createInput(util.MAX_SAFE_INTEGER)], outputs: [{ script: [], value: 0 @@ -556,7 +556,7 @@ describe('TX', function() { assert.ok(!tx.checkInputs(0)); }); - [utils.MAX_SAFE_ADDITION, utils.MAX_SAFE_INTEGER].forEach(function(MAX) { + [util.MAX_SAFE_ADDITION, util.MAX_SAFE_INTEGER].forEach(function(MAX) { it('should fail on >53 bit values from multiple', function() { var tx = bcoin.tx({ version: 1, @@ -621,7 +621,7 @@ describe('TX', function() { }); it('should fail on >53 bit fees from multiple txs', function() { - var data = utils.merge({}, bcoin.network.get().genesis, { height: 0 }); + var data = util.merge({}, bcoin.network.get().genesis, { height: 0 }); var block = new bcoin.block(data); for (var i = 0; i < 3; i++) { var tx = bcoin.tx({ diff --git a/test/utils-test.js b/test/utils-test.js index 72308421..4f748687 100644 --- a/test/utils-test.js +++ b/test/utils-test.js @@ -2,14 +2,14 @@ var assert = require('assert'); var BN = require('bn.js'); -var utils = require('../lib/utils/utils'); +var util = require('../lib/utils/util'); var ec = require('../lib/crypto/ec'); -var btcutils = require('../lib/utils/btcutils'); +var btcutils = require('../lib/btc/btcutils'); var base58 = require('../lib/utils/base58'); var encoding = require('../lib/utils/encoding'); var crypto = require('../lib/crypto/crypto'); var schnorr = require('../lib/crypto/schnorr'); -var Amount = require('../lib/utils/amount'); +var Amount = require('../lib/btc/amount'); describe('Utils', function() { var vectors = [ diff --git a/test/wallet-test.js b/test/wallet-test.js index d53d23db..60acad1c 100644 --- a/test/wallet-test.js +++ b/test/wallet-test.js @@ -4,7 +4,7 @@ var BN = require('bn.js'); var bcoin = require('../').set('main'); var constants = bcoin.constants; var network = bcoin.networks; -var utils = bcoin.utils; +var util = bcoin.util; var encoding = require('../lib/utils/encoding'); var crypto = require('../lib/crypto/crypto'); var assert = require('assert'); @@ -19,7 +19,7 @@ var KEY2 = 'xprv9s21ZrQH143K3mqiSThzPtWAabQ22Pjp3uSNnZ53A5bQ4udp' + 'faKekc2m4AChLYH1XDzANhrSdxHYWUeTWjYJwFwWFyHkTMnMeAcW4JyRCZa'; var globalHeight = 1; -var globalTime = utils.now(); +var globalTime = util.now(); function nextBlock(height) { var hash, prev; @@ -215,7 +215,7 @@ describe('Wallet', function() { .addOutput(w.getAddress(), 50000) .addOutput(w.getAddress(), 1000); t1.addInput(dummy()); - t1.ts = utils.now(); + t1.ts = util.now(); // balance: 51000 yield w.sign(t1); @@ -1184,7 +1184,7 @@ describe('Wallet', function() { assert(path.data && path.encrypted); d2 = path.data; - assert(!utils.equal(d1, d2)); + assert(!util.equal(d1, d2)); k = yield w.getKey(addr); assert(!k);