- implement Confirm Homescreen for mercury according to Figma
- implementation as SwipeFlow also allows using it as `impl
LayoutMaybeTrace` return type for the UiFeatures
This commit introduces a trait defining high level UI building blocks.
The trait is common for all models.
trezorui_api module exposes these functions to MicroPython world.
`show_info` is implemented as a first function.
The new module is the place for type definitions of the interface
between rust and micropython world.
The goal is to replace `trezorui2` with `trezorui_api` without
duplicated definitions.
This commit adds a margin and footer description to the first page of
the paginated blobs to be confirmed on Mercury. It also extracts the
part of confirm_blob that deals with the first page to a separate
function in order to keep confirm_blob simple.
we need to propagate stacklevel so that the warning is emitted at the
usage line instead of deep in translations.py
i mean
we don't _need_ need to
it's just nicer
The regex enforces starting with an uppercase letter, which doesn't work for eCash and for xRhodium. An exception is added to handle this naming, as well as a comment to remind why the regex contains this special case.
This fixes `make defs_check` for eCash.
the error:
When built with PYOPT, Optiga will log its communication to the VCP. But
now that VCP config lives in coreapp and Optiga lives in kernel, there's
no way for Optiga to write to VCP, and the relevant calls simply don't
build.
We need a different method for logging inside the kernel.
Here we change all FOO=VALUE defines to be tuples ("FOO", "VALUE").
Also, VALUE is always the raw string you want to end up in the C file,
instead of attempting to shell-escape it while specifying.
By all rights scons _should_ be using shlex.quote() on the CPPDEFINES,
but it doesn't, so we hack it by specifying the define prefix as `-D'`
and suffix as `'`. That way the arguments in shell are '-escaped, and
we're (currently) not using ' in any argument value so this should work
fine.
At the same time, when passing the flags to cargo, we can shlex.quote
the whole thing and get the right strings passed all the way into
build.rs -- as long as no argument contains a comma, which is the split
character...