refactor: lint tests, benchmarks, etc.

This commit is contained in:
Christopher Jeffrey 2017-06-24 14:35:10 -07:00
parent d3b24da2e1
commit f70d6b8b45
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD
31 changed files with 67 additions and 154 deletions

View File

@ -3,7 +3,8 @@
"env": { "env": {
"browser": true, "browser": true,
"es6": true, "es6": true,
"node": true "node": true,
"mocha": true
}, },
"parserOptions": { "parserOptions": {
"ecmaVersion": 8 "ecmaVersion": 8

View File

@ -2,41 +2,22 @@
var fs = require('fs'); var fs = require('fs');
var TX = require('../lib/primitives/tx'); var TX = require('../lib/primitives/tx');
var CoinView = require('../lib/coins/coinview');
var BufferWriter = require('../lib/utils/writer'); var BufferWriter = require('../lib/utils/writer');
var StaticWriter = require('../lib/utils/staticwriter'); var StaticWriter = require('../lib/utils/staticwriter');
var bench = require('./bench'); var bench = require('./bench');
var tx3 = parseTX('../test/data/tx3.hex');
var wtx = fs.readFileSync(__dirname + '/../test/data/wtx.hex', 'utf8'); var wtx = fs.readFileSync(__dirname + '/../test/data/wtx.hex', 'utf8');
var i, tx, end, raw; var i, tx, end;
wtx = Buffer.from(wtx.trim(), 'hex'); wtx = Buffer.from(wtx.trim(), 'hex');
tx = TX.fromRaw(wtx); tx = TX.fromRaw(wtx);
function parseTX(file) {
var data = fs.readFileSync(__dirname + '/' + file, 'utf8');
var parts = data.trim().split(/\n+/);
var raw = parts[0];
var tx = TX.fromRaw(raw.trim(), 'hex');
var view = new CoinView();
var i, prev;
for (i = 1; i < parts.length; i++) {
raw = parts[i];
prev = TX.fromRaw(raw.trim(), 'hex');
view.addTX(prev, -1);
}
return { tx: tx, view: view };
}
end = bench('serialize (static-writer)'); end = bench('serialize (static-writer)');
for (i = 0; i < 10000; i++) { for (i = 0; i < 10000; i++) {
tx._raw = null; tx._raw = null;
tx._size = -1; tx._size = -1;
tx._witness = -1; tx._witness = -1;
raw = tx.writeWitness(new StaticWriter(tx.getWitnessSizes().total)).render(); tx.writeWitness(new StaticWriter(tx.getWitnessSizes().total)).render();
} }
end(i); end(i);
@ -45,6 +26,6 @@ for (i = 0; i < 10000; i++) {
tx._raw = null; tx._raw = null;
tx._size = -1; tx._size = -1;
tx._witness = -1; tx._witness = -1;
raw = tx.writeWitness(new BufferWriter()).render(); tx.writeWitness(new BufferWriter()).render();
} }
end(i); end(i);

View File

@ -9,31 +9,31 @@ var wtx = fs.readFileSync(__dirname + '/../test/data/wtx.hex', 'utf8');
wtx = TX.fromRaw(wtx.trim(), 'hex'); wtx = TX.fromRaw(wtx.trim(), 'hex');
var coins = Coins.fromTX(wtx); var coins = Coins.fromTX(wtx);
var raw; var i, j, end, raw, hash;
//raw = coins.toRaw(); //raw = coins.toRaw();
//console.log(Coins.fromRaw(raw)); //console.log(Coins.fromRaw(raw));
var end = bench('serialize'); end = bench('serialize');
for (var i = 0; i < 10000; i++) for (i = 0; i < 10000; i++)
raw = coins.toRaw(); raw = coins.toRaw();
end(i); end(i);
var end = bench('parse'); end = bench('parse');
for (var i = 0; i < 10000; i++) for (i = 0; i < 10000; i++)
Coins.fromRaw(raw); Coins.fromRaw(raw);
end(i); end(i);
var end = bench('parse-single'); end = bench('parse-single');
var hash = wtx.hash('hex'); hash = wtx.hash('hex');
for (var i = 0; i < 10000; i++) for (i = 0; i < 10000; i++)
Coins.parseCoin(raw, hash, 5); Coins.parseCoin(raw, hash, 5);
end(i); end(i);
var coins = Coins.fromRaw(raw); coins = Coins.fromRaw(raw);
var end = bench('get'); end = bench('get');
var j;
for (var i = 0; i < 10000; i++) for (i = 0; i < 10000; i++)
for (var j = 0; j < coins.outputs.length; j++) for (j = 0; j < coins.outputs.length; j++)
coins.get(j); coins.get(j);
end(i * coins.outputs.length); end(i * coins.outputs.length);

View File

@ -6,7 +6,8 @@ var HD = require('../lib/hd');
var Mnemonic = require('../lib/hd/mnemonic'); var Mnemonic = require('../lib/hd/mnemonic');
var mnemonic = new Mnemonic(); var mnemonic = new Mnemonic();
var key = HD.fromMnemonic(mnemonic); HD.fromMnemonic(mnemonic);
var phrase = mnemonic.getPhrase(); var phrase = mnemonic.getPhrase();
var i, end; var i, end;

View File

@ -18,7 +18,7 @@ var btx = { tx: block.txs[397], view: new CoinView() };
var tx3 = parseTX('../test/data/tx3.hex'); var tx3 = parseTX('../test/data/tx3.hex');
var wtx = fs.readFileSync(__dirname + '/../test/data/wtx.hex', 'utf8'); var wtx = fs.readFileSync(__dirname + '/../test/data/wtx.hex', 'utf8');
var i, tx, raw, end, flags, input; var i, tx, end, flags, input;
wtx = Buffer.from(wtx.trim(), 'hex'); wtx = Buffer.from(wtx.trim(), 'hex');
@ -53,7 +53,7 @@ end(i);
end = bench('serialize'); end = bench('serialize');
for (i = 0; i < 1000; i++) { for (i = 0; i < 1000; i++) {
tx._raw = null; tx._raw = null;
raw = tx.toRaw(); tx.toRaw();
} }
end(i); end(i);

View File

@ -1,7 +1,6 @@
'use strict'; 'use strict';
var bench = require('./bench'); var bench = require('./bench');
var co = require('../lib/utils/co');
var crypto = require('../lib/crypto/crypto'); var crypto = require('../lib/crypto/crypto');
var WalletDB = require('../lib/wallet/walletdb'); var WalletDB = require('../lib/wallet/walletdb');
var MTX = require('../lib/primitives/mtx'); var MTX = require('../lib/primitives/mtx');
@ -25,8 +24,8 @@ async function runBench() {
var result, tx, mtx, options; var result, tx, mtx, options;
// Open and Create // Open and Create
yield walletdb.open(); await walletdb.open();
wallet = yield walletdb.create(); wallet = await walletdb.create();
addrs = []; addrs = [];
// Accounts // Accounts
@ -35,7 +34,7 @@ async function runBench() {
jobs.push(wallet.createAccount({})); jobs.push(wallet.createAccount({}));
end = bench('accounts'); end = bench('accounts');
result = yield Promise.all(jobs); result = await Promise.all(jobs);
end(1000); end(1000);
for (i = 0; i < result.length; i++) for (i = 0; i < result.length; i++)
@ -49,7 +48,7 @@ async function runBench() {
} }
end = bench('keys'); end = bench('keys');
result = yield Promise.all(jobs); result = await Promise.all(jobs);
end(1000 * 10); end(1000 * 10);
for (i = 0; i < result.length; i++) for (i = 0; i < result.length; i++)
@ -70,7 +69,7 @@ async function runBench() {
} }
end = bench('deposit'); end = bench('deposit');
result = yield Promise.all(jobs); result = await Promise.all(jobs);
end(10000); end(10000);
// TX redemption // TX redemption
@ -91,17 +90,17 @@ async function runBench() {
} }
end = bench('redemption'); end = bench('redemption');
result = yield Promise.all(jobs); result = await Promise.all(jobs);
end(10000); end(10000);
// Balance // Balance
end = bench('balance'); end = bench('balance');
result = yield wallet.getBalance(); result = await wallet.getBalance();
end(1); end(1);
// Coins // Coins
end = bench('coins'); end = bench('coins');
result = yield wallet.getCoins(); result = await wallet.getCoins();
end(1); end(1);
// Create // Create
@ -113,7 +112,7 @@ async function runBench() {
address: addrs[0] address: addrs[0]
}] }]
}; };
yield wallet.createTX(options); await wallet.createTX(options);
end(1); end(1);
} }

View File

@ -4,11 +4,8 @@
var Config = require('../lib/node/config'); var Config = require('../lib/node/config');
var util = require('../lib/utils/util'); var util = require('../lib/utils/util');
var co = require('../lib/utils/co');
var Client = require('../lib/http/client'); var Client = require('../lib/http/client');
var Wallet = require('../lib/http/wallet'); var Wallet = require('../lib/http/wallet');
var Amount = require('../lib/btc/amount');
var main;
function CLI() { function CLI() {
this.config = new Config('bcoin'); this.config = new Config('bcoin');
@ -323,6 +320,7 @@ CLI.prototype.createTX = async function createTX() {
CLI.prototype.signTX = async function signTX() { CLI.prototype.signTX = async function signTX() {
var options = {}; var options = {};
var raw = this.config.str(['tx', 0]); var raw = this.config.str(['tx', 0]);
var tx;
options.passphrase = this.config.str('passphrase'); options.passphrase = this.config.str('passphrase');

View File

@ -21,7 +21,6 @@ if (process.argv.indexOf('--version') !== -1
var bcoin = require('../'); var bcoin = require('../');
var plugin = require('../lib/wallet/plugin'); var plugin = require('../lib/wallet/plugin');
var co = bcoin.co;
var node; var node;
node = new bcoin.fullnode({ node = new bcoin.fullnode({

View File

@ -8,7 +8,6 @@ var assert = require('assert');
var bcoin = require('../'); var bcoin = require('../');
var plugin = require('../lib/wallet/plugin'); var plugin = require('../lib/wallet/plugin');
var util = bcoin.util; var util = bcoin.util;
var co = bcoin.co;
var node; var node;
node = bcoin.spvnode({ node = bcoin.spvnode({

View File

@ -2,13 +2,12 @@
var encoding = require('bcoin/lib/utils/encoding'); var encoding = require('bcoin/lib/utils/encoding');
var co = require('bcoin/lib/utils/co'); var co = require('bcoin/lib/utils/co');
var Address = require('bcoin/lib/primitives/address');
var Outpoint = require('bcoin/lib/primitives/outpoint'); var Outpoint = require('bcoin/lib/primitives/outpoint');
var MTX = require('bcoin/lib/primitives/mtx'); var MTX = require('bcoin/lib/primitives/mtx');
var HTTP = require('bcoin/lib/http'); var HTTP = require('bcoin/lib/http');
var FullNode = require('bcoin/lib/node/fullnode'); var FullNode = require('bcoin/lib/node/fullnode');
var plugin = require('bcoin/lib/wallet/plugin'); var plugin = require('bcoin/lib/wallet/plugin');
var node, wallet, walletdb, addr, hash; var node, wallet;
node = new FullNode({ node = new FullNode({
network: 'regtest', network: 'regtest',
@ -26,7 +25,7 @@ wallet = new HTTP.Wallet({
async function main() { async function main() {
var wdb = node.require('walletdb'); var wdb = node.require('walletdb');
var w, acct, info, hash, balance, tx; var w, acct, hash, balance, tx;
await node.open(); await node.open();
@ -63,7 +62,7 @@ async function main() {
} }
async function fundWallet(wdb, addr) { async function fundWallet(wdb, addr) {
var tx, balance, receive, details; var tx;
// Coinbase // Coinbase
tx = new MTX(); tx = new MTX();

View File

@ -1,7 +1,6 @@
'use strict'; 'use strict';
var bcoin = require('../'); var bcoin = require('../');
var co = bcoin.co;
var assert = require('assert'); var assert = require('assert');
var file = process.argv[2]; var file = process.argv[2];
var BufferWriter = require('../lib/utils/writer'); var BufferWriter = require('../lib/utils/writer');

View File

@ -11,7 +11,6 @@ var Coins = require('../lib/coins/coins');
var UndoCoins = require('../lib/coins/undocoins'); var UndoCoins = require('../lib/coins/undocoins');
var Coin = require('../lib/primitives/coin'); var Coin = require('../lib/primitives/coin');
var Output = require('../lib/primitives/output'); var Output = require('../lib/primitives/output');
var util = require('../lib/utils/util');
var LDB = require('../lib/db/ldb'); var LDB = require('../lib/db/ldb');
var file = process.argv[2]; var file = process.argv[2];
var options = {}; var options = {};
@ -215,15 +214,6 @@ function pair(prefix, hash) {
return key; return key;
} }
function ipair(prefix, num) {
var key = Buffer.allocUnsafe(5);
if (typeof prefix === 'string')
prefix = prefix.charCodeAt(0);
key[0] = prefix;
key.writeUInt32BE(num, 1, true);
return key;
}
function injectCoin(undo, coin) { function injectCoin(undo, coin) {
var output = new Output(); var output = new Output();

View File

@ -2,8 +2,6 @@
var assert = require('assert'); var assert = require('assert');
var encoding = require('../lib/utils/encoding'); var encoding = require('../lib/utils/encoding');
var co = require('../lib/utils/co');
var BufferWriter = require('../lib/utils/writer');
var BufferReader = require('../lib/utils/reader'); var BufferReader = require('../lib/utils/reader');
var crypto = require('../lib/crypto/crypto'); var crypto = require('../lib/crypto/crypto');
var util = require('../lib/utils/util'); var util = require('../lib/utils/util');
@ -138,15 +136,6 @@ function pair(prefix, hash) {
return key; return key;
} }
function ipair(prefix, num) {
var key = Buffer.allocUnsafe(5);
if (typeof prefix === 'string')
prefix = prefix.charCodeAt(0);
key[0] = prefix;
key.writeUInt32BE(num, 1, true);
return key;
}
(async function() { (async function() {
await db.open(); await db.open();
console.log('Opened %s.', file); console.log('Opened %s.', file);

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
var assert = require('assert');
var bcoin = require('../'); var bcoin = require('../');
var walletdb = require('../lib/wallet/walletdb'); var walletdb = require('../lib/wallet/walletdb');
var encoding = require('../lib/utils/encoding'); var encoding = require('../lib/utils/encoding');
@ -7,12 +8,10 @@ var Path = require('../lib/wallet/path');
var MasterKey = require('../lib/wallet/masterkey'); var MasterKey = require('../lib/wallet/masterkey');
var Account = require('../lib/wallet/account'); var Account = require('../lib/wallet/account');
var Wallet = require('../lib/wallet/wallet'); var Wallet = require('../lib/wallet/wallet');
var layout = walletdb.layout;
var co = bcoin.co;
var assert = require('assert');
var file = process.argv[2];
var BufferReader = require('../lib/utils/reader'); var BufferReader = require('../lib/utils/reader');
var BufferWriter = require('../lib/utils/writer'); var BufferWriter = require('../lib/utils/writer');
var layout = walletdb.layout;
var file = process.argv[2];
var db, batch; var db, batch;
assert(typeof file === 'string', 'Please pass in a database path.'); assert(typeof file === 'string', 'Please pass in a database path.');

View File

@ -4,15 +4,10 @@ var assert = require('assert');
var bcoin = require('../'); var bcoin = require('../');
var encoding = require('../lib/utils/encoding'); var encoding = require('../lib/utils/encoding');
var WalletDB = require('../lib/wallet/walletdb'); var WalletDB = require('../lib/wallet/walletdb');
var TXDB = require('../lib/wallet/txdb');
var BufferWriter = require('../lib/utils/writer');
var BufferReader = require('../lib/utils/reader'); var BufferReader = require('../lib/utils/reader');
var TX = require('../lib/primitives/tx'); var TX = require('../lib/primitives/tx');
var Coin = require('../lib/primitives/coin'); var Coin = require('../lib/primitives/coin');
var util = require('../lib/utils/util'); var util = require('../lib/utils/util');
var co = bcoin.co;
var layout = WalletDB.layout;
var tlayout = TXDB.layout;
var file = process.argv[2]; var file = process.argv[2];
var db, batch; var db, batch;

View File

@ -2,10 +2,6 @@
var assert = require('assert'); var assert = require('assert');
var bcoin = require('../'); var bcoin = require('../');
var BufferWriter = require('../lib/utils/writer');
var BufferReader = require('../lib/utils/reader');
var util = require('../lib/utils/util');
var co = bcoin.co;
var file = process.argv[2]; var file = process.argv[2];
var db, batch; var db, batch;

View File

@ -5,8 +5,6 @@ var bcoin = require('../');
var encoding = require('../lib/utils/encoding'); var encoding = require('../lib/utils/encoding');
var BufferWriter = require('../lib/utils/writer'); var BufferWriter = require('../lib/utils/writer');
var BufferReader = require('../lib/utils/reader'); var BufferReader = require('../lib/utils/reader');
var util = require('../lib/utils/util');
var co = bcoin.co;
var file = process.argv[2]; var file = process.argv[2];
var db, batch; var db, batch;
@ -273,8 +271,10 @@ async function unstate() {
await patchPathMaps(); await patchPathMaps();
await batch.write(); await batch.write();
await db.close(); await db.close();
// await updateLookahead();
// await unstate(); // Do not use:
await updateLookahead();
await unstate();
})().then(function() { })().then(function() {
console.log('Migration complete.'); console.log('Migration complete.');
console.log('Rescan is required...'); console.log('Rescan is required...');

View File

@ -62,7 +62,7 @@
"browserify": "browserify --im -o browser/bcoin.js lib/bcoin.js && browserify --im -o browser/bcoin-master.js lib/workers/master.js", "browserify": "browserify --im -o browser/bcoin.js lib/bcoin.js && browserify --im -o browser/bcoin-master.js lib/workers/master.js",
"uglify": "uglifyjs -m -o browser/bcoin.min.js browser/bcoin.js && uglifyjs -m -o browser/bcoin-master.min.js browser/bcoin-master.js", "uglify": "uglifyjs -m -o browser/bcoin.min.js browser/bcoin.js && uglifyjs -m -o browser/bcoin-master.min.js browser/bcoin-master.js",
"clean": "rm browser/bcoin.js browser/bcoin.min.js browser/bcoin-master.js browser/bcoin-master.min.js", "clean": "rm browser/bcoin.js browser/bcoin.min.js browser/bcoin-master.js browser/bcoin-master.min.js",
"lint": "eslint lib/ || exit 0", "lint": "eslint lib/ test/ migrate/ examples/ bench/ bin/cli bin/node bin/spvnode || exit 0",
"docs": "jsdoc -c jsdoc.json" "docs": "jsdoc -c jsdoc.json"
}, },
"browser": { "browser": {

View File

@ -243,7 +243,7 @@ describe('Bech32', function() {
INVALID_ADDRESS.forEach(function(test) { INVALID_ADDRESS.forEach(function(test) {
it('should have invalid address for ' + test, function() { it('should have invalid address for ' + test, function() {
var ok1, ok2, ok; var ok1, ok2;
try { try {
ok1 = Address.fromBech32(test, 'main'); ok1 = Address.fromBech32(test, 'main');
@ -257,7 +257,7 @@ describe('Bech32', function() {
ok2 = null; ok2 = null;
} }
assert(!ok2); assert(!ok1 && !ok2);
}); });
}); });
}); });

View File

@ -4,7 +4,6 @@ var assert = require('assert');
var BN = require('../lib/crypto/bn'); var BN = require('../lib/crypto/bn');
var consensus = require('../lib/protocol/consensus'); var consensus = require('../lib/protocol/consensus');
var encoding = require('../lib/utils/encoding'); var encoding = require('../lib/utils/encoding');
var co = require('../lib/utils/co');
var Coin = require('../lib/primitives/coin'); var Coin = require('../lib/primitives/coin');
var Script = require('../lib/script/script'); var Script = require('../lib/script/script');
var Chain = require('../lib/blockchain/chain'); var Chain = require('../lib/blockchain/chain');
@ -770,7 +769,7 @@ describe('Chain', function() {
it('should mine 111 multisig blocks', async function() { it('should mine 111 multisig blocks', async function() {
var flags = common.flags.DEFAULT_FLAGS & ~common.flags.VERIFY_POW; var flags = common.flags.DEFAULT_FLAGS & ~common.flags.VERIFY_POW;
var i, j, script, job, cb, output, val, block; var i, j, script, cb, output, val, block;
script = new Script(); script = new Script();
script.push(new BN(20)); script.push(new BN(20));

View File

@ -1,27 +1,14 @@
'use strict'; 'use strict';
var assert = require('assert'); var assert = require('assert');
var util = require('../lib/utils/util');
var encoding = require('../lib/utils/encoding');
var crypto = require('../lib/crypto/crypto');
var consensus = require('../lib/protocol/consensus');
var Network = require('../lib/protocol/network');
var TX = require('../lib/primitives/tx');
var Block = require('../lib/primitives/block');
var Coin = require('../lib/primitives/coin');
var Output = require('../lib/primitives/output'); var Output = require('../lib/primitives/output');
var Script = require('../lib/script/script');
var Witness = require('../lib/script/witness');
var Input = require('../lib/primitives/input'); var Input = require('../lib/primitives/input');
var Outpoint = require('../lib/primitives/outpoint'); var Outpoint = require('../lib/primitives/outpoint');
var CoinView = require('../lib/coins/coinview'); var CoinView = require('../lib/coins/coinview');
var Coins = require('../lib/coins/coins'); var Coins = require('../lib/coins/coins');
var UndoCoins = require('../lib/coins/undocoins');
var StaticWriter = require('../lib/utils/staticwriter'); var StaticWriter = require('../lib/utils/staticwriter');
var BufferReader = require('../lib/utils/reader'); var BufferReader = require('../lib/utils/reader');
var KeyRing = require('../lib/primitives/keyring');
var parseTX = require('./util/common').parseTX; var parseTX = require('./util/common').parseTX;
var opcodes = Script.opcodes;
var data = parseTX('data/tx1.hex'); var data = parseTX('data/tx1.hex');
var tx1 = data.tx; var tx1 = data.tx;
@ -115,7 +102,6 @@ describe('Coins', function() {
}); });
it('should handle coin view', function() { it('should handle coin view', function() {
var hash = tx1.hash('hex');
var view = new CoinView(); var view = new CoinView();
var i, tx, size, bw, br; var i, tx, size, bw, br;
var raw, res, prev, coins; var raw, res, prev, coins;

View File

@ -1,9 +1,8 @@
'use strict'; 'use strict';
var assert = require('assert'); var assert = require('assert');
var fs = require('fs'); var fs = require('../lib/utils/fs');
var GCSFilter = require('../lib/utils/gcs'); var GCSFilter = require('../lib/utils/gcs');
var util = require('../lib/utils/util');
var crypto = require('../lib/crypto/crypto'); var crypto = require('../lib/crypto/crypto');
var Block = require('../lib/primitives/block'); var Block = require('../lib/primitives/block');
var Outpoint = require('../lib/primitives/outpoint'); var Outpoint = require('../lib/primitives/outpoint');

View File

@ -225,12 +225,12 @@ describe('HTTP', function() {
it('should validate an address', async function() { it('should validate an address', async function() {
var json = await wallet.client.rpc.execute('validateaddress', [addr.toString()]); var json = await wallet.client.rpc.execute('validateaddress', [addr.toString()]);
assert.deepStrictEqual(json, { assert.deepStrictEqual(json, {
isvalid: true, isvalid: true,
address: addr.toString(), address: addr.toString(),
scriptPubKey: Script.fromAddress(addr).toRaw().toString('hex'), scriptPubKey: Script.fromAddress(addr).toRaw().toString('hex'),
ismine: false, ismine: false,
iswatchonly: false iswatchonly: false
}); });
}); });
it('should cleanup', async function() { it('should cleanup', async function() {

View File

@ -3,11 +3,9 @@
var assert = require('assert'); var assert = require('assert');
var encoding = require('../lib/utils/encoding'); var encoding = require('../lib/utils/encoding');
var crypto = require('../lib/crypto/crypto'); var crypto = require('../lib/crypto/crypto');
var co = require('../lib/utils/co');
var MempoolEntry = require('../lib/mempool/mempoolentry'); var MempoolEntry = require('../lib/mempool/mempoolentry');
var Mempool = require('../lib/mempool/mempool'); var Mempool = require('../lib/mempool/mempool');
var Chain = require('../lib/blockchain/chain'); var Chain = require('../lib/blockchain/chain');
var WalletDB = require('../lib/wallet/walletdb');
var MTX = require('../lib/primitives/mtx'); var MTX = require('../lib/primitives/mtx');
var Coin = require('../lib/primitives/coin'); var Coin = require('../lib/primitives/coin');
var KeyRing = require('../lib/primitives/keyring'); var KeyRing = require('../lib/primitives/keyring');
@ -15,9 +13,7 @@ var Address = require('../lib/primitives/address');
var Outpoint = require('../lib/primitives/outpoint'); var Outpoint = require('../lib/primitives/outpoint');
var Script = require('../lib/script/script'); var Script = require('../lib/script/script');
var Witness = require('../lib/script/witness'); var Witness = require('../lib/script/witness');
var Block = require('../lib/primitives/block');
var MemWallet = require('./util/memwallet'); var MemWallet = require('./util/memwallet');
var opcodes = Script.opcodes;
describe('Mempool', function() { describe('Mempool', function() {
var chain = new Chain({ db: 'memory' }); var chain = new Chain({ db: 'memory' });
@ -334,7 +330,7 @@ describe('Mempool', function() {
it('should clear reject cache', async function() { it('should clear reject cache', async function() {
var w = wallet; var w = wallet;
var tx, input; var tx;
tx = new MTX(); tx = new MTX();
tx.addOutpoint(new Outpoint()); tx.addOutpoint(new Outpoint());

View File

@ -563,12 +563,12 @@ describe('Node', function() {
}, {}); }, {});
assert.deepStrictEqual(json.result, { assert.deepStrictEqual(json.result, {
isvalid: true, isvalid: true,
address: addr.toString(), address: addr.toString(),
scriptPubKey: Script.fromAddress(addr).toJSON(), scriptPubKey: Script.fromAddress(addr).toJSON(),
ismine: false, ismine: false,
iswatchonly: false iswatchonly: false
}); });
}); });
it('should add transaction to mempool', async function() { it('should add transaction to mempool', async function() {

View File

@ -1,10 +1,8 @@
'use strict'; 'use strict';
var fs = require('fs');
var assert = require('assert'); var assert = require('assert');
var Network = require('../lib/protocol/network'); var Network = require('../lib/protocol/network');
var util = require('../lib/utils/util'); var util = require('../lib/utils/util');
var BufferReader = require('../lib/utils/reader');
var NetAddress = require('../lib/primitives/netaddress'); var NetAddress = require('../lib/primitives/netaddress');
var TX = require('../lib/primitives/tx'); var TX = require('../lib/primitives/tx');
var Framer = require('../lib/net/framer'); var Framer = require('../lib/net/framer');
@ -75,6 +73,7 @@ describe('Protocol', function() {
packetTest('verack', new packets.VerackPacket(), function(payload) { packetTest('verack', new packets.VerackPacket(), function(payload) {
}); });
/* eslint indent: 0 */
hosts = [ hosts = [
new NetAddress({ new NetAddress({
services: 1, services: 1,

View File

@ -1,14 +1,11 @@
'use strict'; 'use strict';
var fs = require('fs');
var assert = require('assert'); var assert = require('assert');
var util = require('../lib/utils/util'); var util = require('../lib/utils/util');
var encoding = require('../lib/utils/encoding'); var encoding = require('../lib/utils/encoding');
var crypto = require('../lib/crypto/crypto'); var crypto = require('../lib/crypto/crypto');
var consensus = require('../lib/protocol/consensus'); var consensus = require('../lib/protocol/consensus');
var Network = require('../lib/protocol/network');
var TX = require('../lib/primitives/tx'); var TX = require('../lib/primitives/tx');
var Block = require('../lib/primitives/block');
var Coin = require('../lib/primitives/coin'); var Coin = require('../lib/primitives/coin');
var Output = require('../lib/primitives/output'); var Output = require('../lib/primitives/output');
var Script = require('../lib/script/script'); var Script = require('../lib/script/script');

View File

@ -15,7 +15,6 @@ var Bloom = require('../../lib/utils/bloom');
var KeyRing = require('../../lib/primitives/keyring'); var KeyRing = require('../../lib/primitives/keyring');
var Outpoint = require('../../lib/primitives/outpoint'); var Outpoint = require('../../lib/primitives/outpoint');
var Coin = require('../../lib/primitives/coin'); var Coin = require('../../lib/primitives/coin');
var co = require('../../lib/utils/co');
function MemWallet(options) { function MemWallet(options) {
if (!(this instanceof MemWallet)) if (!(this instanceof MemWallet))
@ -292,13 +291,12 @@ MemWallet.prototype.addTX = function addTX(tx, height) {
MemWallet.prototype.removeTX = function removeTX(tx, height) { MemWallet.prototype.removeTX = function removeTX(tx, height) {
var hash = tx.hash('hex'); var hash = tx.hash('hex');
var result = false; var result = false;
var i, op, coin, input, output; var i, op, coin, input;
if (!this.map[hash]) if (!this.map[hash])
return false; return false;
for (i = 0; i < tx.outputs.length; i++) { for (i = 0; i < tx.outputs.length; i++) {
output = tx.outputs[i];
op = Outpoint(hash, i).toKey(); op = Outpoint(hash, i).toKey();
coin = this.getCoin(op); coin = this.getCoin(op);
@ -392,7 +390,6 @@ MemWallet.prototype.sign = function sign(mtx) {
MemWallet.prototype.create = async function create(options) { MemWallet.prototype.create = async function create(options) {
var mtx = new MTX(options); var mtx = new MTX(options);
var tx;
await this.fund(mtx, options); await this.fund(mtx, options);

View File

@ -32,7 +32,6 @@ NodeContext.prototype.init = function() {
node = new FullNode({ node = new FullNode({
network: this.network, network: this.network,
db: 'memory', db: 'memory',
network: 'regtest',
logger: new Logger({ logger: new Logger({
level: 'debug', level: 'debug',
file: false, file: false,
@ -99,10 +98,9 @@ NodeContext.prototype.disconnect = async function disconnect() {
await node.disconnect(); await node.disconnect();
await co.timeout(1000); await co.timeout(1000);
} }
}); };
NodeContext.prototype.startSync = function startSync() { NodeContext.prototype.startSync = function startSync() {
var jobs = [];
var i, node; var i, node;
for (i = 0; i < this.nodes.length; i++) { for (i = 0; i < this.nodes.length; i++) {
@ -114,7 +112,6 @@ NodeContext.prototype.startSync = function startSync() {
}; };
NodeContext.prototype.stopSync = function stopSync() { NodeContext.prototype.stopSync = function stopSync() {
var jobs = [];
var i, node; var i, node;
for (i = 0; i < this.nodes.length; i++) { for (i = 0; i < this.nodes.length; i++) {

View File

@ -98,7 +98,7 @@ describe('Utils', function() {
}); });
it('should write/read new varints', function() { it('should write/read new varints', function() {
var n, b; var b;
/* /*
* 0: [0x00] 256: [0x81 0x00] * 0: [0x00] 256: [0x81 0x00]
@ -109,7 +109,6 @@ describe('Utils', function() {
* 2^32: [0x8E 0xFE 0xFE 0xFF 0x00] * 2^32: [0x8E 0xFE 0xFE 0xFF 0x00]
*/ */
n = 0;
b = Buffer.allocUnsafe(1); b = Buffer.allocUnsafe(1);
b.fill(0x00); b.fill(0x00);
encoding.writeVarint2(b, 0, 0); encoding.writeVarint2(b, 0, 0);

View File

@ -5,13 +5,11 @@ var consensus = require('../lib/protocol/consensus');
var util = require('../lib/utils/util'); var util = require('../lib/utils/util');
var encoding = require('../lib/utils/encoding'); var encoding = require('../lib/utils/encoding');
var crypto = require('../lib/crypto/crypto'); var crypto = require('../lib/crypto/crypto');
var co = require('../lib/utils/co');
var WalletDB = require('../lib/wallet/walletdb'); var WalletDB = require('../lib/wallet/walletdb');
var Address = require('../lib/primitives/address'); var Address = require('../lib/primitives/address');
var MTX = require('../lib/primitives/mtx'); var MTX = require('../lib/primitives/mtx');
var Coin = require('../lib/primitives/coin'); var Coin = require('../lib/primitives/coin');
var KeyRing = require('../lib/primitives/keyring'); var KeyRing = require('../lib/primitives/keyring');
var Address = require('../lib/primitives/address');
var Input = require('../lib/primitives/input'); var Input = require('../lib/primitives/input');
var Outpoint = require('../lib/primitives/outpoint'); var Outpoint = require('../lib/primitives/outpoint');
var Script = require('../lib/script/script'); var Script = require('../lib/script/script');
@ -169,7 +167,7 @@ describe('Wallet', function() {
src = src.toTX(); src = src.toTX();
tx = new MTX(); tx = new MTX();
tx.addTX(src, 0) tx.addTX(src, 0);
tx.addOutput(w.getAddress(), 5460); tx.addOutput(w.getAddress(), 5460);
maxSize = await tx.estimateSize(); maxSize = await tx.estimateSize();
@ -451,7 +449,7 @@ describe('Wallet', function() {
var view, t1, t2, t3, err; var view, t1, t2, t3, err;
// Coinbase // Coinbase
t1 = new MTX() t1 = new MTX();
t1.addInput(dummy()); t1.addInput(dummy());
t1.addOutput(w1.getAddress(), 5460); t1.addOutput(w1.getAddress(), 5460);
t1.addOutput(w1.getAddress(), 5460); t1.addOutput(w1.getAddress(), 5460);
@ -1107,6 +1105,7 @@ describe('Wallet', function() {
err = e; err = e;
} }
assert(!txs);
assert(err); assert(err);
assert.equal(err.message, 'Account not found.'); assert.equal(err.message, 'Account not found.');
}); });