Skip to content

Conversation

roconnor-blockstream
Copy link
Contributor

@roconnor-blockstream roconnor-blockstream commented May 30, 2025

Rebase of #27351 onto #29136.

WIP

This PR introduces the ability to import BIP 93/codex32 master seeds with the addhdkey command. It currently expects seeds to be provided in either as a single seed or as a list of shares which can be assembled via Shamir Secret Sharing.

achow101 added 2 commits May 28, 2025 12:38
unused() descriptors do not have scriptPubKeys. Instead, the wallet uses
them to store keys without having any scripts to watch for.
@DrahtBot
Copy link
Contributor

DrahtBot commented May 30, 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/32652.

Reviews

See the guideline for information on the review process.

Type Reviewers
Concept ACK achow101

If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #33135 (wallet: prevent accidental unsafe older() import by Sjors)
  • #33008 (wallet: support bip388 policy with external signer by Sjors)
  • #32861 (Have createwalletdescriptor auto-detect an unused(KEY) by Sjors)
  • #32784 (wallet: derivehdkey RPC to get xpub at arbitrary path by Sjors)
  • #32489 (wallet: Add exportwatchonlywallet RPC to export a watchonly version of a wallet by achow101)
  • #30243 (descriptors: taproot partial descriptors by Eunovo)
  • #29136 (wallet: addhdkey RPC to add just keys to wallets via new unused(KEY) descriptor by achow101)
  • #28690 (build: Introduce internal kernel library by TheCharlatan)
  • #28333 (wallet: Construct ScriptPubKeyMans with all data rather than loaded progressively by achow101)

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:

  • In codex32.cpp comment: residue ("secretshare32" or "secretshare32ex". → residue ("secretshare32" or "secretshare32ex") [missing closing parenthesis]

drahtbot_id_4_m

@DrahtBot
Copy link
Contributor

🚧 At least one of the CI tasks failed.
Task previous releases, depends DEBUG: https://github.com/bitcoin/bitcoin/runs/43216931922
LLM reason (✨ experimental): The CI failure is due to a compilation error caused by an invalid use of dynamic_cast on a non-pointer type.

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.

@achow101
Copy link
Member

achow101 commented Jun 2, 2025

Concept ACK-ish

This is certainly better than the previous approach.

roconnor-blockstream and others added 2 commits July 4, 2025 15:56
In the next commit we will implement a new checksum, codex32, which uses
the same encoding and HRP rules as bech32 and bech32m, but has a
substantially different checksum verification procedure. To minimize
duplicated code, we expose the character conversion in a new
bech32::internals module.
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.

4 participants