Skip to content

feat: add Zcash Orchard protocol + v5/NU6 test suite - #4

Closed
BitHighlander wants to merge 2 commits into
masterfrom
feature-zcash
Closed

feat: add Zcash Orchard protocol + v5/NU6 test suite#4
BitHighlander wants to merge 2 commits into
masterfrom
feature-zcash

Conversation

@BitHighlander

Copy link
Copy Markdown
Owner

Summary

  • Add messages-zcash.proto with Orchard PCZT protocol (6 message types)
  • Update build_pb.sh to include messages-zcash in protoc build
  • Regenerate messages_pb2.py and generate messages_zcash_pb2.py (protoc 3.5.1 via Docker)
  • Add zcash_get_orchard_fvk() and zcash_sign_pczt() client methods
  • Port v5/NU6 test scripts from markrypt0 firmware integration work

Test scripts

  • test_zcash_v5_complete.py: v5 signing with script_pubkey (ZIP-244 critical fix)
  • test_zcash_nu6.py: NU6 integration test via emulator
  • test_nu6_final.py: v5 + NU6 auto-broadcast test
  • test_zcash_complete_nownodes.py: full workflow with NOWNodes API
  • verify_zip244.py: pure Python ZIP-244 sighash reference
  • zcash_rpc.py: zcashd node RPC client

Test plan

  • docker_build_pb.sh completes without errors
  • messages_zcash_pb2.py imports cleanly
  • client.zcash_get_orchard_fvk() sends ZcashGetOrchardFVK message
  • client.zcash_sign_pczt() handles ZcashPCZTActionAck streaming
  • Existing transparent zcash tests still pass
BitHighlander and others added 2 commits March 6, 2026 15:25
- Generate messages_solana_pb2.py via docker_build_pb.sh (protoc 3.5.1)
- Regenerate messages_pb2.py with Solana MessageType entries (750-755)
- Add solana_get_address, solana_sign_tx, solana_sign_message to client
- Add Solana mapping in mapping.py
- Point device-protocol submodule at feature-solana (messages-solana.proto)
- Add messages-solana to build_pb.sh proto generation list

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Protocol:
- Add messages-zcash.proto (6 message types: SignPCZT, PCZTAction,
  PCZTActionAck, SignedPCZT, GetOrchardFVK, OrchardFVK)
- Update messages.proto with Zcash message type enums (1300-1305)
- Regenerate pb2 files via Docker (protoc 3.5.1)
- Update build_pb.sh to include messages-zcash

Client:
- Add zcash_get_orchard_fvk() for Orchard Full Viewing Key derivation
- Add zcash_sign_pczt() for Orchard spend authorization with
  streaming action protocol (ZcashPCZTActionAck flow control)

Tests (from markrypt0 firmware integration work):
- test_zcash_v5_complete: v5 signing with script_pubkey (ZIP-244)
- test_zcash_nu6: NU6 integration test via emulator
- test_nu6_final: v5 + NU6 broadcast test with auto UTXO lookup
- test_zcash_complete_nownodes: full workflow with NOWNodes API
- verify_zip244: pure Python ZIP-244 sighash reference impl
- zcash_rpc: zcashd node RPC client utility
@BitHighlander
BitHighlander changed the base branch from develop to master March 23, 2026 20:14
@BitHighlander

Copy link
Copy Markdown
Owner Author

Superseded by combined release PR #13 which includes all 7.14.0 content.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant