Skip to content

release: python-keepkey 7.14.0 — all chain support + CI + zoo#180

Merged
pastaghost merged 4 commits intomasterfrom
release/7.14.0
Mar 31, 2026
Merged

release: python-keepkey 7.14.0 — all chain support + CI + zoo#180
pastaghost merged 4 commits intomasterfrom
release/7.14.0

Conversation

@BitHighlander
Copy link
Copy Markdown
Contributor

@BitHighlander BitHighlander commented Mar 23, 2026

Summary

Test suite, CI pipeline, and protobuf definitions for firmware 7.14.0+ features: Solana, TRON, TON, Zcash Orchard, BIP-85, EVM blind-sign gate, and EVM clear-signing.

LOC Breakdown

5,727 lines across 33 files — 74% is not hand-written code:

Category Lines % What it is
Machine-generated (protoc) 1,495 26% *_pb2.py — protobuf compiler output for 6 new message types. Regenerated by build_pb.sh
Report generators 1,483 25% generate-test-report.py + generate-zoo-report.py — CI tooling that produces test-report.pdf with inline OLED screenshots
Test files 2,274 39% 14 test files, one per chain/feature. Each follows existing KeepKeyTest pattern
Test infrastructure 520 9% Screenshot capture in client.py, conftest.py plugin, common.py base class, CI pipeline
Metadata fixtures 320 5% signed_metadata.py — test fixture builder for EVM clear-signing

What a reviewer needs to read: Test files (2,274 lines) call protobuf messages and assert on responses. Infrastructure (520 lines) adds OLED screenshot capture to the DebugLink client. The pb2 files are protoc output and report generators are CI tooling — neither touches signing, keys, or device communication.

4 Commits

  1. Infrastructure — screenshot capture, report generator, CI pipeline
  2. Proto definitions — pb2 files, mapping, device-protocol pin
  3. Test suite — Solana, TRON, TON, BIP-85, blind-sign gate, BIP-39 validation
  4. EVM clear-signing + Zcash — metadata verification tests, Orchard tests, zoo report

Test plan

  • All existing tests still pass (no regressions)
  • New chain tests pass when firmware handlers are present
  • requires_message() gates skip tests cleanly on builds without new chains
  • Screenshot capture produces valid PNGs via DebugLink
  • generate-test-report.py produces PDF with inline OLED screenshots

@BitHighlander BitHighlander force-pushed the release/7.14.0 branch 7 times, most recently from 87134fb to 6c01bb0 Compare March 26, 2026 06:48
…pipeline

- client.py: OLED screenshot capture in callback_ButtonRequest via DebugLink
- debuglink.py: read_layout() for 2048-byte OLED buffer
- conftest.py: per-test screenshot directories for pytest
- common.py: KeepKeyTest base class with requires_firmware/requires_message
- generate-test-report.py: 1137-line PDF generator with inline OLED screenshots
- ci.yml: GitHub Actions pipeline (lint, build, test, report)
- build_pb.sh: updated proto compilation
… EVM metadata

Regenerated pb2 files from device-protocol release/7.14.0.
New message types: SolanaGetAddress, TronGetAddress, TonGetAddress,
ZcashSignPCZT, GetBip85Mnemonic, EthereumTxMetadata.
… BIP-39 validation

New test files per chain (getaddress + signtx). Updated ethereum tests
for blind-sign hard gate (E16 blocked, E17 allowed). BIP-39 per-word
validation test (C31). BIP-85 display-only flow tests (D1-D6).
…rator

- EVM clear-signing: metadata blob verification tests (V1-V7)
- Zcash Orchard: FVK derivation + PCZT signing tests (Z1-Z9)
- signed_metadata.py: metadata blob construction for test fixtures
- generate-zoo-report.py: visual test report with OLED screenshots
@pastaghost pastaghost merged commit 2c662d0 into master Mar 31, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants