Skip to content
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

Feature: Cancel Transaction via RBF #6810

Open
prusnak opened this issue Nov 4, 2022 · 8 comments · May be fixed by #16525
Open

Feature: Cancel Transaction via RBF #6810

prusnak opened this issue Nov 4, 2022 · 8 comments · May be fixed by #16525
Assignees
Labels
feature Product related issue visible for end user transactions Transaction history page

Comments

@prusnak
Copy link
Member

prusnak commented Nov 4, 2022

UPDATE

Design: https://www.figma.com/design/a13eFaT5HqemGmzJZy1fNg/Transactions?node-id=1-106&p=f&t=gzu2w9XlIcp7l0Rm-0

Original post

Currently there are two options what an user can do with a RBF transaction:

  • Bump Fee (create transaction with identical inputs but with higher fee = decreased change address amount)
  • Finalize Transaction (create identical transaction but with RBF flag disabled

See https://trezor.io/learn/a/rbf-in-trezor-suite-app for more details

Originally, were considering adding a third option:

  • Cancel Transaction (create transaction with identical inputs, with higher fee, but send all coins to a single change address = remove outputs that don't belong to Trezor from the TX)

In the end, we haven't added it, since this would provide an easy way for a user to fool merchants accepting 0-conf TXs via a double spend.

However, it seems the cat is out of the bag and other wallets have already added it, so we might want to add it as well:

@gubatron
Copy link

gubatron commented Nov 4, 2022

If you think that the "Cancel transaction" feature should be implemented, let us know in the GitHub issue

Yes please!

@hynek-jina hynek-jina added feature Product related issue visible for end user transactions Transaction history page labels Nov 4, 2022
@prusnak
Copy link
Member Author

prusnak commented Nov 4, 2022

Good point from Stephan Livera:

The feature name can confuse some users if they attempt it and it fails. Maybe something like 'Attempt to cancel'?

@danielkonecny
Copy link

I also think this would be a good functionality. It improves usability of bitcoin and also motivates merchants to use LN for smaller transactions (and non-0-conf for larger). Definitely a better practice than 0-conf relying on trust in the customer.

@alicercedigital
Copy link

The absence of this functionality is a significant flaw in Trezor.

To fix pending transactions that do not have 200% of the funds, we need to use another wallet such as Metamask. This, however, could make my wallet insecure, and thus make the Trezor ineffective.

This issue needs to be addressed, as it is causing problems for many Trezor users. A quick search for "not enough funds bump fee trezor" reveals a significant number of users who have suffered losses or other issues that could have been prevented with this functionality.

@Zerebokep
Copy link

Please implement this.

@spazcoin
Copy link

spazcoin commented Nov 4, 2023

Yes please implement this.
My use-case: Interlay wraps BTC into iBTC on the Polkadot network. But they have a 12 hour window for BTC transactions to be confirmed. If not confirmed within 12 hours the Interlay protocol will mark that Interlay transaction as not having been satisfied and will mark it as "cancelled". I've asked them several times and their XCLAIM protocol can't proof a transaction in the mempool and can only generate a proof for a confirmed transaction. So now once the delayed Bitcoin transaction is finally processed, the original destination BTC accounts will receive funds but no Interlay iBTC tokens will be generated. But since Trezor doesn't support double-spend transactions, I have no way to force the original (non-confirmed) transaction to fail now.

@tomasklim
Copy link
Member

tomasklim commented Nov 24, 2024

EVM world:
Cancel button
Image

Image

You create tx to self with higher gas and same nonce
Image

Sometimes wallet knows that tx was rejected by mempool and it does not exist anymore so you can "cancel" it for free just by removing from wallet cache
Image

Image

@komret komret moved this to 🎯 To do in Suite Desktop Jan 10, 2025
@peter-sanderson
Copy link
Contributor

peter-sanderson commented Jan 14, 2025

  • When tx is self-spend (to the same account) do not offer [Cancel Transaction] button
    • for different accounts the cancellation is available
  • This is still open question when to show this: Image
  • Cancelling TX will be always shown a self-spend, we may solve better annotation when implementing some tagging-labeling system Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Product related issue visible for end user transactions Transaction history page
Projects
Status: 🏃‍♀️ In progress
Development

Successfully merging a pull request may close this issue.

9 participants