From 0ed9675be4a28b6240e10c0d3fdb81373bd56bbc Mon Sep 17 00:00:00 2001 From: Cozz Lovan Date: Sun, 2 Nov 2014 00:43:31 +0100 Subject: [Wallet] Add global boolean whether to send free transactions (default=true) --- src/wallet.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/wallet.cpp') diff --git a/src/wallet.cpp b/src/wallet.cpp index ec439c5aa..1b8e387e4 100644 --- a/src/wallet.cpp +++ b/src/wallet.cpp @@ -28,6 +28,7 @@ using namespace std; CFeeRate payTxFee(DEFAULT_TRANSACTION_FEE); unsigned int nTxConfirmTarget = 1; bool bSpendZeroConfChange = true; +bool fSendFreeTransactions = true; /** * Fees smaller than this (in satoshi) are considered zero fee (for transaction creation) @@ -1502,7 +1503,7 @@ bool CWallet::CreateTransaction(const vector >& vecSend, break; // Done, enough fee included. // Too big to send for free? Include more fee and try again: - if (nBytes > MAX_FREE_TRANSACTION_CREATE_SIZE) + if (!fSendFreeTransactions || nBytes > MAX_FREE_TRANSACTION_CREATE_SIZE) { nFeeRet = nFeeNeeded; continue; -- cgit v1.2.3 From ed3e5e468c5b7973d71efe51c90c3a301d570e27 Mon Sep 17 00:00:00 2001 From: Cozz Lovan Date: Sun, 2 Nov 2014 00:47:39 +0100 Subject: [Wallet] Add global boolean whether to pay at least the custom fee (default=true) --- src/wallet.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/wallet.cpp') diff --git a/src/wallet.cpp b/src/wallet.cpp index 1b8e387e4..f1cf10497 100644 --- a/src/wallet.cpp +++ b/src/wallet.cpp @@ -29,6 +29,7 @@ CFeeRate payTxFee(DEFAULT_TRANSACTION_FEE); unsigned int nTxConfirmTarget = 1; bool bSpendZeroConfChange = true; bool fSendFreeTransactions = true; +bool fPayAtLeastCustomFee = true; /** * Fees smaller than this (in satoshi) are considered zero fee (for transaction creation) @@ -1383,7 +1384,10 @@ bool CWallet::CreateTransaction(const vector >& vecSend, { LOCK2(cs_main, cs_wallet); { - nFeeRet = payTxFee.GetFeePerK(); + if (fPayAtLeastCustomFee) + nFeeRet = payTxFee.GetFeePerK(); + else + nFeeRet = 0; while (true) { txNew.vin.clear(); -- cgit v1.2.3 From e7876b297901a4b49daafc9ccd2b5c34a6214039 Mon Sep 17 00:00:00 2001 From: Cozz Lovan Date: Sun, 2 Nov 2014 18:28:43 +0100 Subject: [Wallet] Prevent user from paying a non-sense fee --- src/wallet.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/wallet.cpp') diff --git a/src/wallet.cpp b/src/wallet.cpp index f1cf10497..2d59506ba 100644 --- a/src/wallet.cpp +++ b/src/wallet.cpp @@ -1633,6 +1633,9 @@ CAmount CWallet::GetMinimumFee(unsigned int nTxBytes, unsigned int nConfirmTarge { // payTxFee is user-set "I want to pay this much" CAmount nFeeNeeded = payTxFee.GetFee(nTxBytes); + // prevent user from paying a non-sense fee (like 1 satoshi): 0 < fee < minRelayFee + if (nFeeNeeded > 0 && nFeeNeeded < ::minRelayTxFee.GetFee(nTxBytes)) + nFeeNeeded = ::minRelayTxFee.GetFee(nTxBytes); // User didn't set: use -txconfirmtarget to estimate... if (nFeeNeeded == 0) nFeeNeeded = pool.estimateFee(nConfirmTarget).GetFee(nTxBytes); -- cgit v1.2.3 From c1c9d5b415fda7d1310c23857e57d98ac14c3063 Mon Sep 17 00:00:00 2001 From: Cozz Lovan Date: Sun, 2 Nov 2014 00:14:47 +0100 Subject: [Qt] Add Smartfee to GUI --- src/wallet.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/wallet.cpp') diff --git a/src/wallet.cpp b/src/wallet.cpp index 2d59506ba..5aea9881c 100644 --- a/src/wallet.cpp +++ b/src/wallet.cpp @@ -28,7 +28,7 @@ using namespace std; CFeeRate payTxFee(DEFAULT_TRANSACTION_FEE); unsigned int nTxConfirmTarget = 1; bool bSpendZeroConfChange = true; -bool fSendFreeTransactions = true; +bool fSendFreeTransactions = false; bool fPayAtLeastCustomFee = true; /** @@ -1384,10 +1384,7 @@ bool CWallet::CreateTransaction(const vector >& vecSend, { LOCK2(cs_main, cs_wallet); { - if (fPayAtLeastCustomFee) - nFeeRet = payTxFee.GetFeePerK(); - else - nFeeRet = 0; + nFeeRet = 0; while (true) { txNew.vin.clear(); @@ -1636,6 +1633,9 @@ CAmount CWallet::GetMinimumFee(unsigned int nTxBytes, unsigned int nConfirmTarge // prevent user from paying a non-sense fee (like 1 satoshi): 0 < fee < minRelayFee if (nFeeNeeded > 0 && nFeeNeeded < ::minRelayTxFee.GetFee(nTxBytes)) nFeeNeeded = ::minRelayTxFee.GetFee(nTxBytes); + // user selected total at least (default=true) + if (fPayAtLeastCustomFee && nFeeNeeded > 0 && nFeeNeeded < payTxFee.GetFeePerK()) + nFeeNeeded = payTxFee.GetFeePerK(); // User didn't set: use -txconfirmtarget to estimate... if (nFeeNeeded == 0) nFeeNeeded = pool.estimateFee(nConfirmTarget).GetFee(nTxBytes); -- cgit v1.2.3