New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Qt] attribute replaceable (RBF) transactions #7817
Conversation
@@ -7,6 +7,7 @@ | |||
#include "base58.h" | |||
#include "consensus/consensus.h" | |||
#include "main.h" | |||
#include "policy/rbf.h" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you need this here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right. This is not required. Fixed.
Concept ACK
|
@@ -39,7 +39,7 @@ QString TransactionDesc::FormatTxStatus(const CWalletTx& wtx) | |||
else if (GetAdjustedTime() - wtx.nTimeReceived > 2 * 60 && wtx.GetRequestCount() == 0) | |||
return tr("%1/offline").arg(nDepth); | |||
else if (nDepth == 0) | |||
return tr("0/unconfirmed, %1").arg((wtx.InMempool() ? tr("in memory pool") : tr("not in memory pool"))) + (wtx.isAbandoned() ? ", "+tr("abandoned") : ""); | |||
return tr("0/unconfirmed, %1").arg((wtx.InMempool() ? tr("in memory pool") : tr("not in memory pool"))) + (wtx.signalsOptInRBF() ? ", "+tr("replaceable") : "") + (wtx.isAbandoned() ? ", "+tr("abandoned") : ""); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We will present transactions signalling opt-in RBF as "replaceable". Users will ask, what it means.
Edit: Greg asked the same question in other PR. We should probably clarify this. What about this as a topic for Thu meeting?
Concept ACK |
4719671
to
6a88002
Compare
Travis needs a restart now. |
Concept ACK for outgoing. Concept NACK for incoming - I'm worried about giving a false sense of security given the multitude of other ways of doublespending. |
Mostly agreed with @petertodd Probably the new icon/colour should be set for all unconfirmed transactions signed by a third party, whether incoming or outgoing. |
@petertodd You mean that marking "incoming" tx signalling RBF with this icon can bring false sense of security to non-RBF transactions not marked with this icon? Or? Can you compare this situation with the current status quo? |
@paveljanik So the status quo, is that all incoming unconfirmed txs look the same; I'm concerned that showing some types of unconfirmed incoming txs differently than others in UI's intended for general users gives the false impression that Bitcoin Core can reliably tell you about the risk of any particular unconfirmed incoming txs; expert-level UI's like the RPC interface are much less of a concern to me. |
@petertodd In such case, we should not show Unconfirmed at all, add a number input item defaulting to 6 into options and only show transactions with such number of confirmations. |
As all unconfirmed txs are marked with ? in the UI, I think this is safe as long as there is a ? on RBF signalling txs. |
@paveljanik But unconfirmed is a state that I think users understand just fine: "Someone intends to send me a transaction, and if they're honest it'll probably confirm (eventually)." There's nothing wrong with showing that. |
Interesting Travis failures -
|
Probably you need to add the file in a Makefile so that it is included in the distribution |
6a88002
to
ab9fc41
Compare
Fixed nit and added missing file to Makefile. |
@petertodd @luke-jr : |
ab9fc41
to
7a30ed6
Compare
I like it with just the icon myself. |
@gmaxwell @jonasschnelli Eh, fine, go with that. |
utACK 7a30ed6 (also agree on removing the orange color but keeping the icon) |
Looks like getting rid of the orange color is preferred. @jonasschnelli Mind to take a look? Also the nit still holds: #7817 (comment) |
Removing 0.13 milestone, this missed the feature freeze. |
needs rebase |
I think we should first focus on #8456 (before we continue with the GUI level). |
@jonasschnelli AFAICT it still has the same problem with just the icon. It gives a false sense of security; there is literally no rational distinction between them for incoming transactions. But maybe I'm missing some use case? |
Rebase needed. |
Closing for now due to controversy and inactivity... |
… entries 870bd4c Update functional RBF test to check replaceable flag (dexX7) 820d31f Add "bip125-replaceable" flag to mempool RPCs (dexX7) Pull request description: This pull request adds a flag "bip125-replaceable" to the mempool RPCs getrawmempool, getmempoolentry, getmempoolancestors and getmempooldescendants, which indicates whether an unconfirmed transaction might be replaced. Initially the flag was added to the raw transaction RPCs, but thanks to @conscott, it was moved to the mempool RPCs, which actually have access to the mempool. ~~This pull request adds a flag "bip125-replaceable" to the RPCs "getrawtransaction" and "decoderawtransaction", which indicates, whether a transaction signals BIP 125 replaceability.~~ There was some discussion in #7817, whether showing replaceability in the UI could lead to the false assumption that transactions that don't signal BIP 125 are truely non-replaceable, but given that this PR tackles the raw transaction interface, which is a rather low level tool, I believe having this extra piece of information isn't bad. Tree-SHA512: 1f5511957af2c20a9a6c79d80a335c3be37a2402dbf829c40cceaa01a24868eab81a9c1cdb0b3d77198fa3bb82799e3540a5c0ce7f35bbac80d73f7133ff7cbc
…mempool entries 870bd4c Update functional RBF test to check replaceable flag (dexX7) 820d31f Add "bip125-replaceable" flag to mempool RPCs (dexX7) Pull request description: This pull request adds a flag "bip125-replaceable" to the mempool RPCs getrawmempool, getmempoolentry, getmempoolancestors and getmempooldescendants, which indicates whether an unconfirmed transaction might be replaced. Initially the flag was added to the raw transaction RPCs, but thanks to @conscott, it was moved to the mempool RPCs, which actually have access to the mempool. ~~This pull request adds a flag "bip125-replaceable" to the RPCs "getrawtransaction" and "decoderawtransaction", which indicates, whether a transaction signals BIP 125 replaceability.~~ There was some discussion in bitcoin#7817, whether showing replaceability in the UI could lead to the false assumption that transactions that don't signal BIP 125 are truely non-replaceable, but given that this PR tackles the raw transaction interface, which is a rather low level tool, I believe having this extra piece of information isn't bad. Tree-SHA512: 1f5511957af2c20a9a6c79d80a335c3be37a2402dbf829c40cceaa01a24868eab81a9c1cdb0b3d77198fa3bb82799e3540a5c0ce7f35bbac80d73f7133ff7cbc # Conflicts: # src/rpc/blockchain.cpp # test/functional/feature_rbf.py
…mempool entries 870bd4c Update functional RBF test to check replaceable flag (dexX7) 820d31f Add "bip125-replaceable" flag to mempool RPCs (dexX7) Pull request description: This pull request adds a flag "bip125-replaceable" to the mempool RPCs getrawmempool, getmempoolentry, getmempoolancestors and getmempooldescendants, which indicates whether an unconfirmed transaction might be replaced. Initially the flag was added to the raw transaction RPCs, but thanks to @conscott, it was moved to the mempool RPCs, which actually have access to the mempool. ~~This pull request adds a flag "bip125-replaceable" to the RPCs "getrawtransaction" and "decoderawtransaction", which indicates, whether a transaction signals BIP 125 replaceability.~~ There was some discussion in bitcoin#7817, whether showing replaceability in the UI could lead to the false assumption that transactions that don't signal BIP 125 are truely non-replaceable, but given that this PR tackles the raw transaction interface, which is a rather low level tool, I believe having this extra piece of information isn't bad. Tree-SHA512: 1f5511957af2c20a9a6c79d80a335c3be37a2402dbf829c40cceaa01a24868eab81a9c1cdb0b3d77198fa3bb82799e3540a5c0ce7f35bbac80d73f7133ff7cbc # Conflicts: # src/rpc/blockchain.cpp # test/functional/feature_rbf.py
…mempool entries 870bd4c Update functional RBF test to check replaceable flag (dexX7) 820d31f Add "bip125-replaceable" flag to mempool RPCs (dexX7) Pull request description: This pull request adds a flag "bip125-replaceable" to the mempool RPCs getrawmempool, getmempoolentry, getmempoolancestors and getmempooldescendants, which indicates whether an unconfirmed transaction might be replaced. Initially the flag was added to the raw transaction RPCs, but thanks to @conscott, it was moved to the mempool RPCs, which actually have access to the mempool. ~~This pull request adds a flag "bip125-replaceable" to the RPCs "getrawtransaction" and "decoderawtransaction", which indicates, whether a transaction signals BIP 125 replaceability.~~ There was some discussion in bitcoin#7817, whether showing replaceability in the UI could lead to the false assumption that transactions that don't signal BIP 125 are truely non-replaceable, but given that this PR tackles the raw transaction interface, which is a rather low level tool, I believe having this extra piece of information isn't bad. Tree-SHA512: 1f5511957af2c20a9a6c79d80a335c3be37a2402dbf829c40cceaa01a24868eab81a9c1cdb0b3d77198fa3bb82799e3540a5c0ce7f35bbac80d73f7133ff7cbc # Conflicts: # src/rpc/blockchain.cpp # test/functional/feature_rbf.py
This attributes transactiontable entries (one or more per wtx) if the transactions signals opt-in-RBF.
A light orange color together with a new icon (for "incoming" and "outgoing" transactions).