Skip to content

chore: update submodules + nanopb options for 7.14.0 proto chains#383

Open
BitHighlander wants to merge 1 commit intodevelopfrom
chore/7.14.0-transport-prep
Open

chore: update submodules + nanopb options for 7.14.0 proto chains#383
BitHighlander wants to merge 1 commit intodevelopfrom
chore/7.14.0-transport-prep

Conversation

@BitHighlander
Copy link
Collaborator

Motivation

The device-protocol and python-keepkey submodules on develop predate the 7.14.0 wire definitions (BIP-85, Solana, Tron, TON). Without updating these pointers and adding corresponding nanopb .options files, any branch that introduces these chains will fail the pb_callback_t forbidden check during proto compilation.

This PR is a prerequisite for all 7.14.0 feature PRs.

Changes

Submodule updates:

  • deps/device-protocol → upstream master (includes BIP-85 wire ID 120-121, Solana 750-755, Tron 1400-1403, TON 1500-1503)
  • deps/python-keepkey → upstream master (includes proto bindings + integration test scaffolding for all new chains)

Nanopb options (new files):

  • messages-solana.options — field size constraints for SolanaGetAddress, SolanaSignTx, SolanaSignMessage, SolanaMessageSignature
  • messages-tron.options — field size constraints for TronGetAddress, TronSignTx
  • messages-ton.options — field size constraints for TonGetAddress, TonSignTx
  • messages.options — add Bip85Mnemonic.mnemonic max_size:241

Transport CMakeLists:

  • Add Solana, Tron, TON to all 6 proto list variables (sources, options, c_sources, c_headers, sources_moved) and protoc compilation commands

CI fix:

  • Replace apt-get install clang-format-14 (36MB download, causes 3-min timeout) with pre-installed clang-format on ubuntu-latest runners

Zcash NU6:

  • Update transparent branch ID from Sapling (0x892f2085) to NU6 in signing.c

Risk assessment

Low risk. No firmware logic changes — only build infrastructure, submodule pointers, and proto field constraints. The nanopb options are strictly additive (new files for new protos). Existing chain compilation is unchanged.

Testing

  • ARM cross-compile passes
  • Emulator build passes (pb_callback_t check clean)
  • Python integration tests pass (new chain tests skip gracefully via requires_firmware("7.14.0"))
  • Unit tests pass

- Point device-protocol and python-keepkey submodules to upstream master
  (includes BIP-85, Solana, Tron, TON wire IDs and proto definitions)
- Add nanopb .options files for Solana, Tron, TON (field size constraints)
- Add Bip85Mnemonic.mnemonic max_size:241 to messages.options
- Update lib/transport/CMakeLists.txt with new proto sources, options,
  headers, and protoc compilation commands
- Fix CI: use pre-installed clang-format instead of apt-get install
  (eliminates 3-minute timeout on GitHub runners)
- Update Zcash transparent branch ID from Sapling to NU6
@BitHighlander BitHighlander force-pushed the chore/7.14.0-transport-prep branch from 0e3b23d to b6db24d Compare March 17, 2026 04:04
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.

1 participant