This commit is contained in:
Peter D. Gray 2025-07-31 10:24:28 -04:00 committed by scgbckbone
parent b1fdbae35c
commit a12ac4b26d
4 changed files with 16 additions and 98 deletions

View File

@ -5,21 +5,22 @@ This lists the new changes that have not yet been published in a normal release.
# Shared Improvements - Both Mk4 and Q
- New: Added `Bull Bitcoin` export to `Export Wallet` menu
- Enhancement: Add warning for zero value outputs if not OP_RETURNs
- Enhancement: Show QR codes of output addresses in Txn output explorer. Output explorer is offered for txns of all sizes.
- Bugfix: If all change outputs have `nValue=0` they're not shown in UX
- Bugfix: Disallow negative input/output amounts in PSBT
- Enhancement: Add warning for zero value outputs if not `OP_RETURN`
- Enhancement: Show QR codes of output addresses in Txn output explorer. Output explorer is
now offered for transactions of all sizes.
- Bugfix: If all change outputs have `nValue=0` they're not shown in UX.
- Bugfix: Disallow negative input/output amounts in PSBT.
# Mk4 Specific Changes
## 5.4.? - 2025-06-
## 5.4.? - 2025-08-xx
- Bugfix: Part of extended keys in stories were not always visible.
# Q Specific Changes
## 1.3.?Q - 2025-06
## 1.3.?Q - 2025-08-xx
- Bugfix: Correct line positioning when 24 seed words displayed.

View File

@ -109,8 +109,9 @@ if has_qwerty:
# These affect how 'ux stories' are rendered; they are control
# characters on the output side of things, not input.
OUT_CTRL_TITLE = '\x01' # must be first char in line: be a title line
OUT_CTRL_ADDRESS = '\x02' # must be first char in line: it's a payment address
OUT_CTRL_NOWRAP = '\x03' # must be first char in line: do not word wrap this line
# - must be first char in line
OUT_CTRL_TITLE = '\x01' # be a title line
OUT_CTRL_ADDRESS = '\x02' # it's a payment address
OUT_CTRL_NOWRAP = '\x03' # do not word wrap this line
# EOF

View File

@ -470,7 +470,7 @@ def word_wrap(ln, w):
# Generate the lines needed to wrap one line into X "width"-long lines.
# - tests in testing/test_unit.py
if ln and (ln[0] == OUT_CTRL_NOWRAP):
# no need to wrap this - as requested by caller
# no need to wrap this line - as requested by caller
yield ln[1:]
return

View File

@ -1028,95 +1028,11 @@ def test_qr_share_files(fname, pick_menu_item, goto_home, is_q1, cap_menu, cap_s
os.remove(f'{sim_root_dir}/MicroSD/' + fname)
@pytest.mark.parametrize("word,cs_word", [
# all words with length 8 + their longest possible checksum word
# ("abstract", "banner"),
# ("accident", "remain"),
# ("acoustic", "decrease"),
# ("announce", "involve"),
# ("artefact", "awkward"),
# ("attitude", "outdoor"),
# ("bachelor", "message"),
# ("broccoli", "explain"),
# ("business", "antenna"),
# ("category", "inquiry"),
# ("champion", "almost"),
# ("cinnamon", "episode"),
# ("congress", "mistake"),
# ("consider", "industry"),
# ("convince", "leopard"),
# ("cupboard", "original"),
# ("daughter", "mountain"),
# ("december", "receive"),
# ("decorate", "entire"),
# ("decrease", "mushroom"),
# ("describe", "buffalo"),
# ("dinosaur", "cushion"),
# ("disagree", "benefit"),
# ("discover", "attract"),
# ("disorder", "mountain"),
# ("distance", "accident"),
# ("document", "dilemma"),
# ("electric", "witness"),
# ("elephant", "cupboard"),
# ("elevator", "present"),
# ("envelope", "original"),
# ("evidence", "awkward"),
# ("exchange", "ensure"),
# ("exercise", "eternal"),
# ("favorite", "umbrella"),
# ("february", "airport"),
# ("festival", "cancel"),
# ("frequent", "garbage"),
# ("hedgehog", "employ"),
# ("hospital", "announce"),
# ("identify", "destroy"),
# ("increase", "better"),
# ("indicate", "arrest"),
# ("industry", "property"),
# ("innocent", "champion"),
# ("interest", "exhaust"),
# ("kangaroo", "present"),
# ("language", "endorse"),
# ("marriage", "immense"),
# ("material", "balcony"),
# ("mechanic", "bitter"),
# ("midnight", "unhappy"),
# ("mosquito", "mechanic"),
# ("mountain", "vehicle"),
# ("multiply", "advance"),
# ("mushroom", "leopard"),
# ("negative", "response"),
# ("ordinary", "address"),
# ("original", "account"),
# ("physical", "correct"),
# ("position", "concert"),
# ("possible", "canyon"),
# ("practice", "thought"),
# ("priority", "cabbage"),
# ("property", "puzzle"),
# ("purchase", "blanket"),
# ("question", "country"),
# ("remember", "buffalo"),
# ("resemble", "prevent"),
# ("resource", "elevator"),
# ("response", "cattle"),
# ("scissors", "mystery"),
# ("scorpion", "achieve"),
# ("security", "question"),
# ("sentence", "erosion"),
# ("shoulder", "kangaroo"),
# ("solution", "elephant"),
# ("squirrel", "chapter"),
# ("strategy", "chimney"),
# ("struggle", "volcano"),
# ("surprise", "approve"),
# ("surround", "pioneer"),
# ("together", "increase"),
# ("tomorrow", "bracket"),
# ("tortoise", "blanket"),
# ("transfer", "priority"),
# few combos with all words with length 8 + their longest possible checksum word
("acoustic", "decrease"),
("electric", "witness"),
("umbrella", "convince"),
# ("universe", "hamster"),
("universe", "hamster"),
])
def test_q1_24_8char_words(set_seed_words, is_q1, goto_home, pick_menu_item, press_select,
cap_story, cap_screen, word, cs_word):