From 9117273c085365c857979c793557ae94a8bdd62c Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Wed, 28 Jul 2021 22:51:43 +0100 Subject: [PATCH] Fix bug in `Builder` initialization of `Circuit` struct `rcv` was being used correctly outside the circuit to derive `cv_net` but then `Circuit` was just storing 0. The `round_trip` test passed because it uses `rcv = 0` everywhere. --- src/builder.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/builder.rs b/src/builder.rs index 641ad8b7..7070b084 100644 --- a/src/builder.rs +++ b/src/builder.rs @@ -130,7 +130,7 @@ impl ActionInfo { /// [orchardsend]: https://zips.z.cash/protocol/nu5.pdf#orchardsend fn build(self, mut rng: impl RngCore) -> (Action, Circuit) { let v_net = self.value_sum().expect("already checked this"); - let cv_net = ValueCommitment::derive(v_net, self.rcv); + let cv_net = ValueCommitment::derive(v_net, self.rcv.clone()); let nf_old = self.spend.note.nullifier(&self.spend.fvk); let sender_address = self.spend.fvk.default_address(); @@ -196,7 +196,7 @@ impl ActionInfo { v_new: Some(note.value()), psi_new: Some(note.rseed().psi(¬e.rho())), rcm_new: Some(note.rseed().rcm(¬e.rho())), - rcv: Some(ValueCommitTrapdoor::zero()), + rcv: Some(self.rcv), }, ) }