To prepare for the deletion of legacy wallet code, disable creating or loading new legacy wallets.
Tests for the legacy wallet specifically are deleted.
To prepare for the deletion of legacy wallet code, disable creating or loading new legacy wallets.
Tests for the legacy wallet specifically are deleted.
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/31250.
See the guideline for information on the review process.
Type | Reviewers |
---|---|
ACK | maflcko |
If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.
Reviewers, this pull request conflicts with the following ones:
send
and sendall
by ishaanam)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.
🚧 At least one of the CI tasks failed. Debug: https://github.com/bitcoin/bitcoin/runs/36510219942
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.
74-static void WalletIsMineLegacy(benchmark::Bench& bench) { WalletIsMine(bench, /*legacy_wallet=*/true); }
75-BENCHMARK(WalletIsMineLegacy, benchmark::PriorityLevel::LOW);
76-#endif
77-
78 #ifdef USE_SQLITE
79 static void WalletIsMineDescriptors(benchmark::Bench& bench) { WalletIsMine(bench, /*legacy_wallet=*/false); }
375@@ -395,56 +376,6 @@ void TestGUI(interfaces::Node& node, const std::shared_ptr<CWallet>& wallet)
376 QCOMPARE(walletModel.wallet().getAddressReceiveRequests().size(), size_t{0});
377 }
378
379-void TestGUIWatchOnly(interfaces::Node& node, TestChain100Setup& test)
380-{
381- const std::shared_ptr<CWallet>& wallet = SetupLegacyWatchOnlyWallet(node, test);
143@@ -144,20 +144,6 @@ def run_test(self):
144 restorewo_wallet.importaddress(wo2, rescan=False)
145 restorewo_wallet.importaddress(wo3, rescan=False)
146
147- # check user has 0 balance and no transactions
importaddress
calls importdescriptors
in the test framework. These checks are that importaddress
(the legacy wallet RPC) doesn’t rescan and will require a separate rescan. But that will not work once the tests is descriptor wallets only.
Will expand the commit message.
Will expand the commit message.
Thanks for explaining. I understand that the test framework calls importdescriptors
on importaddress
internally. However, if the checks are wrong, why does the test not fail on current master?
In fact there is a comment and workaround to address this specifically in this test:
0 # for descriptor wallets, the test framework maps the importaddress RPC to the
1 # importdescriptors RPC (with argument 'timestamp'='now'), which always rescans
2 # blocks of the past 2 hours, based on the current MTP timestamp; in order to avoid
3 # importing the last address (wo3), we advance the time further and generate 10 blocks
So it seems the workaround is not working?
legacy_nodes
?
Done
Edit: It’s not unused.
19- self.add_wallet_options(parser)
20-
21 def set_test_params(self):
22 self.num_nodes = 1
23 self.setup_clean_chain = True
24+ self.uses_wallet = True
skip_if_no_wallet
already does it?
197+ // Make sure that the dump was created from a sqlite database only as that is the only
198+ // type of database that we still support.
199+ // Other formats such as BDB should not be loaded into a sqlite database since they also
200+ // use a different type of wallet entirely which is no longer compatible with this software.
201+ if (format_value != "sqlite") {
202+ error = _("Error: Dumpfile specifies an unsupported database format");
nit in f19592a06059b44d55838bf2f8c63fde2917ee83: Could extend the error msg? Something like:
"Error: Dumpfile specifies an unsupported database format (%s). Only sqlite database dumps are supported."
?
623@@ -626,7 +624,6 @@ message(" libbitcoinkernel (experimental) ..... ${BUILD_KERNEL_LIB}")
624 message("Optional features:")
625 message(" wallet support ...................... ${ENABLE_WALLET}")
626 if(ENABLE_WALLET)
627- message(" - descriptor wallets (SQLite) ...... ${WITH_SQLITE}")
628 message(" - legacy wallets (Berkeley DB) ..... ${WITH_BDB}")
It only removes sqlite as an optional dependency when the wallet is enabled, so I think having this log line is redundant. Removing the BDB line is still incorrect at this time as it can be built with and used (in this commit).
I’m not sure what in the commit message needs fixing.
I’m not sure what in the commit message needs fixing.
The commit message refers to the configure option, but the project is using cmake, but this is just a nit.
Also, this is the only build-system commit in this pull request. I’d say it could make sense to split it up into it’s own pull request, because:
Needs rebase.
I left some nits, feel free to ignore.
I skipped over the large commit and the last two.
Otherwise:
review ACK 82fc65c9ab53c416935b5eb20be10fe69ded8b88 👨
Signature:
0untrusted comment: signature from minisign secret key on empty file; verify via: minisign -Vm "${path_to_any_empty_file}" -P RWTRmVTMeKV5noAMqVlsMugDDCyyTSbA3Re5AkUrhvLVln0tSaFWglOw -x "${path_to_this_whole_four_line_signature_blob}"
1RUTRmVTMeKV5npGrKx1nqXCw5zeVHdtdYURB/KlyA/LMFgpNCs+SkW9a8N95d+U4AP1RJMi+krxU1A3Yux4bpwZNLvVBKy0wLgM=
2trusted comment: review ACK 82fc65c9ab53c416935b5eb20be10fe69ded8b88 👨
31738Jue8VRvURHJG6ZrNb0UzewDcwNZT7SO5vi0tlLfJlYOf/7IVJSk5W9mompg0cCbyr9xc3mF6TE876MUeBg==
🚧 At least one of the CI tasks failed. Debug: https://github.com/bitcoin/bitcoin/runs/37419946977
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.
Since importdescriptors (which the legacy wallet import* RPCs use for
descriptor wallets in the test framework) always rescans, the checks
in wallet_transactiontime_rescan for import* RPCs not rescanning, and
subsequently requring a rescan, are incorrect.
Removes all legacy wallet specific functional tests.
Also removes the --descriptor and --legacy-wallet options as these are
no longer necessary with the legacy wallet removed.
Salvage is bdb only which is about to be removed.
Require sqlite is available in order to compile the wallet. Removes
instances of USE_SQLITE since it is no longer possible to not have
sqlite available.
Legacy wallets do not have the descriptors flag set. Don't load wallets
without the descriptors flag.
At the same time, we will no longer load BDB databases since they are
only used for legacy wallets.
Clarified my nits a bit, nothing blocking.
I still haven’t reviewed the last commit and the large commit. I wonder if it is possible to split the large commit into one that removes test files (or test cases) and one that does the test framework change, possibly making review easier.
re-ACK b8494154e174481bbc0350013f1960973f35f3fc 🔑
Signature:
0untrusted comment: signature from minisign secret key on empty file; verify via: minisign -Vm "${path_to_any_empty_file}" -P RWTRmVTMeKV5noAMqVlsMugDDCyyTSbA3Re5AkUrhvLVln0tSaFWglOw -x "${path_to_this_whole_four_line_signature_blob}"
1RUTRmVTMeKV5npGrKx1nqXCw5zeVHdtdYURB/KlyA/LMFgpNCs+SkW9a8N95d+U4AP1RJMi+krxU1A3Yux4bpwZNLvVBKy0wLgM=
2trusted comment: re-ACK b8494154e174481bbc0350013f1960973f35f3fc 🔑
3FHB3gaGmlXUnVYceoczXV52txwmCFbqMqxMuJLOB1MC2BCTd8xLZoCVRxUH3Kz+37u17PYG18Jd3OynL2tgbDg==