1
0
Fork 0
mirror of synced 2025-09-23 12:18:44 +00:00
This commit is contained in:
schaeff 2022-05-13 16:01:29 +02:00
parent 25f48a0386
commit 6d566481f1
14 changed files with 162 additions and 199 deletions

35
Cargo.lock generated
View file

@ -1265,6 +1265,12 @@ version = "1.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
[[package]]
name = "hashbrown"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
[[package]]
name = "hashbrown"
version = "0.11.2"
@ -1350,12 +1356,12 @@ dependencies = [
[[package]]
name = "indexmap"
version = "1.8.1"
version = "1.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee"
checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3"
dependencies = [
"autocfg",
"hashbrown 0.11.2",
"hashbrown 0.9.1",
]
[[package]]
@ -2655,6 +2661,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad"
dependencies = [
"cfg-if 1.0.0",
"serde",
"serde_json",
"wasm-bindgen-macro",
]
@ -3021,6 +3029,27 @@ dependencies = [
"zokrates_field",
]
[[package]]
name = "zokrates_js"
version = "1.0.42"
dependencies = [
"console_error_panic_hook",
"indexmap",
"js-sys",
"serde",
"serde_json",
"typed-arena",
"wasm-bindgen",
"zokrates_abi",
"zokrates_ark",
"zokrates_ast",
"zokrates_common",
"zokrates_core",
"zokrates_field",
"zokrates_interpreter",
"zokrates_proof_systems",
]
[[package]]
name = "zokrates_libsnark"
version = "0.1.0"

View file

@ -18,6 +18,7 @@ members = [
"zokrates_bellman",
"zokrates_libsnark",
"zokrates_proof_systems",
"zokrates_js",
]
exclude = ["zokrates_js"]
exclude = []

View file

@ -4,6 +4,11 @@ version = "0.1.7"
authors = ["Thibaut Schaeffer <thibaut@schaeff.fr>"]
edition = "2018"
[features]
default = ["ark", "bellman"]
ark = ["zokrates_ast/ark"]
bellman = ["zokrates_ast/bellman"]
[dependencies]
zokrates_field = { version = "0.5", path = "../zokrates_field", default-features = false }
zokrates_ast = { version = "0.1", path = "../zokrates_ast", default-features = false }

View file

@ -29,6 +29,6 @@ rand_0_8 = { version = "0.8", package = "rand" }
hex = "0.4.2"
[dev-dependencies]
zokrates_interpreter = { version = "0.1", path = "../zokrates_interpreter" }
zokrates_interpreter = { version = "0.1", path = "../zokrates_interpreter", features = ["ark"] }

View file

@ -5,8 +5,8 @@ edition = "2021"
[features]
default = ["bellman", "ark"]
bellman = ["zokrates_field/bellman", "pairing_ce"]
ark = ["ark-bls12-377"]
bellman = ["zokrates_field/bellman", "pairing_ce", "zokrates_embed/bellman"]
ark = ["ark-bls12-377", "zokrates_embed/ark"]
[dependencies]
zokrates_pest_ast = { version = "0.2.0", path = "../zokrates_pest_ast" }
@ -17,7 +17,7 @@ csv = "1"
serde_cbor = "0.11.2"
num-bigint = { version = "0.2", default-features = false }
serde_json = { version = "1.0", features = ["preserve_order"] }
zokrates_embed = { version = "0.1.0", path = "../zokrates_embed" }
zokrates_embed = { version = "0.1.0", path = "../zokrates_embed", default-features = false }
pairing_ce = { version = "^0.21", optional = true }
ark-bls12-377 = { version = "^0.3.0", features = ["curve"], default-features = false, optional = true }

View file

@ -20,7 +20,7 @@ getrandom = { version = "0.2", features = ["js", "wasm-bindgen"] }
hex = "0.4.2"
[dev-dependencies]
zokrates_interpreter = { version = "0.1", path = "../zokrates_interpreter" }
zokrates_interpreter = { version = "0.1", path = "../zokrates_interpreter", features = ["bellman"] }

View file

@ -8,8 +8,8 @@ readme = "README.md"
[features]
default = ["ark", "bellman"]
ark = ["zokrates_ast/ark"]
bellman = ["zokrates_ast/bellman"]
ark = ["zokrates_ast/ark", "zokrates_embed/ark", "zokrates_common/ark", "zokrates_interpreter/ark"]
bellman = ["zokrates_ast/bellman", "zokrates_embed/bellman", "zokrates_common/bellman", "zokrates_interpreter/bellman"]
libsnark = []
[dependencies]
@ -25,10 +25,10 @@ serde = { version = "1.0", features = ["derive"] }
serde_json = { version = "1.0", features = ["preserve_order"] }
zokrates_field = { version = "0.5.0", path = "../zokrates_field", default-features = false }
zokrates_pest_ast = { version = "0.2.0", path = "../zokrates_pest_ast" }
zokrates_common = { version = "0.1", path = "../zokrates_common" }
zokrates_embed = { version = "0.1.0", path = "../zokrates_embed" }
zokrates_interpreter = { version = "0.1", path = "../zokrates_interpreter" }
zokrates_ast = { version = "0.1", path = "../zokrates_ast" }
zokrates_common = { version = "0.1", path = "../zokrates_common", default-features = false }
zokrates_embed = { version = "0.1.0", path = "../zokrates_embed", default-features = false }
zokrates_interpreter = { version = "0.1", path = "../zokrates_interpreter", default-features = false }
zokrates_ast = { version = "0.1", path = "../zokrates_ast", default-features = false }
csv = "1"
[dev-dependencies]

View file

@ -5,20 +5,22 @@ authors = ["schaeff <thibaut@schaeff.fr>"]
edition = "2018"
[features]
default = []
default = ["ark", "bellman"]
ark = ["ark-bls12-377", "ark-bw6-761", "ark-gm17", "ark-relations", "ark-crypto-primitives", "ark-r1cs-std", "ark-std", "ark-ec", "ark-ff", "sapling-crypto_ce"]
bellman = ["bellman_ce"]
wasm = ["bellman_ce/wasm", "sapling-crypto_ce/wasm"]
multicore = ["bellman_ce/multicore", "sapling-crypto_ce/multicore"]
[dependencies]
zokrates_field = { version = "0.5.0", path = "../zokrates_field", default-features = false }
bellman_ce = { version = "^0.3", default-features = false }
sapling-crypto_ce = { version = "^0.1", default-features = false }
ark-bls12-377 = { version = "^0.3.0", features = ["curve", "r1cs"], default-features = false }
ark-bw6-761 = { version = "^0.3.0", default-features = false }
ark-gm17 = { version = "^0.3.0", default-features = false, features = ["r1cs"] }
ark-relations = { version = "^0.3.0", default-features = false }
ark-crypto-primitives = { version = "^0.3.0", default-features = false, features = ["r1cs"] }
ark-r1cs-std = { version = "^0.3.0", default-features = false }
ark-std = { version = "^0.3.0", default-features = false }
ark-ec = { version = "^0.3.0", default-features = false }
ark-ff = { version = "^0.3.0", default-features = false}
bellman_ce = { version = "^0.3", default-features = false, optional = true }
sapling-crypto_ce = { version = "^0.1", default-features = false, optional = true }
ark-bls12-377 = { version = "^0.3.0", features = ["curve", "r1cs"], default-features = false, optional = true }
ark-bw6-761 = { version = "^0.3.0", default-features = false, optional = true }
ark-gm17 = { version = "^0.3.0", default-features = false, features = ["r1cs"], optional = true }
ark-relations = { version = "^0.3.0", default-features = false, optional = true }
ark-crypto-primitives = { version = "^0.3.0", default-features = false, features = ["r1cs"], optional = true }
ark-r1cs-std = { version = "^0.3.0", default-features = false, optional = true }
ark-std = { version = "^0.3.0", default-features = false, optional = true }
ark-ec = { version = "^0.3.0", default-features = false, optional = true }
ark-ff = { version = "^0.3.0", default-features = false, optional = true}

View file

@ -1,4 +1,6 @@
#[cfg(feature = "ark")]
pub mod ark;
#[cfg(feature = "bellman")]
pub mod bellman;
#[derive(Debug, Clone)]

View file

@ -5,16 +5,21 @@ edition = "2021"
[features]
default = ["bellman", "ark"]
bellman = ["zokrates_field/bellman", "pairing_ce"]
ark = ["ark-bls12-377"]
bellman = ["zokrates_field/bellman", "pairing_ce", "zokrates_embed/bellman", "zokrates_ast/bellman"]
ark = ["ark-bls12-377", "zokrates_embed/ark", "zokrates_ast/ark"]
[dependencies]
zokrates_field = { version = "0.5", path = "../zokrates_field", default-features = false }
zokrates_ast = { version = "0.1", path = "../zokrates_ast", default-features = false }
zokrates_embed = { version = "0.1.0", path = "../zokrates_embed", default-features = false }
num = { version = "0.1.36", default-features = false }
num-bigint = { version = "0.2", default-features = false }
pairing_ce = { version = "^0.21", optional = true }
ark-bls12-377 = { version = "^0.3.0", features = ["curve"], default-features = false, optional = true }
zokrates_embed = { version = "0.1.0", path = "../zokrates_embed" }
pairing_ce = { version = "^0.21", optional = true }
serde = { version = "1.0", features = ["derive"] }

223
zokrates_js/Cargo.lock generated
View file

@ -380,7 +380,6 @@ dependencies = [
"num_cpus",
"pairing_ce",
"rand 0.4.6",
"web-sys",
]
[[package]]
@ -423,16 +422,6 @@ dependencies = [
"opaque-debug 0.3.0",
]
[[package]]
name = "blake2-rfc"
version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400"
dependencies = [
"arrayvec 0.4.12",
"constant_time_eq",
]
[[package]]
name = "blake2-rfc_bellman_edition"
version = "0.0.1"
@ -566,78 +555,6 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
[[package]]
name = "crossbeam"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69323bff1fb41c635347b8ead484a5ca6c3f11914d784170b158d8449ab07f8e"
dependencies = [
"cfg-if 0.1.10",
"crossbeam-channel",
"crossbeam-deque",
"crossbeam-epoch",
"crossbeam-queue",
"crossbeam-utils",
]
[[package]]
name = "crossbeam-channel"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87"
dependencies = [
"crossbeam-utils",
"maybe-uninit",
]
[[package]]
name = "crossbeam-deque"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed"
dependencies = [
"crossbeam-epoch",
"crossbeam-utils",
"maybe-uninit",
]
[[package]]
name = "crossbeam-epoch"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
dependencies = [
"autocfg",
"cfg-if 0.1.10",
"crossbeam-utils",
"lazy_static",
"maybe-uninit",
"memoffset",
"scopeguard",
]
[[package]]
name = "crossbeam-queue"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
dependencies = [
"cfg-if 0.1.10",
"crossbeam-utils",
"maybe-uninit",
]
[[package]]
name = "crossbeam-utils"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
dependencies = [
"autocfg",
"cfg-if 0.1.10",
"lazy_static",
]
[[package]]
name = "crunchy"
version = "0.2.2"
@ -967,10 +884,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
dependencies = [
"cfg-if 1.0.0",
"js-sys",
"libc",
"wasi",
"wasm-bindgen",
]
[[package]]
@ -1120,27 +1035,12 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
[[package]]
name = "maybe-uninit"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
[[package]]
name = "memchr"
version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
[[package]]
name = "memoffset"
version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa"
dependencies = [
"autocfg",
]
[[package]]
name = "miniz_oxide"
version = "0.4.4"
@ -1366,22 +1266,6 @@ dependencies = [
"sha-1",
]
[[package]]
name = "phase2"
version = "0.2.2"
source = "git+https://github.com/Zokrates/phase2#971123223b9cb8c628e885120b120f1ddb413553"
dependencies = [
"bellman_ce",
"blake2",
"blake2-rfc",
"byteorder",
"crossbeam",
"getrandom",
"num_cpus",
"pairing_ce",
"rand 0.4.6",
]
[[package]]
name = "pin-project-lite"
version = "0.2.7"
@ -1637,12 +1521,6 @@ dependencies = [
"tiny-keccak",
]
[[package]]
name = "scopeguard"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[package]]
name = "semver"
version = "0.11.0"
@ -2020,16 +1898,6 @@ version = "0.2.78"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc"
[[package]]
name = "web-sys"
version = "0.3.55"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb"
dependencies = [
"js-sys",
"wasm-bindgen",
]
[[package]]
name = "winapi"
version = "0.3.9"
@ -2084,24 +1952,21 @@ dependencies = [
[[package]]
name = "zokrates_abi"
version = "0.1.6"
version = "0.1.7"
dependencies = [
"serde",
"serde_derive",
"serde_json",
"zokrates_core",
"zokrates_ast",
"zokrates_field",
]
[[package]]
name = "zokrates_common"
name = "zokrates_ark"
version = "0.1.0"
[[package]]
name = "zokrates_core"
version = "0.6.11"
dependencies = [
"ark-bls12-377",
"ark-bn254",
"ark-bw6-761",
"ark-crypto-primitives",
"ark-ec",
@ -2113,31 +1978,54 @@ dependencies = [
"ark-poly-commit",
"ark-relations",
"ark-serialize",
"bellman_ce",
"digest 0.9.0",
"hex",
"rand 0.8.5",
"sha3 0.9.1",
"zokrates_ast",
"zokrates_field",
"zokrates_proof_systems",
]
[[package]]
name = "zokrates_ast"
version = "0.1.0"
dependencies = [
"ark-bls12-377",
"cfg-if 0.1.10",
"csv",
"num-bigint 0.2.6",
"serde",
"serde_cbor",
"serde_json",
"zokrates_embed",
"zokrates_field",
"zokrates_pest_ast",
]
[[package]]
name = "zokrates_common"
version = "0.1.0"
[[package]]
name = "zokrates_core"
version = "0.6.12"
dependencies = [
"cfg-if 0.1.10",
"csv",
"digest 0.9.0",
"ethabi",
"getrandom",
"hex",
"lazy_static",
"log",
"num",
"num-bigint 0.2.6",
"phase2",
"primitive-types",
"rand 0.4.6",
"rand 0.8.5",
"reduce",
"regex 0.2.11",
"serde",
"serde_cbor",
"serde_json",
"sha3 0.9.1",
"typed-arena",
"zokrates_ast",
"zokrates_common",
"zokrates_embed",
"zokrates_field",
"zokrates_interpreter",
"zokrates_pest_ast",
]
@ -2154,7 +2042,6 @@ dependencies = [
"ark-r1cs-std",
"ark-relations",
"ark-std",
"bellman_ce",
"sapling-crypto_ce",
"zokrates_field",
]
@ -2170,7 +2057,6 @@ dependencies = [
"ark-ec",
"ark-ff",
"ark-serialize",
"bellman_ce",
"bincode",
"lazy_static",
"num-bigint 0.2.6",
@ -2182,9 +2068,22 @@ dependencies = [
"sha2",
]
[[package]]
name = "zokrates_interpreter"
version = "0.1.0"
dependencies = [
"ark-bls12-377",
"num",
"num-bigint 0.2.6",
"serde",
"zokrates_ast",
"zokrates_embed",
"zokrates_field",
]
[[package]]
name = "zokrates_js"
version = "1.0.41"
version = "1.0.42"
dependencies = [
"console_error_panic_hook",
"indexmap",
@ -2194,6 +2093,7 @@ dependencies = [
"typed-arena",
"wasm-bindgen",
"zokrates_abi",
"zokrates_ark",
"zokrates_common",
"zokrates_core",
"zokrates_field",
@ -2217,3 +2117,18 @@ dependencies = [
"pest-ast",
"zokrates_parser",
]
[[package]]
name = "zokrates_proof_systems"
version = "0.1.0"
dependencies = [
"cfg-if 0.1.10",
"ethabi",
"hex",
"primitive-types",
"rand 0.4.6",
"regex 0.2.11",
"serde",
"zokrates_ast",
"zokrates_field",
]

View file

@ -13,10 +13,14 @@ serde = { version = "^1.0.59", features = ["derive"] }
serde_json = { version = "1.0", features = ["preserve_order"] }
wasm-bindgen = { version = "0.2.46", features = ["serde-serialize"] }
typed-arena = "1.4.1"
zokrates_core = { path = "../zokrates_core", features = ["wasm", "ark"], default-features = false }
zokrates_common = { path = "../zokrates_common" }
zokrates_field = { path = "../zokrates_field" }
zokrates_abi = { path = "../zokrates_abi" }
zokrates_core = { path = "../zokrates_core", default-features = false, features = ["ark"] }
zokrates_ark = { path = "../zokrates_ark", default-features = false}
zokrates_common = { path = "../zokrates_common", default-features = false, features = ["ark"] }
zokrates_proof_systems = { path = "../zokrates_proof_systems", default-features = false }
zokrates_ast = { path = "../zokrates_ast", default-features = false, features = ["ark"] }
zokrates_interpreter = { path = "../zokrates_interpreter", default-features = false, features = ["ark"] }
zokrates_field = { path = "../zokrates_field", default-features = false }
zokrates_abi = { path = "../zokrates_abi", default-features = false, features = ["ark"] }
console_error_panic_hook = "0.1.6"
indexmap = "~1.6.2" # see https://github.com/rustwasm/wasm-bindgen/issues/2770#issuecomment-1041102532

View file

@ -6,23 +6,23 @@ use std::path::PathBuf;
use typed_arena::Arena;
use wasm_bindgen::prelude::*;
use zokrates_abi::{parse_strict, Decode, Encode, Inputs};
use zokrates_ark::Ark;
use zokrates_ast::ir;
use zokrates_ast::ir::ProgEnum;
use zokrates_ast::typed::abi::Abi;
use zokrates_ast::typed::types::{ConcreteSignature, ConcreteType};
use zokrates_common::helpers::{CurveParameter, SchemeParameter};
use zokrates_common::Resolver;
use zokrates_core::compile::{
compile as core_compile, CompilationArtifacts, CompileConfig, CompileError,
};
use zokrates_core::imports::Error;
use zokrates_core::ir;
use zokrates_core::ir::ProgEnum;
use zokrates_core::proof_system::ark::Ark;
use zokrates_core::proof_system::groth16::G16;
use zokrates_core::proof_system::{
use zokrates_field::{Bls12_377Field, Bls12_381Field, Bn128Field, Bw6_761Field, Field};
use zokrates_proof_systems::groth16::G16;
use zokrates_proof_systems::{
Backend, Marlin, NonUniversalBackend, NonUniversalScheme, Proof, Scheme,
SolidityCompatibleField, SolidityCompatibleScheme, UniversalBackend, UniversalScheme, GM17,
};
use zokrates_core::typed_absy::abi::Abi;
use zokrates_core::typed_absy::types::{ConcreteSignature, ConcreteType};
use zokrates_field::{Bls12_377Field, Bls12_381Field, Bn128Field, Bw6_761Field, Field};
#[wasm_bindgen]
pub struct CompilationResult {
@ -170,7 +170,7 @@ mod internal {
(inputs, signature)
};
let interpreter = ir::Interpreter::default();
let interpreter = zokrates_interpreter::Interpreter::default();
let witness = interpreter
.execute(program, &inputs.encode())

View file

@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
zokrates_ast = { version = "0.1", path = "../zokrates_ast" }
zokrates_ast = { version = "0.1", path = "../zokrates_ast", default-features = false }
serde = { version = "1.0", features = ["derive"] }
zokrates_field = { version = "0.5.0", path = "../zokrates_field", default-features = false }
hex = "0.4.2"