nAmount = (nAmount / CENT) * CENT; // round to cent
if (nAmount < 0)
throw runtime_error("amount cannot be negative.\n");
- // TODO: handle persistence of nBalanceReserve
- // settings removed since bitcoin 0.6
- // WriteSetting("nBalanceReserve", nBalanceReserve = nAmount);
- nBalanceReserve = nAmount;
+ mapArgs["-reservebalance"] = FormatMoney(nAmount).c_str();
}
else
{
if (params.size() > 1)
throw runtime_error("cannot specify amount to turn off reserve.\n");
- // TODO: handle persistence of nBalanceReserve
- // settings removed since bitcoin 0.6
- // WriteSetting("nBalanceReserve", nBalanceReserve = 0);
- nBalanceReserve = 0;
+ mapArgs["-reservebalance"] = "0";
}
}
Object result;
- result.push_back(Pair("reserve", (nBalanceReserve > 0)));
- result.push_back(Pair("amount", ValueFromAmount(nBalanceReserve)));
+ int64 nReserveBalance = 0;
+ if (mapArgs.count("-reservebalance") && !ParseMoney(mapArgs["-reservebalance"], nReserveBalance))
+ throw runtime_error("invalid reserve balance amount\n");
+ result.push_back(Pair("reserve", (nReserveBalance > 0)));
+ result.push_back(Pair("amount", ValueFromAmount(nReserveBalance)));
return result;
}
ThreadSafeMessageBox(_("Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."), _("PPCoin"), wxOK | wxICON_EXCLAMATION | wxMODAL);
}
+ if (mapArgs.count("-reservebalance")) // ppcoin: reserve balance amount
+ {
+ int64 nReserveBalance = 0;
+ if (!ParseMoney(mapArgs["-reservebalance"], nReserveBalance))
+ {
+ ThreadSafeMessageBox(_("Invalid amount for -reservebalance=<amount>"), _("PPCoin"), wxOK | wxMODAL);
+ return false;
+ }
+ }
+
//
// Start the node
//
// Settings
int64 nTransactionFee = MIN_TX_FEE;
-int64 nBalanceReserve = 0;
// Settings
extern int64 nTransactionFee;
-extern int64 nBalanceReserve;
txNew.vout.push_back(CTxOut(0, scriptEmpty));
// Choose coins to use
int64 nBalance = GetBalance();
- if (nBalance <= nBalanceReserve)
+ int64 nReserveBalance = 0;
+ if (mapArgs.count("-reservebalance") && !ParseMoney(mapArgs["-reservebalance"], nReserveBalance))
+ return error("CreateCoinStake : invalid reserve balance amount");
+ if (nBalance <= nReserveBalance)
return false;
set<pair<const CWalletTx*,unsigned int> > setCoins;
vector<const CWalletTx*> vwtxPrev;
int64 nValueIn = 0;
- if (!SelectCoins(nBalance - nBalanceReserve, txNew.nTime, setCoins, nValueIn))
+ if (!SelectCoins(nBalance - nReserveBalance, txNew.nTime, setCoins, nValueIn))
return false;
if (setCoins.empty())
return false;
break;
}
}
- if (nCredit == 0 || nCredit > nBalance - nBalanceReserve)
+ if (nCredit == 0 || nCredit > nBalance - nReserveBalance)
return false;
BOOST_FOREACH(PAIRTYPE(const CWalletTx*, unsigned int) pcoin, setCoins)
{
if (pcoin.first->vout[pcoin.second].scriptPubKey == txNew.vout[1].scriptPubKey && pcoin.first->GetHash() != txNew.vin[0].prevout.hash)
{
- if (nCredit + pcoin.first->vout[pcoin.second].nValue > nBalance - nBalanceReserve)
+ if (nCredit + pcoin.first->vout[pcoin.second].nValue > nBalance - nReserveBalance)
break;
txNew.vin.push_back(CTxIn(pcoin.first->GetHash(), pcoin.second));
nCredit += pcoin.first->vout[pcoin.second].nValue;