Skip to content

Commit bcfad30

Browse files
authored
ZuKYC example: get the sanctions list from a SignedPod (#98)
* Get the sanctions list from a SignedPod * Formatting
1 parent a2bcb50 commit bcfad30

File tree

3 files changed

+36
-8
lines changed

3 files changed

+36
-8
lines changed

src/backends/plonky2/mock_main/mod.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,8 @@ pub mod tests {
485485
fn test_mock_main_zu_kyc() -> Result<()> {
486486
let params = middleware::Params::default();
487487

488-
let (gov_id_builder, pay_stub_builder) = zu_kyc_sign_pod_builders(&params);
488+
let (gov_id_builder, pay_stub_builder, sanction_list_builder) =
489+
zu_kyc_sign_pod_builders(&params);
489490
let mut signer = MockSigner {
490491
pk: "ZooGov".into(),
491492
};
@@ -494,7 +495,12 @@ pub mod tests {
494495
pk: "ZooDeel".into(),
495496
};
496497
let pay_stub_pod = pay_stub_builder.sign(&mut signer)?;
497-
let kyc_builder = zu_kyc_pod_builder(&params, &gov_id_pod, &pay_stub_pod)?;
498+
let mut signer = MockSigner {
499+
pk: "ZooOFAC".into(),
500+
};
501+
let sanction_list_pod = sanction_list_builder.sign(&mut signer)?;
502+
let kyc_builder =
503+
zu_kyc_pod_builder(&params, &gov_id_pod, &pay_stub_pod, &sanction_list_pod)?;
498504

499505
let mut prover = MockProver {};
500506
let kyc_pod = kyc_builder.prove(&mut prover)?;

src/examples.rs

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,16 @@ use std::collections::HashMap;
33

44
use crate::backends::plonky2::mock_signed::MockSigner;
55
use crate::frontend::{MainPodBuilder, SignedPod, SignedPodBuilder, Value};
6+
use crate::middleware::containers::Set;
7+
use crate::middleware::hash_str;
68
use crate::middleware::{containers::Dictionary, Params, PodType, KEY_SIGNER, KEY_TYPE};
79
use crate::op;
810

911
// ZuKYC
1012

11-
pub fn zu_kyc_sign_pod_builders(params: &Params) -> (SignedPodBuilder, SignedPodBuilder) {
13+
pub fn zu_kyc_sign_pod_builders(
14+
params: &Params,
15+
) -> (SignedPodBuilder, SignedPodBuilder, SignedPodBuilder) {
1216
let mut gov_id = SignedPodBuilder::new(params);
1317
gov_id.insert("idNumber", "4242424242");
1418
gov_id.insert("dateOfBirth", 1169909384);
@@ -18,22 +22,34 @@ pub fn zu_kyc_sign_pod_builders(params: &Params) -> (SignedPodBuilder, SignedPod
1822
pay_stub.insert("socialSecurityNumber", "G2121210");
1923
pay_stub.insert("startDate", 1706367566);
2024

21-
(gov_id, pay_stub)
25+
let mut sanction_list = SignedPodBuilder::new(params);
26+
let sanctions_values = ["A343434340"].map(|s| crate::middleware::Value::from(hash_str(s)));
27+
sanction_list.insert(
28+
"sanctionList",
29+
Value::Set(Set::new(&sanctions_values.to_vec()).unwrap()),
30+
);
31+
32+
(gov_id, pay_stub, sanction_list)
2233
}
2334

2435
pub fn zu_kyc_pod_builder(
2536
params: &Params,
2637
gov_id: &SignedPod,
2738
pay_stub: &SignedPod,
39+
sanction_list: &SignedPod,
2840
) -> Result<MainPodBuilder> {
29-
let sanction_list = Value::Dictionary(Dictionary::new(&HashMap::new())?); // empty dictionary
3041
let now_minus_18y: i64 = 1169909388;
3142
let now_minus_1y: i64 = 1706367566;
3243

3344
let mut kyc = MainPodBuilder::new(params);
3445
kyc.add_signed_pod(&gov_id);
3546
kyc.add_signed_pod(&pay_stub);
36-
kyc.pub_op(op!(not_contains, &sanction_list, (gov_id, "idNumber")));
47+
kyc.add_signed_pod(&sanction_list);
48+
kyc.pub_op(op!(
49+
not_contains,
50+
(sanction_list, "sanctionList"),
51+
(gov_id, "idNumber")
52+
));
3753
kyc.pub_op(op!(lt, (gov_id, "dateOfBirth"), now_minus_18y));
3854
kyc.pub_op(op!(
3955
eq,

src/frontend/mod.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,7 @@ pub mod tests {
529529
#[test]
530530
fn test_front_zu_kyc() -> Result<()> {
531531
let params = Params::default();
532-
let (gov_id, pay_stub) = zu_kyc_sign_pod_builders(&params);
532+
let (gov_id, pay_stub, sanction_list) = zu_kyc_sign_pod_builders(&params);
533533

534534
println!("{}", gov_id);
535535
println!("{}", pay_stub);
@@ -546,7 +546,13 @@ pub mod tests {
546546
let pay_stub = pay_stub.sign(&mut signer).unwrap();
547547
println!("{}", pay_stub);
548548

549-
let kyc = zu_kyc_pod_builder(&params, &gov_id, &pay_stub)?;
549+
let mut signer = MockSigner {
550+
pk: "ZooOFAC".into(),
551+
};
552+
let sanction_list = sanction_list.sign(&mut signer).unwrap();
553+
println!("{}", sanction_list);
554+
555+
let kyc = zu_kyc_pod_builder(&params, &gov_id, &pay_stub, &sanction_list)?;
550556
println!("{}", kyc);
551557

552558
let mut prover = MockProver {};

0 commit comments

Comments
 (0)