Merge pull request #5924
835c122
Clean up change computation in CreateTransaction. (Daniel Kraft)
This commit is contained in:
commit
12a7712abd
1 changed files with 4 additions and 7 deletions
|
@ -1852,9 +1852,9 @@ bool CWallet::CreateTransaction(const vector<CRecipient>& vecSend, CWalletTx& wt
|
|||
nChangePosRet = -1;
|
||||
bool fFirst = true;
|
||||
|
||||
CAmount nTotalValue = nValue;
|
||||
CAmount nValueToSelect = nValue;
|
||||
if (nSubtractFeeFromAmount == 0)
|
||||
nTotalValue += nFeeRet;
|
||||
nValueToSelect += nFeeRet;
|
||||
double dPriority = 0;
|
||||
// vouts to the payees
|
||||
BOOST_FOREACH (const CRecipient& recipient, vecSend)
|
||||
|
@ -1891,7 +1891,7 @@ bool CWallet::CreateTransaction(const vector<CRecipient>& vecSend, CWalletTx& wt
|
|||
// Choose coins to use
|
||||
set<pair<const CWalletTx*,unsigned int> > setCoins;
|
||||
CAmount nValueIn = 0;
|
||||
if (!SelectCoins(nTotalValue, setCoins, nValueIn, coinControl))
|
||||
if (!SelectCoins(nValueToSelect, setCoins, nValueIn, coinControl))
|
||||
{
|
||||
strFailReason = _("Insufficient funds");
|
||||
return false;
|
||||
|
@ -1909,10 +1909,7 @@ bool CWallet::CreateTransaction(const vector<CRecipient>& vecSend, CWalletTx& wt
|
|||
dPriority += (double)nCredit * age;
|
||||
}
|
||||
|
||||
CAmount nChange = nValueIn - nValue;
|
||||
if (nSubtractFeeFromAmount == 0)
|
||||
nChange -= nFeeRet;
|
||||
|
||||
const CAmount nChange = nValueIn - nValueToSelect;
|
||||
if (nChange > 0)
|
||||
{
|
||||
// Fill a vout to ourself
|
||||
|
|
Loading…
Reference in a new issue