adde str conversion on alloc

This commit is contained in:
ada
2021-02-07 23:51:05 +01:00
parent 98649a6da3
commit f0a67ce7e3
2 changed files with 25 additions and 7 deletions

View File

@@ -35,6 +35,16 @@
(scalar::one B)
(scalar::one C)
)
(enforce
(scalar::one C)
(scalar::one u3)
((scalar::one A) (scalar::one B))
)
(enforce
(scalar::one::neg C)
(scalar::one v3)
((scalar::one::neg U) (scalar::one::neg A) (scalar::one::neg B))
)
)
)
)

View File

@@ -6,6 +6,7 @@ use bellman::{
};
use std::ops::{Add, AddAssign, MulAssign, SubAssign};
use std::cell::RefCell;
use sapvi::bls_extensions::BlsStringConversion;
use std::rc::Rc;
//use std::collections::HashMap;
use fnv::FnvHashMap;
@@ -48,12 +49,18 @@ impl Circuit<bls12_381::Scalar> for LispCircuit {
println!("Allocations\n");
for (k, v) in &self.allocs {
if let MalVal::ZKScalar(val) = v {
println!("val {:?}", val);
let var = cs.alloc(|| "alloc", || Ok(*val))?;
variables.insert(k.to_string(), var);
} else {
println!("k {:?} v {:?}", k, v);
// match str
match v {
MalVal::ZKScalar(val) => {
let var = cs.alloc(|| "alloc", || Ok(*val))?;
variables.insert(k.to_string(), var);
}
MalVal::Str(val) => {
let val_scalar = bls12_381::Scalar::from_string(&*val);
let var = cs.alloc(|| "alloc", || Ok(val_scalar))?;
variables.insert(k.to_string(), var);
}
_ => { println!("not allocated k {:?} v {:?}", k, v); }
}
}
@@ -64,7 +71,7 @@ impl Circuit<bls12_381::Scalar> for LispCircuit {
let var = cs.alloc_input(|| "alloc", || Ok(*val))?;
variables.insert(k.to_string(), var);
} else {
println!("k {:?} v {:?}", k, v);
println!("not allocated k {:?} v {:?}", k, v);
}
}
@@ -96,6 +103,7 @@ impl Circuit<bls12_381::Scalar> for LispCircuit {
}
for values in alloc_value.right.iter() {
println!("{:?}", values);
let (a, b) = values;
let mut val_b = CS::one();
if b != "cs::one" {