diff --git a/zebra-chain/src/proofs/groth16.rs b/zebra-chain/src/proofs/groth16.rs index ee6d213c..724fea56 100644 --- a/zebra-chain/src/proofs/groth16.rs +++ b/zebra-chain/src/proofs/groth16.rs @@ -51,7 +51,6 @@ impl ZcashDeserialize for Groth16Proof { } } - #[cfg(test)] impl Arbitrary for Groth16Proof { type Parameters = (); diff --git a/zebra-chain/src/transaction/joinsplit.rs b/zebra-chain/src/transaction/joinsplit.rs index 008fd799..562cf722 100644 --- a/zebra-chain/src/transaction/joinsplit.rs +++ b/zebra-chain/src/transaction/joinsplit.rs @@ -4,7 +4,7 @@ use std::{ }; #[cfg(test)] -use proptest::{collection::vec, prelude::*}; +use proptest::{array, collection::vec, prelude::*}; #[cfg(test)] use proptest_derive::Arbitrary; @@ -93,22 +93,26 @@ impl JoinSplitData

{ } #[cfg(test)] -impl Arbitrary for JoinSplitData

{ +impl Arbitrary for JoinSplitData

{ type Parameters = (); fn arbitrary_with(_args: Self::Parameters) -> Self::Strategy { ( any::>(), - vec(any::>()), - vec(any::(), 32), + vec(any::>(), 0..10), + array::uniform32(any::()), vec(any::(), 64), ) - .prop_map(|first, rest, pub_key_bytes, sig_bytes| { + .prop_map(|(first, rest, pub_key_bytes, sig_bytes)| { return Self { first: first, rest: rest, pub_key: ed25519_zebra::PublicKeyBytes::from(pub_key_bytes), - sig: ed25519_zebra::Signature::from(sig_bytes), + sig: ed25519_zebra::Signature::from({ + let mut b = [0u8; 64]; + b.copy_from_slice(sig_bytes.as_slice()); + b + }), }; }) .boxed()