Use const CCoinsView's at some places.
At some places where it is possible (e. g., CheckInputs), use a const version of CCoinsView instead of a non-const one.
This commit is contained in:
parent
a3dc587a62
commit
d0867acb0e
@ -644,7 +644,7 @@ bool IsFinalTx(const CTransaction &tx, int nBlockHeight, int64_t nBlockTime)
|
|||||||
// 2. P2SH scripts with a crazy number of expensive
|
// 2. P2SH scripts with a crazy number of expensive
|
||||||
// CHECKSIG/CHECKMULTISIG operations
|
// CHECKSIG/CHECKMULTISIG operations
|
||||||
//
|
//
|
||||||
bool AreInputsStandard(const CTransaction& tx, CCoinsViewCache& mapInputs)
|
bool AreInputsStandard(const CTransaction& tx, const CCoinsViewCache& mapInputs)
|
||||||
{
|
{
|
||||||
if (tx.IsCoinBase())
|
if (tx.IsCoinBase())
|
||||||
return true; // Coinbases don't use vin normally
|
return true; // Coinbases don't use vin normally
|
||||||
@ -717,7 +717,7 @@ unsigned int GetLegacySigOpCount(const CTransaction& tx)
|
|||||||
return nSigOps;
|
return nSigOps;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int GetP2SHSigOpCount(const CTransaction& tx, CCoinsViewCache& inputs)
|
unsigned int GetP2SHSigOpCount(const CTransaction& tx, const CCoinsViewCache& inputs)
|
||||||
{
|
{
|
||||||
if (tx.IsCoinBase())
|
if (tx.IsCoinBase())
|
||||||
return 0;
|
return 0;
|
||||||
@ -1470,7 +1470,7 @@ bool VerifySignature(const CCoins& txFrom, const CTransaction& txTo, unsigned in
|
|||||||
return CScriptCheck(txFrom, txTo, nIn, flags, nHashType)();
|
return CScriptCheck(txFrom, txTo, nIn, flags, nHashType)();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CheckInputs(const CTransaction& tx, CValidationState &state, CCoinsViewCache &inputs, bool fScriptChecks, unsigned int flags, std::vector<CScriptCheck> *pvChecks)
|
bool CheckInputs(const CTransaction& tx, CValidationState &state, const CCoinsViewCache &inputs, bool fScriptChecks, unsigned int flags, std::vector<CScriptCheck> *pvChecks)
|
||||||
{
|
{
|
||||||
if (!tx.IsCoinBase())
|
if (!tx.IsCoinBase())
|
||||||
{
|
{
|
||||||
|
@ -265,7 +265,7 @@ int64_t GetMinRelayFee(const CTransaction& tx, unsigned int nBytes, bool fAllowF
|
|||||||
@param[in] mapInputs Map of previous transactions that have outputs we're spending
|
@param[in] mapInputs Map of previous transactions that have outputs we're spending
|
||||||
@return True if all inputs (scriptSigs) use only standard transaction forms
|
@return True if all inputs (scriptSigs) use only standard transaction forms
|
||||||
*/
|
*/
|
||||||
bool AreInputsStandard(const CTransaction& tx, CCoinsViewCache& mapInputs);
|
bool AreInputsStandard(const CTransaction& tx, const CCoinsViewCache& mapInputs);
|
||||||
|
|
||||||
/** Count ECDSA signature operations the old-fashioned (pre-0.6) way
|
/** Count ECDSA signature operations the old-fashioned (pre-0.6) way
|
||||||
@return number of sigops this transaction's outputs will produce when spent
|
@return number of sigops this transaction's outputs will produce when spent
|
||||||
@ -279,13 +279,13 @@ unsigned int GetLegacySigOpCount(const CTransaction& tx);
|
|||||||
@return maximum number of sigops required to validate this transaction's inputs
|
@return maximum number of sigops required to validate this transaction's inputs
|
||||||
@see CTransaction::FetchInputs
|
@see CTransaction::FetchInputs
|
||||||
*/
|
*/
|
||||||
unsigned int GetP2SHSigOpCount(const CTransaction& tx, CCoinsViewCache& mapInputs);
|
unsigned int GetP2SHSigOpCount(const CTransaction& tx, const CCoinsViewCache& mapInputs);
|
||||||
|
|
||||||
|
|
||||||
// Check whether all inputs of this transaction are valid (no double spends, scripts & sigs, amounts)
|
// Check whether all inputs of this transaction are valid (no double spends, scripts & sigs, amounts)
|
||||||
// This does not modify the UTXO set. If pvChecks is not NULL, script checks are pushed onto it
|
// This does not modify the UTXO set. If pvChecks is not NULL, script checks are pushed onto it
|
||||||
// instead of being performed inline.
|
// instead of being performed inline.
|
||||||
bool CheckInputs(const CTransaction& tx, CValidationState &state, CCoinsViewCache &view, bool fScriptChecks = true,
|
bool CheckInputs(const CTransaction& tx, CValidationState &state, const CCoinsViewCache &view, bool fScriptChecks = true,
|
||||||
unsigned int flags = STANDARD_SCRIPT_VERIFY_FLAGS,
|
unsigned int flags = STANDARD_SCRIPT_VERIFY_FLAGS,
|
||||||
std::vector<CScriptCheck> *pvChecks = NULL);
|
std::vector<CScriptCheck> *pvChecks = NULL);
|
||||||
|
|
||||||
|
@ -484,7 +484,7 @@ void CTxMemPool::clear()
|
|||||||
++nTransactionsUpdated;
|
++nTransactionsUpdated;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CTxMemPool::check(CCoinsViewCache *pcoins) const
|
void CTxMemPool::check(const CCoinsViewCache *pcoins) const
|
||||||
{
|
{
|
||||||
if (!fSanityCheck)
|
if (!fSanityCheck)
|
||||||
return;
|
return;
|
||||||
@ -505,7 +505,7 @@ void CTxMemPool::check(CCoinsViewCache *pcoins) const
|
|||||||
const CTransaction& tx2 = it2->second.GetTx();
|
const CTransaction& tx2 = it2->second.GetTx();
|
||||||
assert(tx2.vout.size() > txin.prevout.n && !tx2.vout[txin.prevout.n].IsNull());
|
assert(tx2.vout.size() > txin.prevout.n && !tx2.vout[txin.prevout.n].IsNull());
|
||||||
} else {
|
} else {
|
||||||
CCoins &coins = pcoins->GetCoins(txin.prevout.hash);
|
const CCoins &coins = pcoins->GetCoins(txin.prevout.hash);
|
||||||
assert(coins.IsAvailable(txin.prevout.n));
|
assert(coins.IsAvailable(txin.prevout.n));
|
||||||
}
|
}
|
||||||
// Check whether its inputs are marked in mapNextTx.
|
// Check whether its inputs are marked in mapNextTx.
|
||||||
|
@ -85,7 +85,7 @@ public:
|
|||||||
* all inputs are in the mapNextTx array). If sanity-checking is turned off,
|
* all inputs are in the mapNextTx array). If sanity-checking is turned off,
|
||||||
* check does nothing.
|
* check does nothing.
|
||||||
*/
|
*/
|
||||||
void check(CCoinsViewCache *pcoins) const;
|
void check(const CCoinsViewCache *pcoins) const;
|
||||||
void setSanityCheck(bool _fSanityCheck) { fSanityCheck = _fSanityCheck; }
|
void setSanityCheck(bool _fSanityCheck) { fSanityCheck = _fSanityCheck; }
|
||||||
|
|
||||||
bool addUnchecked(const uint256& hash, const CTxMemPoolEntry &entry);
|
bool addUnchecked(const uint256& hash, const CTxMemPoolEntry &entry);
|
||||||
|
Loading…
Reference in New Issue
Block a user