From 2156c6143b47057ce181ca5152679ca7952f21f3 Mon Sep 17 00:00:00 2001 From: Deirdre Connolly Date: Fri, 17 Apr 2020 04:18:36 -0400 Subject: [PATCH] Complete impl Arbitrary for TransmissionKey --- zebra-chain/src/keys/sapling/tests.rs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/zebra-chain/src/keys/sapling/tests.rs b/zebra-chain/src/keys/sapling/tests.rs index da02a3918..3b75f5287 100644 --- a/zebra-chain/src/keys/sapling/tests.rs +++ b/zebra-chain/src/keys/sapling/tests.rs @@ -8,13 +8,20 @@ impl Arbitrary for TransmissionKey { type Parameters = (); fn arbitrary_with(_args: Self::Parameters) -> Self::Strategy { - (array::uniform32(any::())) - .prop_map(|_transmission_key_bytes| { - // TODO: actually generate something better than the identity. - // - // return Self::from_bytes(transmission_key_bytes); + (any::()) + .prop_map(|spending_key| { + let spend_authorizing_key = SpendAuthorizingKey::from(spending_key); + let proof_authorizing_key = ProofAuthorizingKey::from(spending_key); - return Self(jubjub::AffinePoint::identity()); + let authorizing_key = AuthorizingKey::from(spend_authorizing_key); + let nullifier_deriving_key = NullifierDerivingKey::from(proof_authorizing_key); + + let incoming_viewing_key = + IncomingViewingKey::from((authorizing_key, nullifier_deriving_key)); + + let diversifier = Diversifier::from(spending_key); + + return Self::from(incoming_viewing_key, diversifier); }) .boxed() }