-
Notifications
You must be signed in to change notification settings - Fork 5.4k
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
BIP352: Add support for Pay-to-Anchor (P2A) in get_pubkey_from_input #1707
base: master
Are you sure you want to change the base?
Conversation
…nput function This commit adds a conditional statement to the get_pubkey_from_input function to handle Pay-to-Anchor (P2A) address types. The function now checks if the previous output is a P2A address type and extracts the public key from the anchor_script. This update ensures compatibility with the Bitcoin protocol for P2A address types and enhances the function's versatility in processing various address types.
Thank you so much @jonatack for the appropriate name change. When merge? |
This needs review and sign-off from the BIP’s authors. cc: @josibake, @RubenSomsen |
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.
The function now checks if the previous output is a P2A address type and extracts the public key from the anchor_script.
Note that the P2A output type intentionally doesn't involve keys, so there is nothing we could extract. I think there is no gain in handling this case explicitly, as we'd end up in the "nothing matched" (return ECPubKey()
) case anyway, so it would be a no-op.
@@ -78,6 +78,11 @@ def get_pubkey_from_input(vin: VinInfo) -> ECPubKey: | |||
pubkey = ECPubKey().set(vin.prevout[2:]) | |||
if (pubkey.valid) & (pubkey.compressed): | |||
return pubkey | |||
if is_p2a(vin.prevout): | |||
anchor_script = vin.scriptSig[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.
scriptSig for segwit spends is always empty by consensus rules, so this line doesn't make sense (see also https://bitcoin.stackexchange.com/questions/124615/is-the-scriptsig-spending-an-paytoanchor-output-expected-to-always-be-empty).
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.
Hmmm interesting, so it's best to close this PR then?
This commit adds a conditional statement to the get_pubkey_from_input function to handle Pay-to-Anchor (P2A) address types. The function now checks if the previous output is a P2A address type and extracts the public key from the anchor_script. This update ensures compatibility with the Bitcoin protocol for P2A address types and enhances the function's versatility in processing various address types.