Skip to content

Conversation

@polespinasa
Copy link
Member

@polespinasa polespinasa commented Mar 25, 2025

Summary

This PR removes the settxfee RPC and paytxfee setting (Bitcoin Core 31.0).
These two features were deprecated in #31278.

@DrahtBot
Copy link
Contributor

DrahtBot commented Mar 25, 2025

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Code Coverage & Benchmarks

For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/32138.

Reviews

See the guideline for information on the review process.

Type Reviewers
Concept ACK theStack

If your review is incorrectly listed, please copy-paste <!--meta-tag:bot-skip--> into the comment that the bot should ignore.

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #34075 (fees: Introduce Mempool Based Fee Estimation to reduce overestimation by ismaelsadeeq)
  • #34049 (rpc: Disallow captures in RPCMethodImpl by ajtowns)
  • #32636 (Split CWallet::Create() into CreateNew and LoadExisting by davidgumberg)
  • #19461 (multiprocess: Add bitcoin-gui -ipcconnect option by ryanofsky)
  • #19460 (multiprocess: Add bitcoin-wallet -ipcconnect option by ryanofsky)
  • #17783 (common: Disallow calling IsArgSet() on ALLOW_LIST options by ryanofsky)
  • #17581 (refactor: Remove settings merge reverse precedence code by ryanofsky)
  • #17580 (refactor: Add ALLOW_LIST flags and enforce usage in CheckArgFlags by ryanofsky)
  • #17493 (util: Forbid ambiguous multiple assignments in config file by ryanofsky)
  • #10102 (Multiprocess bitcoin by ryanofsky)

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

LLM Linter (✨ experimental)

Possible typos and grammar issues:

  • deprected -> deprecated [spelling error in release notes; "deprected" should be "deprecated"]

Possible places where named args for integral literals may be used (e.g. func(x, /*named_arg=*/0) in C++, and func(x, named_arg=0) in Python):

  • self.nodes[2].sendtoaddress(address, 10, "", "", False, fee_rate=fee_rate_sat_vb) in test/functional/wallet_basic.py
  • self.nodes[2].sendtoaddress(address, 10, "", "", True, fee_rate=fee_rate_sat_vb) in test/functional/wallet_basic.py
  • self.nodes[2].sendmany('', {address: 10}, 0, "", [], fee_rate=fee_rate_sat_vb) in test/functional/wallet_basic.py
  • self.nodes[2].sendmany('', {address: 10}, 0, "", [address], fee_rate=fee_rate_sat_vb) in test/functional/wallet_basic.py

2026-01-07

@DrahtBot
Copy link
Contributor

🚧 At least one of the CI tasks failed.
Debug: https://github.com/bitcoin/bitcoin/runs/39393296960

Hints

Try to run the tests locally, according to the documentation. However, a CI failure may still
happen due to a number of reasons, for example:

  • Possibly due to a silent merge conflict (the changes in this pull request being
    incompatible with the current code in the target branch). If so, make sure to rebase on the latest
    commit of the target branch.

  • A sanitizer issue, which can only be found by compiling with the sanitizer and running the
    affected test.

  • An intermittent issue.

Leave a comment here, if you need help tracking down a confusing failure.

@DrahtBot DrahtBot added this to the 31.0 milestone Mar 25, 2025
@DrahtBot DrahtBot marked this pull request as draft March 25, 2025 18:45
@polespinasa polespinasa changed the title wallet, rpc: (v31.0) remove settxfee and paytxfee (work in progress) wallet, rpc: (v31.0) remove settxfee and paytxfee Mar 25, 2025
@polespinasa polespinasa marked this pull request as ready for review March 25, 2025 18:53
@polespinasa
Copy link
Member Author

Note to self: re-check all tests

@maflcko
Copy link
Member

maflcko commented Mar 25, 2025

Please leave this in draft. 31.0 is half a year out, so starting review on this is questionable and won't help to get it merged earlier anyway

@polespinasa polespinasa changed the title wallet, rpc: (v31.0) remove settxfee and paytxfee wallet, rpc: (v31.0) remove settxfee and paytxfee (work in progress) Mar 25, 2025
@polespinasa polespinasa marked this pull request as draft March 25, 2025 19:32
@fanquake fanquake changed the title wallet, rpc: (v31.0) remove settxfee and paytxfee (work in progress) wallet, rpc: remove settxfee and paytxfee Mar 26, 2025
@polespinasa
Copy link
Member Author

Will re-open closer to 31.0 release

@maflcko
Copy link
Member

maflcko commented Aug 26, 2025

Seems fine to pick this up now, if you want.

@polespinasa polespinasa reopened this Aug 26, 2025
@polespinasa polespinasa force-pushed the deletesettxfee branch 2 times, most recently from bbaa5fc to 828315f Compare August 26, 2025 17:56
@polespinasa polespinasa marked this pull request as ready for review August 26, 2025 17:56
@polespinasa
Copy link
Member Author

polespinasa commented Aug 26, 2025

5ba260ca74 Rebased on top of master 6ca6f3b

@DrahtBot
Copy link
Contributor

🚧 At least one of the CI tasks failed.
Task lint: https://github.com/bitcoin/bitcoin/runs/48937774714
LLM reason (✨ experimental): Lint failure caused by an invalid Python shebang in test/functional/wallet_txn_clone.py (syntax error).

Hints

Try to run the tests locally, according to the documentation. However, a CI failure may still
happen due to a number of reasons, for example:

  • Possibly due to a silent merge conflict (the changes in this pull request being
    incompatible with the current code in the target branch). If so, make sure to rebase on the latest
    commit of the target branch.

  • A sanitizer issue, which can only be found by compiling with the sanitizer and running the
    affected test.

  • An intermittent issue.

Leave a comment here, if you need help tracking down a confusing failure.

@maflcko
Copy link
Member

maflcko commented Aug 28, 2025

What is the point of keeping m_pay_tx_fee. It is just dead code now, no?

@polespinasa
Copy link
Member Author

It is just dead code now, no?

@maflcko I think you're right.
Will squash after review, think it's easier this way.

@maflcko
Copy link
Member

maflcko commented Sep 1, 2025

Will squash after review, think it's easier this way.

I'd say to either squash now, or create meaningful separate commits. E.g:

  • First, remove from rpc (settxfee, paytxfee result)
  • Then, remove from cli (-paytxfee, tests only)
  • Then, remove from cli (-paytxfee, code, and remaining leftovers)

@theStack
Copy link
Contributor

theStack commented Jan 5, 2026

Concept ACK

This should have a release note, and IIUC, the following part of the PR description doesn't apply anymore:

This PR does not remove the internal implementation of the default value of paytxfee=0 but removes the option for users to modify it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants