Skip to content

Conversation

@knst
Copy link
Collaborator

@knst knst commented Jul 17, 2025

Issue being fixed or feature implemented

upgradetohd has comprehensive tests for case of blank legacy wallet -> HD legacy wallet.

This PR replaces #6762

What was done?

  • add descriptor wallets to scope of wallet_updatetohd.py
  • add tests for deterministic of generated addresses from mnemonic (with & without mnemonic_passphrase)

How Has This Been Tested?

See wallet_upgadetohd.py

Breaking Changes

N/A

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated relevant unit/integration/functional/e2e tests
  • I have made corresponding changes to the documentation
  • I have assigned this pull request to a milestone

@knst knst added this to the 23 milestone Jul 17, 2025
@knst knst force-pushed the test-wallet-upgradetohd-2 branch from 49211b1 to 0d85b33 Compare July 17, 2025 20:06
@coderabbitai
Copy link

coderabbitai bot commented Jul 17, 2025

Walkthrough

The changes add support for descriptor wallets in functional wallet tests by appending a descriptor wallet test invocation in test_runner.py. A shared get_mnemonic utility function is introduced in test_framework/util.py to standardize mnemonic retrieval across wallet types. The wallet_mnemonicbits.py test is refactored to use this utility, simplifying mnemonic extraction and wallet creation logic. In wallet_upgradetohd.py, a get_mnemonic method is added to the test class, replacing direct mnemonic access and adapting assertions and error handling based on whether descriptor wallets are enabled. New tests verify upgrading blank wallets with user-defined mnemonics and passphrases.


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0d85b3320510c71fba415f1f4283d63da717d067 and 04c8c97.

📒 Files selected for processing (4)
  • test/functional/test_framework/util.py (1 hunks)
  • test/functional/test_runner.py (1 hunks)
  • test/functional/wallet_mnemonicbits.py (3 hunks)
  • test/functional/wallet_upgradetohd.py (13 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • test/functional/wallet_mnemonicbits.py
  • test/functional/test_runner.py
🧰 Additional context used
📓 Path-based instructions (1)
test/functional/**/*.py

Instructions used from:

Sources:
📄 CodeRabbit Inference Engine

  • CLAUDE.md
🧠 Learnings (3)
📓 Common learnings
Learnt from: kwvg
PR: dashpay/dash#6543
File: src/wallet/receive.cpp:240-251
Timestamp: 2025-02-06T14:34:30.466Z
Learning: Pull request #6543 is focused on move-only changes and refactoring, specifically backporting from Bitcoin. Behavior changes should be proposed in separate PRs.
Learnt from: kwvg
PR: dashpay/dash#6718
File: test/functional/test_framework/test_framework.py:2102-2102
Timestamp: 2025-06-09T16:43:20.996Z
Learning: In the test framework consolidation PR (#6718), user kwvg prefers to limit functional changes to those directly related to MasternodeInfo, avoiding scope creep even for minor improvements like error handling consistency.
test/functional/test_framework/util.py (1)
Learnt from: kwvg
PR: dashpay/dash#6718
File: test/functional/test_framework/test_framework.py:2102-2102
Timestamp: 2025-06-09T16:43:20.996Z
Learning: In the test framework consolidation PR (#6718), user kwvg prefers to limit functional changes to those directly related to MasternodeInfo, avoiding scope creep even for minor improvements like error handling consistency.
test/functional/wallet_upgradetohd.py (2)
Learnt from: kwvg
PR: dashpay/dash#6718
File: test/functional/test_framework/test_framework.py:2102-2102
Timestamp: 2025-06-09T16:43:20.996Z
Learning: In the test framework consolidation PR (#6718), user kwvg prefers to limit functional changes to those directly related to MasternodeInfo, avoiding scope creep even for minor improvements like error handling consistency.
Learnt from: knst
PR: dashpay/dash#6511
File: src/evo/deterministicmns.cpp:1369-1373
Timestamp: 2025-01-07T18:50:44.838Z
Learning: The functions `MigrateDBIfNeeded` and `MigrateDBIfNeeded2` in `src/evo/deterministicmns.cpp` are temporary and will be removed in a future version. Refactoring suggestions for these functions should be avoided.
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: linux64_ubsan-test / Test source
  • GitHub Check: linux64_sqlite-test / Test source
  • GitHub Check: linux64-test / Test source
  • GitHub Check: linux64_multiprocess-build / Build source
  • GitHub Check: linux64_tsan-build / Build source
  • GitHub Check: linux64_fuzz-build / Build source
🔇 Additional comments (8)
test/functional/test_framework/util.py (1)

540-561: LGTM! Well-implemented shared utility function.

The get_mnemonic function effectively addresses the code duplication issue mentioned in previous reviews by providing a unified interface for mnemonic retrieval across both legacy HD wallets and descriptor wallets. The implementation correctly:

  • Handles wallet type detection using the descriptors flag
  • Extracts mnemonics from different descriptor types appropriately
  • Includes proper error handling for unknown descriptor types
  • Ensures consistency across multiple descriptors of the same type

This consolidation improves maintainability and reduces code duplication across test files.

test/functional/wallet_upgradetohd.py (7)

18-18: LGTM! Proper use of the new shared utility function.

The import of get_mnemonic from test_framework.util correctly addresses the previous code duplication issue by using the centralized utility function.


33-34: LGTM! Improved wallet setup for deterministic testing.

The change to create a blank wallet and import a deterministic private key provides better test isolation and predictability compared to the previous approach.


42-43: LGTM! Appropriate conditional logic for descriptor wallets.

The conditional check correctly skips HD chain ID validation for descriptor wallets, which don't use the same chain ID mechanism as legacy HD wallets.


53-53: LGTM! Consistent use of the shared utility function.

Using get_mnemonic(node) instead of direct dumphdinfo() calls provides better abstraction and works with both wallet types.


54-56: LGTM! Proper conditional validation.

The conditional HD chain ID assertion correctly handles the difference between descriptor and legacy wallets.


206-224: LGTM! Comprehensive error handling for different wallet types.

The error handling correctly accounts for different error messages between legacy and descriptor wallets:

  • Legacy wallets: "The wallet passphrase entered was incorrect"
  • Descriptor wallets: "SetupDescriptorScriptPubKeyMans: Wallet is locked, cannot setup new descriptors"

The conditional logic for wallet unlocking and mnemonic verification appropriately handles the differences between wallet types.


234-255: LGTM! Comprehensive test coverage for user-defined mnemonics.

The new test section effectively validates:

  • Upgrading blank wallets with custom mnemonics
  • Correct address derivation without passphrase
  • Correct address derivation with passphrase
  • Balance recovery after wallet upgrade

The test methodology of sending funds to known addresses derived from the mnemonic and then verifying recovery is sound and provides good coverage of the upgrade functionality.

✨ Finishing Touches
  • 📝 Generate Docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@knst knst marked this pull request as draft July 17, 2025 20:10
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🔭 Outside diff range comments (1)
test/functional/wallet_mnemonicbits.py (1)

20-36: Consider moving get_mnemonic to a shared test utility module.

This method is duplicated in wallet_upgradetohd.py (as noted by the TODO comment there). To follow the DRY principle, consider extracting this into test_framework/util.py or a dedicated wallet test utility module.

🧹 Nitpick comments (1)
test/functional/wallet_upgradetohd.py (1)

250-271: Consider deriving test addresses programmatically instead of hardcoding them.

While the test logic is sound, hardcoding addresses like yLpq97zZUsFQ2rdMqhcPKkYT36MoPK4Hob and yYBPeZQcqgQHu9dxA5pKBWtYbK2hwfFHxf makes the test fragile. If the address derivation logic changes, these hardcoded values would need manual updates.

Consider deriving these addresses from the mnemonic and passphrase programmatically to make the test more maintainable.

Would you like me to help implement a solution that derives these addresses from the mnemonic?

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d5fc8bf and 0d85b3320510c71fba415f1f4283d63da717d067.

📒 Files selected for processing (3)
  • test/functional/test_runner.py (1 hunks)
  • test/functional/wallet_mnemonicbits.py (1 hunks)
  • test/functional/wallet_upgradetohd.py (12 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
test/functional/**/*.py

Instructions used from:

Sources:
📄 CodeRabbit Inference Engine

  • CLAUDE.md
🧠 Learnings (4)
📓 Common learnings
Learnt from: kwvg
PR: dashpay/dash#6543
File: src/wallet/receive.cpp:240-251
Timestamp: 2025-02-06T14:34:30.466Z
Learning: Pull request #6543 is focused on move-only changes and refactoring, specifically backporting from Bitcoin. Behavior changes should be proposed in separate PRs.
Learnt from: kwvg
PR: dashpay/dash#6718
File: test/functional/test_framework/test_framework.py:2102-2102
Timestamp: 2025-06-09T16:43:20.996Z
Learning: In the test framework consolidation PR (#6718), user kwvg prefers to limit functional changes to those directly related to MasternodeInfo, avoiding scope creep even for minor improvements like error handling consistency.
test/functional/test_runner.py (1)
Learnt from: kwvg
PR: dashpay/dash#6718
File: test/functional/test_framework/test_framework.py:2102-2102
Timestamp: 2025-06-09T16:43:20.996Z
Learning: In the test framework consolidation PR (#6718), user kwvg prefers to limit functional changes to those directly related to MasternodeInfo, avoiding scope creep even for minor improvements like error handling consistency.
test/functional/wallet_mnemonicbits.py (1)
Learnt from: kwvg
PR: dashpay/dash#6718
File: test/functional/test_framework/test_framework.py:2102-2102
Timestamp: 2025-06-09T16:43:20.996Z
Learning: In the test framework consolidation PR (#6718), user kwvg prefers to limit functional changes to those directly related to MasternodeInfo, avoiding scope creep even for minor improvements like error handling consistency.
test/functional/wallet_upgradetohd.py (1)
Learnt from: kwvg
PR: dashpay/dash#6718
File: test/functional/test_framework/test_framework.py:2102-2102
Timestamp: 2025-06-09T16:43:20.996Z
Learning: In the test framework consolidation PR (#6718), user kwvg prefers to limit functional changes to those directly related to MasternodeInfo, avoiding scope creep even for minor improvements like error handling consistency.
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (10)
  • GitHub Check: linux64_multiprocess-build / Build source
  • GitHub Check: mac-build / Build source
  • GitHub Check: arm-linux-build / Build source
  • GitHub Check: linux64_fuzz-build / Build source
  • GitHub Check: linux64_ubsan-build / Build source
  • GitHub Check: linux64_sqlite-build / Build source
  • GitHub Check: linux64-build / Build source
  • GitHub Check: linux64_tsan-build / Build source
  • GitHub Check: win64-build / Build source
  • GitHub Check: linux64_nowallet-build / Build source
🔇 Additional comments (3)
test/functional/test_runner.py (1)

324-324: LGTM!

The addition of the descriptor wallet test variant is consistent with the established pattern in the test suite and properly integrates the new descriptor wallet support added to wallet_upgradetohd.py.

test/functional/wallet_mnemonicbits.py (1)

91-98: Good refactoring to unify wallet creation and mnemonic verification.

The changes simplify the test by using a consistent approach for both descriptor and legacy wallets:

  1. Create a blank wallet with the appropriate descriptor setting
  2. Upgrade to HD
  3. Use the unified get_mnemonic helper for verification

This removes conditional logic and makes the test more maintainable.

test/functional/wallet_upgradetohd.py (1)

32-33: Clean approach to wallet initialization.

Creating a blank wallet and explicitly importing the deterministic key is more explicit and works consistently across both wallet types.

Comment on lines 229 to 232
Copy link

@coderabbitai coderabbitai bot Jul 17, 2025

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Clarify or remove the ambiguous TODO comments.

The TODO comments "drop it" and "drop it too!" are unclear. If these lines need to be removed, please either remove them now or provide more context about why they should be dropped in the future.

🤖 Prompt for AI Agents
In test/functional/wallet_upgradetohd.py around lines 229 to 232, the TODO
comments "drop it" and "drop it too!" are ambiguous and unclear. Either remove
these TODO comments entirely if the related lines are no longer needed, or
replace the comments with a clear explanation of what exactly should be dropped
and why, to provide proper context for future maintenance.

Copy link
Member

Choose a reason for hiding this comment

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

@knst please address this

Copy link

Choose a reason for hiding this comment

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

Seems like the humans are having a chat. I'll hop back into my burrow for now. If you need me again, just tag @coderabbitai in a new comment, and I'll come hopping out!

Copy link
Collaborator Author

@knst knst Jul 24, 2025

Choose a reason for hiding this comment

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

@PastaPastaPasta it's [semi-related] bug. addressed here: #6772

Copy link
Member

Choose a reason for hiding this comment

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

I wish at least the todo here is more clear

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

my bad, it should reads together but seems as wording bad... It will disappear soon as 6772 is merged:

      # TODO - implement auto-unlock descriptor wallet
<couple lines>
        # TODO - drop it too!

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 made #6772 ready for review, merge that one first then @PastaPastaPasta

@knst knst force-pushed the test-wallet-upgradetohd-2 branch from 0d85b33 to 1e70ee8 Compare July 17, 2025 20:23
@knst knst marked this pull request as ready for review July 17, 2025 20:34
@knst knst requested a review from UdjinM6 July 17, 2025 20:35
Copy link

@UdjinM6 UdjinM6 left a comment

Choose a reason for hiding this comment

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

Nice! 👍

utACK 04c8c97

Copy link
Member

@PastaPastaPasta PastaPastaPasta left a comment

Choose a reason for hiding this comment

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

please address vague TODO

@knst knst requested a review from PastaPastaPasta July 24, 2025 19:51
PastaPastaPasta added a commit that referenced this pull request Jul 30, 2025
…ts same as legacy wallets

ae49943 refactor: drop unused includes from wallet.cpp (Konstantin Akimov)
10d9a67 fix: let upgradetohd work for encrypted Descriptor wallets same as legacy wallets (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  `upgradetohd` has 3rd argument 'passphrase' specially for encrypted wallet but it is ignored for Descriptor Wallet and wallet should be manually unlocked before call of `upgradetohd`.

  ## What was done?
  RPC `upgradetohd` actually works now with enctypred Descriptor Wallets without requirement to unlock them first.

  ## How Has This Been Tested?
  Tests to be merged in #6763

  ## Breaking Changes
  N/A

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  PastaPastaPasta:
    utACK ae49943
  UdjinM6:
    utACK ae49943

Tree-SHA512: 8c342cb4f5c76689c8e6f9fc36fbc59e8cd9ada75065b2a9a43896171dab1f4c41a7dd3f8a8edcb1f9918bcff675dbecf45cd5df32306c704f45e362853ce168
@PastaPastaPasta PastaPastaPasta merged commit bd589dd into dashpay:develop Jul 30, 2025
64 of 73 checks passed
PastaPastaPasta added a commit that referenced this pull request Jul 31, 2025
… fix error message

4dca765 test: follow-up #6762 - removed related TODO from functional test (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  Once both #6762 and #6763 are merged, no more need to have a workaround with manual lock / unlock of descriptor wallet before `upgradetohd`.
  I fixes CI failure on develop also due to conflict.

  ## What was done?
  Removed this workaround from `wallet_upgradetohd.py`

  ## How Has This Been Tested?
  See CI

  ## Breaking Changes
  N/A

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  DashCoreAutoGuix:
    utACK 4dca765 (used wrong account, disregard)
  PastaPastaPasta:
    utACK 4dca765
  kwvg:
    utACK 4dca765

Tree-SHA512: 435359f53f42c29f3e6885ab6fbeabd1a31135fe67a15b894e6f4a92a0aced3e96e0f1bb38598eb74eb251df1f6ae603e033ee41e3bf500bcc4d6c5c1031b800
knst pushed a commit to knst/dash that referenced this pull request Sep 17, 2025
…r wallets same as legacy wallets

ae49943 refactor: drop unused includes from wallet.cpp (Konstantin Akimov)
10d9a67 fix: let upgradetohd work for encrypted Descriptor wallets same as legacy wallets (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  `upgradetohd` has 3rd argument 'passphrase' specially for encrypted wallet but it is ignored for Descriptor Wallet and wallet should be manually unlocked before call of `upgradetohd`.

  ## What was done?
  RPC `upgradetohd` actually works now with enctypred Descriptor Wallets without requirement to unlock them first.

  ## How Has This Been Tested?
  Tests to be merged in dashpay#6763

  ## Breaking Changes
  N/A

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  PastaPastaPasta:
    utACK ae49943
  UdjinM6:
    utACK ae49943

Tree-SHA512: 8c342cb4f5c76689c8e6f9fc36fbc59e8cd9ada75065b2a9a43896171dab1f4c41a7dd3f8a8edcb1f9918bcff675dbecf45cd5df32306c704f45e362853ce168
knst pushed a commit to knst/dash that referenced this pull request Sep 17, 2025
…iptors

04c8c97 test: move helper get_mnemonic to test_framework/util (Konstantin Akimov)
1e70ee8 test: enable --descriptors for wallet_upgradetohd.py (Konstantin Akimov)
0322b7c test: ensure determinism of addresses for specific mnemonic (Konstantin Akimov)
af4b618 test: make wallet_upgradetohd works for descriptor wallets too (Konstantin Akimov)
0267fb7 fix: copyright for wallet_upgradetohd.py (Konstantin Akimov)
62c4ec1 test: remove duplicated code from wallet_mnemonicbits.py by using helper get_mnemonic (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  `upgradetohd` has comprehensive tests for case of blank legacy wallet -> HD legacy wallet.

  This PR replaces dashpay#6762

  ## What was done?
   - add descriptor wallets to scope of wallet_updatetohd.py
   - add tests for deterministic of generated addresses from mnemonic (with & without mnemonic_passphrase)

  ## How Has This Been Tested?
  See `wallet_upgadetohd.py`

  ## Breaking Changes
  N/A

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  UdjinM6:
    utACK 04c8c97

Tree-SHA512: 7d007b48642f938efb501ef9b36a1e3506e9f658e332a5a845b91784298935669d747c7a616c558b4727644540d9e481d94690ee05e921d6bed6aea4253a7b5a
knst pushed a commit to knst/dash that referenced this pull request Sep 17, 2025
…remove workaround and fix error message

4dca765 test: follow-up dashpay#6762 - removed related TODO from functional test (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  Once both dashpay#6762 and dashpay#6763 are merged, no more need to have a workaround with manual lock / unlock of descriptor wallet before `upgradetohd`.
  I fixes CI failure on develop also due to conflict.

  ## What was done?
  Removed this workaround from `wallet_upgradetohd.py`

  ## How Has This Been Tested?
  See CI

  ## Breaking Changes
  N/A

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  DashCoreAutoGuix:
    utACK 4dca765 (used wrong account, disregard)
  PastaPastaPasta:
    utACK 4dca765
  kwvg:
    utACK 4dca765

Tree-SHA512: 435359f53f42c29f3e6885ab6fbeabd1a31135fe67a15b894e6f4a92a0aced3e96e0f1bb38598eb74eb251df1f6ae603e033ee41e3bf500bcc4d6c5c1031b800
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants