diff options
author | Sjors Provoost <sjors@sprovoost.nl> | 2019-08-04 23:26:01 +0200 |
---|---|---|
committer | Sjors Provoost <sjors@sprovoost.nl> | 2021-02-23 14:34:32 +0100 |
commit | d4b0107d68a91ed4d1a5c78c8ca76251329d3f3c (patch) | |
tree | 351468ff53c287150cc6c060d874acb274fdc4f4 /test/functional/mocks/signer.py | |
parent | 245b4457cf9265190a05529a0a97e1cb258cca8a (diff) |
rpc: send: support external signer
Diffstat (limited to 'test/functional/mocks/signer.py')
-rwxr-xr-x | test/functional/mocks/signer.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/functional/mocks/signer.py b/test/functional/mocks/signer.py index 4036c785b3..676d0a0a4d 100755 --- a/test/functional/mocks/signer.py +++ b/test/functional/mocks/signer.py @@ -51,9 +51,25 @@ def displayaddress(args): return sys.stdout.write(json.dumps({"address": "bcrt1qm90ugl4d48jv8n6e5t9ln6t9zlpm5th68x4f8g"})) +def signtx(args): + if args.fingerprint != "00000001": + return sys.stdout.write(json.dumps({"error": "Unexpected fingerprint", "fingerprint": args.fingerprint})) + + with open(os.path.join(os.getcwd(), "mock_psbt"), "r", encoding="utf8") as f: + mock_psbt = f.read() + + if args.fingerprint == "00000001" : + sys.stdout.write(json.dumps({ + "psbt": mock_psbt, + "complete": True + })) + else: + sys.stdout.write(json.dumps({"psbt": args.psbt})) + parser = argparse.ArgumentParser(prog='./signer.py', description='External signer mock') parser.add_argument('--fingerprint') parser.add_argument('--chain', default='main') +parser.add_argument('--stdin', action='store_true') subparsers = parser.add_subparsers(description='Commands', dest='command') subparsers.required = True @@ -69,6 +85,16 @@ parser_displayaddress = subparsers.add_parser('displayaddress', help='display ad parser_displayaddress.add_argument('--desc', metavar='desc') parser_displayaddress.set_defaults(func=displayaddress) +parser_signtx = subparsers.add_parser('signtx') +parser_signtx.add_argument('psbt', metavar='psbt') + +parser_signtx.set_defaults(func=signtx) + +if not sys.stdin.isatty(): + buffer = sys.stdin.read() + if buffer and buffer.rstrip() != "": + sys.argv.extend(buffer.rstrip().split(" ")) + args = parser.parse_args() perform_pre_checks() |