use qcheck::Arbitrary;
use crate::{KeyPair, PublicKey, SecretKey, Seed, test::signer::MockSigner};
impl Arbitrary for MockSigner {
fn arbitrary(g: &mut qcheck::Gen) -> Self {
let bytes: [u8; 32] = Arbitrary::arbitrary(g);
let seed = Seed::new(bytes);
let sk = KeyPair::from_seed(seed).sk;
MockSigner::from(SecretKey::from(sk))
}
}
impl Arbitrary for PublicKey {
fn arbitrary(g: &mut qcheck::Gen) -> Self {
let bytes: [u8; 32] = Arbitrary::arbitrary(g);
let seed = Seed::new(bytes);
let keypair = KeyPair::from_seed(seed);
keypair.pk.into()
}
}