1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-18 12:28:09 +00:00
Commit Graph

1081 Commits

Author SHA1 Message Date
Martin Milata
8b3ac659a0 style(core): mypy: disable implicit Optional for function arguments
https://www.python.org/dev/peps/pep-0484/#union-types
2021-04-01 11:12:30 +02:00
Martin Milata
f97af2af1b chore(core/ui): typing: no implicit Optional 2021-03-30 22:34:01 +02:00
Martin Milata
da72482c2f refactor(core/ui): get rid of confirm_wipe 2021-03-30 22:34:01 +02:00
Martin Milata
c0174ff217 refactor(core/ui): raise exception on dialog cancel by default 2021-03-30 22:34:01 +02:00
Martin Milata
2b6ea25712 refactor(core): convert rest of apps.bitcoin to layouts 2021-03-30 22:34:01 +02:00
Martin Milata
b1e38fe382 refactor(core): no implicit spaces in render_text 2021-03-30 22:34:01 +02:00
Martin Milata
2a5f5c1c20 refactor(core): convert parts of apps.monero to layouts 2021-03-30 22:34:01 +02:00
Martin Milata
6668921a4f refactor(core): convert apps.common.request_pin to layouts 2021-03-30 22:34:01 +02:00
Martin Milata
01900b8536 refactor(core): convert parts of apps.webauthn to layouts 2021-03-30 22:34:01 +02:00
Martin Milata
ffe6d65f72 refactor(core): convert parts of apps.management to layouts 2021-03-30 22:34:01 +02:00
Martin Milata
c09a142e2a refactor(core): convert apps.misc.* to layouts 2021-03-30 22:34:01 +02:00
Martin Milata
0b5d17bf49 refactor(core/ui): merge confirm_hexdata and show_pubkey 2021-03-30 22:34:01 +02:00
Martin Milata
6ded531f8f refactor(core): convert apps.common.sdcard to layouts 2021-03-30 22:34:01 +02:00
Martin Milata
035f114125 fix(core/ui): don't return CONFIRMED/CANCELLED from layouts 2021-03-30 22:34:01 +02:00
Rafael Korbas
a9b8b0e119 feat(core/cardano): chunked serialization of signed transaction 2021-03-26 11:15:19 +01:00
gabrielkerekes
3cb686d452 fix(core/cardano): make witnesses order deterministic 2021-03-26 11:15:19 +01:00
Andrew Kozlik
2836bfc64c fix(core): Improve error handling and range checking in modtrezorconfig. 2021-03-26 10:54:56 +01:00
Andrew Kozlik
3084d1196d feat(core): Support 50 digit PIN and wipe code. 2021-03-25 14:24:41 +01:00
Pavol Rusnak
da7214d82f
fix(common): update support.json to include Firo 2021-03-25 13:39:59 +01:00
Pavol Rusnak
4649b80b44
feat(core): allow secp256k1-zkp for bitcoin-only build
(but keep it disabled)
2021-03-18 15:42:52 +01:00
matejcik
cb7152542d feat: drop DebugLinkShowText functionality 2021-03-18 10:59:51 +01:00
Rafael Korbas
74ed5b7018 feat(core/cardano): Implement bech32 asset ids based on CIP-0014 2021-03-18 09:53:33 +01:00
Rafael Korbas
bd4512b53a fix(core/cardano): Allow stake pool registrations with zero margin 2021-03-18 09:35:08 +01:00
Andrew Kozlik
b10acbe153 feat(core): Allow decreasing output amount in RBF transactions. 2021-03-17 15:15:50 +01:00
Andrew Kozlik
5593862dc1 fix(core): Disable hold-to-confirm animation when animations are disabled. 2021-03-17 15:15:50 +01:00
Andrew Kozlik
6de20a7dcd chore(core/bitcoin): Add DecredApprover. 2021-03-17 12:16:08 +01:00
Andrew Kozlik
523b1051c5 chore(core/bitcoin): Add stricter script_type checks in sanitizers. 2021-03-17 12:16:08 +01:00
Andrew Kozlik
6e8eebfc9c chore(core/bitcoin): Separate Decred-specific scripts from Bitcoin scripts. 2021-03-17 12:16:08 +01:00
JoeGruff
e3ea32a986 multi: Add decred staking.
Add two new input and four output script types.

Decred ticket purchases consist of a stake submission, op returns, and
change addresses. Although change addresses are allowed by consensus,
they are no longer used in practice and so have been given the
restrictions of a null pubkey and no value. Stake scripts are almost
identical to p2pkh or p2sh except for an extra opcode in front. Inputs
are currently only used in the form of one input three outputs with the
first output, or stake submission, paying to a public key hash, or with
two inputs and five outputs with the stake submission paying to a
multisig script hash. The op returns are directed to the user in the
case of one and the voting service provider and user in the case of two.

One of the sstx commitment for a ticket must pay back to the trezor
wallet. This is checked and an error is thrown if we don't find the
expected public key hash.

Because this adds the ability to create new types of outputs once the
ticket votes, two new input script types are also needed. A successful
vote will lead to a stake generation script that must be spent, and an
unsuccessful vote will lead to a revocation script that must be spent.
If we allowed stake change scripts to have a valid pubkey, that too
would require another op code, but we disallow those for output.
2021-03-17 12:16:08 +01:00
Pavol Rusnak
6c11bc60d7
common/defs/fido: add namecheap 2021-03-15 17:22:12 +01:00
Martin Milata
ee2ec85983 fix(core): fix title shown for multisig address 2021-03-11 14:21:03 +01:00
Andrew Kozlik
850aa56691 docs(core): Add references to SLIPs in the code. 2021-03-09 20:01:59 +01:00
Andrew Kozlik
a8c500bffd feat(core): Ensure that WebAuthn runs on port 21326 by default for both production and debug emulator. 2021-03-09 16:13:21 +01:00
Roman Zeyde
7ce4e13bcf feat(core): add public_key to ECDHSessionKey 2021-03-08 15:59:00 +01:00
Roman Zeyde
b2877afa7f feat(common): add public_key to ECDHSessionKey 2021-03-08 15:59:00 +01:00
Pavol Rusnak
4b0f41d41e
fix(common): change msg_id of RebootToBootloader from 804 to 87 2021-03-03 12:07:00 +01:00
Ondrej Mikle
77e99078c3
chore(trezorlib): add generated message files 2021-03-03 12:07:00 +01:00
Ondrej Mikle
1579c62332
chore(legacy): reboot to bootloader protobuf generated messages 2021-03-03 12:06:59 +01:00
matejcik
ed0ac98970 fix(common/tools): strip "mainnet" from Ethereum network names 2021-03-01 12:05:54 +01:00
Pavol Rusnak
17fa6ab4ec chore(common): update chains+tokens 2021-03-01 12:05:54 +01:00
Rafael Korbas
ceea21ec1f feat(cardano): Format stake pool ids as bech32 instead of hex 2021-02-25 16:49:19 +01:00
Rafael Korbas
3197741795 fix(core/Cardano): account index validation in _should_hide_output() 2021-02-25 16:41:12 +01:00
Rafael Korbas
cf871ee754 fix(core/Cardano): do not show change output in byron-shelley transfers 2021-02-25 16:41:12 +01:00
Martin Milata
c28763c169 refactor(core): use reload_settings_from_storage on boot 2021-02-24 00:10:10 +01:00
Martin Milata
9b60cc0098 feat(core): restart loader from current position
On "hold to confirm" dialogs, when you hold your finger, lift it, and
quickly hold again, the progress bar jumps to the beginning. This commit
changes the behavior so the progress continues from its current position
of the reverse animation.
2021-02-24 00:10:10 +01:00
Martin Milata
06b9d1314d fix(core): do not autolock when already locked
Gets rid of unnecessary screen redraw.
2021-02-24 00:10:10 +01:00
Martin Milata
192d0dcf87 feat(core): hold homescreen to lock 2021-02-24 00:10:10 +01:00
Martin Milata
db2db8e6f3 feat(common): add hold_ms to DebugLinkDecision 2021-02-24 00:10:10 +01:00
Pavol Rusnak
b4daf2f3e3
chore(core): run make gen to regenerate fido2 icons
updated here - https://github.com/trezor/trezor-firmware/pull/1456
2021-02-16 11:20:21 +01:00
Buck Perley
682298d7bb
fix(core): add exceptions for unchained capital paths 2021-02-12 21:56:03 +01:00
gabrielkerekes
d4dcd7bff9 fix(core/cardano): allow staking accounts beyond 100' 2021-02-11 09:55:23 +01:00
Andrew Kozlik
e5741ac308 chore(core): Use BufferReader for CBOR decoding. 2021-02-10 23:20:56 +01:00
Andrew Kozlik
ac939c94aa fix(core/tezos): Implement strict length checking.
(cherry picked from commit e7f44ebee8)
2021-02-10 16:37:26 +01:00
matejcik
6fd355756c fix(core/stellar): review usages of write_bytes_unchecked
(cherry picked from commit 781e9f4db8)
2021-02-10 16:37:26 +01:00
matejcik
08edbca428 fix(core/eos): review usages of write_bytes_unchecked
(cherry picked from commit 5b5ed8cce1)
2021-02-10 16:37:26 +01:00
matejcik
2231fe6842 feat(core): make protobuf.dump_uvarint more reusable
(cherry picked from commit 6acc1cd6ab)
2021-02-10 16:37:26 +01:00
Andrew Kozlik
78a2ff16d4 fix(core): In apps.bitcoin ensure that get_address() fails for multisig if user's public key is not included.
(cherry picked from commit 77f5e90466)
2021-02-10 16:37:26 +01:00
Martin Milata
391602ae99 refactor(core): turn show_address, show_pubkey, show_xpub into layouts 2021-02-10 13:57:19 +01:00
Martin Milata
03699f5639 refactor(core): turn show_success, show_warning into layouts 2021-02-10 13:57:19 +01:00
Martin Milata
f38abf9d89 refactor(core): introduce layouts
Layouts can be used by the application code to interact with user using
small number of dialogs or other groups of UI components. Each layout is
identified by name and takes some parameters. Most layouts will have an
implementation for each hardware model, mechanism is provided to import
the correct version so that application code can be oblivious to the
model.

This commit introduces the layout concept and converts a couple of
dialogs to use it.
2021-02-10 13:57:19 +01:00
Martin Milata
18cb429610 feat(core): introduce Text.format_parametrized() 2021-02-10 13:57:19 +01:00
Martin Milata
f1382bf892 refactor(core): model-dependent UI component directories
They now live under trezor.ui.components.tt. Later
trezor.ui.components.t1 will be added and application code will be
rewritten to not use them directly in order to work on both TT and T1.
2021-02-10 13:57:19 +01:00
matejcik
73a28e12f2 fix(core): create protobuf messages correctly 2021-02-10 10:56:52 +01:00
matejcik
14037d0c31 chore: regenerate protobuf classes 2021-02-10 10:56:52 +01:00
matejcik
bf562cfd4b feat(core/misc): enable typing for misc app 2021-02-10 10:56:52 +01:00
matejcik
ccd241fe55 feat(core/cardano): enable typing for Cardano app 2021-02-10 10:56:52 +01:00
Pavol Rusnak
18b51b856b
common/fido: update icons for github, mojeid and slushpool (#1456) 2021-02-08 16:51:49 +01:00
matejcik
637ccadcb6 style(core): remove unused type:ignore comment after mypy upgrade 2021-02-05 10:44:09 +01:00
Rafael Korbas
e4c406822c Add multiasset sending and min validity to Cardano transactions 2021-01-27 18:26:40 +01:00
Andrew Kozlik
79fad70b05 fix: Improve wording when showing multisig XPUBS. 2021-01-26 15:09:37 +01:00
Rafael Korbas
44c7d23741 Cardano: map account paths to account numbers 2021-01-22 14:45:29 +01:00
Pavol Rusnak
7f0e939359 feat(core): implement amount_unit for AuthorizeCoinJoin and SignTx 2021-01-22 14:07:36 +01:00
Pavol Rusnak
345ef52949 feat(proto): add amount_unit to AuthorizeCoinJoin and SignTx 2021-01-22 14:07:36 +01:00
Pavol Rusnak
f3d5de15ef refactor(core): turn SECP256K1_ZKP into a firmware feature flag 2021-01-22 14:06:29 +01:00
Pavol Rusnak
e85ed74f8f core: implement GetAddress.ignore_xpub_magic 2021-01-21 23:46:29 +01:00
Pavol Rusnak
4ed714ba47 common/defs: add xpub_magic_multisig_segwit_{native,p2sh} fields to coins 2021-01-21 23:46:29 +01:00
Pavol Rusnak
6689b9c22f common/protob: add GetAddress.ignore_xpub_magic field 2021-01-21 23:46:29 +01:00
Rafael Korbas
3a7a8e4d77 Disable "at least one output" restriction for Cardano, warn instead 2021-01-20 16:00:30 +01:00
mcudev
b8ffcadf94
common/defs/fido: add gemini webauthn (#1416) 2021-01-19 14:15:19 +01:00
matejcik
ed628ac4ba feat(core): make usb endpoints registration nicer 2021-01-12 14:18:13 +01:00
matejcik
fc4e15fe77 feat(core): introduce and enforce limit on label length (fixes #1399) 2021-01-12 11:22:58 +01:00
matejcik
2d3a4d15fa fix(core/ui): render_text uses correct font and color with item_offset 2021-01-11 16:47:59 +01:00
matejcik
24195d7c3e fix(core/ui): use full line_width for content 2021-01-11 16:47:59 +01:00
matejcik
e4b113b4bb fix(core/monero): make sure to pass strings to rendering 2021-01-11 16:47:59 +01:00
matejcik
fd502f122f feat(core): implement pagination for sign/verify 2021-01-11 16:47:59 +01:00
matejcik
bbef9c650b refactor(core): improve render_text behavior
* use less memory due to copy-less rendering
* implement linebreaking on embedded \n
2021-01-11 16:47:59 +01:00
Martin Milata
fa2e672f98 chore(core): monero: drop extraneous async/await 2021-01-11 12:14:13 +01:00
Pavol Rusnak
5728f54b78 core: return root_fingerprint in PublicKey 2021-01-08 14:17:09 +01:00
Pavol Rusnak
92452d54e5 feat(core): implement GetPublicKey.ignore_xpub_magic behaviour 2021-01-08 14:17:09 +01:00
Pavol Rusnak
e660a518c6 fix(core): show xpub instead of pubkey in GetPublicKey dialog 2021-01-08 14:17:09 +01:00
Pavol Rusnak
edb1243f64 feat(proto): add descriptors related fields to GetPublicKey/PublicKey 2021-01-08 14:17:09 +01:00
Andrew Kozlik
a609eb5e90 docs(core): Add comment about "Invalid original TXID" message. 2020-12-17 16:33:33 +01:00
Andrew Kozlik
06ce14096c chore(core): Reject replacement transactions which involve negative
fees.
2020-12-17 16:33:33 +01:00
Andrew Kozlik
aeb021b159 chore(core): Improve naming of SLIP39's T9 mask lookup. 2020-12-15 13:41:42 +01:00
Pavol Rusnak
1187e4ddaf style(common): use new syntax for typing in autogenerated protobuf enums 2020-12-01 15:52:29 +01:00
Pavol Rusnak
1e8673bf5f style(core/apps): use new syntax for typing 2020-12-01 15:52:29 +01:00
Pavol Rusnak
a1dda836ec style(core/src): use new syntax for typing 2020-12-01 15:52:29 +01:00
Martin Milata
ee64b65b26 refactor(core): call super().__init__() in subclasses 2020-11-30 14:48:08 +01:00
Martin Milata
fa1566cb71 refactor(core): call super().__init__() in Component and Layout subclasses 2020-11-30 14:48:08 +01:00
Pavol Rusnak
952adc5961
style(core): use PEP515 Underscores in Numeric Literals 2020-11-23 14:30:16 +01:00
matejcik
faa57e29db build(core): include generated resources.py in repo 2020-11-20 18:55:35 +01:00
matejcik
58387a5f04 fix(common): drop Zilliqa token (fixes #1318) 2020-11-20 18:55:35 +01:00
matejcik
a89494f60c chore(core): regenerate network and tokens lists 2020-11-20 18:55:35 +01:00
matejcik
4628c774aa feat(core): re-allow unknown Ethereum networks, using Ethereum or Testnet paths (fixes #1335) 2020-11-20 18:55:35 +01:00
matejcik
7abe70e484 feat(core): improve ethereum tokens ui (fixes #800) 2020-11-20 18:55:35 +01:00
Rafael Korbas
b311bd4d4a Add displaying of TTL to cardano transaction, align url validation with Ledger 2020-11-20 15:58:50 +01:00
Rafael Korbas
b261f789f3 Add support for stakepool registration to Cardano 2020-11-20 15:58:50 +01:00
Martin Milata
93d45f1aba fix(core): increase minimum auto-lock delay to 1 minute 2020-11-20 13:57:51 +01:00
Andrew Kozlik
f421a213fd feat(core): Inform user about transaction finalization in Bitcoin replacement transactions. 2020-11-20 13:52:48 +01:00
Pavol Rusnak
c6e78e525a
fix: remove PIVX (#1359) 2020-11-20 12:12:42 +01:00
matejcik
e6a1bf840f fix(core): do not subclass range
micropython on real hw dislikes it for some reason

also it's completely unnecessary
2020-11-13 16:01:35 +01:00
Pavol Rusnak
50fdd183c2
ci: enable editorconfig checks, fix whitespace issues 2020-11-11 14:43:50 +01:00
matejcik
37d3bf56fa fix(core): make sure run-time settings are reset after wipe (fixes #1322) 2020-11-05 15:33:38 +01:00
matejcik
50e648636f doc(core): add references to schema specifications, add Purpose48 document 2020-11-05 14:30:11 +01:00
matejcik
665abe1e02 fix(core/bitcoin): validate path before asking to sign message (which could otherwise fail) 2020-11-05 14:30:11 +01:00
matejcik
f10084117b feat(core/bitcoin): do not show path warning when GetAddress is called silently (fixes #1206) 2020-11-05 14:30:11 +01:00
matejcik
5a97a5111b feat(core/ethereum): add SEP5 path schema as well as the compat schema 2020-11-05 14:30:11 +01:00
matejcik
a367426480 feat(core/bitcoin): use path schemas 2020-11-05 14:30:11 +01:00
matejcik
c0879f8625 feat(core/cardano): use path schemas 2020-11-05 14:30:11 +01:00
matejcik
f5c8138df6 feat(core): update most apps to use path schemas 2020-11-05 14:30:11 +01:00
matejcik
4ca8f7b0d6 style(core): use relative imports everywhere
except Monero, which has a rather complex structure and I don't want to
search&replace mess with it in case some of the things break memory
layout
2020-11-05 14:30:11 +01:00
matejcik
7fe5c804ff feat(core): implement BIP-32 path schemas 2020-11-05 14:30:11 +01:00
Andrew Kozlik
70975008cd chore (core): In apps.bitcoin skip confirmation of fee in PayJoin if the user is not increasing their contribution. 2020-10-23 15:07:15 +02:00
Andrew Kozlik
9e5d5bd5f9 feat: Add support for experimental field flag in protobuf. 2020-10-23 15:07:15 +02:00
Andrew Kozlik
b213a55428 chore(core): In apps.bitcoin move h_inputs back to bitcoin class. 2020-10-23 15:07:15 +02:00
Andrew Kozlik
4a0c5c371a feat(core): In apps.bitcoin implement replacement transaction flow. 2020-10-23 15:07:15 +02:00
Andrew Kozlik
bd3fe1d789 chore(core): In apps.bitcoin create a separate class for transaction information. 2020-10-23 15:07:15 +02:00
Andrew Kozlik
469c131678 chore(core): In apps.bitcoin add confirm_replacement and confirm_modify_fee layouts. 2020-10-23 15:07:15 +02:00
Andrew Kozlik
7c2d690e45 chore(core): In apps.bitcoin allow get_tx_digest() to be used for original transactions. 2020-10-23 15:07:15 +02:00
Andrew Kozlik
ad6a0bc2a2 chore(common): Add new request types TXORIGINPUT and TXORIGOUTPUT. 2020-10-23 15:07:15 +02:00
Andrew Kozlik
5fc491c597 chore(core): In apps.bitcoin move BIP143 hashing back to a separate class. 2020-10-23 15:07:15 +02:00
Andrew Kozlik
443e0c101e chore(common): Add orig_hash and orig_index fields to TxInput and TxOutput. 2020-10-23 15:07:15 +02:00
Andrew Kozlik
9a594f4784 fix(core): Fix CoinJoin anonymity gain check in bitcoin approver. 2020-10-16 19:16:37 +02:00
Martin Milata
830592f2d9 feat(core): add experimental_features setting
The setting is off by default. When it is enabled protobuf messages
marked UNSTABLE are rejected after decoding.
2020-10-16 13:53:31 +02:00
Martin Milata
0376670404 feat(common): expose 'unstable' option in generated code 2020-10-16 13:53:31 +02:00
Martin Milata
314cd260eb feat(common): add experimental_features setting 2020-10-16 13:53:31 +02:00
Pavol Rusnak
d8534b5ee6
perf(core/extmod): replace HMAC Python implementation with C
We keep Python implementation of HMAC for Monero in
core/src/apps/monero/xmr/crypto/__init__.py
2020-10-12 16:33:13 +02:00
Andrew Kozlik
d90c3af6ea docs(core): Fix typos in slip39.py. 2020-10-11 00:31:24 +02:00
Martin Milata
542f32d3b1 feat(core): add auto_lock_delay and display_rotation to Features 2020-10-02 11:06:16 +02:00
Martin Milata
b2c4bbdaa2 feat(common): add auto_lock_delay and display_rotation to Features 2020-10-02 11:06:16 +02:00
matejcik
e4785d47e0 style: apply black 20.8b1 2020-09-29 11:30:40 +02:00
Rafael Korbas
2173ad97bc Refactor t<page number> to page<page_number> in cardano get_address call 2020-09-29 08:55:28 +02:00
Rafael Korbas
66dbdc2462 Enforce network id/protocol magic consistency for cardano show address 2020-09-29 08:55:28 +02:00
Juraj Muravsky
638977db7d Swap path with address type on screen in cardano get address 2020-09-29 08:55:28 +02:00
matejcik
0eed360037 chore: make tx type names shorter
as suggested by @andrewkozlik:
TxAckInputType -> TxInput
TxAckOutputType -> TxOutput
TxAckPrevTxType -> PrevTx
TxAckPrevInputType -> PrevInput
TxAckPrevOutputType -> PrevOutput
2020-09-23 16:00:10 +02:00
matejcik
244b264b47 chore(core): fix typing and kwargs usage 2020-09-23 16:00:10 +02:00
matejcik
ef4022fbf5 auto: regenerate protobuf classes 2020-09-23 16:00:10 +02:00
matejcik
37025e2a84 feat(core): use specialized protobufs in apps.bitcoin, enable typing 2020-09-23 16:00:10 +02:00
matejcik
b0a2297b14 feat(core): convert protobuf decoding errors to DataErrors 2020-09-23 16:00:10 +02:00
matejcik
6ba08526e1 fix(core): fix type annotations on CoinInfo 2020-09-23 16:00:10 +02:00