always set nSequence to zero when nLockTime is present.
This commit is contained in:
parent
1e0a153b59
commit
135208910d
@ -23,6 +23,7 @@ function TX(data, block) {
|
|||||||
this._hash = null;
|
this._hash = null;
|
||||||
this._raw = data._raw || null;
|
this._raw = data._raw || null;
|
||||||
this._network = data._network || false;
|
this._network = data._network || false;
|
||||||
|
this._lock = this.lock;
|
||||||
|
|
||||||
if (data.inputs) {
|
if (data.inputs) {
|
||||||
data.inputs.forEach(function(input) {
|
data.inputs.forEach(function(input) {
|
||||||
@ -101,16 +102,18 @@ TX.prototype._input = function _input(i, index) {
|
|||||||
var prev = input.out.tx.outputs[input.out.index].script;
|
var prev = input.out.tx.outputs[input.out.index].script;
|
||||||
var lock = bcoin.script.lockTime(prev);
|
var lock = bcoin.script.lockTime(prev);
|
||||||
if (lock) {
|
if (lock) {
|
||||||
// this.lock = Math.max(lock.toNumber(), this.lock);
|
if (this._lock === 0)
|
||||||
if (this.lock === 0)
|
this.lock = Math.max(lock.toNumber(), this.lock);
|
||||||
this.lock = lock.toNumber();
|
|
||||||
if (!bcoin.script.spendable(this, this.lock))
|
if (!bcoin.script.spendable(this, this.lock))
|
||||||
throw new Error('Cannot spend ' + utils.revHex(input.out.hash));
|
throw new Error('Cannot spend ' + utils.revHex(input.out.hash));
|
||||||
if (input.seq === 0xffffffff)
|
|
||||||
input.seq = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.lock !== 0) {
|
||||||
|
if (i.seq === undefined)
|
||||||
|
input.seq = 0;
|
||||||
|
}
|
||||||
|
|
||||||
// Try modifying existing input first
|
// Try modifying existing input first
|
||||||
var index = this._inputIndex(hash, index);
|
var index = this._inputIndex(hash, index);
|
||||||
if (index !== -1) {
|
if (index !== -1) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user