@@ -94,7 +94,13 @@ def signmessage_handler(args: argparse.Namespace, client: HardwareWalletClient)
9494 return signmessage (client , message = args .message , path = args .path )
9595
9696def signtx_handler (args : argparse .Namespace , client : HardwareWalletClient ) -> Dict [str , Union [bool , str ]]:
97- return signtx (client , psbt = args .psbt )
97+ policy = BIP388Policy (
98+ name = args .policy_name ,
99+ descriptor_template = args .policy_desc ,
100+ keys_info = args .key ,
101+ hmac = args .hmac
102+ )
103+ return signtx (client , psbt = args .psbt , bip388_policy = policy )
98104
99105def wipe_device_handler (args : argparse .Namespace , client : HardwareWalletClient ) -> Dict [str , bool ]:
100106 return wipe_device (client )
@@ -167,6 +173,11 @@ def get_parser() -> HWIArgumentParser:
167173
168174 signtx_parser = subparsers .add_parser ('signtx' , help = 'Sign a PSBT' )
169175 signtx_parser .add_argument ('psbt' , help = 'The Partially Signed Bitcoin Transaction to sign' )
176+ signtx_policy_group = signtx_parser .add_argument_group ("BIP388 policy" )
177+ signtx_policy_group .add_argument ('--policy-name' , help = 'Registered policy name' )
178+ signtx_policy_group .add_argument ('--policy-desc' , help = 'Registered policy descriptor template' )
179+ signtx_policy_group .add_argument ('--key' , help = 'Registered policy key information' , action = 'append' )
180+ signtx_policy_group .add_argument ('--hmac' , help = 'Registered policy hmac, obtained via register command' )
170181 signtx_parser .set_defaults (func = signtx_handler )
171182
172183 getxpub_parser = subparsers .add_parser ('getxpub' , help = 'Get an extended public key' )
0 commit comments