Radish alpha
h
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Radicle Heartwood Protocol & Stack
Radicle
Git
heartwood crates radicle-crypto src test arbitrary.rs
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()
    }
}