1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-07-23 23:18:16 +00:00
Commit Graph

1452 Commits

Author SHA1 Message Date
Martin Milata
2a40d91790 refactor(core): convert modtrezorio.ble to rust
[no changelog]
2025-04-15 13:08:37 +02:00
Roman Zeyde
c90b30fbf7 chore(core): intern Monero-related QSTRs
[no changelog]
2025-04-14 22:39:24 +03:00
Roman Zeyde
07ad01220c perf(core): remove imports from hot path
[no changelog]
2025-04-10 14:19:34 +03:00
tychovrahe
4adf6d087d feat(core): add BLE unpair command & message
[no changelog]
2025-04-03 16:17:12 +02:00
Roman Zeyde
9769109229 perf(core): add __init__.py to apps.management module
Otherwise, its name is not interned by `all_modules.py.mako`.

[no changelog]
2025-04-03 12:58:43 +03:00
Roman Zeyde
ad73e41080 feat(core): support USB/BLE sessions
All interfaces are sharing a single 8kB buffer.
It is reallocated once per session and is acquired by the first active session.
Other concurrent sessions will respond with an "Another session in progress" error.

[no changelog]
2025-03-31 13:20:53 +03:00
tychovrahe
aa682bcc6e fix(core): generate coin support for discovery kits
[no changelog]
2025-03-27 15:46:46 +01:00
Roman Zeyde
aecaf306f3 fix(core): don't handle nostr-related messages in BTC-only firmware
[no changelog]
2025-03-27 12:30:02 +02:00
Roman Zeyde
3a24945de9 fix(core): allow firmware upgrade even if language change failed 2025-03-26 13:12:38 +02:00
Roman Zeyde
8b4936926c fix(core): preallocate storage.debug.reset_internal_entropy
It should allow GC to cleanup `int_entropy`, which can be
allocated in random heap position, causing fragmentation.

[no changelog]
2025-03-25 12:05:52 +02:00
obrusvit
29d69db300 Merge branch 'release/25.03' into obrusvit/merge-release-25.03 2025-03-10 11:17:26 +01:00
Roman Zeyde
2400fcb95d fix(core): scope Cardano confirmation to allow GC
Otherwise, we may run out of heap due to recursion.

[no changelog]
2025-03-09 21:48:30 +02:00
Ioan Bizău
d0681212b0 fix(core): use BIP-340 to sign Nostr events
[no changelog]
2025-02-28 14:15:45 +01:00
Ioan Bizău
50879cd4da chore(core/nostr): remove Nostr from production build
[no changelog]
2025-02-28 14:15:45 +01:00
Ioan Bizău
aabd4ee9b7 feat(core/ui): add basic confirmation for Nostr signing
[no changelog]
2025-02-28 14:15:45 +01:00
Ioan Bizău
073038771e feat(core): introduce Nostr
[no changelog]
2025-02-28 14:15:45 +01:00
Roman Zeyde
0b5dbcae1b feat(core): confirm multiple Solana Deactivate/Withdraw instructions
[no changelog]

(cherry picked from commit 1954c7cbc2)
2025-02-28 12:56:10 +01:00
Roman Zeyde
1954c7cbc2 feat(core): confirm multiple Solana Deactivate/Withdraw instructions
[no changelog]
2025-02-28 13:51:37 +02:00
Roman Zeyde
8568378a8a fix(core): confirm only visible Solana staking instructions
[no changelog]

(cherry picked from commit ee1cc4ae81)
2025-02-26 20:47:18 +01:00
Roman Zeyde
ee1cc4ae81 fix(core): confirm only visible Solana staking instructions
[no changelog]
2025-02-26 15:25:31 +02:00
obrusvit
331f71dc91 chore(common): set definitions timestamp 2025-02-26 01:24:30 +01:00
Ioan Bizău
64b9084b6c feat(core/ui): ability to cancel recovery on word count selector 2025-02-25 20:30:39 +01:00
Roman Zeyde
1857612a37 feat(core): add Solana staking layouts 2025-02-25 11:55:03 +01:00
Roman Zeyde
d33244912b refactor(core): separate base and priority Solana fees
Move fee calculation into `Transaction` class.

Also, replace floating-point division by integer division in fee calculation.

[no changelog]
2025-02-25 11:55:03 +01:00
matejcik
87b7eccb6a fix(core): do not use local import for RecoveryAborted
This side-steps a double-import problem that is triggered when we
perform an unimport in a particularly unfortunate order. (don't ask)

The root cause of the problem still exists: we can get into a situation
where a live recovery_homescreen is running from an unimported module,
meaning that any new import of anything from the recovery_device
namespace will _also_ be a double-import. We don't have a fix for that
situation yet, so instead we avoid this particular local import, which
would cause homescreen_dialog to have its own copy of the `recover`
module.
2025-02-20 16:09:14 +01:00
obrusvit
c69d2c9aff Merge branch 'release/25.02' into obrusvit/merge-release-25.02 2025-02-13 11:42:08 +01:00
Roman Zeyde
061e71213e test(core): don't fetch full DebugLinkState by default
In case the main workflow is restarting after a `DebugLinkDecision`,
sending the response of `DebugLinkGetState` may get interrupted.

We are making the state fetching explicit, in order to avoid the
"restart" race condition (as described in #4401).

Following the above change, text-based layout recording is removed.

[no changelog]
2025-02-07 11:21:44 +01:00
obrusvit
cf5b89f90a refactor(core): get rid of font IDs in micropython
- application layer should not deal with fonts at all
- distinction between MONO and others is preserved by bool argument in
`should_show_more` interpreted as `is_data`

[no changelog]
2025-02-06 13:32:29 +01:00
tychovrahe
566f82ccd8 refactor(core): make homescreen max size model dependent
[no changelog]
2025-02-06 12:40:23 +01:00
obrusvit
fa9e5338c3 chore(common): set definition timestamps
[no changelog]
2025-01-29 11:55:35 +01:00
tomasklim
78768950fd chore(core): use label for evm networks generation 2025-01-28 14:17:46 +01:00
Ioan Bizău
5a13b4560d fix(core): get rid of colon in some TS5 descriptions
[no changelog]
2025-01-23 12:46:54 +01:00
Ioan Bizău
e99beaf486 refactor(core): merge confirm_blob and confirm_value
[no changelog]
2025-01-23 12:46:54 +01:00
obrusvit
00740b560c refactor(core): consistent naming of UI layouts
- follow-up on 862c987779
- layout_bolt stays the same
- layout_samson -> layout_caesar
- layout_quicksilver -> layout_delizia
- use super for importing rust modules in layout code

[no changelog]
2025-01-20 12:29:24 +01:00
tychovrahe
e4f4985584 refactor(core): split polling can_read and reading from USB
[no changelog]
2025-01-13 17:42:30 +01:00
obrusvit
862c987779 refactor(core): consistent naming of UI layouts
- UI layouts name changes:
  - model_tt -> layout_bolt
  - model_tr -> layout_samson
  - model_mercury -> layout_quicksilver
- rust features `model_xyz` freed for different use, now it's
`layout_xyz`
- input_flow function names are based on UI layout and not internal
model name (i.e. quicksilver instead of t3t1)
- directory names and commentary changed accordingly

[no changelog]
2025-01-09 22:57:14 +01:00
Ondřej Vejpustek
1a62cc8a59 fix(core): fix serialization of signatures and witnesses in multisig
[no changelog]
2025-01-02 15:07:25 +01:00
Andrew Kozlik
01a1f479a0 feat(core): Implement entropy check workflow in ResetDevice. 2025-01-02 13:44:36 +01:00
obrusvit
0e1696b3ed chore(core): cleanup warnings and clippy errors
[no changelog]
2024-12-19 00:09:20 +01:00
obrusvit
dd9ac038d0 refactor(core): port functions to FirmwareUI
- keyboards
- standalone functions
  - disable_animations
  - check_homescreen_format
- confirm_action
- selectors
- confirm_firmware_update
- show_homescreen/lockscreen
- confirm_homescreen
- confirm_homescreen of mercury changed according to Figma
- set_brightness
- show_wait_text
- show_progress
- request_number
- show_checklist
- show_mismatch
- confirm_reset
- tutorial
- confirm_coinjoin
- confirm_modify_output/fee
- show_group_share_success
- show_remaining_shares
- show_success/warning/error/danger
- show_simple
- continue_recovery
  - confirm_recovery of model_t and model_r merged with
flow_continue_recovery of mercury into a continue_recovery_homepage
trait function, parameters renamed to be more descriptive
- show_share_words moved and refactored
  - model_t version was moved from using plain Paragraph to a dedicated
component `ShareWords` so that it's consistent with other models. This
allowed to move formatting to Rust and allowed the trait function to
have `words` parameter of type `Vec<TString, 33>`
  - model_r ShareWords::render slightly refactored to be consistent with
the new model_t version
  - mercury uses a unique version. The reason is that mercury SwipeFlow
contains also the initial screen with instructions and prompt screen at
the end.
- confirm_with_info
- show_info_with_cancel
- confirm_blob
- confirm_value
- confirm_properties
- confirm_more
- confirm_address
- prompt_backub
- confirm_emphasized
- show_address_details
- confirm_summary
- TR removed:
  - confirm_output_address and confirm_output_amount replaced with
confirm_blob. UI diff is minimal.
  - confirm_joint_total, replaced a TR-specific function with a generic
`confirm_properties` with no UI changes
- confirm_multiple_pages_texts
  - the function is TR specific and is used only in confirm_set_new_pin,
it would be better to use something different
- remaining mercury flows with no counterpart
  - confirm_blob_intro
  - flow_confirm_set_new_pin
  - flow_confirm_output
  - flow_get_address

[no changelog]
2024-12-19 00:09:20 +01:00
obrusvit
091a0e8550 feat(core): introduce trezorui_api
- the new module is the place for type definitions of the interface
between rust and micropython world.
- the new module will replace `trezorui2` with `trezorui_api`

[no changelog]
2024-12-19 00:09:20 +01:00
Lukas Bielesch
6de0e5de0f chore(core): change display orientation labels [no changelog] 2024-12-09 15:03:57 +01:00
M1nd3r
01cf58f2a1 docs(core): add and modify docs to context and cache
[no changelog]
2024-12-02 12:39:15 +01:00
M1nd3r
b1f07fec4f chore(core): update core to reflect cache and context refactor
[no changelog]
2024-12-02 12:39:15 +01:00
Ondřej Vejpustek
ae32a23002 fix(core): disallow per-node paths in change outputs 2024-12-02 12:21:24 +01:00
Ondřej Vejpustek
45a029edcc fix(core): disallow per-node paths in getaddress 2024-12-02 12:21:24 +01:00
Ondřej Vejpustek
adc7cef49c feat(core): display sortedmulti 2024-12-02 12:21:24 +01:00
Ondřej Vejpustek
4dce3d0099 feat(core):: support sortedmulti 2024-12-02 12:21:24 +01:00
Ondřej Vejpustek
0a9c4ba4ec feat(core)): forbid multisig to singlesig change outputs 2024-12-02 12:21:24 +01:00
Ondřej Vejpustek
53b5d62623 fix(core): make sorting of pubkeys fully deterministic 2024-12-02 12:21:24 +01:00