diff --git a/src/circuit/spend_contract.rs b/src/circuit/spend_contract.rs index a010319ed..4278c470c 100644 --- a/src/circuit/spend_contract.rs +++ b/src/circuit/spend_contract.rs @@ -27,6 +27,7 @@ pub struct SpendContract { pub is_right_2: Option, pub branch_3: Option, pub is_right_3: Option, + pub signature_secret: Option, } impl Circuit for SpendContract { fn synthesize>( @@ -435,6 +436,17 @@ impl Circuit for SpendContract { // Line 253: emit_scalar current current.inputize(cs.namespace(|| "Line 253: emit_scalar current"))?; + let signature_secret = boolean::field_into_boolean_vec_le( + cs.namespace(|| "Signature secret"), + self.signature_secret, + )?; + let signature_public = ecc::fixed_base_multiplication( + cs.namespace(|| "Signature public"), + &zcash_proofs::constants::SPENDING_KEY_GENERATOR, + &signature_secret, + )?; + signature_public.inputize(cs.namespace(|| "Signature public inputize"))?; + Ok(()) } }