Skip to content
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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Gudnessuche
Copy link
Contributor

@Gudnessuche Gudnessuche commented Nov 30, 2024

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.

…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.
@jonatack jonatack changed the title Add support for Pay-to-Anchor (P2A) address type in get_pubkey_from_i… BIP352: Add support for Pay-to-Anchor (P2A) in get_pubkey_from_input Dec 5, 2024
@Gudnessuche
Copy link
Contributor Author

Thank you so much @jonatack for the appropriate name change.

When merge?

@murchandamus murchandamus added the Pending acceptance This BIP modification requires sign-off by the champion of the BIP being modified label Dec 6, 2024
@murchandamus
Copy link
Contributor

This needs review and sign-off from the BIP’s authors.

cc: @josibake, @RubenSomsen

Copy link
Contributor

@theStack theStack left a 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:]
Copy link
Contributor

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).

Copy link
Contributor Author

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Pending acceptance This BIP modification requires sign-off by the champion of the BIP being modified Proposed BIP modification
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants