Skip to content

Remove dead white-label variants, add BTC-only build#370

Draft
BitHighlander wants to merge 4 commits intodevelopfrom
feature-ci-cleanup
Draft

Remove dead white-label variants, add BTC-only build#370
BitHighlander wants to merge 4 commits intodevelopfrom
feature-ci-cleanup

Conversation

@BitHighlander
Copy link
Collaborator

Summary

  • Remove unused white-label variant builds (salt, fox, kaspersky, blockpit, dash) — saves compile time on every build
  • Add KK_BITCOIN_ONLY cmake option that excludes altcoin sources and crypto from the firmware build
  • Add parallel CI job (build-arm-firmware-btconly) producing a BTC-only firmware artifact

Files changed

File Change
CMakeLists.txt Add KK_BITCOIN_ONLY option, conditional USE_* defines
lib/firmware/CMakeLists.txt Split base/altcoin sources, conditional ethereum_tokens
deps/crypto/CMakeLists.txt Split base/altcoin sources (ed25519-donna, nem, nano)
lib/firmware/fsm.c #if !BITCOIN_ONLY guards on altcoin headers and handlers
lib/firmware/fsm_msg_common.h Guard authenticator, token, and abort calls
lib/firmware/messagemap.def Guard altcoin MSG_IN and MSG_OUT entries
lib/firmware/transaction.c Guard thorchain include and call
lib/board/variant.c Remove variant_salt, map MODEL_SALT → variant_keepkey
tools/variant/CMakeLists.txt Remove salt/fox/kaspersky/blockpit/dash executables
tools/firmware/CMakeLists.txt Remove kkvariant.salt from link list
lib/variant/CMakeLists.txt Remove kkvariant.salt library
.github/workflows/ci.yml Add build-arm-firmware-btconly job
Deleted tools/variant/{salt,fox,kaspersky,blockpit,dash}.c, lib/variant/salt/, include/keepkey/variant/salt.h

Test plan

  • Full firmware compiles (build-arm-firmware)
  • BTC-only firmware compiles (build-arm-firmware-btconly)
  • Emulator builds
  • Unit tests pass
  • Python integration tests pass
  • Flash full firmware artifact to device and verify altcoin signing
  • Flash BTC-only firmware artifact to device and verify BTC-only operation

BitHighlander and others added 4 commits March 6, 2026 17:46
Remove QTUM, BNB, ZIL, GTO, IOST, CMT, MCO, and ODEM from tokens.def.

These tokens were listed as ERC-20 entries in the legacy coin table but
their contract addresses no longer exist in the generated uniswap_tokens
table (they migrated to their own L1 chains or were delisted). This
causes Coins.TableSanity unit test to fail because tokenByTicker()
finds them in coins[] but tokenByChainAddress() cannot locate them in
tokens[], returning UnknownToken.

The native chain entries for QTUM, BNB, etc. in coins.def are unaffected
(they have has_contract_address=false).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4-stage fail-fast pipeline: gate (lint, secrets, submodules) → build
(emulator + ARM cross-compile) → test (unit + Python integration) →
publish (manual DockerHub push). Downloadable firmware artifacts with
version-tagged naming. CircleCI config removed.
Remove unused variant builds (salt, fox, kaspersky, blockpit, dash) that
compiled on every build but are no longer shipped. Add KK_BITCOIN_ONLY
cmake option to produce a BTC-only firmware with altcoin sources and
crypto excluded. Add parallel CI job for BTC-only ARM cross-compilation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@BitHighlander BitHighlander marked this pull request as draft March 8, 2026 00:09
@BitHighlander
Copy link
Collaborator Author

Depends on ci migration first

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