aboutsummaryrefslogtreecommitdiff
path: root/test/functional/mocks
diff options
context:
space:
mode:
authorSjors Provoost <sjors@sprovoost.nl>2019-08-04 23:26:01 +0200
committerSjors Provoost <sjors@sprovoost.nl>2021-02-23 14:34:32 +0100
commitd4b0107d68a91ed4d1a5c78c8ca76251329d3f3c (patch)
tree351468ff53c287150cc6c060d874acb274fdc4f4 /test/functional/mocks
parent245b4457cf9265190a05529a0a97e1cb258cca8a (diff)
downloadbitcoin-d4b0107d68a91ed4d1a5c78c8ca76251329d3f3c.tar.xz
rpc: send: support external signer
Diffstat (limited to 'test/functional/mocks')
-rwxr-xr-xtest/functional/mocks/signer.py26
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()