snarkvm_console_account/compute_key/
to_bits.rs1use super::*;
17
18impl<N: Network> ToBits for ComputeKey<N> {
19 fn write_bits_le(&self, vec: &mut Vec<bool>) {
21 self.pk_sig.write_bits_le(vec);
23 self.pr_sig.write_bits_le(vec);
25 }
26
27 fn write_bits_be(&self, vec: &mut Vec<bool>) {
29 self.pk_sig.write_bits_be(vec);
31 self.pr_sig.write_bits_be(vec);
33 }
34}
35
36#[cfg(test)]
37mod tests {
38 use super::*;
39 use snarkvm_console_network::MainnetV0;
40
41 type CurrentNetwork = MainnetV0;
42
43 const ITERATIONS: u64 = 1_000;
44
45 #[test]
46 fn test_to_bits_le() {
47 let rng = &mut TestRng::default();
48
49 for _ in 0..ITERATIONS {
50 let compute_key = ComputeKey::<CurrentNetwork>::try_from(PrivateKey::new(rng).unwrap()).unwrap();
52
53 let candidate = compute_key.to_bits_le();
54 assert_eq!(ComputeKey::<CurrentNetwork>::size_in_bits(), candidate.len());
55
56 let mut expected = Vec::new();
58 expected.extend(compute_key.pk_sig.to_bits_le());
59 expected.extend(compute_key.pr_sig.to_bits_le());
60
61 for (expected, candidate) in expected.iter().zip_eq(&candidate) {
62 assert_eq!(expected, candidate);
63 }
64 }
65 }
66
67 #[test]
68 fn test_to_bits_be() {
69 let rng = &mut TestRng::default();
70
71 for _ in 0..ITERATIONS {
72 let compute_key = ComputeKey::<CurrentNetwork>::try_from(PrivateKey::new(rng).unwrap()).unwrap();
74
75 let candidate = compute_key.to_bits_be();
76 assert_eq!(ComputeKey::<CurrentNetwork>::size_in_bits(), candidate.len());
77
78 let mut expected = Vec::new();
80 expected.extend(compute_key.pk_sig.to_bits_be());
81 expected.extend(compute_key.pr_sig.to_bits_be());
82
83 for (expected, candidate) in expected.iter().zip_eq(&candidate) {
84 assert_eq!(expected, candidate);
85 }
86 }
87 }
88}