diff --git a/browser/index.js b/browser/index.js index 94301b52..21e964d7 100644 --- a/browser/index.js +++ b/browser/index.js @@ -31,8 +31,8 @@ function show(obj) { floating.style.display = 'block'; } -logger = new bcoin.logger({ level: 'debug' }); -logger.writeConsole = function(level, args) { +logger = new bcoin.logger({ level: 'debug', console: true }); +logger.writeConsole = function(level, module, args) { var name = bcoin.logger.levelsByVal[level]; var msg = util.format(args, false); if (++scrollback > 1000) { @@ -40,10 +40,21 @@ logger.writeConsole = function(level, args) { scrollback = 1; } log.innerHTML += '' + util.now() + ' '; - if (name === 'error') - log.innerHTML += '[' + name + '] '; - else - log.innerHTML += '[' + name + '] '; + if (name === 'error') { + log.innerHTML += ''; + log.innerHTML += '['; + log.innerHTML += name + log.innerHTML += '] '; + if (module) + log.innerHTML += '(' + module + ') '; + log.innerHTML += ''; + } else { + log.innerHTML += '['; + log.innerHTML += name + log.innerHTML += '] '; + if (module) + log.innerHTML += '(' + module + ') '; + } log.innerHTML += escape(msg) + '\n'; log.scrollTop = log.scrollHeight; }; @@ -163,7 +174,7 @@ function setMouseup(el, obj) { function formatWallet(wallet) { var html = ''; - var key = wallet.master.toJSON(true).key; + var json = wallet.master.toJSON(true); var i, tx, el; html += 'Wallet
'; @@ -179,8 +190,8 @@ function formatWallet(wallet) { html += 'Current Address: ' + wallet.getAddress() + '
'; } - html += 'Extended Private Key: ' + key.xprivkey + '
'; - html += 'Mnemonic: ' + key.mnemonic.phrase + '
'; + html += 'Extended Private Key: ' + json.key.xprivkey + '
'; + html += 'Mnemonic: ' + json.mnemonic.phrase + '
'; wallet.getBalance().then(function(balance) { html += 'Confirmed Balance: ' @@ -215,13 +226,14 @@ node = new bcoin.fullnode({ hash: true, query: true, prune: true, - network: 'testnet', + network: 'main', db: 'leveldb', coinCache: 30000000, + logConsole: true, logger: logger }); -wdb = node.use(bcoin.walletdb); +wdb = node.use(bcoin.walletplugin); node.on('error', function(err) { ; @@ -231,15 +243,17 @@ node.chain.on('block', addItem); node.mempool.on('tx', addItem); node.open().then(function() { - node.connect().then(function() { - node.startSync(); - - wdb.primary.on('balance', function() { - formatWallet(wdb.primary); - }); + return node.connect(); +}).then(function() { + node.startSync(); + wdb.primary.on('balance', function() { formatWallet(wdb.primary); }); + + formatWallet(wdb.primary); +}).catch(function(err) { + throw err; }); })(); diff --git a/browser/server.js b/browser/server.js index e0e680c9..c98ed884 100644 --- a/browser/server.js +++ b/browser/server.js @@ -20,7 +20,10 @@ proxy.on('error', function(err) { console.error(err.stack + ''); }); -server = new HTTPBase(); +server = new HTTPBase({ + port: +process.argv[2] || 8080, + sockets: false +}); server.get('/favicon.ico', function(req, res) { res.send(404, '', 'txt'); @@ -52,4 +55,4 @@ server.on('error', function(err) { proxy.attach(server.server); -server.listen(+process.argv[2] || 8080); +server.open(); diff --git a/browser/wsproxy.js b/browser/wsproxy.js index 0001c2c3..e0c0fbe6 100644 --- a/browser/wsproxy.js +++ b/browser/wsproxy.js @@ -225,7 +225,7 @@ WSProxy.prototype.attach = function attach(server) { function SocketState(server, socket) { this.pow = server.pow; this.target = server.target; - this.snonce = util.nonce(true); + this.snonce = util.nonce(); this.socket = null; this.host = IP.normalize(socket.conn.remoteAddress); this.remoteHost = null; diff --git a/lib/env.js b/lib/env.js index 054eb18b..11d42f7b 100644 --- a/lib/env.js +++ b/lib/env.js @@ -178,7 +178,7 @@ function Environment() { // Miner this.require('mining', './mining'); this.require('miner', './mining/miner'); - this.require('minerblock', './mining/minerblock'); + this.require('template', './mining/template'); // Net this.require('net', './net'); @@ -250,6 +250,7 @@ function Environment() { this.require('path', './wallet/path'); this.require('walletkey', './wallet/walletkey'); this.require('walletdb', './wallet/walletdb'); + this.require('walletplugin', './wallet/plugin'); // Workers this.require('workers', './workers'); diff --git a/lib/http/rpcbase.js b/lib/http/rpcbase.js index fb31f6e4..e9e8ef0a 100644 --- a/lib/http/rpcbase.js +++ b/lib/http/rpcbase.js @@ -70,7 +70,7 @@ RPCBase.prototype.call = co(function* call(body, query) { assert(Array.isArray(cmd.params), 'Params must be an array.'); - enforce(!cmd.id || typeof cmd.id !== 'object', 'Invalid ID.'); + assert(!cmd.id || typeof cmd.id !== 'object', 'Invalid ID.'); } for (i = 0; i < cmds.length; i++) { diff --git a/lib/node/logger.js b/lib/node/logger.js index dbb991ad..707ce101 100644 --- a/lib/node/logger.js +++ b/lib/node/logger.js @@ -176,9 +176,6 @@ Logger.prototype.open = co(function* open() { */ Logger.prototype._open = co(function* open() { - if (fs.unsupported) - return; - if (!this.filename) { this.closed = false; return; @@ -189,6 +186,11 @@ Logger.prototype._open = co(function* open() { return; } + if (fs.unsupported) { + this.closed = false; + return; + } + if (this.shrink) yield this.truncate(); @@ -224,6 +226,12 @@ Logger.prototype._close = co(function* close() { this.timer = null; } + if (fs.unsupported) { + this.closed = true; + this.stream = null; + return; + } + if (this.stream) { try { this.closing = true; @@ -324,6 +332,9 @@ Logger.prototype._reopen = co(function* reopen() { if (this.closed) return; + if (fs.unsupported) + return; + try { this.stream = yield openStream(this.filename); } catch (e) { diff --git a/lib/wallet/walletdb.js b/lib/wallet/walletdb.js index 7fdb9ce3..01bd6bf8 100644 --- a/lib/wallet/walletdb.js +++ b/lib/wallet/walletdb.js @@ -1472,26 +1472,17 @@ WalletDB.prototype.decryptKeys = co(function* decryptKeys(wallet, key) { */ WalletDB.prototype.resend = co(function* resend() { - var iter, item, wid; + var i, keys, key, wid; - iter = this.db.iterator({ + keys = yield this.db.keys({ gte: layout.w(0x00000000), lte: layout.w(0xffffffff) }); - for (;;) { - item = yield iter.next(); - - if (!item) - break; - - try { - wid = layout.ww(item.key); - yield this.resendPending(wid); - } catch (e) { - yield iter.end(); - throw e; - } + for (i = 0; i < keys.length; i++) { + key = keys[i]; + wid = layout.ww(key); + yield this.resendPending(wid); } }); diff --git a/package.json b/package.json index 9939c609..25ebfec0 100644 --- a/package.json +++ b/package.json @@ -80,6 +80,7 @@ "./lib/net/dns": "./lib/net/dns-browser.js", "./lib/net/tcp": "./lib/net/tcp-browser.js", "./lib/net/upnp": "./lib/net/upnp-browser.js", + "./lib/utils/fs": "./browser/empty.js", "./lib/utils/native": "./browser/empty.js", "./lib/utils/nfkd": "./lib/utils/nfkd-browser.js", "./lib/utils/nexttick": "./lib/utils/nexttick-browser.js",