chaindb: fix reorg handling for spv.
This commit is contained in:
parent
f5625e76e1
commit
0d9afabd87
@ -11,7 +11,6 @@ var AsyncObject = require('../utils/async');
|
||||
var constants = require('../protocol/constants');
|
||||
var utils = require('../utils/utils');
|
||||
var assert = require('assert');
|
||||
var DUMMY = new Buffer([0]);
|
||||
var BufferWriter = require('../utils/writer');
|
||||
var BufferReader = require('../utils/reader');
|
||||
var co = require('../utils/co');
|
||||
@ -24,6 +23,7 @@ var Coin = require('../primitives/coin');
|
||||
var TX = require('../primitives/tx');
|
||||
var Address = require('../primitives/address');
|
||||
var ChainEntry = require('./chainentry');
|
||||
var DUMMY = new Buffer([0]);
|
||||
|
||||
/*
|
||||
* Database Layout:
|
||||
@ -655,7 +655,7 @@ ChainDB.prototype.disconnect = co(function* disconnect(entry) {
|
||||
if (this.options.spv) {
|
||||
this.put(layout.R, this.pending.commit(entry.prevBlock));
|
||||
yield this.commit();
|
||||
return [entry, entry.toHeaders()];
|
||||
return entry.toHeaders();
|
||||
}
|
||||
|
||||
try {
|
||||
@ -1032,18 +1032,19 @@ ChainDB.prototype.disconnectBlock = co(function* disconnectBlock(block) {
|
||||
*/
|
||||
|
||||
ChainDB.prototype.fillCoins = co(function* fillCoins(tx) {
|
||||
var i, input, coin;
|
||||
var i, input, prevout, coin;
|
||||
|
||||
if (tx.isCoinbase())
|
||||
return tx;
|
||||
|
||||
for (i = 0; i < tx.inputs.length; i++) {
|
||||
input = tx.inputs[i];
|
||||
prevout = input.prevout;
|
||||
|
||||
if (input.coin)
|
||||
continue;
|
||||
|
||||
coin = yield this.getCoin(input.prevout.hash, input.prevout.index);
|
||||
coin = yield this.getCoin(prevout.hash, prevout.index);
|
||||
|
||||
if (coin)
|
||||
input.coin = coin;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user