Remove unnecessary mut in PodSigner trait (#340)
The PodSigner trait was taking `&mut self` in the `sign` method, but the signer doesn't need mutation in the Shcnorr implementation. Remove the `mut`. Previously the PodProver trait was also taking `&mut self` in the `prove` method, and we had many tests creating a `mut Prover/mut MockProver`. Remove all those `mut`. Breaking change: `PodSigner` trait method `sign` replaces `&mut self` by `&self`
This commit is contained in:
parent
b5e0d97cb6
commit
63a716ebd7
11 changed files with 136 additions and 146 deletions
|
|
@ -311,8 +311,8 @@ mod tests {
|
|||
mp_builder.pub_op(op!(custom, gt_custom_pred, desugared_gt))?;
|
||||
|
||||
// Check that the POD builds
|
||||
let mut prover = MockProver {};
|
||||
let proof = mp_builder.prove(&mut prover, ¶ms)?;
|
||||
let prover = MockProver {};
|
||||
let proof = mp_builder.prove(&prover, ¶ms)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
|
@ -360,8 +360,8 @@ mod tests {
|
|||
let set_contains_custom_pred = CustomPredicateRef::new(batch, 0);
|
||||
mp_builder.pub_op(op!(custom, set_contains_custom_pred, set_contains))?;
|
||||
|
||||
let mut prover = MockProver {};
|
||||
let proof = mp_builder.prove(&mut prover, ¶ms)?;
|
||||
let prover = MockProver {};
|
||||
let proof = mp_builder.prove(&prover, ¶ms)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,9 +49,7 @@ impl SignedPodBuilder {
|
|||
self.kvs.insert(key.into(), value.into());
|
||||
}
|
||||
|
||||
// TODO: Remove mut because Schnorr signature doesn't need any mutability of the signer, the
|
||||
// nonces are sourced from OS randomness.
|
||||
pub fn sign<S: PodSigner>(&self, signer: &mut S) -> Result<SignedPod> {
|
||||
pub fn sign<S: PodSigner>(&self, signer: &S) -> Result<SignedPod> {
|
||||
// Sign POD with committed KV store.
|
||||
let pod = signer.sign(&self.params, &self.kvs)?;
|
||||
|
||||
|
|
@ -879,18 +877,18 @@ pub mod tests {
|
|||
println!("{}", gov_id);
|
||||
println!("{}", pay_stub);
|
||||
|
||||
let mut signer = Signer(SecretKey(1u32.into()));
|
||||
let gov_id = gov_id.sign(&mut signer)?;
|
||||
let signer = Signer(SecretKey(1u32.into()));
|
||||
let gov_id = gov_id.sign(&signer)?;
|
||||
check_kvs(&gov_id)?;
|
||||
println!("{}", gov_id);
|
||||
|
||||
let mut signer = Signer(SecretKey(2u32.into()));
|
||||
let pay_stub = pay_stub.sign(&mut signer)?;
|
||||
let signer = Signer(SecretKey(2u32.into()));
|
||||
let pay_stub = pay_stub.sign(&signer)?;
|
||||
check_kvs(&pay_stub)?;
|
||||
println!("{}", pay_stub);
|
||||
|
||||
let mut signer = Signer(SecretKey(3u32.into()));
|
||||
let sanction_list = sanction_list.sign(&mut signer)?;
|
||||
let signer = Signer(SecretKey(3u32.into()));
|
||||
let sanction_list = sanction_list.sign(&signer)?;
|
||||
check_kvs(&sanction_list)?;
|
||||
println!("{}", sanction_list);
|
||||
|
||||
|
|
@ -898,8 +896,8 @@ pub mod tests {
|
|||
println!("{}", kyc_builder);
|
||||
|
||||
// prove kyc with MockProver and print it
|
||||
let mut prover = MockProver {};
|
||||
let kyc = kyc_builder.prove(&mut prover, ¶ms)?;
|
||||
let prover = MockProver {};
|
||||
let kyc = kyc_builder.prove(&prover, ¶ms)?;
|
||||
|
||||
println!("{}", kyc);
|
||||
|
||||
|
|
@ -916,31 +914,29 @@ pub mod tests {
|
|||
};
|
||||
let vd_set = &*MOCK_VD_SET;
|
||||
|
||||
let mut alice = Signer(SecretKey(1u32.into()));
|
||||
let mut bob = Signer(SecretKey(2u32.into()));
|
||||
let mut charlie = Signer(SecretKey(3u32.into()));
|
||||
let alice = Signer(SecretKey(1u32.into()));
|
||||
let bob = Signer(SecretKey(2u32.into()));
|
||||
let charlie = Signer(SecretKey(3u32.into()));
|
||||
let david = Signer(SecretKey(4u32.into()));
|
||||
|
||||
let helper = EthDosHelper::new(¶ms, vd_set, true, alice.public_key())?;
|
||||
|
||||
let mut prover = MockProver {};
|
||||
let prover = MockProver {};
|
||||
|
||||
let alice_attestation = attest_eth_friend(¶ms, &mut alice, bob.public_key());
|
||||
let dist_1 = helper
|
||||
.dist_1(&alice_attestation)?
|
||||
.prove(&mut prover, ¶ms)?;
|
||||
let alice_attestation = attest_eth_friend(¶ms, &alice, bob.public_key());
|
||||
let dist_1 = helper.dist_1(&alice_attestation)?.prove(&prover, ¶ms)?;
|
||||
dist_1.pod.verify()?;
|
||||
|
||||
let bob_attestation = attest_eth_friend(¶ms, &mut bob, charlie.public_key());
|
||||
let bob_attestation = attest_eth_friend(¶ms, &bob, charlie.public_key());
|
||||
let dist_2 = helper
|
||||
.dist_n_plus_1(&dist_1, &bob_attestation)?
|
||||
.prove(&mut prover, ¶ms)?;
|
||||
.prove(&prover, ¶ms)?;
|
||||
dist_2.pod.verify()?;
|
||||
|
||||
let charlie_attestation = attest_eth_friend(¶ms, &mut charlie, david.public_key());
|
||||
let charlie_attestation = attest_eth_friend(¶ms, &charlie, david.public_key());
|
||||
let dist_3 = helper
|
||||
.dist_n_plus_1(&dist_2, &charlie_attestation)?
|
||||
.prove(&mut prover, ¶ms)?;
|
||||
.prove(&prover, ¶ms)?;
|
||||
dist_3.pod.verify()?;
|
||||
|
||||
Ok(())
|
||||
|
|
@ -974,8 +970,8 @@ pub mod tests {
|
|||
let mut signed_builder = SignedPodBuilder::new(¶ms);
|
||||
signed_builder.insert("a", 1);
|
||||
signed_builder.insert("b", 1);
|
||||
let mut signer = Signer(SecretKey(1u32.into()));
|
||||
let signed_pod = signed_builder.sign(&mut signer).unwrap();
|
||||
let signer = Signer(SecretKey(1u32.into()));
|
||||
let signed_pod = signed_builder.sign(&signer).unwrap();
|
||||
|
||||
let mut builder = MainPodBuilder::new(¶ms, &vd_set);
|
||||
builder.add_signed_pod(&signed_pod);
|
||||
|
|
@ -1011,8 +1007,8 @@ pub mod tests {
|
|||
);
|
||||
builder.op(true, op_eq3).unwrap();
|
||||
|
||||
let mut prover = MockProver {};
|
||||
let pod = builder.prove(&mut prover, ¶ms).unwrap();
|
||||
let prover = MockProver {};
|
||||
let pod = builder.prove(&prover, ¶ms).unwrap();
|
||||
|
||||
println!("{}", pod);
|
||||
}
|
||||
|
|
@ -1025,8 +1021,8 @@ pub mod tests {
|
|||
let mut builder = SignedPodBuilder::new(¶ms);
|
||||
|
||||
builder.insert("num", 2);
|
||||
let mut signer = Signer(SecretKey(1u32.into()));
|
||||
let pod = builder.sign(&mut signer).unwrap();
|
||||
let signer = Signer(SecretKey(1u32.into()));
|
||||
let pod = builder.sign(&signer).unwrap();
|
||||
|
||||
println!("{}", pod);
|
||||
|
||||
|
|
@ -1034,8 +1030,8 @@ pub mod tests {
|
|||
builder.add_signed_pod(&pod);
|
||||
builder.pub_op(op!(gt, (&pod, "num"), 5)).unwrap();
|
||||
|
||||
let mut prover = MockProver {};
|
||||
let false_pod = builder.prove(&mut prover, ¶ms).unwrap();
|
||||
let prover = MockProver {};
|
||||
let false_pod = builder.prove(&prover, ¶ms).unwrap();
|
||||
|
||||
println!("{}", builder);
|
||||
println!("{}", false_pod);
|
||||
|
|
@ -1057,8 +1053,8 @@ pub mod tests {
|
|||
let dict_root = Value::from(dict.clone());
|
||||
builder.insert("dict", dict_root);
|
||||
|
||||
let mut signer = Signer(SecretKey(1u32.into()));
|
||||
let pod = builder.sign(&mut signer).unwrap();
|
||||
let signer = Signer(SecretKey(1u32.into()));
|
||||
let pod = builder.sign(&signer).unwrap();
|
||||
|
||||
let mut builder = MainPodBuilder::new(¶ms, &vd_set);
|
||||
builder.add_signed_pod(&pod);
|
||||
|
|
@ -1079,8 +1075,8 @@ pub mod tests {
|
|||
OperationAux::MerkleProof(dict.prove(&Key::from("a")).unwrap().1),
|
||||
))
|
||||
.unwrap();
|
||||
let mut main_prover = MockProver {};
|
||||
let main_pod = builder.prove(&mut main_prover, ¶ms).unwrap();
|
||||
let main_prover = MockProver {};
|
||||
let main_pod = builder.prove(&main_prover, ¶ms).unwrap();
|
||||
|
||||
println!("{}", main_pod);
|
||||
|
||||
|
|
@ -1109,8 +1105,8 @@ pub mod tests {
|
|||
let st = Statement::equal(AnchoredKey::from((SELF, "a")), Value::from(28));
|
||||
builder.insert(false, (st, op_new_entry.clone()));
|
||||
|
||||
let mut prover = MockProver {};
|
||||
let pod = builder.prove(&mut prover, ¶ms).unwrap();
|
||||
let prover = MockProver {};
|
||||
let pod = builder.prove(&prover, ¶ms).unwrap();
|
||||
pod.pod.verify().unwrap();
|
||||
}
|
||||
|
||||
|
|
@ -1145,8 +1141,8 @@ pub mod tests {
|
|||
);
|
||||
builder.insert(false, (st, op));
|
||||
|
||||
let mut prover = MockProver {};
|
||||
let pod = builder.prove(&mut prover, ¶ms).unwrap();
|
||||
let prover = MockProver {};
|
||||
let pod = builder.prove(&prover, ¶ms).unwrap();
|
||||
pod.pod.verify().unwrap();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -222,8 +222,8 @@ mod tests {
|
|||
#[test]
|
||||
fn test_signed_pod_serialization() {
|
||||
let builder = signed_pod_builder();
|
||||
let mut signer = Signer(SecretKey(1u32.into()));
|
||||
let pod = builder.sign(&mut signer).unwrap();
|
||||
let signer = Signer(SecretKey(1u32.into()));
|
||||
let pod = builder.sign(&signer).unwrap();
|
||||
|
||||
let serialized = serde_json::to_string_pretty(&pod).unwrap();
|
||||
println!("serialized: {}", serialized);
|
||||
|
|
@ -240,8 +240,8 @@ mod tests {
|
|||
#[test]
|
||||
fn test_mock_signed_pod_serialization() {
|
||||
let builder = signed_pod_builder();
|
||||
let mut signer = Signer(SecretKey(1u32.into()));
|
||||
let pod = builder.sign(&mut signer).unwrap();
|
||||
let signer = Signer(SecretKey(1u32.into()));
|
||||
let pod = builder.sign(&signer).unwrap();
|
||||
|
||||
let serialized = serde_json::to_string_pretty(&pod).unwrap();
|
||||
println!("serialized: {}", serialized);
|
||||
|
|
@ -261,12 +261,12 @@ mod tests {
|
|||
|
||||
let (gov_id_builder, pay_stub_builder, sanction_list_builder) =
|
||||
zu_kyc_sign_pod_builders(¶ms);
|
||||
let mut signer = Signer(SecretKey(1u32.into()));
|
||||
let gov_id_pod = gov_id_builder.sign(&mut signer).unwrap();
|
||||
let mut signer = Signer(SecretKey(2u32.into()));
|
||||
let pay_stub_pod = pay_stub_builder.sign(&mut signer).unwrap();
|
||||
let mut signer = Signer(SecretKey(3u32.into()));
|
||||
let sanction_list_pod = sanction_list_builder.sign(&mut signer).unwrap();
|
||||
let signer = Signer(SecretKey(1u32.into()));
|
||||
let gov_id_pod = gov_id_builder.sign(&signer).unwrap();
|
||||
let signer = Signer(SecretKey(2u32.into()));
|
||||
let pay_stub_pod = pay_stub_builder.sign(&signer).unwrap();
|
||||
let signer = Signer(SecretKey(3u32.into()));
|
||||
let sanction_list_pod = sanction_list_builder.sign(&signer).unwrap();
|
||||
let kyc_builder = zu_kyc_pod_builder(
|
||||
¶ms,
|
||||
&vd_set,
|
||||
|
|
@ -276,8 +276,8 @@ mod tests {
|
|||
)
|
||||
.unwrap();
|
||||
|
||||
let mut prover = MockProver {};
|
||||
let kyc_pod = kyc_builder.prove(&mut prover, ¶ms).unwrap();
|
||||
let prover = MockProver {};
|
||||
let kyc_pod = kyc_builder.prove(&prover, ¶ms).unwrap();
|
||||
Ok(kyc_pod)
|
||||
}
|
||||
|
||||
|
|
@ -292,12 +292,12 @@ mod tests {
|
|||
|
||||
let (gov_id_builder, pay_stub_builder, sanction_list_builder) =
|
||||
zu_kyc_sign_pod_builders(¶ms);
|
||||
let mut signer = Signer(SecretKey(1u32.into()));
|
||||
let gov_id_pod = gov_id_builder.sign(&mut signer)?;
|
||||
let mut signer = Signer(SecretKey(2u32.into()));
|
||||
let pay_stub_pod = pay_stub_builder.sign(&mut signer)?;
|
||||
let mut signer = Signer(SecretKey(3u32.into()));
|
||||
let sanction_list_pod = sanction_list_builder.sign(&mut signer)?;
|
||||
let signer = Signer(SecretKey(1u32.into()));
|
||||
let gov_id_pod = gov_id_builder.sign(&signer)?;
|
||||
let signer = Signer(SecretKey(2u32.into()));
|
||||
let pay_stub_pod = pay_stub_builder.sign(&signer)?;
|
||||
let signer = Signer(SecretKey(3u32.into()));
|
||||
let sanction_list_pod = sanction_list_builder.sign(&signer)?;
|
||||
let kyc_builder = zu_kyc_pod_builder(
|
||||
¶ms,
|
||||
&vd_set,
|
||||
|
|
@ -306,8 +306,8 @@ mod tests {
|
|||
&sanction_list_pod,
|
||||
)?;
|
||||
|
||||
let mut prover = Prover {};
|
||||
let kyc_pod = kyc_builder.prove(&mut prover, ¶ms)?;
|
||||
let prover = Prover {};
|
||||
let kyc_pod = kyc_builder.prove(&prover, ¶ms)?;
|
||||
|
||||
Ok(kyc_pod)
|
||||
}
|
||||
|
|
@ -348,23 +348,21 @@ mod tests {
|
|||
};
|
||||
let vd_set = &*MOCK_VD_SET;
|
||||
|
||||
let mut alice = Signer(SecretKey(1u32.into()));
|
||||
let mut bob = Signer(SecretKey(2u32.into()));
|
||||
let alice = Signer(SecretKey(1u32.into()));
|
||||
let bob = Signer(SecretKey(2u32.into()));
|
||||
let charlie = Signer(SecretKey(3u32.into()));
|
||||
|
||||
// Alice attests that she is ETH friends with Bob and Bob
|
||||
// attests that he is ETH friends with Charlie.
|
||||
let alice_attestation = attest_eth_friend(¶ms, &mut alice, bob.public_key());
|
||||
let bob_attestation = attest_eth_friend(¶ms, &mut bob, charlie.public_key());
|
||||
let alice_attestation = attest_eth_friend(¶ms, &alice, bob.public_key());
|
||||
let bob_attestation = attest_eth_friend(¶ms, &bob, charlie.public_key());
|
||||
|
||||
let helper = EthDosHelper::new(¶ms, vd_set, true, alice.public_key())?;
|
||||
let mut prover = MockProver {};
|
||||
let dist_1 = helper
|
||||
.dist_1(&alice_attestation)?
|
||||
.prove(&mut prover, ¶ms)?;
|
||||
let prover = MockProver {};
|
||||
let dist_1 = helper.dist_1(&alice_attestation)?.prove(&prover, ¶ms)?;
|
||||
let dist_2 = helper
|
||||
.dist_n_plus_1(&dist_1, &bob_attestation)?
|
||||
.prove(&mut prover, ¶ms)?;
|
||||
.prove(&prover, ¶ms)?;
|
||||
|
||||
Ok(dist_2)
|
||||
}
|
||||
|
|
@ -380,7 +378,7 @@ mod tests {
|
|||
|
||||
let kyc_pod = build_mock_zukyc_pod().unwrap();
|
||||
let signed_pod = signed_pod_builder()
|
||||
.sign(&mut Signer(SecretKey(1u32.into())))
|
||||
.sign(&Signer(SecretKey(1u32.into())))
|
||||
.unwrap();
|
||||
let ethdos_pod = build_ethdos_pod().unwrap();
|
||||
let mainpod_schema_value = serde_json::to_value(&mainpod_schema).unwrap();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue