UX story fix; improve warning tests
This commit is contained in:
parent
d4c4cc1b69
commit
bab58af710
@ -1549,9 +1549,9 @@ class psbtObject(psbtProxy):
|
||||
if (num_op_return > 1) or num_op_return_size:
|
||||
mm = ""
|
||||
if num_op_return > 1:
|
||||
mm += " Multiple OP_RETURN outputs: %d" % num_op_return
|
||||
mm += "\nMultiple OP_RETURN outputs: %d" % num_op_return
|
||||
if num_op_return_size:
|
||||
mm += " OP_RETURN size > 80 bytes."
|
||||
mm += "\nOP_RETURN > 80 bytes"
|
||||
self.warnings.append(
|
||||
("OP_RETURN",
|
||||
"TX may not be relayed by some nodes.%s" % mm))
|
||||
|
||||
@ -20,15 +20,15 @@ WORDLISTS = {
|
||||
}
|
||||
|
||||
SEEDVAULT_TEST_DATA = [
|
||||
("47649253", "344f9dc08e88b8a46d4b8f46c4e6bb6c",
|
||||
"crowd language ice brown merit fall release impose egg cheese put suit"),
|
||||
("CC7BB706", "88f53ed897cc371ffe4b715c267206f3286ed2f655ba9d68",
|
||||
"material prepare renew convince sell morning weird hotel found crime like town manage harvest sun resemble output dolphin"),
|
||||
("AC39935C", "956f484cc2136178fd1ad45faeb54972c829f65aad0d74eb2541b11984655893",
|
||||
"nice kid basket loud current round virtual fold garden interest false tortoise little will height payment insane float expire giraffe obscure crawl girl glare"),
|
||||
('939B32C4',
|
||||
["47649253", "344f9dc08e88b8a46d4b8f46c4e6bb6c",
|
||||
"crowd language ice brown merit fall release impose egg cheese put suit"],
|
||||
["CC7BB706", "88f53ed897cc371ffe4b715c267206f3286ed2f655ba9d68",
|
||||
"material prepare renew convince sell morning weird hotel found crime like town manage harvest sun resemble output dolphin"],
|
||||
["AC39935C", "956f484cc2136178fd1ad45faeb54972c829f65aad0d74eb2541b11984655893",
|
||||
"nice kid basket loud current round virtual fold garden interest false tortoise little will height payment insane float expire giraffe obscure crawl girl glare"],
|
||||
['939B32C4',
|
||||
'017caa3142d48791f837b42fcd7a98662f9fb4101a15ae87cdbc1fecc96f33c11ffcefd8121daaba0625c918a335a0712b8c35c2da60e6fc6eef78b7028f4be02a',
|
||||
None), # BIP-85 -> BIP-32 -> #23
|
||||
None], # BIP-85 -> BIP-32 -> #23
|
||||
]
|
||||
|
||||
@pytest.fixture
|
||||
|
||||
@ -1790,11 +1790,14 @@ def test_op_return_signing(op_return_data, dev, fake_txn, bitcoind_d_sim_watch,
|
||||
assert title == "OK TO SEND?"
|
||||
# in older implementations, one would see a warning for OP_RETURN --> not now
|
||||
if len(op_return_data) > 80:
|
||||
assert "warning" in story
|
||||
assert "(1 warning below)" in story # looking for warning at the top
|
||||
assert "OP_RETURN > 80 bytes" in story
|
||||
else:
|
||||
assert "warning" not in story
|
||||
|
||||
assert "OP_RETURN" in story
|
||||
assert "Multiple OP_RETURN outputs:" not in story # always just one - core restriction
|
||||
|
||||
try:
|
||||
assert len(op_return_data) <= 200
|
||||
expect = op_return_data.decode("ascii")
|
||||
@ -2180,6 +2183,7 @@ def test_send2taproot_addresss(fake_txn , start_sign, end_sign, cap_story, use_t
|
||||
title, story = cap_story()
|
||||
assert title == "OK TO SEND?"
|
||||
# we do not understand change in taproot (taproot not supported)
|
||||
assert "warning" not in story # no warning for taproot, just not change
|
||||
assert "Consolidating" not in story
|
||||
assert "Change back" not in story
|
||||
# but we should show address
|
||||
@ -2195,13 +2199,18 @@ def test_sign_taproot_input(fake_txn, start_sign, end_sign, cap_story):
|
||||
assert title == "Failure"
|
||||
assert "Install EDGE firmware" in story
|
||||
|
||||
def test_send2unknown_script(fake_txn , start_sign, end_sign, cap_story, use_testnet):
|
||||
@pytest.mark.parametrize("num_unknown", [1,3])
|
||||
def test_send2unknown_script(fake_txn , start_sign, end_sign, cap_story, use_testnet, num_unknown):
|
||||
use_testnet()
|
||||
psbt = fake_txn(2, 2, segwit_in=True, change_outputs=[0], outstyles=["p2tr", "unknown"])
|
||||
unknowns = ["unknown"] * num_unknown
|
||||
num_out = 2 if num_unknown == 1 else 4
|
||||
psbt = fake_txn(2, num_out, segwit_in=True, change_outputs=[0], outstyles=["p2tr"]+unknowns)
|
||||
start_sign(psbt)
|
||||
title, story = cap_story()
|
||||
assert title == "OK TO SEND?"
|
||||
# we do not understand change in taproot (taproot not supported)
|
||||
assert "(1 warning below)" in story # unknown script
|
||||
assert ("Sending to %d not well understood script(s)" % num_unknown) in story
|
||||
assert "Consolidating" not in story
|
||||
assert "Change back" not in story
|
||||
assert "to script" in story
|
||||
@ -3028,7 +3037,7 @@ def test_txout_explorer(chain, data, fake_txn, start_sign, settings_set, txout_e
|
||||
@pytest.mark.parametrize("finalize", [True, False])
|
||||
@pytest.mark.parametrize("data", [
|
||||
[(1, b"Coinkite"), (0, b"Mk1 Mk2 Mk3 Mk4 Q"), (100, b"binarywatch.org"), (100, b"a" * 75)],
|
||||
[(0, b"a" * 300), (10, b"x" * 1000)]
|
||||
[(0, b"a" * 300), (10, b"x" * 1000), (0, b"anchor output")],
|
||||
])
|
||||
def test_txout_explorer_op_return(finalize, data, fake_txn, start_sign, cap_story, is_q1,
|
||||
need_keypress, press_cancel, press_select, end_sign):
|
||||
@ -3037,7 +3046,17 @@ def test_txout_explorer_op_return(finalize, data, fake_txn, start_sign, cap_stor
|
||||
time.sleep(.1)
|
||||
title, story = cap_story()
|
||||
assert title == 'OK TO SEND?'
|
||||
assert "warning" in story
|
||||
assert "(1 warning below)" in story
|
||||
if len(data) > 1:
|
||||
assert ("Multiple OP_RETURN outputs: %d" % len(data)) in story
|
||||
else:
|
||||
assert "Multiple OP_RETURN outputs" not in story
|
||||
|
||||
if sum(int(len(x[1]) > 80) for x in data):
|
||||
assert "OP_RETURN > 80 bytes" in story
|
||||
else:
|
||||
assert "OP_RETURN > 80 bytes" not in story
|
||||
|
||||
assert "Press (2) to explore txn" in story
|
||||
need_keypress("2")
|
||||
time.sleep(.1)
|
||||
|
||||
@ -327,7 +327,7 @@ def test_tx_seedvault(data, rx_start, tx_start, cap_menu, enter_complex, pick_me
|
||||
else:
|
||||
stored_secret = entropy_bytes
|
||||
|
||||
pkg = (xfp, stored_secret.hex(), f"[{xfp}]", "from testing")
|
||||
pkg = [xfp, stored_secret.hex(), f"[{xfp}]", "from testing"]
|
||||
|
||||
settings_set("seedvault", True)
|
||||
settings_set("seeds", [pkg])
|
||||
|
||||
Loading…
Reference in New Issue
Block a user