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

Wallet: add BIP125 RBF bump fee #1170

Open
wants to merge 21 commits into
base: master
Choose a base branch
from

Commits on Aug 11, 2023

  1. mempool: Allow double spend of RBF transaction

    "Quick and dirty" isDoubleSpend() check evaluates to false if the
    conflicting tx has opted in to RBF. More verbose checks are still
    required for BIP125. General RBF tests added.
    pinheadmz committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    0a3ecf2 View commit details
    Browse the repository at this point in the history
  2. mempool: Reject RBF replacements with insufficient fees

    Implements and tests BIP125 rules specifically pertaining to
    fee requirements for replacement transactions. Valid replacements
    must pay a higher fee rate than the original TX, and also must pay for
    the bandwidth of all potentially evicted transactions in addition
    to its own bandwidth.
    pinheadmz committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    bb8b4b0 View commit details
    Browse the repository at this point in the history
  3. mempool: Reject RBF replacement edge cases

    Implements two extra rules defined in BIP125:
      - The replacement transaction may only include an unconfirmed input
      if that input was included in one of the original transactions.
    
      - The number of original transactions to be replaced and their
      descendant transactions which will be evicted from the mempool must
      not exceed a total of 100 transactions.
    pinheadmz committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    d62f1b3 View commit details
    Browse the repository at this point in the history
  4. mempool: replace by fee

    All the BIP125 rules have been implemented to reject invalid
    replacement TXs. This is where the actual replacement happens,
    adding the replacement TX and evicting all the conflicts and their
    descendants.
    pinheadmz committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    70ef286 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    f3cd659 View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2023

  1. Configuration menu
    Copy the full SHA
    bf43d9a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    caabf10 View commit details
    Browse the repository at this point in the history

Commits on Aug 20, 2023

  1. mempool: restore original isDoubleSpend() implementation

    We only need to call the "quick and dirty test" if the user has
    set mempool RBF option to false. Do the Rule #1 check in verifyRBF()
    instead where it belongs. This leaves one loose end in maybeOrphan()
    that must be caught so we don't treat double-spends like orphans.
    pinheadmz committed Aug 20, 2023
    Configuration menu
    Copy the full SHA
    5e0cd19 View commit details
    Browse the repository at this point in the history
  2. mempool: fix RBF Rule #2

    The current implementation improperly assumed that any unconfirmed
    inputs spent by the replacement TX were also spent by its direct
    conflict. It therefore did not account for the case where the
    replacement was spending an unconfirmed CHILD of its direct
    replacement. This would cause it to replace its own inputs which
    is an invalid mempool state and led to unexpected errors.
    pinheadmz committed Aug 20, 2023
    Configuration menu
    Copy the full SHA
    6f04c0d View commit details
    Browse the repository at this point in the history

Commits on Aug 21, 2023

  1. Configuration menu
    Copy the full SHA
    6ae1752 View commit details
    Browse the repository at this point in the history

Commits on Sep 21, 2023

  1. Configuration menu
    Copy the full SHA
    24408b9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f316989 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f83e39d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f99a7c2 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    b8afe61 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    e83563a View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    9a1135a View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    d5d302c View commit details
    Browse the repository at this point in the history

Commits on Sep 22, 2023

  1. Configuration menu
    Copy the full SHA
    4d97480 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5f472ad View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    14e5743 View commit details
    Browse the repository at this point in the history