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:
Eduard S. 2025-07-15 17:37:26 +02:00 committed by GitHub
parent b5e0d97cb6
commit 63a716ebd7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 136 additions and 146 deletions

View file

@ -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(&params);
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(
&params,
&vd_set,
@ -276,8 +276,8 @@ mod tests {
)
.unwrap();
let mut prover = MockProver {};
let kyc_pod = kyc_builder.prove(&mut prover, &params).unwrap();
let prover = MockProver {};
let kyc_pod = kyc_builder.prove(&prover, &params).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(&params);
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(
&params,
&vd_set,
@ -306,8 +306,8 @@ mod tests {
&sanction_list_pod,
)?;
let mut prover = Prover {};
let kyc_pod = kyc_builder.prove(&mut prover, &params)?;
let prover = Prover {};
let kyc_pod = kyc_builder.prove(&prover, &params)?;
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(&params, &mut alice, bob.public_key());
let bob_attestation = attest_eth_friend(&params, &mut bob, charlie.public_key());
let alice_attestation = attest_eth_friend(&params, &alice, bob.public_key());
let bob_attestation = attest_eth_friend(&params, &bob, charlie.public_key());
let helper = EthDosHelper::new(&params, vd_set, true, alice.public_key())?;
let mut prover = MockProver {};
let dist_1 = helper
.dist_1(&alice_attestation)?
.prove(&mut prover, &params)?;
let prover = MockProver {};
let dist_1 = helper.dist_1(&alice_attestation)?.prove(&prover, &params)?;
let dist_2 = helper
.dist_n_plus_1(&dist_1, &bob_attestation)?
.prove(&mut prover, &params)?;
.prove(&prover, &params)?;
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();