@ -19,10 +19,10 @@
@@ -19,10 +19,10 @@
using namespace std ;
CTxMemPoolEntry : : CTxMemPoolEntry ( const CTransaction & _tx , const CAmount & _nFee ,
int64_t _nTime , double _entryPriority ,
unsigned int _entryHeight , bool poolHasNoInputsOf ) :
int64_t _nTime , double _entryPriority , unsigned int _entryHeight ,
bool poolHasNoInputsOf , CAmount _inChainInputValue ) :
tx ( _tx ) , nFee ( _nFee ) , nTime ( _nTime ) , entryPriority ( _entryPriority ) , entryHeight ( _entryHeight ) ,
hadNoDependencies ( poolHasNoInputsOf )
hadNoDependencies ( poolHasNoInputsOf ) , inChainInputValue ( _inChainInputValue )
{
nTxSize = : : GetSerializeSize ( tx , SER_NETWORK , PROTOCOL_VERSION ) ;
nModSize = tx . CalculateModifiedSize ( nTxSize ) ;
@ -31,6 +31,8 @@ CTxMemPoolEntry::CTxMemPoolEntry(const CTransaction& _tx, const CAmount& _nFee,
@@ -31,6 +31,8 @@ CTxMemPoolEntry::CTxMemPoolEntry(const CTransaction& _tx, const CAmount& _nFee,
nCountWithDescendants = 1 ;
nSizeWithDescendants = nTxSize ;
nFeesWithDescendants = nFee ;
CAmount nValueIn = tx . GetValueOut ( ) + nFee ;
assert ( inChainInputValue < = nValueIn ) ;
}
CTxMemPoolEntry : : CTxMemPoolEntry ( const CTxMemPoolEntry & other )
@ -41,9 +43,10 @@ CTxMemPoolEntry::CTxMemPoolEntry(const CTxMemPoolEntry& other)
@@ -41,9 +43,10 @@ CTxMemPoolEntry::CTxMemPoolEntry(const CTxMemPoolEntry& other)
double
CTxMemPoolEntry : : GetPriority ( unsigned int currentHeight ) const
{
CAmount nValueIn = tx . GetValueOut ( ) + nFee ;
double deltaPriority = ( ( double ) ( currentHeight - entryHeight ) * nValueIn ) / nModSize ;
double deltaPriority = ( ( double ) ( currentHeight - entryHeight ) * inChainInputValue ) / nModSize ;
double dResult = entryPriority + deltaPriority ;
if ( dResult < 0 ) // This should only happen if it was called with a height below entry height
dResult = 0 ;
return dResult ;
}