MCPcopy Create free account
hub / github.com/docknetwork/crypto / base_digits

Function base_digits

smc_range_proof/src/common.rs:159–182  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

157
158 #[test]
159 fn base_digits() {
160 let mut rng = StdRng::seed_from_u64(0u64);
161 let comm_key = MemberCommitmentKey::<G1Affine>::generate_using_rng(&mut rng);
162
163 let value = u64::rand(&mut rng);
164 let randomness = Fr::rand(&mut rng);
165 let base = 4;
166 let digits = base_n_digits(value, base);
167 let mut expected_value = 0u64;
168 let mut power = 1u64;
169 for (i, digit) in digits.iter().enumerate() {
170 let d = *digit as u64;
171 expected_value += d * power;
172 if i != digits.len() - 1 {
173 power = base as u64 * power;
174 }
175 }
176 assert_eq!(expected_value, value);
177
178 let digits = digits.into_iter().map(|d| Fr::from(d)).collect::<Vec<_>>();
179 let comm = comm_key.commit(&Fr::from(value), &randomness);
180 let comm_d = comm_key.commit_decomposed(base, &digits, &randomness);
181 assert_eq!(comm, comm_d)
182 }
183
184 #[test]
185 fn secret_key_validation() {

Callers

nothing calls this directly

Calls 8

randFunction · 0.85
base_n_digitsFunction · 0.85
mapMethod · 0.80
commit_decomposedMethod · 0.80
iterMethod · 0.45
lenMethod · 0.45
into_iterMethod · 0.45
commitMethod · 0.45

Tested by

no test coverage detected