@ -694,7 +694,7 @@ void CTxMemPool::pruneSpent(const uint256 &hashTx, CCoins &coins)
}
}
}
}
bool CTxMemPool : : accept ( CValidationState & state , CTransaction & tx , bool fCheckInputs , bool f LimitFree ,
bool CTxMemPool : : accept ( CValidationState & state , CTransaction & tx , bool fLimitFree ,
bool * pfMissingInputs )
bool * pfMissingInputs )
{
{
if ( pfMissingInputs )
if ( pfMissingInputs )
@ -751,7 +751,6 @@ bool CTxMemPool::accept(CValidationState &state, CTransaction &tx, bool fCheckIn
}
}
}
}
if ( fCheckInputs )
{
{
CCoinsView dummy ;
CCoinsView dummy ;
CCoinsViewCache view ( dummy ) ;
CCoinsViewCache view ( dummy ) ;
@ -968,15 +967,15 @@ int CMerkleTx::GetBlocksToMaturity() const
}
}
bool CMerkleTx : : AcceptToMemoryPool ( bool fCheckInputs , bool f LimitFree )
bool CMerkleTx : : AcceptToMemoryPool ( bool fLimitFree )
{
{
CValidationState state ;
CValidationState state ;
return mempool . accept ( state , * this , fCheckInputs , f LimitFree , NULL ) ;
return mempool . accept ( state , * this , fLimitFree , NULL ) ;
}
}
bool CWalletTx : : AcceptWalletTransaction ( bool fCheckInputs )
bool CWalletTx : : AcceptWalletTransaction ( )
{
{
{
{
LOCK ( mempool . cs ) ;
LOCK ( mempool . cs ) ;
@ -987,10 +986,10 @@ bool CWalletTx::AcceptWalletTransaction(bool fCheckInputs)
{
{
uint256 hash = tx . GetHash ( ) ;
uint256 hash = tx . GetHash ( ) ;
if ( ! mempool . exists ( hash ) & & pcoinsTip - > HaveCoins ( hash ) )
if ( ! mempool . exists ( hash ) & & pcoinsTip - > HaveCoins ( hash ) )
tx . AcceptToMemoryPool ( fCheckInputs , false ) ;
tx . AcceptToMemoryPool ( false ) ;
}
}
}
}
return AcceptToMemoryPool ( fCheckInputs , false ) ;
return AcceptToMemoryPool ( false ) ;
}
}
return false ;
return false ;
}
}
@ -1865,7 +1864,7 @@ bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew)
BOOST_FOREACH ( CTransaction & tx , vResurrect ) {
BOOST_FOREACH ( CTransaction & tx , vResurrect ) {
// ignore validation errors in resurrected transactions
// ignore validation errors in resurrected transactions
CValidationState stateDummy ;
CValidationState stateDummy ;
mempool . accept ( stateDummy , tx , true , false , NULL ) ;
mempool . accept ( stateDummy , tx , false , NULL ) ;
}
}
// Delete redundant memory transactions that are in the connected branch
// Delete redundant memory transactions that are in the connected branch
@ -3507,7 +3506,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
bool fMissingInputs = false ;
bool fMissingInputs = false ;
CValidationState state ;
CValidationState state ;
if ( mempool . accept ( state , tx , true , true , & fMissingInputs ) )
if ( mempool . accept ( state , tx , true , & fMissingInputs ) )
{
{
RelayTransaction ( tx , inv . hash , vMsg ) ;
RelayTransaction ( tx , inv . hash , vMsg ) ;
mapAlreadyAskedFor . erase ( inv ) ;
mapAlreadyAskedFor . erase ( inv ) ;
@ -3530,7 +3529,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
// Use a dummy CValidationState so someone can't setup nodes to counter-DoS based on orphan resolution (that is, feeding people an invalid transaction based on LegitTxX in order to get anyone relaying LegitTxX banned)
// Use a dummy CValidationState so someone can't setup nodes to counter-DoS based on orphan resolution (that is, feeding people an invalid transaction based on LegitTxX in order to get anyone relaying LegitTxX banned)
CValidationState stateDummy ;
CValidationState stateDummy ;
if ( mempool . accept ( stateDummy , tx , true , true , & fMissingInputs2 ) )
if ( mempool . accept ( stateDummy , tx , true , & fMissingInputs2 ) )
{
{
printf ( " accepted orphan tx %s \n " , inv . hash . ToString ( ) . c_str ( ) ) ;
printf ( " accepted orphan tx %s \n " , inv . hash . ToString ( ) . c_str ( ) ) ;
RelayTransaction ( tx , inv . hash , vMsg ) ;
RelayTransaction ( tx , inv . hash , vMsg ) ;