vmtest.rs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. use bls12_381::Scalar;
  2. mod vm;
  3. mod vm_load;
  4. use vm_load::load_zkvm;
  5. fn main() {
  6. let mut vm = load_zkvm();
  7. vm.setup();
  8. let params = vec![
  9. (
  10. 0,
  11. Scalar::from_raw([
  12. 0xb981_9dc8_2d90_607e,
  13. 0xa361_ee3f_d48f_df77,
  14. 0x52a3_5a8c_1908_dd87,
  15. 0x15a3_6d1f_0f39_0d88,
  16. ]),
  17. ),
  18. (
  19. 1,
  20. Scalar::from_raw([
  21. 0x7b0d_c53c_4ebf_1891,
  22. 0x1f3a_beeb_98fa_d3e8,
  23. 0xf789_1142_c001_d925,
  24. 0x015d_8c7f_5b43_fe33,
  25. ]),
  26. ),
  27. (
  28. 2,
  29. Scalar::from_raw([
  30. 0xb981_9dc8_2d90_607e,
  31. 0xa361_ee3f_d48f_df77,
  32. 0x52a3_5a8c_1908_dd87,
  33. 0x15a3_6d1f_0f39_0d88,
  34. ]),
  35. ),
  36. (
  37. 3,
  38. Scalar::from_raw([
  39. 0x7b0d_c53c_4ebf_1891,
  40. 0x1f3a_beeb_98fa_d3e8,
  41. 0xf789_1142_c001_d925,
  42. 0x015d_8c7f_5b43_fe33,
  43. ]),
  44. ),
  45. ];
  46. vm.initialize(&params);
  47. let proof = vm.prove();
  48. let public = vm.public();
  49. assert_eq!(public.len(), 2);
  50. // 0x66ced46f14e5616d12b993f60a6e66558d6b6afe4c321ed212e0b9cfbd81061a
  51. // 0x4731570fdd57cf280eadc8946fa00df81112502e44e497e794ab9a221f1bcca
  52. println!("u = {:?}", public[0]);
  53. println!("v = {:?}", public[1]);
  54. assert!(vm.verify(&proof, &public));
  55. }