From a3ae1b273d2480ebd1ce23b65704afcf29e4bef2 Mon Sep 17 00:00:00 2001 From: therealyingtong Date: Wed, 5 Aug 2020 14:27:36 +0800 Subject: [PATCH] Switch plaintext version on height for dummy outputs in Builder --- zcash_primitives/src/transaction/builder.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/zcash_primitives/src/transaction/builder.rs b/zcash_primitives/src/transaction/builder.rs index 68448f4f1..280880b3e 100644 --- a/zcash_primitives/src/transaction/builder.rs +++ b/zcash_primitives/src/transaction/builder.rs @@ -13,7 +13,7 @@ use std::fmt; use crate::{ consensus, - consensus::NetworkUpgrade, + consensus::{NetworkUpgrade, Parameters}, keys::OutgoingViewingKey, legacy::TransparentAddress, merkle_tree::MerklePath, @@ -620,12 +620,20 @@ impl Builder { } }; + let rseed = if self.height >= Network::CANOPY_ACTIVATION_HEIGHT { + let mut buffer = [0u8; 32]; + &mut self.rng.fill_bytes(&mut buffer); + Rseed::AfterZip212(buffer) + } else { + Rseed::BeforeZip212(Fs::random(&mut self.rng)) + }; + ( payment_address, Note { g_d, pk_d, - rseed: Rseed::BeforeZip212(Fs::random(&mut self.rng)), + rseed, value: 0, }, )