trezor-firmware
trezor-firmware copied to clipboard
Zcash shielded transactions
Orchard shielded transactions for Trezor T.
work in progress . you can use this PR for tracking my activity
Links
ZFND grant documentation milestone M.1 report milestone M.2 report
Orchard addresses and keys
- [x] orchard addresses
- [x] unified addresses
- [x] viewing keys export
- [x] layouts
- [x] ZIP-32 support Connectivity:
- [x]
trezorlib.zcashmodule - [x]
trezorctl zcashcommands - [ ] Connect support Tests:
- [x] unit tests
- [x] tests on real device
- [x] reviewed
- [ ] typing
Orchard transactions
- [x] v5 transaction format
- [x] signing workflow
- [x] orchard inputs and outputs
- [x] ZIP-244 (txid and sighash) implementation
- [x] layouts
- [ ] graphically distinguish transparent and orchard outputs
- [x] mixed transactions (transparent + orchard) Connectivity:
- [x] python bridge to orchard crate (pyorchard) e.i. the prover is callable from python
- [x]
trezorlib.zcashmodule (raw version) - [ ]
trezorctl zcashcommands - [ ] Connect support Tests:
- [ ] unit tests
- [ ] tests on real device
- [ ] typing
- [ ] reviewed
Zcash crates
- [x]
librustzcashhttps://github.com/zcash/librustzcash/pull/450 - [x]
librustzcashhttps://github.com/zcash/librustzcash/pull/446 - [x]
pasta_curveshttps://github.com/zcash/pasta_curves/pull/4 - [x]
reddsahttps://github.com/ZcashFoundation/reddsa/pull/11 - [ ]
orchardhttps://github.com/zcash/orchard/pull/309 - [x]
orchardhttps://github.com/zcash/orchard/issues/297 - [ ]
orchardhttps://github.com/zcash/orchard/issues/287 - [x]
orchardhttps://github.com/zcash/orchard/pull/299
Firmware team
- [ ] reserve more memory for Zcash app
- [ ] integrate Sinsemilla table
- [x] ~check Rust allocator correctness~
- [ ] implementation review
Documentation
- [ ] implementation documentation (need to be updated)
- [x] M.1 report
- [x] M.2 report
- [ ] M.3 report
I request a first quick review to make sure that the style of my code is correct and that I use other modules correctly.
Please, focus on:
common/protob/messages-zcash.proto
core/src/apps/zcash/
core/embed/rust/
core/tests/
python/src/trezorlib
and don't care about diagnostic machinary like
core/embed/rust/src/zcash/diag.rs
and PanicInfo printing in
core/embed/rust/src/lib.rs
Also don't care about external crates.
And I accidentally merged some ethereum end vendor related commits. So ignore them too.
replacing this by #2472