|
|
@ -926,11 +926,11 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa |
|
|
|
*pfMissingInputs = false; |
|
|
|
*pfMissingInputs = false; |
|
|
|
|
|
|
|
|
|
|
|
if (!CheckTransaction(tx, state)) |
|
|
|
if (!CheckTransaction(tx, state)) |
|
|
|
return error("AcceptToMemoryPool: : CheckTransaction failed"); |
|
|
|
return error("AcceptToMemoryPool: CheckTransaction failed"); |
|
|
|
|
|
|
|
|
|
|
|
// Coinbase is only valid in a block, not as a loose transaction
|
|
|
|
// Coinbase is only valid in a block, not as a loose transaction
|
|
|
|
if (tx.IsCoinBase()) |
|
|
|
if (tx.IsCoinBase()) |
|
|
|
return state.DoS(100, error("AcceptToMemoryPool: : coinbase as individual tx"), |
|
|
|
return state.DoS(100, error("AcceptToMemoryPool: coinbase as individual tx"), |
|
|
|
REJECT_INVALID, "coinbase"); |
|
|
|
REJECT_INVALID, "coinbase"); |
|
|
|
|
|
|
|
|
|
|
|
// Rather not work on nonstandard transactions (unless -testnet/-regtest)
|
|
|
|
// Rather not work on nonstandard transactions (unless -testnet/-regtest)
|
|
|
@ -1000,7 +1000,7 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa |
|
|
|
|
|
|
|
|
|
|
|
// Check for non-standard pay-to-script-hash in inputs
|
|
|
|
// Check for non-standard pay-to-script-hash in inputs
|
|
|
|
if (Params().RequireStandard() && !AreInputsStandard(tx, view)) |
|
|
|
if (Params().RequireStandard() && !AreInputsStandard(tx, view)) |
|
|
|
return error("AcceptToMemoryPool: : nonstandard transaction input"); |
|
|
|
return error("AcceptToMemoryPool: nonstandard transaction input"); |
|
|
|
|
|
|
|
|
|
|
|
// Check that the transaction doesn't have an excessive number of
|
|
|
|
// Check that the transaction doesn't have an excessive number of
|
|
|
|
// sigops, making it impossible to mine. Since the coinbase transaction
|
|
|
|
// sigops, making it impossible to mine. Since the coinbase transaction
|
|
|
@ -1076,7 +1076,7 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa |
|
|
|
// can be exploited as a DoS attack.
|
|
|
|
// can be exploited as a DoS attack.
|
|
|
|
if (!CheckInputs(tx, state, view, true, MANDATORY_SCRIPT_VERIFY_FLAGS, true)) |
|
|
|
if (!CheckInputs(tx, state, view, true, MANDATORY_SCRIPT_VERIFY_FLAGS, true)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
return error("AcceptToMemoryPool: : BUG! PLEASE REPORT THIS! ConnectInputs failed against MANDATORY but not STANDARD flags %s", hash.ToString()); |
|
|
|
return error("AcceptToMemoryPool: BUG! PLEASE REPORT THIS! ConnectInputs failed against MANDATORY but not STANDARD flags %s", hash.ToString()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Store transaction in memory
|
|
|
|
// Store transaction in memory
|
|
|
|