From 1c985bee2396f0c5b241c6e798cf0a7f15152c44 Mon Sep 17 00:00:00 2001 From: Edin Jusupovic Date: Wed, 22 Aug 2018 14:18:50 +1000 Subject: [PATCH 1/3] fix tests --- test/services/bitcoind.unit.js | 90 +++++++++++++++++----------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/test/services/bitcoind.unit.js b/test/services/bitcoind.unit.js index 63b9375ad..f414d8e57 100644 --- a/test/services/bitcoind.unit.js +++ b/test/services/bitcoind.unit.js @@ -228,25 +228,25 @@ describe('Bitcoin Service', function() { it('will add a valid address', function() { var bitcoind = new BitcoinService(baseConfig); var emitter = new EventEmitter(); - bitcoind.subscribeAddress(emitter, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']); - should.exist(bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']); + bitcoind.subscribeAddress(emitter, ['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3']); + should.exist(bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3']); }); it('will handle multiple address subscribers', function() { var bitcoind = new BitcoinService(baseConfig); var emitter1 = new EventEmitter(); var emitter2 = new EventEmitter(); - bitcoind.subscribeAddress(emitter1, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']); - bitcoind.subscribeAddress(emitter2, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']); - should.exist(bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']); - bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'].length.should.equal(2); + bitcoind.subscribeAddress(emitter1, ['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3']); + bitcoind.subscribeAddress(emitter2, ['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3']); + should.exist(bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3']); + bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3'].length.should.equal(2); }); it('will not add the same emitter twice', function() { var bitcoind = new BitcoinService(baseConfig); var emitter1 = new EventEmitter(); - bitcoind.subscribeAddress(emitter1, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']); - bitcoind.subscribeAddress(emitter1, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']); - should.exist(bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']); - bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'].length.should.equal(1); + bitcoind.subscribeAddress(emitter1, ['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3']); + bitcoind.subscribeAddress(emitter1, ['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3']); + should.exist(bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3']); + bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3'].length.should.equal(1); }); }); @@ -262,57 +262,57 @@ describe('Bitcoin Service', function() { var bitcoind = new BitcoinService(baseConfig); var emitter1 = new EventEmitter(); var emitter2 = new EventEmitter(); - bitcoind.subscribeAddress(emitter1, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']); - bitcoind.subscribeAddress(emitter2, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']); - should.exist(bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']); - bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'].length.should.equal(2); - bitcoind.unsubscribeAddress(emitter1, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']); - bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'].length.should.equal(1); + bitcoind.subscribeAddress(emitter1, ['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3']); + bitcoind.subscribeAddress(emitter2, ['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3']); + should.exist(bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3']); + bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3'].length.should.equal(2); + bitcoind.unsubscribeAddress(emitter1, ['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3']); + bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3'].length.should.equal(1); }); it('will unsubscribe subscriptions for an emitter', function() { var bitcoind = new BitcoinService(baseConfig); var emitter1 = new EventEmitter(); var emitter2 = new EventEmitter(); - bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'] = [emitter1, emitter2]; + bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3'] = [emitter1, emitter2]; bitcoind.unsubscribeAddress(emitter1); - bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'].length.should.equal(1); + bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3'].length.should.equal(1); }); it('will NOT unsubscribe subscription with missing address', function() { var bitcoind = new BitcoinService(baseConfig); var emitter1 = new EventEmitter(); var emitter2 = new EventEmitter(); - bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'] = [emitter1, emitter2]; + bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3'] = [emitter1, emitter2]; bitcoind.unsubscribeAddress(emitter1, ['LWx1jmpcMAQMXou6pbLyfMU7zETnbhy3bo']); - bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'].length.should.equal(2); + bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3'].length.should.equal(2); }); it('will NOT unsubscribe subscription with missing emitter', function() { var bitcoind = new BitcoinService(baseConfig); var emitter1 = new EventEmitter(); var emitter2 = new EventEmitter(); - bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'] = [emitter2]; - bitcoind.unsubscribeAddress(emitter1, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']); - bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'].length.should.equal(1); - bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'][0].should.equal(emitter2); + bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3'] = [emitter2]; + bitcoind.unsubscribeAddress(emitter1, ['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3']); + bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3'].length.should.equal(1); + bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3'][0].should.equal(emitter2); }); it('will remove empty addresses', function() { var bitcoind = new BitcoinService(baseConfig); var emitter1 = new EventEmitter(); var emitter2 = new EventEmitter(); - bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'] = [emitter1, emitter2]; - bitcoind.unsubscribeAddress(emitter1, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']); - bitcoind.unsubscribeAddress(emitter2, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']); - should.not.exist(bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']); + bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3'] = [emitter1, emitter2]; + bitcoind.unsubscribeAddress(emitter1, ['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3']); + bitcoind.unsubscribeAddress(emitter2, ['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3']); + should.not.exist(bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3']); }); it('will unsubscribe emitter for all addresses', function() { var bitcoind = new BitcoinService(baseConfig); var emitter1 = new EventEmitter(); var emitter2 = new EventEmitter(); - bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'] = [emitter1, emitter2]; + bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3'] = [emitter1, emitter2]; bitcoind.subscriptions.address['LWx1jmpcMAQMXou6pbLyfMU7zETnbhy3bo'] = [emitter1, emitter2]; sinon.spy(bitcoind, 'unsubscribeAddressAll'); bitcoind.unsubscribeAddress(emitter1); bitcoind.unsubscribeAddressAll.callCount.should.equal(1); - bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'].length.should.equal(1); + bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3'].length.should.equal(1); bitcoind.subscriptions.address['LWx1jmpcMAQMXou6pbLyfMU7zETnbhy3bo'].length.should.equal(1); }); }); @@ -329,15 +329,15 @@ describe('Bitcoin Service', function() { var bitcoind = new BitcoinService(baseConfig); var emitter1 = new EventEmitter(); var emitter2 = new EventEmitter(); - bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'] = [emitter1, emitter2]; + bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3'] = [emitter1, emitter2]; bitcoind.subscriptions.address['LWx1jmpcMAQMXou6pbLyfMU7zETnbhy3bo'] = [emitter1, emitter2]; bitcoind.subscriptions.address['mgY65WSfEmsyYaYPQaXhmXMeBhwp4EcsQW'] = [emitter2]; - bitcoind.subscriptions.address['3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou'] = [emitter1]; + bitcoind.subscriptions.address['MJZWZqmykQ32rvH8vUnW9jEPbyGg7agWQZ'] = [emitter1]; bitcoind.unsubscribeAddress(emitter1); - bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'].length.should.equal(1); + bitcoind.subscriptions.address['mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3'].length.should.equal(1); bitcoind.subscriptions.address['LWx1jmpcMAQMXou6pbLyfMU7zETnbhy3bo'].length.should.equal(1); bitcoind.subscriptions.address['mgY65WSfEmsyYaYPQaXhmXMeBhwp4EcsQW'].length.should.equal(1); - should.not.exist(bitcoind.subscriptions.address['3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou']); + should.not.exist(bitcoind.subscriptions.address['MJZWZqmykQ32rvH8vUnW9jEPbyGg7agWQZ']); }); }); @@ -1091,7 +1091,7 @@ describe('Bitcoin Service', function() { var wif = 'T872No3VhULcqFF6Sv1PSCRXZKVBPYWG2UtG4ECFK7nzaUUU8Kuj'; var privkey = bitcore.PrivateKey.fromWIF(wif); var inputAddress = privkey.toAddress(bitcore.Networks.testnet); - var outputAddress = bitcore.Address('2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'); + var outputAddress = bitcore.Address('mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3'); var tx = bitcore.Transaction(); tx.from({ txid: '4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b', @@ -1139,7 +1139,7 @@ describe('Bitcoin Service', function() { it('will return unique values', function() { var bitcoind = new BitcoinService(baseConfig); var tx = bitcore.Transaction(); - var address = bitcore.Address('2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'); + var address = bitcore.Address('mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3'); tx.addOutput(bitcore.Transaction.Output({ script: bitcore.Script(address), satoshis: 5000000000 @@ -3318,32 +3318,32 @@ describe('Bitcoin Service', function() { it('will get address strings from bitcore addresses', function() { var addresses = [ bitcore.Address('LUVKqDPPVBQcjUwt1S21Pa5ybgPaDEZhXR'), - bitcore.Address('3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou'), + bitcore.Address('MJZWZqmykQ32rvH8vUnW9jEPbyGg7agWQZ'), ]; var bitcoind = new BitcoinService(baseConfig); var strings = bitcoind._getAddressStrings(addresses); strings[0].should.equal('LUVKqDPPVBQcjUwt1S21Pa5ybgPaDEZhXR'); - strings[1].should.equal('3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou'); + strings[1].should.equal('MJZWZqmykQ32rvH8vUnW9jEPbyGg7agWQZ'); }); it('will get address strings from strings', function() { var addresses = [ 'LUVKqDPPVBQcjUwt1S21Pa5ybgPaDEZhXR', - '3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou', + 'MJZWZqmykQ32rvH8vUnW9jEPbyGg7agWQZ', ]; var bitcoind = new BitcoinService(baseConfig); var strings = bitcoind._getAddressStrings(addresses); strings[0].should.equal('LUVKqDPPVBQcjUwt1S21Pa5ybgPaDEZhXR'); - strings[1].should.equal('3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou'); + strings[1].should.equal('MJZWZqmykQ32rvH8vUnW9jEPbyGg7agWQZ'); }); it('will get address strings from mixture of types', function() { var addresses = [ bitcore.Address('LUVKqDPPVBQcjUwt1S21Pa5ybgPaDEZhXR'), - '3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou', + 'MJZWZqmykQ32rvH8vUnW9jEPbyGg7agWQZ', ]; var bitcoind = new BitcoinService(baseConfig); var strings = bitcoind._getAddressStrings(addresses); strings[0].should.equal('LUVKqDPPVBQcjUwt1S21Pa5ybgPaDEZhXR'); - strings[1].should.equal('3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou'); + strings[1].should.equal('MJZWZqmykQ32rvH8vUnW9jEPbyGg7agWQZ'); }); it('will give error with unknown', function() { var addresses = [ @@ -4135,12 +4135,12 @@ describe('Bitcoin Service', function() { getBlockHash: getBlockHash } }); - bitcoind._maybeGetBlockHash('2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br', function(err, hash) { + bitcoind._maybeGetBlockHash('mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3', function(err, hash) { if (err) { return done(err); } getBlockHash.callCount.should.equal(0); - hash.should.equal('2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'); + hash.should.equal('mu5a17UQDh2hsRk9ZJzFkTfCbzZhMVBHY3'); done(); }); }); @@ -5033,4 +5033,4 @@ describe('Bitcoin Service', function() { }); }); -}); +}); \ No newline at end of file From 0e5e03bd301c5a28656fa2b0e0b6082b1397684e Mon Sep 17 00:00:00 2001 From: Edin Jusupovic Date: Wed, 22 Aug 2018 17:03:35 +1000 Subject: [PATCH 2/3] Bug fix reported by linter. --- lib/services/bitcoind.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/services/bitcoind.js b/lib/services/bitcoind.js index c53dc4c86..e827c5863 100644 --- a/lib/services/bitcoind.js +++ b/lib/services/bitcoind.js @@ -1987,7 +1987,7 @@ Bitcoin.prototype.getDetailedTransaction = function(txid, callback) { // returns vsize for segwit-positive coins, // regular size if segwit is disbled - var size = result.vsize == null ? result.size : result.vsize; + var size = result.vsize === null ? result.size : result.vsize; var tx = { hex: result.hex, blockHash: result.blockhash, From 7d023b23958c4e6aa8bf2d4dc4c4ac8ef443535d Mon Sep 17 00:00:00 2001 From: Edin Jusupovic Date: Wed, 22 Aug 2018 17:23:25 +1000 Subject: [PATCH 3/3] Added Travis build for current NodeJS LTS v8.11.4 --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index fbc8be0eb..dc36d591d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,9 +14,10 @@ node_js: - "v0.10.25" - "v0.12.7" - "v4" + - "v8.11.4" script: - npm run regtest - npm run test - npm run jshint after_success: - - npm run coveralls \ No newline at end of file + - npm run coveralls