WIP: Lightweight version of `ark-circom` (#41)
* remove ethers-core * test * return ethereum and add a feature * lint fixes --------- Co-authored-by: s1fr0 <28568419+s1fr0@users.noreply.github.com> Co-authored-by: tyshkor <tyshko1@gmail.com>
This commit is contained in:
parent
e226f90591
commit
5a1b78b320
File diff suppressed because it is too large
Load Diff
|
@ -26,11 +26,12 @@ hex = "0.4.3"
|
||||||
byteorder = "1.4.3"
|
byteorder = "1.4.3"
|
||||||
|
|
||||||
# ethereum compat
|
# ethereum compat
|
||||||
ethers-core = { git = "https://github.com/gakonst/ethers-rs", default-features = false }
|
ethers-core = { git = "https://github.com/gakonst/ethers-rs", default-features = false, optional = true }
|
||||||
|
ethers = { git = "https://github.com/gakonst/ethers-rs", features = ["abigen"], optional = true }
|
||||||
|
|
||||||
# error handling
|
# error handling
|
||||||
thiserror = "1.0.26"
|
thiserror = "1.0.26"
|
||||||
color-eyre = "0.5"
|
color-eyre = "0.6.1"
|
||||||
criterion = "0.3.4"
|
criterion = "0.3.4"
|
||||||
|
|
||||||
cfg-if = "1.0"
|
cfg-if = "1.0"
|
||||||
|
@ -39,7 +40,6 @@ cfg-if = "1.0"
|
||||||
hex-literal = "0.2.1"
|
hex-literal = "0.2.1"
|
||||||
tokio = { version = "1.7.1", features = ["macros"] }
|
tokio = { version = "1.7.1", features = ["macros"] }
|
||||||
serde_json = "1.0.64"
|
serde_json = "1.0.64"
|
||||||
ethers = { git = "https://github.com/gakonst/ethers-rs", features = ["abigen"] }
|
|
||||||
|
|
||||||
[[bench]]
|
[[bench]]
|
||||||
name = "groth16"
|
name = "groth16"
|
||||||
|
@ -48,3 +48,5 @@ harness = false
|
||||||
[features]
|
[features]
|
||||||
bench-complex-all = []
|
bench-complex-all = []
|
||||||
circom-2 = []
|
circom-2 = []
|
||||||
|
full = ["ethers", "ethers-core"]
|
||||||
|
default = ["full"]
|
||||||
|
|
|
@ -73,7 +73,7 @@ impl<E: PairingEngine> R1CSFile<E> {
|
||||||
for _ in 0..num_sections {
|
for _ in 0..num_sections {
|
||||||
let sec_type = reader.read_u32::<LittleEndian>()?;
|
let sec_type = reader.read_u32::<LittleEndian>()?;
|
||||||
let sec_size = reader.read_u64::<LittleEndian>()?;
|
let sec_size = reader.read_u64::<LittleEndian>()?;
|
||||||
let offset = reader.seek(SeekFrom::Current(0))?;
|
let offset = reader.stream_position()?;
|
||||||
sec_offsets.insert(sec_type, offset);
|
sec_offsets.insert(sec_type, offset);
|
||||||
sec_sizes.insert(sec_type, sec_size);
|
sec_sizes.insert(sec_type, sec_size);
|
||||||
reader.seek(SeekFrom::Current(sec_size as i64))?;
|
reader.seek(SeekFrom::Current(sec_size as i64))?;
|
||||||
|
|
|
@ -7,6 +7,7 @@ pub use witness::WitnessCalculator;
|
||||||
pub mod circom;
|
pub mod circom;
|
||||||
pub use circom::{CircomBuilder, CircomCircuit, CircomConfig, CircomReduction};
|
pub use circom::{CircomBuilder, CircomCircuit, CircomConfig, CircomReduction};
|
||||||
|
|
||||||
|
#[cfg(feature = "full")]
|
||||||
pub mod ethereum;
|
pub mod ethereum;
|
||||||
|
|
||||||
mod zkey;
|
mod zkey;
|
||||||
|
|
|
@ -313,8 +313,7 @@ mod runtime {
|
||||||
// NOTE: We can also get more information why it is failing, see p2str etc here:
|
// NOTE: We can also get more information why it is failing, see p2str etc here:
|
||||||
// https://github.com/iden3/circom_runtime/blob/master/js/witness_calculator.js#L52-L64
|
// https://github.com/iden3/circom_runtime/blob/master/js/witness_calculator.js#L52-L64
|
||||||
println!(
|
println!(
|
||||||
"runtime error, exiting early: {0} {1} {2} {3} {4} {5}",
|
"runtime error, exiting early: {a} {b} {c} {d} {e} {f}",
|
||||||
a, b, c, d, e, f
|
|
||||||
);
|
);
|
||||||
Err(RuntimeError::user(Box::new(ExitCode(1))))
|
Err(RuntimeError::user(Box::new(ExitCode(1))))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue