remove op! macro (#378)
This commit is contained in:
parent
7f120f026d
commit
fe8c4eceb3
6 changed files with 118 additions and 211 deletions
|
|
@ -15,10 +15,9 @@ use pod2::{
|
|||
basetypes::DEFAULT_VD_SET, mainpod::Prover, mock::mainpod::MockProver,
|
||||
primitives::ec::schnorr::SecretKey, signedpod::Signer,
|
||||
},
|
||||
frontend::{MainPodBuilder, SignedPodBuilder},
|
||||
frontend::{MainPodBuilder, Operation, SignedPodBuilder},
|
||||
lang::parse,
|
||||
middleware::{Params, PodProver, PodType, VDSet, Value, KEY_SIGNER, KEY_TYPE},
|
||||
op,
|
||||
};
|
||||
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
|
|
@ -100,19 +99,17 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||
// Build a pod to prove the statement `points("Alice", 1, 3512)`
|
||||
let mut builder = MainPodBuilder::new(¶ms, vd_set);
|
||||
builder.add_signed_pod(&pod_points_lvl_1);
|
||||
let st_type = builder.priv_op(op!(eq, (&pod_points_lvl_1, KEY_TYPE), PodType::Signed))?;
|
||||
let st_signer = builder.priv_op(op!(eq, (&pod_points_lvl_1, KEY_SIGNER), game_pk))?;
|
||||
let st_player = builder.priv_op(op!(eq, (&pod_points_lvl_1, "player"), "Alice"))?;
|
||||
let st_level = builder.priv_op(op!(eq, (&pod_points_lvl_1, "level"), 1))?;
|
||||
let st_points = builder.priv_op(op!(eq, (&pod_points_lvl_1, "points"), 3512))?;
|
||||
let st_points_lvl_1 = builder.pub_op(op!(
|
||||
custom,
|
||||
let st_type = builder.priv_op(Operation::eq(
|
||||
(&pod_points_lvl_1, KEY_TYPE),
|
||||
PodType::Signed,
|
||||
))?;
|
||||
let st_signer = builder.priv_op(Operation::eq((&pod_points_lvl_1, KEY_SIGNER), game_pk))?;
|
||||
let st_player = builder.priv_op(Operation::eq((&pod_points_lvl_1, "player"), "Alice"))?;
|
||||
let st_level = builder.priv_op(Operation::eq((&pod_points_lvl_1, "level"), 1))?;
|
||||
let st_points = builder.priv_op(Operation::eq((&pod_points_lvl_1, "points"), 3512))?;
|
||||
let st_points_lvl_1 = builder.pub_op(Operation::custom(
|
||||
points_pred.clone(),
|
||||
st_type,
|
||||
st_signer,
|
||||
st_player,
|
||||
st_level,
|
||||
st_points
|
||||
[st_type, st_signer, st_player, st_level, st_points],
|
||||
))?;
|
||||
let pod_alice_lvl_1_points = builder.prove(prover).unwrap();
|
||||
println!("# pod_alice_lvl_1_points\n:{}", pod_alice_lvl_1_points);
|
||||
|
|
@ -121,19 +118,17 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||
// Build a pod to prove the statement `points("Alice", 2, 5771)`
|
||||
let mut builder = MainPodBuilder::new(¶ms, vd_set);
|
||||
builder.add_signed_pod(&pod_points_lvl_2);
|
||||
let st_type = builder.priv_op(op!(eq, (&pod_points_lvl_2, KEY_TYPE), PodType::Signed))?;
|
||||
let st_signer = builder.priv_op(op!(eq, (&pod_points_lvl_2, KEY_SIGNER), game_pk))?;
|
||||
let st_player = builder.priv_op(op!(eq, (&pod_points_lvl_2, "player"), "Alice"))?;
|
||||
let st_level = builder.priv_op(op!(eq, (&pod_points_lvl_2, "level"), 2))?;
|
||||
let st_points = builder.priv_op(op!(eq, (&pod_points_lvl_2, "points"), 5771))?;
|
||||
let st_points_lvl_2 = builder.pub_op(op!(
|
||||
custom,
|
||||
let st_type = builder.priv_op(Operation::eq(
|
||||
(&pod_points_lvl_2, KEY_TYPE),
|
||||
PodType::Signed,
|
||||
))?;
|
||||
let st_signer = builder.priv_op(Operation::eq((&pod_points_lvl_2, KEY_SIGNER), game_pk))?;
|
||||
let st_player = builder.priv_op(Operation::eq((&pod_points_lvl_2, "player"), "Alice"))?;
|
||||
let st_level = builder.priv_op(Operation::eq((&pod_points_lvl_2, "level"), 2))?;
|
||||
let st_points = builder.priv_op(Operation::eq((&pod_points_lvl_2, "points"), 5771))?;
|
||||
let st_points_lvl_2 = builder.pub_op(Operation::custom(
|
||||
points_pred,
|
||||
st_type,
|
||||
st_signer,
|
||||
st_player,
|
||||
st_level,
|
||||
st_points
|
||||
[st_type, st_signer, st_player, st_level, st_points],
|
||||
))?;
|
||||
let pod_alice_lvl_2_points = builder.prove(prover).unwrap();
|
||||
println!("# pod_alice_lvl_2_points\n:{}", pod_alice_lvl_2_points);
|
||||
|
|
@ -143,15 +138,16 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||
let mut builder = MainPodBuilder::new(¶ms, vd_set);
|
||||
builder.add_recursive_pod(pod_alice_lvl_1_points);
|
||||
builder.add_recursive_pod(pod_alice_lvl_2_points);
|
||||
let st_points_total = builder.priv_op(op!(sum_of, 3512 + 5771, 3512, 5771))?;
|
||||
let st_gt_9000 = builder.priv_op(op!(gt, 3512 + 5771, 9000))?;
|
||||
let _st_over_9000 = builder.pub_op(op!(
|
||||
custom,
|
||||
let st_points_total = builder.priv_op(Operation::sum_of(3512 + 5771, 3512, 5771))?;
|
||||
let st_gt_9000 = builder.priv_op(Operation::gt(3512 + 5771, 9000))?;
|
||||
let _st_over_9000 = builder.pub_op(Operation::custom(
|
||||
over_9000_pred,
|
||||
st_points_lvl_1,
|
||||
st_points_lvl_2,
|
||||
st_points_total,
|
||||
st_gt_9000
|
||||
[
|
||||
st_points_lvl_1,
|
||||
st_points_lvl_2,
|
||||
st_points_total,
|
||||
st_gt_9000,
|
||||
],
|
||||
));
|
||||
let pod_alice_over_9000 = builder.prove(prover).unwrap();
|
||||
println!("# pod_alice_over_9000\n:{}", pod_alice_over_9000);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue