mempool
This commit is contained in:
parent
b4d40ca098
commit
f0bf9c8602
@ -248,11 +248,11 @@ Mempool.prototype.addTX = function addTX(tx, peer, callback, force) {
|
|||||||
callback = utils.asyncify(callback);
|
callback = utils.asyncify(callback);
|
||||||
|
|
||||||
if (!this.checkTX(tx, peer))
|
if (!this.checkTX(tx, peer))
|
||||||
return callback(new Error('CheckTransaction failed'));
|
return callback(new VerifyError('CheckTransaction failed', -1));
|
||||||
|
|
||||||
if (tx.isCoinbase()) {
|
if (tx.isCoinbase()) {
|
||||||
peer.sendReject(tx, 'coinbase', 100);
|
peer.sendReject(tx, 'coinbase', 100);
|
||||||
return callback(new Error('coinbase as individual tx'));
|
return callback(new VerifyError('coinbase as individual tx', 100));
|
||||||
}
|
}
|
||||||
|
|
||||||
ts = utils.now();
|
ts = utils.now();
|
||||||
@ -271,35 +271,34 @@ Mempool.prototype.addTX = function addTX(tx, peer, callback, force) {
|
|||||||
return callback();
|
return callback();
|
||||||
|
|
||||||
self.node.fillCoin(tx, function(err) {
|
self.node.fillCoin(tx, function(err) {
|
||||||
var i, input, output, total, fee, coin;
|
|
||||||
|
|
||||||
if (err)
|
if (err)
|
||||||
return callback(err);
|
return callback(err);
|
||||||
|
|
||||||
self.tx.isDoubleSpend(tx, function(err, result) {
|
if (!tx.hasPrevout()) {
|
||||||
if (err)
|
return self.tx.isDoubleSpend(tx, function(err, result) {
|
||||||
return callback(err);
|
if (err)
|
||||||
|
|
||||||
if (result) {
|
|
||||||
peer.sendReject(tx, 'bad-txns-inputs-spent', 0);
|
|
||||||
return callback(new VerifyError('bad-txns-inputs-spent', 0));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!tx.hasPrevout())
|
|
||||||
return self.storeOrphan(tx, callback);
|
|
||||||
|
|
||||||
self.verify(tx, function(err) {
|
|
||||||
if (err) {
|
|
||||||
if (err.type === 'VerifyError') {
|
|
||||||
if (err.score !== -1)
|
|
||||||
peer.sendReject(tx, err.reason, err.score);
|
|
||||||
return callback(err);
|
|
||||||
}
|
|
||||||
return callback(err);
|
return callback(err);
|
||||||
|
|
||||||
|
if (result) {
|
||||||
|
peer.sendReject(tx, 'bad-txns-inputs-spent', 0);
|
||||||
|
return callback(new VerifyError('bad-txns-inputs-spent', 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
self.addUnchecked(tx, peer, callback);
|
return self.storeOrphan(tx, callback);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
self.verify(tx, function(err) {
|
||||||
|
if (err) {
|
||||||
|
if (err.type === 'VerifyError') {
|
||||||
|
if (err.score !== -1)
|
||||||
|
peer.sendReject(tx, err.reason, err.score);
|
||||||
|
return callback(err);
|
||||||
|
}
|
||||||
|
return callback(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
self.addUnchecked(tx, peer, callback);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@ -857,7 +857,7 @@ TX.prototype.isStandardInputs = function isStandardInputs(flags) {
|
|||||||
|
|
||||||
// Input script must be exactly one push of the redeem script.
|
// Input script must be exactly one push of the redeem script.
|
||||||
if (!(input.script.code.length === 1
|
if (!(input.script.code.length === 1
|
||||||
&& utils.isEqual(input.script.code[0], raw))) {
|
&& utils.isEqual(input.script.code[0], redeem.raw))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user