Skip to content

Conversation

@jamillambert
Copy link
Collaborator

Add all the necessary files and changes to support Core v30.

RPCs that were dropped in v30 have been removed.

New and changed RPCs between v29 and v30 have not been implemented in this PR and are TODO in types.

Patches are:

  • Remove duplicate methods in verify.
  • Add all the required files, modules and features to support v30. verify/src/method/v30.rs is a copy of v29 with the label changed to v30. types/src/v30/mod.rs is a copy of v29 with the exports of the new v29 types moved to a reexport section under v29, no other changes.
  • Edit the files copied from v29 in a separate patch to make reviewing the changes easier. Feature gate the tests for RPCs that were removed or changed in v30. The new and changed RPCs are left as TODO in the types table for a follow up PR or patch.

Two of the methods are listed twice in v27, v28 and v29.

Remove the duplicates.
Add all the required files, features and update existing code to support
Bitcoin Core v30.

New files are coppies of v29.
Update v30 files which are copies of the v29 to apply the changes made
to Core between v29 and v30.

Add TODO to all v30 methods that have changes and need updating.

Feature gate the tests for methods that have been dropped or are TODO in
v30.
@jamillambert jamillambert changed the title Add support for Bitcoin Core 29.0 Add support for Bitcoin Core 30.0 Oct 15, 2025
Copy link
Member

@tcharding tcharding left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK e2507f4

@tcharding tcharding merged commit 4ac08f6 into rust-bitcoin:master Oct 15, 2025
30 checks passed

# Enable the same feature in `node` and the version feature here.
# All minor releases of the latest three versions.
# All minor releases of the latest four versions.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Novel idea, increase this number so as not to have to make changes to the 4th oldest release. Are you planning on dropping this back to 3 or do you think we leave it as is for now?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't see the reason to remove them? No effort to keep

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Its a policy thing, if we keep this and 27.x comes out we have to add support for it. Although this moving window has something annoying about it for downstream but I can't remember right now what it is.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh I'm a goose, we have to anyway because we say we support the latest. hmmm not sure what to do, lets leave it until we think of something better?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I wasn't sure what effect removing 27.0 and 27.1 was on downstream. Mostly why I left them in.

Copy link
Collaborator Author

@jamillambert jamillambert Oct 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Its a policy thing, if we keep this and 27.x comes out we have to add support for it.

The comment below says # Only the latest minor version for older versions. which would suggest we have to anyway. I guess we don't want this for the older versions and should change the wording.

EDIT: 😊 I see you wrote the same thing above.

@tcharding
Copy link
Member

F**k you learn fast. Really nice separation of concerns in this PR. By that I mean what to change and what to leave for later.

tcharding added a commit that referenced this pull request Nov 9, 2025
2343534 Update listwalletdir for v30 changes (Jamil Lambert, PhD)
cb73a83 Update getwalletinfo for v30 changes (Jamil Lambert, PhD)
86c40a4 Document that migratewallet is untested in v30 (Jamil Lambert, PhD)
4dbd863 Add deprecated flag to v30 settxfee test (Jamil Lambert, PhD)

Pull request description:

  There are four remaining RPCs that have changes in v30 that need to be implemented:

  - `settxfee` is deprecated in v30 and removed in v31. Feature gate the test to v30 and below and for v30 add the required `-deprecatedrpc=settxfee` flag. Remove TODO from the types table.
  - In v30 it is no longer possible to create a legacy wallet. This means that `migratewallet` cannot be tested using only v30. There are no changes to the RPC in v30 so the v29 test is still valid. Add a comment to the types table and test.
  - `getwalletinfo` had some return fields removed in v30 and a new flags field was added. Update the model to make the removed fields options and add the new flags. Update all the into functions. Redefine the type, error and into function for v30. Remove the TODO from the types table. Remove the `v29_and_below` feature gate from the test.
  - `listwalletdir` has a new `warnings` field was added in v30. Redefine the type for v30, there is no model. Remove the TODO from the types table. Remove the `v29_and_below` feature gate from the test.

  Together with #387, #388, #409 and #410 Closes #384

ACKs for top commit:
  tcharding:
    ACK 2343534

Tree-SHA512: 788e6150778dc722c7db79e63240d4c82d3ceca59ec859edd516d1ea8860671754be3072f4b5bdd391dac919bba6a61935c99df4bb3b4325cf981271ef4e87bf
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.

2 participants