1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-02-12 07:32:48 +00:00
Commit Graph

98 Commits

Author SHA1 Message Date
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
Andrew Kozlik
850aa56691 docs(core): Add references to SLIPs in the code. 2021-03-09 20:01:59 +01:00
Buck Perley
682298d7bb
fix(core): add exceptions for unchained capital paths 2021-02-12 21:56:03 +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
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
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
Andrew Kozlik
79fad70b05 fix: Improve wording when showing multisig XPUBS. 2021-01-26 15:09:37 +01:00
Pavol Rusnak
7f0e939359 feat(core): implement amount_unit for AuthorizeCoinJoin and SignTx 2021-01-22 14:07:36 +01:00
Pavol Rusnak
e85ed74f8f core: implement GetAddress.ignore_xpub_magic 2021-01-21 23:46:29 +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
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
Pavol Rusnak
1e8673bf5f style(core/apps): 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
Pavol Rusnak
952adc5961
style(core): use PEP515 Underscores in Numeric Literals 2020-11-23 14:30:16 +01:00
Andrew Kozlik
f421a213fd feat(core): Inform user about transaction finalization in Bitcoin replacement transactions. 2020-11-20 13:52:48 +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
a367426480 feat(core/bitcoin): use 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
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
5fc491c597 chore(core): In apps.bitcoin move BIP143 hashing back to a separate class. 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
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
matejcik
e4785d47e0 style: apply black 20.8b1 2020-09-29 11:30:40 +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
37025e2a84 feat(core): use specialized protobufs in apps.bitcoin, enable typing 2020-09-23 16:00:10 +02:00
Martin Milata
cff4955f93 core: implement SafetyChecks.PromptTemporarily
Also reword safety checks confirmation dialogs.
2020-09-18 09:02:40 +02:00
Andrew Kozlik
295710c37d core/bitcoin: Check ownership proofs using the provided commitment data. 2020-09-08 19:36:10 +02:00
Andrew Kozlik
dad2852db9 core/bitcoin: Stream prev_tx after confirmation. 2020-09-04 14:36:39 +02:00
Tomas Susanka
ebc99435ab Revert "core: remove ownership messages from the public api for now"
This reverts commit 0d5f00668f.
2020-09-03 14:56:27 +02:00
Tomas Susanka
0d5f00668f
core: remove ownership messages from the public api for now 2020-09-01 15:56:57 +02:00
Andrew Kozlik
f2d669ecdc core/bitcoin: Use dynamic dispatch for confirmation dialogs in sign_tx. 2020-08-21 21:30:15 +02:00
Andrew Kozlik
02da5b7593 core/bitcoin: Show warning if nLockTime is set but ineffective due to all nSequence values being 0xffffffff. 2020-08-21 21:30:15 +02:00
Pavol Rusnak
0620911e46 core: allow spending coins from Bitcoin paths if the coin ...
has implemented strong replay protection via SIGHASH_FORKID
2020-08-21 11:49:03 +02:00
Martin Milata
3f21e8f400 core: display coin name when signing message
Also when verifying message.
2020-08-18 13:45:49 +02:00
Martin Milata
927ee0812b core: add hard limit for transaction fees
The hard limit is set to 10*fee_warning_threshold. The limit is not
enforced when `safety_checks` is set to "Prompt".
2020-08-17 16:12:33 +02:00
Tomas Susanka
c9dc38c9f3 core: allow 49/x not 49/x' for Casa 2020-08-17 08:54:08 +02:00
matejcik
cd86f9f477 core/bitcoin: make change check more robust against short paths 2020-08-04 17:32:44 +02:00
Andrew Kozlik
07d9b780a6 core/bitcoin: Change CoinJoin round ID length to 32 bytes and remove rate limiting. 2020-08-04 17:32:44 +02:00
Andrew Kozlik
377bff68f4 core/bitcoin: Implement DoPreauthorized message. 2020-08-04 17:32:44 +02:00