diff --git a/src/seedsigner/helpers/ur2/ur_decoder.py b/src/seedsigner/helpers/ur2/ur_decoder.py index c0baf21f..d8fb4fde 100644 --- a/src/seedsigner/helpers/ur2/ur_decoder.py +++ b/src/seedsigner/helpers/ur2/ur_decoder.py @@ -143,6 +143,10 @@ class URDecoder: def expected_part_count(self): return self.fountain_decoder.expected_part_count() + + @property + def total_segments(self): + return self.expected_part_count() def received_part_indexes(self): return self.fountain_decoder.received_part_indexes diff --git a/src/seedsigner/models/decode_qr.py b/src/seedsigner/models/decode_qr.py index 0118e8fe..db7ac61d 100644 --- a/src/seedsigner/models/decode_qr.py +++ b/src/seedsigner/models/decode_qr.py @@ -278,7 +278,8 @@ class DecodeQR: if self.qr_type in [QRType.BYTES__UR]: cbor = self.decoder.result_message().cbor raw = Bytes.from_cbor(cbor).data - check = 'multisig setup file' in raw.decode("utf-8").lower() + data = raw.decode("utf-8").lower() + check = 'policy:' in data and "format:" in data and "derivation:" in data return check @@ -572,7 +573,7 @@ class DecodeQR: descriptor += ',[' + x['xfp'] + derivation + "]" + x['key'] + "/{0,1}/*" descriptor += script_close - + return descriptor class BaseQrDecoder: diff --git a/src/seedsigner/views/scan_views.py b/src/seedsigner/views/scan_views.py index 771aa10c..1376cf1d 100644 --- a/src/seedsigner/views/scan_views.py +++ b/src/seedsigner/views/scan_views.py @@ -79,6 +79,7 @@ class ScanView(View): if not descriptor.is_basic_multisig: # TODO: Handle single-sig descriptors? + print(f"Received single sig descriptor: {descriptor}") return Destination(NotYetImplementedView) self.controller.multisig_wallet_descriptor = descriptor