feat(compile): compile taproot descriptor with randomized unspendable internal key #225
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Addresses #218 (part 1/2).
Implements randomization of the unspendable internal key for taproot descriptors. This is the first part of #218, which consists of two parts:
Split into separate PRs for easier review and iteration, and to allow independent discussion of the verification command implementation, as one of the possible approaches could introduce breaking changes.
Notes to the reviewers
The
compilecommand now returns an additionalrfield for taproot descriptors (-t tr), containing the randomly generated internal key. Each compilation will produce a different internal key instead of using a fixed NUMS key.Example output for taproot (first execution):
Same descriptor compiled again produces different
rand internal key:Other descriptor types remain unchanged:
Tests for
compilecommand have been moved fromhandlers.rsto thetestsdirectory. Since taproot descriptors now generate a random internal key on each invocation, the test for thecompilecommand has been simplified. I plan to enhance this test in a follow-up PR once the verification command is implemented.Changelog notice
Checklists
All Submissions:
cargo fmtandcargo clippybefore committingNew Features:
CHANGELOG.md