Merge pull request #50 from newtonick/passphrase_qr_seeds

fix qr scan for single frame qr
This commit is contained in:
SeedSigner
2021-07-12 11:08:20 -05:00
committed by GitHub
2 changed files with 15 additions and 4 deletions
+3 -1
View File
@@ -133,7 +133,9 @@ class SparrowWallet(Wallet):
def total_frames_parse(data) -> int:
if re.search("^UR\:CRYPTO-PSBT\/(\d+)\-(\d+)\/", data, re.IGNORECASE) != None:
return 10 #valid
return 10 # valid
elif re.search("^UR\:CRYPTO-PSBT", data, re.IGNORECASE) != None:
return 1 # valid but only 1 segment
else:
return -1 #invalid
@@ -55,14 +55,18 @@ class SpecterDesktopWallet(Wallet):
def total_frames_parse(data) -> int:
if re.search("^p(\d+)of(\d+) ", data, re.IGNORECASE) != None:
return int(re.search("^p(\d+)of(\d+) ", data, re.IGNORECASE).group(2))
elif re.search("UR\:.*", data, re.IGNORECASE) != None:
return -1 # if data has UR:, assume invalid wallet selected
else:
return -1
return 1
def current_frame_parse(data) -> int:
if re.search("^p(\d+)of(\d+) ", data, re.IGNORECASE) != None:
return int(re.search("^p(\d+)of(\d+) ", data, re.IGNORECASE).group(1))
elif re.search("UR\:.*", data, re.IGNORECASE) != None:
return -1 # if data has UR:, assume invalid wallet selected
else:
return -1
return 1 # assume a single frame for specter if no p#of# is found.
def data_parse(data) -> str:
return data.split(" ")[-1].strip()
@@ -97,7 +101,12 @@ class SpecterDesktopWallet(Wallet):
stop = self.qrsize
qr_cnt = ((len(data)-1) // self.qrsize) + 1
while cnt < qr_cnt:
if qr_cnt == 1:
part = data[start:stop]
images.append(qr.qrimage(part))
print(part)
while cnt < qr_cnt and qr_cnt != 1:
part = "p" + str(cnt+1) + "of" + str(qr_cnt) + " " + data[start:stop]
images.append(qr.qrimage(part))
print(part)