Convert chain RuleError to TxRuleError in mempool.
When a transaction is being checked for acceptance into the transation memory pool, it makes use of a chain function to ensure the invariant rules for what transactions are allowed into a block are not violated. That function returns a btcchain.RuleError if rules are violated. However, since this code path is tailored to free-standing transactions, the error needs to be converted to a TxRuleError so the caller can properly detect the transaction as a rejected transaction instead of treating it like an real error.
This commit is contained in:
parent
166f8c9ae5
commit
527a08eb14
1 changed files with 3 additions and 0 deletions
|
@ -779,6 +779,9 @@ func (mp *txMemPool) maybeAcceptTransaction(tx *btcutil.Tx, isOrphan *bool) erro
|
||||||
// used later.
|
// used later.
|
||||||
txFee, err := btcchain.CheckTransactionInputs(tx, nextBlockHeight, txStore)
|
txFee, err := btcchain.CheckTransactionInputs(tx, nextBlockHeight, txStore)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if _, ok := err.(btcchain.RuleError); ok {
|
||||||
|
return TxRuleError(err.Error())
|
||||||
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue