Skip to content

Commit f0eb138

Browse files
committed
fix(cardano): stop trimming long messages
[no changelog]
1 parent 9852409 commit f0eb138

File tree

3 files changed

+48
-7
lines changed

3 files changed

+48
-7
lines changed

common/tests/fixtures/cardano/sign_message.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,21 @@
105105
"address": "d9553a4de9c7ad8532abdb1d0a7f425b8007d25c9f1edcf0b5f5c3ba",
106106
"pub_key": "67e3d14e1e0db2a6ff68832994451f63d3e92a4ee85c3681d72634ccfe889f2c"
107107
}
108+
},
109+
{
110+
"description": "Long payload",
111+
"parameters": {
112+
"signing_path": "m/1852'/1815'/4'/0/0",
113+
"network_id": 1,
114+
"protocol_magic": 764824073,
115+
"payload": "aaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff00011100011aaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbddd1bbbdddaafffaaafff000111000111bbbdddaaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff00011100011aaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbdddaaafffaaafff000111000111bbbddd1bbbdddaafffaaafff000111000111bbbdddee",
116+
"prefer_hex_display": true
117+
},
118+
"result": {
119+
"signature": "6d1e9bf2f704413b1a99340bb88f27a4a74f00fe7ed891b814a9a0167b6482b0b92982a5eb0be513fe5e432c4a79550d615222cf9ffcf70f42f8e600bf302c0f",
120+
"address": "d9553a4de9c7ad8532abdb1d0a7f425b8007d25c9f1edcf0b5f5c3ba",
121+
"pub_key": "67e3d14e1e0db2a6ff68832994451f63d3e92a4ee85c3681d72634ccfe889f2c"
122+
}
108123
}
109124
]
110125
}

core/src/apps/cardano/layout.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -329,8 +329,6 @@ async def confirm_message_payload(
329329
) -> None:
330330
props: list[PropertyType]
331331

332-
max_displayed_bytes = MAX_CHUNK_SIZE
333-
334332
if not payload:
335333
assert payload_size == 0
336334
props = _get_data_chunk_props(
@@ -343,15 +341,15 @@ async def confirm_message_payload(
343341
title=TR.cardano__message_text,
344342
first_chunk=payload,
345343
data_size=payload_size,
346-
max_displayed_size=max_displayed_bytes,
344+
max_displayed_size=None,
347345
decoder=lambda chunk: chunk.decode("ascii"),
348346
)
349347
else:
350348
props = _get_data_chunk_props(
351349
title=TR.cardano__message_hex,
352350
first_chunk=payload,
353351
data_size=payload_size,
354-
max_displayed_size=max_displayed_bytes,
352+
max_displayed_size=None,
355353
)
356354

357355
await confirm_properties(
@@ -366,10 +364,14 @@ def _get_data_chunk_props(
366364
title: str,
367365
first_chunk: bytes,
368366
data_size: int,
369-
max_displayed_size: int = _DEFAULT_MAX_DISPLAYED_CHUNK_SIZE,
367+
max_displayed_size: int | None = _DEFAULT_MAX_DISPLAYED_CHUNK_SIZE,
370368
decoder: Callable[[bytes], bytes | str] | None = None,
371369
) -> list[PropertyType]:
372-
displayed_bytes = first_chunk[:max_displayed_size]
370+
displayed_bytes = (
371+
first_chunk[:max_displayed_size]
372+
if max_displayed_size is not None
373+
else first_chunk
374+
)
373375
bytes_optional_plural = "byte" if data_size == 1 else "bytes"
374376
props: list[PropertyType] = [
375377
(
@@ -378,7 +380,7 @@ def _get_data_chunk_props(
378380
True,
379381
)
380382
]
381-
if data_size > max_displayed_size:
383+
if max_displayed_size is not None and data_size > max_displayed_size:
382384
props.append(("...", None, None))
383385

384386
return props

0 commit comments

Comments
 (0)