qt: Add option to (not) spend unconfirmed change#3676
Conversation
|
Automatic sanity-testing: PASSED, see http://jenkins.bluematt.me/pull-tester/341b993ca1fe6a6c247a4ed129d39fb4936668fe for binaries and test log. |
|
Nit about the wording:
Isn't that a little pessimistic? I mean in practice, a wallet will have multiple outputs to use, only a few of which will be used by any single transaction. How about:
Of course, the problem with that a user may not understand the concept of change outputs, since that is hidden from them. |
|
Think of this in the real world. Spending something you don’t have is obviously not possible. So why not simply say the following: ADVANCED: [ ] Allow spending of unconfirmed changed. (leaving the flag off by default). You are not going to explain this adequately in 5 lines or less – especially to nubs .. so why bother ? Let them that wish to use it, RTFM some and then its caveat emptor if they flip it on. |
|
This looks to be the first mention of "change" period. A rational user will think it relates to change returned by recipient for amount paid over some agreed-on price, which further confuses, since no such prices are known by bitcoin-qt. The question is what should the message say, given the abstractions user is working with? That is a tough one. |
src/qt/optionsmodel.cpp
Outdated
There was a problem hiding this comment.
I wonder, why this is needed, we didn't have to use this before right?
E.g. settings.value("fUseUPnP").toBool()...
Shouldn't this be SoftSetBoolArg()?
|
If this also affects, how we compute the wallet balance, perhaps name the option To go further, we should also rework the descriptive string for the command line option, because this misses also that using that options or disabling it will affect how balance is computed. IMHO it could be the same string with I also like @christophebiocca's suggestion for a less dramatic wording. As unused change won't block a transaction, it just won't allow using the change in new transactions, right? |
|
That wording makes a lot of sense (Diapolo). |
|
Will switch to @christophebiocca's wording and SetSoftBoolArg and add (experts only) like for coin control. |
- Add a wallet tab to options dialog - Move fee setting to wallet tab - Add new setting to set -nospendzeroconfchange from UI
29d4507 qt: Add option to (not) spend unconfirmed change (Wladimir J. van der Laan)
|
Why did you decide agains |
|
@Diapolo Don't change the name of the command line option because people are relying on it in production. Feel free to send pulls for improvements to the UI message though... Also: it affects coin selection primarily. The reason it also affects the balance computation is because otherwise you cannot trust that the (confirmed) balance is really how much you can spend. |
|
@laanwj Don't get it, if it affects balance computation (the reason why doesn't even matter, it's just the fact), then it has to be mentioned in the help message. The reason to not change the command line message is also unclear still... it is in an unreleased branch (no official client released with it), why can't we just use I know you will tell me we have bigger problems to solve, but this is something I fell is important enought ;). |
|
Maybe unconfirmed balance should just be "balance" (it's the amount of money you're reasonably sure about you have, assuming it doesn't count -1 confirmed coins), and confirmed balance should be "spendable balance". The latter can then be affected by the setting of whether to consider unconfirmed change as spendable. |
|
Armory uses the words : Maximum Funds / Unconfirmed Fund and Spendable and shows 3 balances. One of the many reasons I use Armory. (this is not an advert for Armory - just a suggestion ) |
|
@Diapolo I'm doubtful about that because "Treat unconfirmed change as confirmed" doesn't really tell much. |
|
Yeah, if you're treating unconfirmed change as confirmed, the meaning of the word confirmed becomes blurry. To answer the question "how much money will I (likely) (eventually) have", the current "unconfirmed balance" (excluding conflicted/noninmempool transactions) seems the correct measurement. I guess that should also include immature coins. Maybe it could be called "Eventual balance" ? |
|
Well currently it looks like this Instead of the three groups I suppose we could also make a tally like this (rows only shown if the balance is >0): Edit: eh no that's no good either, one of course cannot be sure that the unconfirmed balance will confirm in 1 block... |
The word 'Spendable' more precisely says what the balance actually means. Avoids the confirmed/unconfirmed confusion that can be caused by bitcoin#3676.
The word 'Spendable' more precisely says what the balance actually means. Avoids the confirmed/unconfirmed confusion that can be caused by bitcoin#3676.

Implementation is straightforward, messages are up for discussion as usual.