Summary
KeepKeyProposalRepository.signAndSubmit() cannot complete PCZT signature insertion because the ZCash Android SDK does not yet expose a method to embed RedPallas spend-auth signatures back into a Pczt object.
Needed SDK method
Synchronizer.addSpendAuthSigsToPczt(pczt: Pczt, sigs: List<ByteArray>): Pczt
Each entry in sigs is a 64-byte RedPallas signature for the corresponding Orchard action's spend_auth_sig field.
Related: nActions not yet exposed
signAndSubmit() also cannot pass the correct nActions value to the device because the SDK does not yet expose the action count from a redacted Pczt. Currently hardcoded to 0.
Current state
insertSignaturesIntoPczt() throws UnsupportedOperationException. Device signing works up to collecting signatures from the KeepKey; the final PCZT assembly and broadcast step is blocked.
Resolution
Once the upstream ZCash Android SDK (electric-coin-co/zcash-android-wallet-sdk) exposes:
- A method to insert spend-auth signatures into a
Pczt
- A way to query action count from a redacted
Pczt
Replace the stubs in KeepKeyProposalRepository with real SDK calls.
Summary
KeepKeyProposalRepository.signAndSubmit()cannot complete PCZT signature insertion because the ZCash Android SDK does not yet expose a method to embed RedPallas spend-auth signatures back into aPcztobject.Needed SDK method
Each entry in
sigsis a 64-byte RedPallas signature for the corresponding Orchard action'sspend_auth_sigfield.Related: nActions not yet exposed
signAndSubmit()also cannot pass the correctnActionsvalue to the device because the SDK does not yet expose the action count from a redactedPczt. Currently hardcoded to 0.Current state
insertSignaturesIntoPczt()throwsUnsupportedOperationException. Device signing works up to collecting signatures from the KeepKey; the final PCZT assembly and broadcast step is blocked.Resolution
Once the upstream ZCash Android SDK (electric-coin-co/zcash-android-wallet-sdk) exposes:
PcztPcztReplace the stubs in
KeepKeyProposalRepositorywith real SDK calls.