diff options
author | Sebastian Falbesoner <sebastian.falbesoner@gmail.com> | 2021-10-18 22:25:04 +0200 |
---|---|---|
committer | Sebastian Falbesoner <sebastian.falbesoner@gmail.com> | 2021-10-26 14:51:18 +0200 |
commit | 4718897ce3a7c728ff7aebbadabcc8ed7a0b8d6e (patch) | |
tree | 94688adb3b3e52d5d0c202e960521d49ce680aff /test/functional/test_framework/script_util.py | |
parent | 22a90186496aea8025316bc5616905ffcf1aeb29 (diff) |
test: add script_util helper for creating bare multisig scripts
Diffstat (limited to 'test/functional/test_framework/script_util.py')
-rwxr-xr-x | test/functional/test_framework/script_util.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/test/functional/test_framework/script_util.py b/test/functional/test_framework/script_util.py index 82a9067dd2..cbc4a560db 100755 --- a/test/functional/test_framework/script_util.py +++ b/test/functional/test_framework/script_util.py @@ -5,7 +5,9 @@ """Useful Script constants and utils.""" from test_framework.script import ( CScript, + CScriptOp, OP_0, + OP_CHECKMULTISIG, OP_CHECKSIG, OP_DUP, OP_EQUAL, @@ -41,6 +43,17 @@ def key_to_p2pk_script(key): return CScript([key, OP_CHECKSIG]) +def keys_to_multisig_script(keys, *, k=None): + n = len(keys) + if k is None: # n-of-n multisig by default + k = n + assert k <= n + op_k = CScriptOp.encode_op_n(k) + op_n = CScriptOp.encode_op_n(n) + checked_keys = [check_key(key) for key in keys] + return CScript([op_k] + checked_keys + [op_n, OP_CHECKMULTISIG]) + + def keyhash_to_p2pkh_script(hash): assert len(hash) == 20 return CScript([OP_DUP, OP_HASH160, hash, OP_EQUALVERIFY, OP_CHECKSIG]) |