-
Notifications
You must be signed in to change notification settings - Fork 37.7k
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.
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.