Menu action to export a watchonly wallet #872

pull achow101 wants to merge 13 commits into bitcoin-core:master from achow101:export-watchonly-wallet-gui changing 16 files +658 −49
  1. achow101 commented at 11:31 pm on May 13, 2025: member

    Allows a user to export a watchonly version of their wallet to be used in an airgapped setup.

    Built on https://github.com/bitcoin/bitcoin/pull/32489

  2. DrahtBot commented at 11:31 pm on May 13, 2025: contributor

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

    Reviews

    See the guideline for information on the review process. A summary of reviews will appear here.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    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.

  3. DrahtBot added the label CI failed on May 14, 2025
  4. DrahtBot added the label Needs rebase on May 16, 2025
  5. achow101 force-pushed on May 16, 2025
  6. DrahtBot removed the label Needs rebase on May 16, 2025
  7. DrahtBot removed the label CI failed on May 17, 2025
  8. DrahtBot added the label Needs rebase on May 19, 2025
  9. achow101 force-pushed on May 20, 2025
  10. DrahtBot removed the label Needs rebase on May 20, 2025
  11. hebasto renamed this:
    gui: Menu action to export a watchonly wallet
    Menu action to export a watchonly wallet
    on May 20, 2025
  12. DrahtBot added the label Needs rebase on May 21, 2025
  13. wallet: Track whether a locked coin is persisted 129fdf7b9b
  14. wallet, rpc: Push the normalized parent descriptor
    Instead of prividing the descriptor string as stored in the db, use the
    normalized descriptor as is done for getaddressinfo's parent_desc field.
    c61c87a453
  15. wallet: Add GetWalletFlags 7f804ff98f
  16. descriptor: Add CanSelfExpand()
    CanSelfExpand() reports whether a descriptor can be expanded without
    needing any caches or private keys to be provided by the caller of
    Expand().
    6039f5eab3
  17. wallet: Use Descriptor::CanSelfExpand() in CanGetAddresses()
    If a descriptor does not need any caches or private keys in order to
    expand, then CanGetAddresses() should return true for that descriptor.
    52583d3269
  18. wallet: Set upgraded descriptor cache flag for newly created wallets
    New wallets always have these upgraded. As a belt-and-suspenders, do the
    upgrade as well, but it should not be necessary.
    
    Note that while WalletBatch::LoadWallet also does the upgrade, because
    newly created wallets do not have the descriptor flag set yet, the
    upgrade does not run and set the flag.
    b7b6f210d5
  19. wallet: Write new descriptor's cache in AddWalletDescriptor
    If a new WalletDescriptor is provided to us with a cache, write the
    cache to disk as well.
    1772517f5d
  20. walletdb: Log additional exception error messages for corrupted wallets a80b399613
  21. wallet: Move listdescriptors retrieving from RPC to CWallet
    When listdescriptors retrieves the descriptors from the wallet, instead
    of having this logic in the RPC, move it into CWallet itself. This
    will enable other functions to get the descriptors in an exportable
    form.
    cb43639bab
  22. wallet: Add CWallet::ExportWatchOnly
    ExportWatchOnly produces a watchonly wallet file from a CWallet. This
    can be restored onto another instance of Bitcoin Core to allow that
    instance to watch the same descriptors, and also have all of the same
    initial address book and transactions.
    8eadc7cccf
  23. wallet, rpc: Add exportwatchonlywallet RPC c87e0b8ce5
  24. test: Test for exportwatchonlywallet 1ec0073636
  25. gui: Menu action for exporting a watchonly wallet 6b252fe5d0
  26. achow101 force-pushed on May 21, 2025
  27. DrahtBot removed the label Needs rebase on May 21, 2025
  28. DrahtBot added the label CI failed on May 21, 2025

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin-core/gui. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-05-31 18:20 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me