|
|
@ -2670,6 +2670,7 @@ bool CWallet::CreateTransaction(const std::vector<CRecipient>& vecSend, CWalletT |
|
|
|
assert(txNew.nLockTime <= (unsigned int)chainActive.Height()); |
|
|
|
assert(txNew.nLockTime <= (unsigned int)chainActive.Height()); |
|
|
|
assert(txNew.nLockTime < LOCKTIME_THRESHOLD); |
|
|
|
assert(txNew.nLockTime < LOCKTIME_THRESHOLD); |
|
|
|
FeeCalculation feeCalc; |
|
|
|
FeeCalculation feeCalc; |
|
|
|
|
|
|
|
CAmount nFeeNeeded; |
|
|
|
unsigned int nBytes; |
|
|
|
unsigned int nBytes; |
|
|
|
{ |
|
|
|
{ |
|
|
|
std::set<CInputCoin> setCoins; |
|
|
|
std::set<CInputCoin> setCoins; |
|
|
@ -2831,7 +2832,7 @@ bool CWallet::CreateTransaction(const std::vector<CRecipient>& vecSend, CWalletT |
|
|
|
vin.scriptWitness.SetNull(); |
|
|
|
vin.scriptWitness.SetNull(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
CAmount nFeeNeeded = GetMinimumFee(nBytes, coin_control, ::mempool, ::feeEstimator, &feeCalc); |
|
|
|
nFeeNeeded = GetMinimumFee(nBytes, coin_control, ::mempool, ::feeEstimator, &feeCalc); |
|
|
|
|
|
|
|
|
|
|
|
// If we made it here and we aren't even able to meet the relay fee on the next pass, give up
|
|
|
|
// If we made it here and we aren't even able to meet the relay fee on the next pass, give up
|
|
|
|
// because we must be at the maximum allowed fee.
|
|
|
|
// because we must be at the maximum allowed fee.
|
|
|
@ -2955,8 +2956,8 @@ bool CWallet::CreateTransaction(const std::vector<CRecipient>& vecSend, CWalletT |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
LogPrintf("Fee Calculation: Fee:%d Bytes:%u Tgt:%d (requested %d) Reason:\"%s\" Decay %.5f: Estimation: (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out) Fail: (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out)\n", |
|
|
|
LogPrintf("Fee Calculation: Fee:%d Bytes:%u Needed:%d Tgt:%d (requested %d) Reason:\"%s\" Decay %.5f: Estimation: (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out) Fail: (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out)\n", |
|
|
|
nFeeRet, nBytes, feeCalc.returnedTarget, feeCalc.desiredTarget, StringForFeeReason(feeCalc.reason), feeCalc.est.decay, |
|
|
|
nFeeRet, nBytes, nFeeNeeded, feeCalc.returnedTarget, feeCalc.desiredTarget, StringForFeeReason(feeCalc.reason), feeCalc.est.decay, |
|
|
|
feeCalc.est.pass.start, feeCalc.est.pass.end, |
|
|
|
feeCalc.est.pass.start, feeCalc.est.pass.end, |
|
|
|
100 * feeCalc.est.pass.withinTarget / (feeCalc.est.pass.totalConfirmed + feeCalc.est.pass.inMempool + feeCalc.est.pass.leftMempool), |
|
|
|
100 * feeCalc.est.pass.withinTarget / (feeCalc.est.pass.totalConfirmed + feeCalc.est.pass.inMempool + feeCalc.est.pass.leftMempool), |
|
|
|
feeCalc.est.pass.withinTarget, feeCalc.est.pass.totalConfirmed, feeCalc.est.pass.inMempool, feeCalc.est.pass.leftMempool, |
|
|
|
feeCalc.est.pass.withinTarget, feeCalc.est.pass.totalConfirmed, feeCalc.est.pass.inMempool, feeCalc.est.pass.leftMempool, |
|
|
|