Adds an evalscript subcommand for using bitcoin's consensus logic to evaluate script fragments. Intended for debugging and development.
Examples:
# check a script fragment's behaviour
$ bitcoin-util evalscript '1 2 ADD'
{
"script": {
"asm": "1 2 OP_ADD",
"hex": "515293",
"type": "nonstandard"
},
"sigversion": "witness_v0",
"script_flags": [
"CHECKLOCKTIMEVERIFY",
"CHECKSEQUENCEVERIFY",
"DERSIG",
"NULLDUMMY",
"P2SH",
"TAPROOT",
"WITNESS"
],
"dummy_sig_checker": true,
"stack_after": [
"03"
],
"sigop_cost": 0,
"success": true
}
# validate a real signature
$ bitcoin-util -sigversion=base \
-spentoutput=00f2052a0100000043410411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3ac \
-tx=0100000001c997a5e56e104102fa209c6a852dd90660a20b2d9c352423edce25857fcd3704000000004847304402204e45e16932b8af514961a1d3a1a25fdf3f4f7732e9d624c6c61548ab5fb8cd410220181522ec8eca07de4860a4acdd12909d831cc56cbbac4622082221a8768d1d0901ffffffff0200ca9a3b00000000434104ae1a62fe09c5f51b13905f07f06b99a2f7159b2225f374cd378d71302fa28414e7aab37397f554a7df5f142c21c1b7303b8a0626f1baded5c72a704f7e6cd84cac00286bee0000000043410411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3ac00000000 \
evalscript '0x410411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3 CHECKSIG' \
'304402204e45e16932b8af514961a1d3a1a25fdf3f4f7732e9d624c6c61548ab5fb8cd410220181522ec8eca07de4860a4acdd12909d831cc56cbbac4622082221a8768d1d0901'
{
"script": {
"asm": "0411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3 OP_CHECKSIG",
"hex": "410411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3ac",
"type": "pubkey"
},
"sigversion": "base",
"script_flags": [
"CHECKLOCKTIMEVERIFY",
"CHECKSEQUENCEVERIFY",
"DERSIG",
"NULLDUMMY",
"P2SH",
"TAPROOT",
"WITNESS"
],
"dummy_sig_checker": false,
"stack_after": [
"01"
],
"sigop_cost": 4,
"success": true
}