pass nBytes as parameter to GetMinFee(..)
This commit is contained in:
parent
6ad44f5693
commit
8dfd8c62dc
3 changed files with 4 additions and 5 deletions
|
@ -599,12 +599,11 @@ bool CheckTransaction(const CTransaction& tx, CValidationState &state)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t GetMinFee(const CTransaction& tx, bool fAllowFree, enum GetMinFee_mode mode)
|
int64_t GetMinFee(const CTransaction& tx, unsigned int nBytes, bool fAllowFree, enum GetMinFee_mode mode)
|
||||||
{
|
{
|
||||||
// Base fee is either nMinTxFee or nMinRelayTxFee
|
// Base fee is either nMinTxFee or nMinRelayTxFee
|
||||||
int64_t nBaseFee = (mode == GMF_RELAY) ? tx.nMinRelayTxFee : tx.nMinTxFee;
|
int64_t nBaseFee = (mode == GMF_RELAY) ? tx.nMinRelayTxFee : tx.nMinTxFee;
|
||||||
|
|
||||||
unsigned int nBytes = ::GetSerializeSize(tx, SER_NETWORK, PROTOCOL_VERSION);
|
|
||||||
int64_t nMinFee = (1 + (int64_t)nBytes / 1000) * nBaseFee;
|
int64_t nMinFee = (1 + (int64_t)nBytes / 1000) * nBaseFee;
|
||||||
|
|
||||||
if (fAllowFree)
|
if (fAllowFree)
|
||||||
|
@ -740,7 +739,7 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa
|
||||||
unsigned int nSize = ::GetSerializeSize(tx, SER_NETWORK, PROTOCOL_VERSION);
|
unsigned int nSize = ::GetSerializeSize(tx, SER_NETWORK, PROTOCOL_VERSION);
|
||||||
|
|
||||||
// Don't accept it if it can't get into a block
|
// Don't accept it if it can't get into a block
|
||||||
int64_t txMinFee = GetMinFee(tx, true, GMF_RELAY);
|
int64_t txMinFee = GetMinFee(tx, nSize, true, GMF_RELAY);
|
||||||
if (fLimitFree && nFees < txMinFee)
|
if (fLimitFree && nFees < txMinFee)
|
||||||
return state.DoS(0, error("AcceptToMemoryPool : not enough fees %s, %"PRId64" < %"PRId64,
|
return state.DoS(0, error("AcceptToMemoryPool : not enough fees %s, %"PRId64" < %"PRId64,
|
||||||
hash.ToString().c_str(), nFees, txMinFee),
|
hash.ToString().c_str(), nFees, txMinFee),
|
||||||
|
|
|
@ -258,7 +258,7 @@ enum GetMinFee_mode
|
||||||
GMF_SEND,
|
GMF_SEND,
|
||||||
};
|
};
|
||||||
|
|
||||||
int64_t GetMinFee(const CTransaction& tx, bool fAllowFree, enum GetMinFee_mode mode);
|
int64_t GetMinFee(const CTransaction& tx, unsigned int nBytes, bool fAllowFree, enum GetMinFee_mode mode);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Check transaction inputs, and make sure any
|
// Check transaction inputs, and make sure any
|
||||||
|
|
|
@ -1334,7 +1334,7 @@ bool CWallet::CreateTransaction(const vector<pair<CScript, int64_t> >& vecSend,
|
||||||
// Check that enough fee is included
|
// Check that enough fee is included
|
||||||
int64_t nPayFee = nTransactionFee * (1 + (int64_t)nBytes / 1000);
|
int64_t nPayFee = nTransactionFee * (1 + (int64_t)nBytes / 1000);
|
||||||
bool fAllowFree = AllowFree(dPriority);
|
bool fAllowFree = AllowFree(dPriority);
|
||||||
int64_t nMinFee = GetMinFee(wtxNew, fAllowFree, GMF_SEND);
|
int64_t nMinFee = GetMinFee(wtxNew, nBytes, fAllowFree, GMF_SEND);
|
||||||
if (nFeeRet < max(nPayFee, nMinFee))
|
if (nFeeRet < max(nPayFee, nMinFee))
|
||||||
{
|
{
|
||||||
nFeeRet = max(nPayFee, nMinFee);
|
nFeeRet = max(nPayFee, nMinFee);
|
||||||
|
|
Loading…
Reference in a new issue