From f431100a7ab2c8c7394dcbaf0e59ecee2c0a7da0 Mon Sep 17 00:00:00 2001 From: therealyingtong Date: Sun, 6 Jun 2021 20:07:18 +0800 Subject: [PATCH] Circuit::synthesize(): Spend authority. --- src/circuit.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/circuit.rs b/src/circuit.rs index e942f7c3..1730e008 100644 --- a/src/circuit.rs +++ b/src/circuit.rs @@ -529,6 +529,20 @@ impl plonk::Circuit for Circuit { .extract_p() }; + // Spend authority + // TODO: constrain to equal public input rk + let _rk = { + // alpha_commitment = [alpha] SpendAuthG + let (alpha_commitment, _) = { + let spend_auth_g = OrchardFixedBasesFull::SpendAuthG; + let spend_auth_g = FixedPoint::from_inner(ecc_chip.clone(), spend_auth_g); + spend_auth_g.mul(layouter.namespace(|| "[alpha] SpendAuthG"), self.alpha)? + }; + + // [alpha] SpendAuthG + ak + alpha_commitment.add(layouter.namespace(|| "rk"), &ak)? + }; + Ok(()) } }