|
|
@ -956,9 +956,18 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa |
|
|
|
if (Params().RequireStandard() && !AreInputsStandard(tx, view)) |
|
|
|
if (Params().RequireStandard() && !AreInputsStandard(tx, view)) |
|
|
|
return error("AcceptToMemoryPool: : nonstandard transaction input"); |
|
|
|
return error("AcceptToMemoryPool: : nonstandard transaction input"); |
|
|
|
|
|
|
|
|
|
|
|
// Note: if you modify this code to accept non-standard transactions, then
|
|
|
|
// Check that the transaction doesn't have an excessive number of
|
|
|
|
// you should add code here to check that the transaction does a
|
|
|
|
// sigops, making it impossible to mine. Since the coinbase transaction
|
|
|
|
// reasonable number of ECDSA signature verifications.
|
|
|
|
// itself can contain sigops MAX_TX_SIGOPS is less than
|
|
|
|
|
|
|
|
// MAX_BLOCK_SIGOPS; we still consider this an invalid rather than
|
|
|
|
|
|
|
|
// merely non-standard transaction.
|
|
|
|
|
|
|
|
unsigned int nSigOps = GetLegacySigOpCount(tx); |
|
|
|
|
|
|
|
nSigOps += GetP2SHSigOpCount(tx, view); |
|
|
|
|
|
|
|
if (nSigOps > MAX_TX_SIGOPS) |
|
|
|
|
|
|
|
return state.DoS(0, |
|
|
|
|
|
|
|
error("AcceptToMemoryPool : too many sigops %s, %d > %d", |
|
|
|
|
|
|
|
hash.ToString(), nSigOps, MAX_TX_SIGOPS), |
|
|
|
|
|
|
|
REJECT_NONSTANDARD, "bad-txns-too-many-sigops"); |
|
|
|
|
|
|
|
|
|
|
|
int64_t nValueOut = tx.GetValueOut(); |
|
|
|
int64_t nValueOut = tx.GetValueOut(); |
|
|
|
int64_t nFees = nValueIn-nValueOut; |
|
|
|
int64_t nFees = nValueIn-nValueOut; |
|
|
|