|
|
@ -2518,11 +2518,18 @@ describe('Wallet service', function() { |
|
|
|
}); |
|
|
|
|
|
|
|
describe('#scan', function() { |
|
|
|
var server, wallet; |
|
|
|
var scanConfigOld = WalletService.scanConfig; |
|
|
|
beforeEach(function() { |
|
|
|
beforeEach(function(done) { |
|
|
|
this.timeout(5000); |
|
|
|
WalletService.scanConfig.SCAN_WINDOW = 2; |
|
|
|
WalletService.scanConfig.DERIVATION_DELAY = 0; |
|
|
|
|
|
|
|
helpers.createAndJoinWallet(1, 2, function(s, w) { |
|
|
|
server = s; |
|
|
|
wallet = w; |
|
|
|
done(); |
|
|
|
}); |
|
|
|
}); |
|
|
|
afterEach(function() { |
|
|
|
WalletService.scanConfig = scanConfigOld; |
|
|
@ -2530,7 +2537,6 @@ describe('Wallet service', function() { |
|
|
|
|
|
|
|
it('should scan main addresses', function(done) { |
|
|
|
helpers.stubAddressActivity(['3K2VWMXheGZ4qG35DyGjA2dLeKfaSr534A']); |
|
|
|
helpers.createAndJoinWallet(1, 2, function(server, wallet) { |
|
|
|
var expectedPaths = [ |
|
|
|
'm/2147483647/0/0', |
|
|
|
'm/2147483647/0/1', |
|
|
@ -2554,10 +2560,8 @@ describe('Wallet service', function() { |
|
|
|
}) |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
it('should scan main addresses & copayer addresses', function(done) { |
|
|
|
helpers.stubAddressActivity(['3K2VWMXheGZ4qG35DyGjA2dLeKfaSr534A']); |
|
|
|
helpers.createAndJoinWallet(1, 2, function(server, wallet) { |
|
|
|
var expectedPaths = [ |
|
|
|
'm/2147483647/0/0', |
|
|
|
'm/2147483647/0/1', |
|
|
@ -2587,12 +2591,10 @@ describe('Wallet service', function() { |
|
|
|
}) |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
it('should restore wallet balance', function(done) { |
|
|
|
async.waterfall([ |
|
|
|
|
|
|
|
function(next) { |
|
|
|
helpers.createAndJoinWallet(1, 2, function(server, wallet) { |
|
|
|
helpers.stubUtxos(server, wallet, [1, 2, 3], function(utxos) { |
|
|
|
should.exist(utxos); |
|
|
|
helpers.stubAddressActivity(_.pluck(utxos, 'address')); |
|
|
@ -2601,7 +2603,6 @@ describe('Wallet service', function() { |
|
|
|
next(null, server, wallet); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
function(server, wallet, next) { |
|
|
|
server.removeWallet({}, function(err) { |
|
|
@ -2834,6 +2835,56 @@ describe('Wallet service', function() { |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
describe('#startScan', function() { |
|
|
|
var server, wallet; |
|
|
|
var scanConfigOld = WalletService.scanConfig; |
|
|
|
beforeEach(function(done) { |
|
|
|
this.timeout(5000); |
|
|
|
WalletService.scanConfig.SCAN_WINDOW = 2; |
|
|
|
WalletService.scanConfig.DERIVATION_DELAY = 0; |
|
|
|
|
|
|
|
helpers.createAndJoinWallet(1, 2, function(s, w) { |
|
|
|
server = s; |
|
|
|
wallet = w; |
|
|
|
done(); |
|
|
|
}); |
|
|
|
}); |
|
|
|
afterEach(function() { |
|
|
|
WalletService.scanConfig = scanConfigOld; |
|
|
|
WalletService.onNotification(function() {}); |
|
|
|
}); |
|
|
|
|
|
|
|
it('should start an asynchronous scan', function(done) { |
|
|
|
helpers.stubAddressActivity(['3K2VWMXheGZ4qG35DyGjA2dLeKfaSr534A']); |
|
|
|
var expectedPaths = [ |
|
|
|
'm/2147483647/0/0', |
|
|
|
'm/2147483647/0/1', |
|
|
|
'm/2147483647/0/2', |
|
|
|
'm/2147483647/0/3', |
|
|
|
'm/2147483647/1/0', |
|
|
|
'm/2147483647/1/1', |
|
|
|
]; |
|
|
|
WalletService.onNotification(function(n) { |
|
|
|
if (n.type == 'ScanFinished') { |
|
|
|
server.storage.fetchAddresses(wallet.id, function(err, addresses) { |
|
|
|
should.exist(addresses); |
|
|
|
addresses.length.should.equal(expectedPaths.length); |
|
|
|
var paths = _.pluck(addresses, 'path'); |
|
|
|
_.difference(paths, expectedPaths).length.should.equal(0); |
|
|
|
server.createAddress({}, function(err, address) { |
|
|
|
should.not.exist(err); |
|
|
|
address.path.should.equal('m/2147483647/0/4'); |
|
|
|
done(); |
|
|
|
}); |
|
|
|
}) |
|
|
|
} |
|
|
|
}); |
|
|
|
server.startScan({}, function(err) { |
|
|
|
should.not.exist(err); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|