process block working!

This commit is contained in:
Matias Alejo Garcia 2016-12-09 11:38:16 -03:00
parent 9bbfff071e
commit 2cff530072
No known key found for this signature in database
GPG Key ID: 02470DB551277AB3
5 changed files with 76 additions and 19 deletions

View File

@ -182,9 +182,7 @@ BlockchainMonitor.prototype._handleTxOuts = function(data) {
};
BlockchainMonitor.prototype._processBlock = function(network, hash, cb) {
var self = this;
console.log('[blockchainmonitor.js.184:network:]', network); //TODO
//1. check block is not reorg
//2. doProcessBlock
@ -192,7 +190,6 @@ BlockchainMonitor.prototype._processBlock = function(network, hash, cb) {
if (err) return cb(err);
log.debug('Processing block ' + network + ' ' + hash);
console.log('[blockchainmonitor.js.195:data:]',data); //TODO
var block = new Bitcore.Block(new Buffer(data.rawblock, 'hex'));
var txs = block.toObject().transactions;

View File

@ -859,6 +859,8 @@ Storage.prototype._dump = function(cb, fn) {
};
Storage.prototype.updateLastUsedOn = function(address, cb) {
// Do not use `upsert` here.
this.db.collection(collections.ADDRESSES).update({
address: address,
}, {

View File

@ -138,22 +138,27 @@ describe('Blockchain monitor', function() {
var incoming = {
hash: '123',
};
var address;
server.createAddress({}, function(err, a) {
blockchainExplorer.getBlock = sinon.stub().yields(null, {
rawblock: TestData.block.rawblock
});
var fakeAddresses= TestData.block.addresses.splice(0, 3);
server.getWallet({}, function(err, wallet) {
should.not.exist(err);
address = a.address;
helpers.insertFakeAddresses(server, wallet, fakeAddresses, function(err) {
should.not.exist(err);
// TODO add address to block data
blockchainExplorer.getBlock = sinon.stub().yields(null, {
rawblock: TestData.block
socket.handlers['block'](incoming);
setTimeout(function() {
storage.fetchRecentAddresses(wallet.id, (Date.now() / 1000) - 100, function(err, addr) {
_.pluck(addr,'address').should.be.deep.equal(fakeAddresses);
done();
});
}, 50);
});
socket.handlers['block'](incoming);
setTimeout(function() {
done();
}, 50);
});
});
});

View File

@ -233,9 +233,9 @@ helpers._parseAmount = function(str) {
switch (match[3]) {
default:
case 'btc':
case 'btc':
result.amount = Utils.strip(+match[2] * 1e8);
break;
break;
case 'bit':
result.amount = Utils.strip(+match[2] * 1e2);
break
@ -418,6 +418,20 @@ helpers.createAddresses = function(server, wallet, main, change, cb) {
});
};
helpers.insertFakeAddresses = function(server, wallet, addresses, cb) {
async.each(addresses, function(addr, i_cb) {
var addressObj = Model.Address.create({
walletId: wallet.id,
address: addr,
});
server.storage.storeAddressAndWallet(wallet, addressObj, function(err) {
return i_cb(err);
});
}, cb);
};
helpers.createAndPublishTx = function(server, txOpts, signingKey, cb) {
server.createTx(txOpts, function(err, txp) {
should.not.exist(err);

File diff suppressed because one or more lines are too long