test: add CScript method for checking for witness program

This is needed in the next commit to calculate the dust threshold
for a given output script and min feerate for defining dust.
This commit is contained in:
Sebastian Falbesoner 2022-12-04 03:04:39 +01:00
parent cac29f5cd6
commit 8a5dbe2879

View file

@ -597,6 +597,13 @@ class CScript(bytes):
lastOpcode = opcode
return n
def IsWitnessProgram(self):
"""A witness program is any valid CScript that consists of a 1-byte
push opcode followed by a data push between 2 and 40 bytes."""
return ((4 <= len(self) <= 42) and
(self[0] == OP_0 or (OP_1 <= self[0] <= OP_16)) and
(self[1] + 2 == len(self)))
SIGHASH_DEFAULT = 0 # Taproot-only default, semantics same as SIGHASH_ALL
SIGHASH_ALL = 1