-
Notifications
You must be signed in to change notification settings - Fork 38.8k
Allow tr() import only when Taproot is active #22156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, 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. |
|
slight reword suggestion because I was confused thinking you'd only allow tr() descriptors and not wsh() or anything else "Allow tr() import to privkey wallets only when Taproot is active" |
|
Hmm, any reason to restrict this protection to private key wallets? A watch-only taproot wallet giving out addresses is just as dangerous. |
To avoid issues around fund loss, only allow descriptor wallets to import tr() descriptors after taproot has activated.
c3875fa to
fbf485c
Compare
|
Updated to disallow import into watch only wallets too. |
|
Concept ACK. This appears to be at least one wallet restriction that should be in place prior to Taproot being active (I haven't figured out if there are potentially others) This PR doesn't allow tr() import to Signet wallets either right? Ideally no restrictions would be applied to the Signet wallet. |
tr() can be imported into signet wallets as taproot is activated on signet. This is not a blanket disallow, it checks for activation. |
|
utACK fbf485c |
|
Code review ACK fbf485c |
| self.num_nodes = 2 | ||
| self.num_nodes = 3 | ||
| self.setup_clean_chain = True | ||
| self.extra_args = [['-keypool=100'], ['-keypool=100']] | ||
| self.extra_args = [['-keypool=100'], ['-keypool=100'], ["-vbparams=taproot:1:1"]] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: self.nodes[1] is not used in this test so can we keep 2 nodes and change self.extra_args for one?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Node 1 will be used in #21365. I'd like to avoid conflicts with that as much as possible.
ghost
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
utACK fbf485c
Few questions
|
|
Code review ACK fbf485c |
#22154 implements generic blocking of bech32m addresses (so tr() descriptors and any future segwit versions) in legacy wallets. For legacy wallets, importing bech32m addresses is completely disallowed.
Just |
fbf485c Allow tr() import only when Taproot is active (Andrew Chow) Pull request description: To avoid issues around fund loss, only allow descriptor wallets to import `tr()` descriptors after taproot has activated. ACKs for top commit: sipa: utACK fbf485c fjahr: Code review ACK fbf485c laanwj: Code review ACK fbf485c prayank23: utACK bitcoin@fbf485c Tree-SHA512: 83c43376515eea523dbc89bc5a0fde53e54aec492e49a40c2a33d80fc94aac459e232ae07b024b4bd75b58078c8d090bc7a2d69541c5d3d4834d2f4cfc9c8208
|
Post merge concept ACK. |
To avoid issues around fund loss, only allow descriptor wallets to import
tr()descriptors after taproot has activated.