Skip to main content

sprout_joinsplit_key_proof_and_ciphertexts

Function sprout_joinsplit_key_proof_and_ciphertexts 

Source
pub fn sprout_joinsplit_key_proof_and_ciphertexts(
    joinsplit: &JsDescription,
) -> ([u8; 32], Vec<u8>, [[u8; 601]; 2])
Expand description

Returns the ephemeralKey, proof, and encCiphertexts of a Sprout JoinSplit description.

JsDescription exposes accessors for its other fields, but keeps ephemeralKey and encCiphertexts private, and only exposes the proof for the Groth16 variant, so all three are read back out of its serialization. If upstream gains accessors for them, this can be deleted.

The proof is 192 bytes for Groth16 (V4 transactions) and 296 bytes for PHGR13 (V2/V3 transactions).

The returned 32-byte values are in wire order; callers that render them for RPCs must reverse them, as they do for every other 32-byte JoinSplit field. The proof and the ciphertexts are not reversed by zcashd, so they are rendered in the wire order returned here.