|
12 | 12 | getdescriptors,
|
13 | 13 | prompt_pin,
|
14 | 14 | toggle_passphrase,
|
| 15 | + register, |
15 | 16 | restore_device,
|
16 | 17 | send_pin,
|
17 | 18 | setup_device,
|
|
22 | 23 | )
|
23 | 24 | from .common import (
|
24 | 25 | AddressType,
|
| 26 | + BIP388Policy, |
25 | 27 | Chain,
|
26 | 28 | )
|
27 | 29 | from .errors import (
|
@@ -59,6 +61,10 @@ def backup_device_handler(args: argparse.Namespace, client: HardwareWalletClient
|
59 | 61 | def displayaddress_handler(args: argparse.Namespace, client: HardwareWalletClient) -> Dict[str, str]:
|
60 | 62 | return displayaddress(client, desc=args.desc, path=args.path, addr_type=args.addr_type)
|
61 | 63 |
|
| 64 | +def register_handler(args: argparse.Namespace, client: HardwareWalletClient) -> Dict[str, str]: |
| 65 | + policy = BIP388Policy(name=args.name, descriptor_template=args.desc, keys_info=args.key) |
| 66 | + return register(client, bip388_policy=policy) |
| 67 | + |
62 | 68 | def enumerate_handler(args: argparse.Namespace) -> List[Dict[str, Any]]:
|
63 | 69 | return enumerate(password=args.password, expert=args.expert, chain=args.chain, allow_emulators=args.allow_emulators)
|
64 | 70 |
|
@@ -197,6 +203,12 @@ def get_parser() -> HWIArgumentParser:
|
197 | 203 | displayaddr_parser.add_argument("--addr-type", help="The address type to display", type=AddressType.argparse, choices=list(AddressType), default=AddressType.WIT) # type: ignore
|
198 | 204 | displayaddr_parser.set_defaults(func=displayaddress_handler)
|
199 | 205 |
|
| 206 | + register_parser = subparsers.add_parser('register', help='Register a BIP388 wallet policy') |
| 207 | + register_parser.add_argument('--name', help='Name for the policy') |
| 208 | + register_parser.add_argument('--desc', help='Descriptor template, e.g. tr(musig(@0,@1)') |
| 209 | + register_parser.add_argument('--key', help='Key information, e.g. [00000000/84h/0h/0h]xpub...', action='append') |
| 210 | + register_parser.set_defaults(func=register_handler) |
| 211 | + |
200 | 212 | setupdev_parser = subparsers.add_parser('setup', help='Setup a device. Passphrase protection uses the password given by -p. Requires interactive mode')
|
201 | 213 | setupdev_parser.add_argument('--label', '-l', help='The name to give to the device', default='')
|
202 | 214 | setupdev_parser.add_argument('--backup_passphrase', '-b', help='The passphrase to use for the backup, if applicable', default='')
|
|
0 commit comments