Skip to content

Verify arbitrary witness scripts and script-path spends - #77

Open
aagbotemi wants to merge 19 commits into
rust-bitcoin:masterfrom
aagbotemi:feat/script-interpreter
Open

Verify arbitrary witness scripts and script-path spends#77
aagbotemi wants to merge 19 commits into
rust-bitcoin:masterfrom
aagbotemi:feat/script-interpreter

Conversation

@aagbotemi

Copy link
Copy Markdown
Contributor

Summary

Scripts outside the template paths reported inconclusive. They now go to a script interpreter, which verifies taproot script-path spends, hashlocks, timelocks, and single-key witness scripts. Scripts it cannot express still report inconclusive, as the spec permits.

Rebased on #75.

Changes

  • Add verify_with_interpreter to evaluate scripts the templates cannot classify.
  • Split verify_input into template dispatch and interpreter fallback.
  • Add Error::ScriptNotSatisfied for a script that was interpreted but not satisfied.

Notes for reviewers

  • Templates must return inconclusive, not an error, when they merely fail to classify a script. An error short-circuits the fallback.

Closes #76.

@aagbotemi
aagbotemi force-pushed the feat/script-interpreter branch from f84b541 to 077e368 Compare July 27, 2026 09:35
@aagbotemi
aagbotemi force-pushed the feat/script-interpreter branch from 077e368 to 86f8ebd Compare July 27, 2026 10:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Arbitrary scripts report inconclusive

1 participant