diff --git a/.circleci/config.yml b/.circleci/config.yml index 67f4964ee7..6c50d091a8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -44,7 +44,7 @@ commands: jobs: check-style: docker: - - image: cimg/rust:1.63 + - image: cimg/rust:1.65 resource_class: xlarge steps: - checkout @@ -59,7 +59,7 @@ jobs: clippy: docker: - - image: cimg/rust:1.63 + - image: cimg/rust:1.65 resource_class: xlarge steps: - checkout @@ -77,7 +77,7 @@ jobs: leo-executable: docker: - - image: cimg/rust:1.63 + - image: cimg/rust:1.65 resource_class: xlarge steps: - checkout @@ -96,7 +96,7 @@ jobs: leo-new: docker: - - image: cimg/rust:1.63 + - image: cimg/rust:1.65 resource_class: xlarge steps: - attach_workspace: @@ -109,7 +109,7 @@ jobs: leo-clean: docker: - - image: cimg/rust:1.63 + - image: cimg/rust:1.65 resource_class: xlarge steps: - attach_workspace: @@ -122,7 +122,7 @@ jobs: test-examples: docker: - - image: cimg/rust:1.63 + - image: cimg/rust:1.65 resource_class: xlarge steps: - attach_workspace: diff --git a/.resources/release-version b/.resources/release-version index 01558e339a..05f629f1b7 100644 --- a/.resources/release-version +++ b/.resources/release-version @@ -1 +1 @@ -v1.5.3 \ No newline at end of file +v1.6.0 \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 9582edab74..b1e0915a83 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -50,11 +50,11 @@ dependencies = [ [[package]] name = "ahash" -version = "0.7.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "bf6ccdb167abbf410dcb915cabd428929d7f6a04980b54a11f26a39f1c7f7107" dependencies = [ - "getrandom", + "cfg-if", "once_cell", "version_check", ] @@ -70,8 +70,8 @@ dependencies = [ [[package]] name = "aleo" -version = "0.2.0" -source = "git+https://github.com/AleoHQ/aleo.git?rev=05a1318#05a13182fd7a21ad75b6bd6d3784eb79351e9fbb" +version = "0.3.0" +source = "git+https://github.com/AleoHQ/aleo.git#11e501cd249c0e722ddc2de6f2bf94749002c542" dependencies = [ "anyhow", "clap", @@ -82,7 +82,7 @@ dependencies = [ "self_update", "serde", "serde_json", - "snarkvm", + "snarkvm 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", "thiserror", "tokio", "walkdir", @@ -947,6 +947,12 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ff8ae62cd3a9102e5637afc8452c55acf3844001bd5374e0b0bd7b6616c038" dependencies = [ "ahash", ] @@ -1094,7 +1100,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.12.3", "rayon", "serde", ] @@ -1167,7 +1173,7 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "leo-abnf" -version = "1.5.3" +version = "1.6.0" dependencies = [ "abnf", "anyhow", @@ -1175,7 +1181,7 @@ dependencies = [ [[package]] name = "leo-ast" -version = "1.5.3" +version = "1.6.0" dependencies = [ "criterion", "indexmap", @@ -1189,7 +1195,7 @@ dependencies = [ [[package]] name = "leo-compiler" -version = "1.5.3" +version = "1.6.0" dependencies = [ "leo-ast", "leo-errors", @@ -1200,13 +1206,13 @@ dependencies = [ "serde", "serde_yaml", "sha2", - "snarkvm", + "snarkvm 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", "tempfile", ] [[package]] name = "leo-core" -version = "1.5.3" +version = "1.6.0" dependencies = [ "leo-ast", "leo-errors", @@ -1215,7 +1221,7 @@ dependencies = [ [[package]] name = "leo-errors" -version = "1.5.3" +version = "1.6.0" dependencies = [ "anyhow", "backtrace", @@ -1229,7 +1235,7 @@ dependencies = [ [[package]] name = "leo-lang" -version = "1.5.3" +version = "1.6.0" dependencies = [ "aleo", "ansi_term", @@ -1255,7 +1261,7 @@ dependencies = [ "self_update", "serde", "serde_json", - "snarkvm", + "snarkvm 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", "sys-info", "test_dir", "toml", @@ -1267,7 +1273,7 @@ dependencies = [ [[package]] name = "leo-package" -version = "1.5.3" +version = "1.6.0" dependencies = [ "indexmap", "lazy_static", @@ -1279,7 +1285,7 @@ dependencies = [ [[package]] name = "leo-parser" -version = "1.5.3" +version = "1.6.0" dependencies = [ "clap", "indexmap", @@ -1292,13 +1298,13 @@ dependencies = [ "serde_json", "serde_yaml", "smallvec", - "snarkvm-console", + "snarkvm-console 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", "tracing", ] [[package]] name = "leo-passes" -version = "1.5.3" +version = "1.6.0" dependencies = [ "indexmap", "itertools", @@ -1312,7 +1318,7 @@ dependencies = [ [[package]] name = "leo-span" -version = "1.5.3" +version = "1.6.0" dependencies = [ "fxhash", "indexmap", @@ -1322,7 +1328,7 @@ dependencies = [ [[package]] name = "leo-test-framework" -version = "1.5.3" +version = "1.6.0" dependencies = [ "backtrace", "clap", @@ -2319,8 +2325,9 @@ dependencies = [ [[package]] name = "snarkvm" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ee955079a5a80cfadbb030003a078c4517b1f6ff8bd9171257f2c595db28e3" dependencies = [ "anyhow", "clap", @@ -2332,13 +2339,40 @@ dependencies = [ "rayon", "self_update", "serde_json", - "snarkvm-algorithms", - "snarkvm-circuit", - "snarkvm-console", - "snarkvm-fields", - "snarkvm-parameters", - "snarkvm-synthesizer", - "snarkvm-utilities", + "snarkvm-algorithms 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-fields 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-parameters 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-synthesizer 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-utilities 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror", + "ureq", + "walkdir", +] + +[[package]] +name = "snarkvm" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "anyhow", + "clap", + "colored", + "indexmap", + "once_cell", + "parking_lot", + "rand", + "rayon", + "self_update", + "serde_json", + "snarkvm-algorithms 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-fields 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-parameters 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-synthesizer 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-utilities 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", "thiserror", "ureq", "walkdir", @@ -2346,12 +2380,13 @@ dependencies = [ [[package]] name = "snarkvm-algorithms" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d80c1bf577d1b19f64e9de61bca1cdeefb98d9aa0a7e433712f271be7f2b60b3" dependencies = [ "aleo-std", "anyhow", - "hashbrown", + "hashbrown 0.13.1", "hex", "itertools", "parking_lot", @@ -2362,270 +2397,570 @@ dependencies = [ "serde", "sha2", "smallvec", - "snarkvm-curves", - "snarkvm-fields", - "snarkvm-parameters", - "snarkvm-r1cs", - "snarkvm-utilities", + "snarkvm-curves 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-fields 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-parameters 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-r1cs 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-utilities 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror", +] + +[[package]] +name = "snarkvm-algorithms" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "aleo-std", + "anyhow", + "hashbrown 0.13.1", + "hex", + "itertools", + "parking_lot", + "rand", + "rand_chacha", + "rand_core", + "rayon", + "serde", + "sha2", + "smallvec", + "snarkvm-curves 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-fields 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-parameters 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-r1cs 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-utilities 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", "thiserror", ] [[package]] name = "snarkvm-circuit" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e045b36c6c311692bbaf2e41d08e765703369e2e05c4695b856fa0515dbbe715" dependencies = [ - "snarkvm-circuit-account", - "snarkvm-circuit-algorithms", - "snarkvm-circuit-collections", - "snarkvm-circuit-environment", - "snarkvm-circuit-network", - "snarkvm-circuit-program", - "snarkvm-circuit-types", + "snarkvm-circuit-account 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-algorithms 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-collections 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-environment 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-network 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-program 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-circuit" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-circuit-account 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-algorithms 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-collections 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-environment 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-network 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-program 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-circuit-account" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36a6d3dbf68ae193950a9c3fcd40bbdffdc570ac871be4a3916a7772e15e49c9" dependencies = [ - "snarkvm-circuit-algorithms", - "snarkvm-circuit-network", - "snarkvm-circuit-types", - "snarkvm-console-account", + "snarkvm-circuit-algorithms 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-network 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-account 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-circuit-account" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-circuit-algorithms 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-network 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-account 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-circuit-algorithms" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd621c6a02176c6cb7f8acb64a90ca980a99b2c0e8e7f488f36c1587b45a13a7" dependencies = [ - "snarkvm-circuit-types", - "snarkvm-console-algorithms", - "snarkvm-fields", + "snarkvm-circuit-types 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-algorithms 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-fields 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-circuit-algorithms" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-circuit-types 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-algorithms 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-fields 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-circuit-collections" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6601cde278b7dd60d0a16b7f39c36747522530ba9dea88bc7ffca8fd12f6435" dependencies = [ - "snarkvm-circuit-algorithms", - "snarkvm-circuit-types", - "snarkvm-console-collections", + "snarkvm-circuit-algorithms 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-collections 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-circuit-collections" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-circuit-algorithms 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-collections 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-circuit-environment" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40e5a241d51ede31a1fc31abdcbcc63ad9c4bcd9eb6e67e9060ae9e4a540d91b" dependencies = [ "indexmap", "itertools", "nom", "num-traits", "once_cell", - "snarkvm-circuit-environment-witness", - "snarkvm-console-network", - "snarkvm-curves", - "snarkvm-fields", - "snarkvm-r1cs", - "snarkvm-utilities", + "snarkvm-circuit-environment-witness 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-network 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-curves 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-fields 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-r1cs 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-utilities 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-circuit-environment" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "indexmap", + "itertools", + "nom", + "num-traits", + "once_cell", + "snarkvm-circuit-environment-witness 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-network 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-curves 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-fields 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-r1cs 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-utilities 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-circuit-environment-witness" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd81919f5f104dd355c4e6ddff134cc95a438ceba159a2e80acee8cf6d5aeedd" + +[[package]] +name = "snarkvm-circuit-environment-witness" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" [[package]] name = "snarkvm-circuit-network" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ac7737b6b78a946b7b4201d7d0e2f4a73b7c38b73eb738f0bbb5ccc467f259f" dependencies = [ - "snarkvm-circuit-algorithms", - "snarkvm-circuit-collections", - "snarkvm-circuit-types", - "snarkvm-console-network", + "snarkvm-circuit-algorithms 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-collections 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-network 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-circuit-network" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-circuit-algorithms 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-collections 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-network 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-circuit-program" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "882c466f8b8df879e03a3ed90c5aa5f9a7cd706c9f84a473791083e1eee2b22a" dependencies = [ - "snarkvm-circuit-account", - "snarkvm-circuit-collections", - "snarkvm-circuit-network", - "snarkvm-circuit-types", - "snarkvm-console-program", - "snarkvm-utilities", + "snarkvm-circuit-account 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-collections 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-network 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-program 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-utilities 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-circuit-program" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-circuit-account 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-collections 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-network 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-program 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-utilities 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-circuit-types" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "857b38f872faadf3d81aed0fe8634468f7a1ada7b221b4629abf81948701f5e9" dependencies = [ - "snarkvm-circuit-environment", - "snarkvm-circuit-types-address", - "snarkvm-circuit-types-boolean", - "snarkvm-circuit-types-field", - "snarkvm-circuit-types-group", - "snarkvm-circuit-types-integers", - "snarkvm-circuit-types-scalar", - "snarkvm-circuit-types-string", + "snarkvm-circuit-environment 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-address 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-boolean 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-field 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-group 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-integers 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-scalar 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-string 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-circuit-types" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-circuit-environment 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-address 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-boolean 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-field 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-group 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-integers 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-scalar 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-string 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-circuit-types-address" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "887a8b7173aa736964292179bcb195517570516a3e829b04135b836f5dc72d8b" dependencies = [ - "snarkvm-circuit-environment", - "snarkvm-circuit-types-boolean", - "snarkvm-circuit-types-field", - "snarkvm-circuit-types-group", - "snarkvm-circuit-types-scalar", - "snarkvm-console-types-address", + "snarkvm-circuit-environment 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-boolean 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-field 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-group 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-scalar 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-address 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-circuit-types-address" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-circuit-environment 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-boolean 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-field 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-group 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-scalar 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-address 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-circuit-types-boolean" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "107dfb510d44ef32702044c782fa0ed75b6ed437c1e2b48c0aeded4aec9ed4d1" dependencies = [ - "snarkvm-circuit-environment", - "snarkvm-console-types-boolean", + "snarkvm-circuit-environment 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-boolean 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-circuit-types-boolean" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-circuit-environment 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-boolean 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-circuit-types-field" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c0254a1799ea70f1ef28f4c19ee520f8b41874caee5566f7f0b27d6c3da9f95" dependencies = [ - "snarkvm-circuit-environment", - "snarkvm-circuit-types-boolean", - "snarkvm-console-types-field", + "snarkvm-circuit-environment 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-boolean 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-field 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-circuit-types-field" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-circuit-environment 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-boolean 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-field 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-circuit-types-group" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a63cb6a31253e06e68c91178b818a7ac69dc27b8b67e495843c33416a6fc9882" dependencies = [ - "snarkvm-circuit-environment", - "snarkvm-circuit-types-boolean", - "snarkvm-circuit-types-field", - "snarkvm-circuit-types-scalar", - "snarkvm-console-types-group", + "snarkvm-circuit-environment 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-boolean 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-field 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-scalar 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-group 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-circuit-types-group" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-circuit-environment 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-boolean 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-field 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-scalar 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-group 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-circuit-types-integers" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f4adc948ea805c2c17e8a130dd0781f98f447d654de6d2c55a267b1597eba7" dependencies = [ - "snarkvm-circuit-environment", - "snarkvm-circuit-types-boolean", - "snarkvm-circuit-types-field", - "snarkvm-console-types-integers", + "snarkvm-circuit-environment 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-boolean 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-field 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-integers 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-circuit-types-integers" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-circuit-environment 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-boolean 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-field 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-integers 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-circuit-types-scalar" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03d1fcd62005b52899ef2ceb8fcada347087d2a7320b7246b0337485efe7cbab" dependencies = [ - "snarkvm-circuit-environment", - "snarkvm-circuit-types-boolean", - "snarkvm-circuit-types-field", - "snarkvm-console-types-scalar", + "snarkvm-circuit-environment 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-boolean 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-field 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-scalar 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-circuit-types-scalar" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-circuit-environment 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-boolean 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-field 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-scalar 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-circuit-types-string" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "433ce9fd669c08a2a2ca8412213c3de8b225460e1927e8233a26460b0f034ed4" dependencies = [ - "snarkvm-circuit-environment", - "snarkvm-circuit-types-boolean", - "snarkvm-circuit-types-field", - "snarkvm-circuit-types-integers", - "snarkvm-console-types-string", + "snarkvm-circuit-environment 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-boolean 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-field 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit-types-integers 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-string 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-circuit-types-string" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-circuit-environment 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-boolean 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-field 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit-types-integers 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-string 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-console" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38405a802ef4da7dba19f836259741141f060c74306ade86e09d567e2e634252" dependencies = [ - "snarkvm-console-account", - "snarkvm-console-algorithms", - "snarkvm-console-collections", - "snarkvm-console-network", - "snarkvm-console-program", - "snarkvm-console-types", + "snarkvm-console-account 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-algorithms 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-collections 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-network 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-program 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-console" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-console-account 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-algorithms 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-collections 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-network 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-program 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-console-account" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "474e389cf95945b04d2e66ee7e2913ee1ff4ee884e0b6f397b15171d8674b191" dependencies = [ "bs58", - "snarkvm-console-network", - "snarkvm-console-types", + "snarkvm-console-network 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-console-account" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "bs58", + "snarkvm-console-network 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-console-algorithms" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e9d48a8a4b95395b933732fd46f55b52004ab52a64f0881f03e5d7561f6c995" dependencies = [ "blake2s_simd", "smallvec", - "snarkvm-console-types", - "snarkvm-fields", - "snarkvm-utilities", + "snarkvm-console-types 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-fields 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-utilities 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-console-algorithms" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "blake2s_simd", + "smallvec", + "snarkvm-console-types 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-fields 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-utilities 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-console-collections" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7254ffeb5da08c2bb720bc1fddf7f1304ff769fe34091a6e2d133927cd05e99e" dependencies = [ "aleo-std", "rayon", - "snarkvm-console-algorithms", - "snarkvm-console-types", + "snarkvm-console-algorithms 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-console-collections" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "aleo-std", + "rayon", + "snarkvm-console-algorithms 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-console-network" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef0f2967aada47f1ade56d75670a50c2c7745fdbe38e6ce8bf836ba44fb5b9b5" dependencies = [ "anyhow", "itertools", "lazy_static", "once_cell", "serde", - "snarkvm-algorithms", - "snarkvm-console-algorithms", - "snarkvm-console-collections", - "snarkvm-console-network-environment", - "snarkvm-console-types", - "snarkvm-curves", - "snarkvm-fields", - "snarkvm-parameters", - "snarkvm-utilities", + "snarkvm-algorithms 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-algorithms 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-collections 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-network-environment 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-curves 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-fields 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-parameters 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-utilities 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-console-network" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "anyhow", + "itertools", + "lazy_static", + "once_cell", + "serde", + "snarkvm-algorithms 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-algorithms 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-collections 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-network-environment 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-curves 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-fields 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-parameters 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-utilities 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-console-network-environment" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7e906f01c09001325cb3fbaeb303c4730f1130acd04eb2db044f74961494f65" dependencies = [ "anyhow", "bech32", @@ -2634,15 +2969,33 @@ dependencies = [ "num-traits", "rand", "serde", - "snarkvm-curves", - "snarkvm-fields", - "snarkvm-utilities", + "snarkvm-curves 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-fields 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-utilities 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-console-network-environment" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "anyhow", + "bech32", + "itertools", + "nom", + "num-traits", + "rand", + "serde", + "snarkvm-curves 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-fields 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-utilities 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-console-program" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ef47fdf4f98516fd3ebd397c207ce997bf9466498a6a676feb99034e6a2a1a4" dependencies = [ "enum_index", "enum_index_derive", @@ -2651,114 +3004,240 @@ dependencies = [ "num-traits", "once_cell", "serde_json", - "snarkvm-console-account", - "snarkvm-console-collections", - "snarkvm-console-network", - "snarkvm-console-types", + "snarkvm-console-account 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-collections 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-network 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-console-program" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "enum_index", + "enum_index_derive", + "indexmap", + "num-derive", + "num-traits", + "once_cell", + "serde_json", + "snarkvm-console-account 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-collections 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-network 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-console-types" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b7eabf78a89fb83b1992a1c9d480b00ae7915a8eabd317e9ad3271f7c95339" dependencies = [ - "snarkvm-console-network-environment", - "snarkvm-console-types-address", - "snarkvm-console-types-boolean", - "snarkvm-console-types-field", - "snarkvm-console-types-group", - "snarkvm-console-types-integers", - "snarkvm-console-types-scalar", - "snarkvm-console-types-string", + "snarkvm-console-network-environment 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-address 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-boolean 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-field 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-group 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-integers 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-scalar 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-string 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-console-types" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-console-network-environment 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-address 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-boolean 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-field 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-group 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-integers 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-scalar 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-string 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-console-types-address" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa024487312290fcf7736cfaf0b4e213a3e7d38511647a5f333ad554fb611943" dependencies = [ - "snarkvm-console-network-environment", - "snarkvm-console-types-boolean", - "snarkvm-console-types-field", - "snarkvm-console-types-group", + "snarkvm-console-network-environment 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-boolean 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-field 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-group 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-console-types-address" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-console-network-environment 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-boolean 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-field 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-group 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-console-types-boolean" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c3cf5be8044368566d76abe41a3713c5cf03d76d9b7d223cae0faacc3cce586" dependencies = [ - "snarkvm-console-network-environment", + "snarkvm-console-network-environment 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-console-types-boolean" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-console-network-environment 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-console-types-field" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcb105a05d8aa91c46af3695bbe33d0645f397cc3d76ccda918b363d22a6dcf" dependencies = [ - "snarkvm-console-network-environment", - "snarkvm-console-types-boolean", + "snarkvm-console-network-environment 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-boolean 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-console-types-field" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-console-network-environment 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-boolean 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-console-types-group" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9b41dc591dd9763e3f5b8293b3beff92ef69853f78d83184c7bc6b721ec0e80" dependencies = [ - "snarkvm-console-network-environment", - "snarkvm-console-types-boolean", - "snarkvm-console-types-field", - "snarkvm-console-types-scalar", + "snarkvm-console-network-environment 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-boolean 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-field 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-scalar 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-console-types-group" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-console-network-environment 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-boolean 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-field 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-scalar 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-console-types-integers" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884a8093c486099d723c2887caba4b3f7a9fe702081e877616ce35189dc46fd5" dependencies = [ - "snarkvm-console-network-environment", - "snarkvm-console-types-boolean", - "snarkvm-console-types-field", + "snarkvm-console-network-environment 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-boolean 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-field 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-console-types-integers" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-console-network-environment 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-boolean 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-field 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-console-types-scalar" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d90ce234634d04c31c2e035ccde7402874b85aa124ad9e3aa97b6146463eafe" dependencies = [ - "snarkvm-console-network-environment", - "snarkvm-console-types-boolean", - "snarkvm-console-types-field", + "snarkvm-console-network-environment 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-boolean 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-field 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-console-types-scalar" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-console-network-environment 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-boolean 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-field 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-console-types-string" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92f47dd9bf2f5f355398cdf8ce43cf40591d23f0a26f3c2f28d35d1719083348" dependencies = [ - "snarkvm-console-network-environment", - "snarkvm-console-types-boolean", - "snarkvm-console-types-field", - "snarkvm-console-types-integers", + "snarkvm-console-network-environment 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-boolean 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-field 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console-types-integers 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "snarkvm-console-types-string" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "snarkvm-console-network-environment 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-boolean 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-field 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console-types-integers 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", ] [[package]] name = "snarkvm-curves" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f6415d2e22117e2b31e068cf557579ac3a4a11909931f6bf206c7e44ef0634a" dependencies = [ "rand", "rustc_version", "serde", - "snarkvm-fields", - "snarkvm-utilities", + "snarkvm-fields 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-utilities 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror", +] + +[[package]] +name = "snarkvm-curves" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "rand", + "rustc_version", + "serde", + "snarkvm-fields 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-utilities 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", "thiserror", ] [[package]] name = "snarkvm-fields" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51c04399072effc54fdc177d7aae1a0c8762f21a1c5ce1b557ecf29603ca9fd9" dependencies = [ "aleo-std", "anyhow", @@ -2768,14 +3247,32 @@ dependencies = [ "rand", "rayon", "serde", - "snarkvm-utilities", + "snarkvm-utilities 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror", +] + +[[package]] +name = "snarkvm-fields" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "aleo-std", + "anyhow", + "derivative", + "itertools", + "num-traits", + "rand", + "rayon", + "serde", + "snarkvm-utilities 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", "thiserror", ] [[package]] name = "snarkvm-parameters" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d175f17227fe2073fb7a9d60f3aa5bbb3311518fd245107b6e075581e8c39fd5" dependencies = [ "aleo-std", "anyhow", @@ -2792,31 +3289,74 @@ dependencies = [ "rand", "serde_json", "sha2", - "snarkvm-curves", - "snarkvm-utilities", + "snarkvm-curves 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-utilities 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror", +] + +[[package]] +name = "snarkvm-parameters" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "aleo-std", + "anyhow", + "bincode", + "cfg-if", + "colored", + "curl", + "hex", + "indexmap", + "itertools", + "lazy_static", + "parking_lot", + "paste", + "rand", + "serde_json", + "sha2", + "snarkvm-curves 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-utilities 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", "thiserror", ] [[package]] name = "snarkvm-r1cs" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3467e1d24e0cbf020c1a18bd281f81812c91b304500dc26c6c937810cbaef266" dependencies = [ "anyhow", "cfg-if", "fxhash", "indexmap", "itertools", - "snarkvm-curves", - "snarkvm-fields", - "snarkvm-utilities", + "snarkvm-curves 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-fields 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-utilities 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror", +] + +[[package]] +name = "snarkvm-r1cs" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "anyhow", + "cfg-if", + "fxhash", + "indexmap", + "itertools", + "snarkvm-curves 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-fields 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-utilities 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", "thiserror", ] [[package]] name = "snarkvm-synthesizer" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc8a8b561fff0a321c493429d398baea9c6de7601b00631b5ab7af0e16a63290" dependencies = [ "anyhow", "blake2", @@ -2827,21 +3367,49 @@ dependencies = [ "paste", "rand", "rayon", + "reqwest", "serde", "serde_json", - "snarkvm-algorithms", - "snarkvm-circuit", - "snarkvm-console", - "snarkvm-curves", - "snarkvm-fields", - "snarkvm-utilities", + "snarkvm-algorithms 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-circuit 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-console 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-curves 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-fields 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "snarkvm-utilities 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing", +] + +[[package]] +name = "snarkvm-synthesizer" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "anyhow", + "blake2", + "colored", + "indexmap", + "once_cell", + "parking_lot", + "paste", + "rand", + "rayon", + "reqwest", + "serde", + "serde_json", + "snarkvm-algorithms 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-circuit 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-console 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-curves 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-fields 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", + "snarkvm-utilities 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", "tracing", ] [[package]] name = "snarkvm-utilities" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1e215a238770b31f7449f8d98e51a3a4b2b891eaa0cce5d7de762dfc861ac8e" dependencies = [ "aleo-std", "anyhow", @@ -2852,14 +3420,43 @@ dependencies = [ "rand_xorshift", "rayon", "serde", - "snarkvm-utilities-derives", + "snarkvm-utilities-derives 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror", +] + +[[package]] +name = "snarkvm-utilities" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" +dependencies = [ + "aleo-std", + "anyhow", + "bincode", + "num-bigint", + "num_cpus", + "rand", + "rand_xorshift", + "rayon", + "serde", + "snarkvm-utilities-derives 0.9.7 (git+https://github.com/AleoHQ/snarkVM.git)", "thiserror", ] [[package]] name = "snarkvm-utilities-derives" -version = "0.9.3" -source = "git+https://github.com/AleoHQ/snarkVM.git#a3aa90a8cd093f58bf674fbad2a1d2df247efd89" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "feef53ba328f590a344181adc0dc70b3e5709fce9a8245d4df81bef238181cde" +dependencies = [ + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.103", +] + +[[package]] +name = "snarkvm-utilities-derives" +version = "0.9.7" +source = "git+https://github.com/AleoHQ/snarkVM.git#98ba72615b2ddb437c3368158a1045e8196b3dab" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", diff --git a/Cargo.toml b/Cargo.toml index 6bf2f2ef72..7002345934 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "leo-lang" -version = "1.5.3" +version = "1.6.0" authors = [ "The Aleo Team " ] description = "The Leo programming language" homepage = "https://aleo.org" @@ -36,48 +36,48 @@ members = [ "docs/grammar", "errors", "leo/package", - "tests/test-framework", + "tests/test-framework" ] [dependencies.leo-ast] path = "./compiler/ast" -version = "1.5.3" +version = "1.6.0" [dependencies.leo-compiler] path = "./compiler/compiler" -version = "1.5.3" +version = "1.6.0" [dependencies.leo-errors] path = "./errors" -version = "1.5.3" +version = "1.6.0" [dependencies.leo-package] path = "./leo/package" -version = "1.5.3" +version = "1.6.0" [dependencies.leo-parser] path = "./compiler/parser" -version = "1.5.3" +version = "1.6.0" [dependencies.leo-span] path = "./compiler/span" -version = "1.5.3" +version = "1.6.0" [dependencies.aleo] git = "https://github.com/AleoHQ/aleo.git" -rev = "05a1318" +version = "0.3.0" [dependencies.snarkvm] git = "https://github.com/AleoHQ/snarkVM.git" -version = "0.9.3" -features = ["aleo-cli", "circuit", "console", "parallel"] +version = "0.9.7" +features = [ "aleo-cli", "circuit", "console", "parallel" ] [dependencies.backtrace] version = "0.3.66" [dependencies.clap] version = "3.2" -features = ["derive", "env"] +features = [ "derive", "env" ] [dependencies.color-backtrace] version = "0.5.1" @@ -93,7 +93,7 @@ version = "4.0.0" [dependencies.indexmap] version = "1.9" -features = ["serde"] +features = [ "serde" ] [dependencies.lazy_static] version = "1.4.0" diff --git a/compiler/ast/Cargo.toml b/compiler/ast/Cargo.toml index ced2ec9d9c..4043c74f2d 100644 --- a/compiler/ast/Cargo.toml +++ b/compiler/ast/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "leo-ast" -version = "1.5.3" +version = "1.6.0" authors = [ "The Aleo Team " ] description = "Core AST of the Leo programming language" homepage = "https://aleo.org" @@ -20,11 +20,11 @@ rust-version = "1.63" [dependencies.leo-errors] path = "../../errors" -version = "1.5.3" +version = "1.6.0" [dependencies.leo-span] path = "../span" -version = "1.5.3" +version = "1.6.0" [dependencies.indexmap] version = "1.9" @@ -43,7 +43,7 @@ features = [ "preserve_order" ] [dependencies.smallvec] version = "1.10.0" -features = ["serde"] +features = [ "serde" ] [dev-dependencies.criterion] version = "0.4" diff --git a/compiler/compiler/Cargo.toml b/compiler/compiler/Cargo.toml index 00a3da423e..0ae253215e 100644 --- a/compiler/compiler/Cargo.toml +++ b/compiler/compiler/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "leo-compiler" -version = "1.5.3" -authors = ["The Aleo Team "] +version = "1.6.0" +authors = [ "The Aleo Team " ] description = "Compiler of the Leo programming language" homepage = "https://aleo.org" repository = "https://github.com/AleoHQ/leo" @@ -10,33 +10,33 @@ keywords = [ "cryptography", "leo", "programming-language", - "zero-knowledge", + "zero-knowledge" ] -categories = ["cryptography::cryptocurrencies", "web-programming"] -include = ["Cargo.toml", "src", "README.md", "LICENSE.md"] +categories = [ "cryptography::cryptocurrencies", "web-programming" ] +include = [ "Cargo.toml", "src", "README.md", "LICENSE.md" ] license = "GPL-3.0" edition = "2021" rust-version = "1.63" [dependencies.leo-ast] path = "../ast" -version = "1.5.3" +version = "1.6.0" [dependencies.leo-errors] path = "../../errors" -version = "1.5.3" +version = "1.6.0" [dependencies.leo-passes] path = "../passes" -version = "1.5.3" +version = "1.6.0" [dependencies.leo-parser] path = "../parser" -version = "1.5.3" +version = "1.6.0" [dependencies.leo-span] path = "../span" -version = "1.5.3" +version = "1.6.0" [dependencies.sha2] version = "0.10" @@ -47,12 +47,12 @@ version = "1.4.0" [dev-dependencies.snarkvm] git = "https://github.com/AleoHQ/snarkVM.git" -version = "0.9.3" -features = ["aleo-cli", "circuit", "console", "parallel"] +version = "0.9.7" +features = [ "aleo-cli", "circuit", "console", "parallel" ] [dev-dependencies.serde] version = "1.0.147" -features = ["derive"] +features = [ "derive" ] [dev-dependencies.serde_yaml] version = "0.8.25" @@ -61,5 +61,5 @@ version = "0.8.25" version = "3.3" [features] -default = [] -ci_skip = ["leo-ast/ci_skip"] +default = [ ] +ci_skip = [ "leo-ast/ci_skip" ] diff --git a/compiler/core/Cargo.toml b/compiler/core/Cargo.toml index c772de01ed..e1ba1e9429 100644 --- a/compiler/core/Cargo.toml +++ b/compiler/core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "leo-core" -version = "1.5.3" +version = "1.6.0" authors = [ "The Aleo Team " ] description = "The Leo programming language" homepage = "https://aleo.org" @@ -22,12 +22,12 @@ path = "src/lib.rs" [dependencies.leo-ast] path = "../ast" -version = "1.5.3" +version = "1.6.0" [dependencies.leo-errors] path = "../../errors" -version = "1.5.3" +version = "1.6.0" [dependencies.leo-span] path = "../span" -version = "1.5.3" \ No newline at end of file +version = "1.6.0" diff --git a/compiler/parser/Cargo.toml b/compiler/parser/Cargo.toml index 073ad47c31..3d87811f4c 100644 --- a/compiler/parser/Cargo.toml +++ b/compiler/parser/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "leo-parser" -version = "1.5.3" +version = "1.6.0" authors = [ "The Aleo Team " ] description = "Leo parser" homepage = "https://aleo.org" @@ -20,24 +20,24 @@ rust-version = "1.63" [dependencies.leo-ast] path = "../ast" -version = "1.5.3" +version = "1.6.0" [dependencies.leo-errors] path = "../../errors" -version = "1.5.3" +version = "1.6.0" [dependencies.leo-span] path = "../span" -version = "1.5.3" +version = "1.6.0" [dependencies.snarkvm-console] git = "https://github.com/AleoHQ/snarkVM.git" -version = "0.9.3" -features = ["account", "network"] +version = "0.9.7" +features = [ "account", "network" ] [dependencies.clap] version = "3.2" -features = ["derive"] +features = [ "derive" ] [dependencies.indexmap] version = "1.9" diff --git a/compiler/parser/src/parser/file.rs b/compiler/parser/src/parser/file.rs index 7728336206..09e29f8f56 100644 --- a/compiler/parser/src/parser/file.rs +++ b/compiler/parser/src/parser/file.rs @@ -279,7 +279,7 @@ impl ParserContext<'_> { /// Returns a [`ParamMode`] AST node if the next tokens represent a function parameter mode. pub(super) fn parse_mode(&mut self) -> Result { - // TODO: Allow explicit "private" mode. + let private = self.eat(&Token::Private).then_some(self.prev_token.span); let public = self.eat(&Token::Public).then_some(self.prev_token.span); let constant = self.eat(&Token::Constant).then_some(self.prev_token.span); let const_ = self.eat(&Token::Const).then_some(self.prev_token.span); @@ -288,16 +288,21 @@ impl ParserContext<'_> { self.emit_warning(ParserWarning::const_parameter_or_input(span)); } - match (public, constant, const_) { - (None, Some(_), None) => Ok(Mode::Const), - (None, None, Some(_)) => Ok(Mode::Const), - (None, None, None) => Ok(Mode::None), - (Some(_), None, None) => Ok(Mode::Public), - (Some(m1), Some(m2), None) | (Some(m1), None, Some(m2)) | (None, Some(m1), Some(m2)) => { - Err(ParserError::inputs_multiple_variable_types_specified(m1 + m2).into()) - } - (Some(m1), Some(m2), Some(m3)) => { - Err(ParserError::inputs_multiple_variable_types_specified(m1 + m2 + m3).into()) + match (private, public, constant, const_) { + (None, None, None, None) => Ok(Mode::None), + (Some(_), None, None, None) => Ok(Mode::Private), + (None, Some(_), None, None) => Ok(Mode::Public), + (None, None, Some(_), None) => Ok(Mode::Const), + (None, None, None, Some(_)) => Ok(Mode::Const), + _ => { + let mut spans = [private, public, constant, const_].into_iter().flatten(); + + // There must exist at least one mode, since the none case is handled above. + let starting_span = spans.next().unwrap(); + // Sum the spans. + let summed_span = spans.fold(starting_span, |span, next| span + next); + // Emit an error. + Err(ParserError::inputs_multiple_variable_modes_specified(summed_span).into()) } } } diff --git a/compiler/parser/src/tokenizer/lexer.rs b/compiler/parser/src/tokenizer/lexer.rs index 6a26e013f5..d63f4cab1f 100644 --- a/compiler/parser/src/tokenizer/lexer.rs +++ b/compiler/parser/src/tokenizer/lexer.rs @@ -420,6 +420,7 @@ impl Token { "let" => Token::Let, "leo" => Token::Leo, "mapping" => Token::Mapping, + "private" => Token::Private, "program" => Token::Program, "public" => Token::Public, "record" => Token::Record, diff --git a/compiler/parser/src/tokenizer/mod.rs b/compiler/parser/src/tokenizer/mod.rs index 84f82dbe4f..76df81b42f 100644 --- a/compiler/parser/src/tokenizer/mod.rs +++ b/compiler/parser/src/tokenizer/mod.rs @@ -83,6 +83,7 @@ mod tests { test_ident 12345 address + async bool const else @@ -102,7 +103,9 @@ mod tests { input let mut + private program + public return scalar self @@ -161,7 +164,7 @@ mod tests { assert_eq!( output, - r#""test" "test{}test" "test{}" "{}test" "test{" "test}" "test{test" "test}test" "te{{}}" test_ident 12345 address bool const else false field finalize for function group i128 i64 i32 i16 i8 if in input let mut program return scalar self string struct test then transition true u128 u64 u32 u16 u8 console ! != && ( ) * ** + , - -> => _ . .. / : ; < <= = == > >= [ ] { { } } || ? @ // test + r#""test" "test{}test" "test{}" "{}test" "test{" "test}" "test{test" "test}test" "te{{}}" test_ident 12345 address async bool const else false field finalize for function group i128 i64 i32 i16 i8 if in input let mut private program public return scalar self string struct test then transition true u128 u64 u32 u16 u8 console ! != && ( ) * ** + , - -> => _ . .. / : ; < <= = == > >= [ ] { { } } || ? @ // test /* test */ // "# ); }); diff --git a/compiler/parser/src/tokenizer/token.rs b/compiler/parser/src/tokenizer/token.rs index 7ac9e9b418..07ae7effd2 100644 --- a/compiler/parser/src/tokenizer/token.rs +++ b/compiler/parser/src/tokenizer/token.rs @@ -126,6 +126,7 @@ pub enum Token { Increment, Let, Mapping, + Private, Program, // For public inputs. Public, @@ -172,6 +173,7 @@ pub const KEYWORD_TOKENS: &[Token] = &[ Token::Increment, Token::Let, Token::Mapping, + Token::Private, Token::Program, Token::Public, Token::Record, @@ -226,8 +228,9 @@ impl Token { Token::Let => sym::Let, Token::Leo => sym::leo, Token::Mapping => sym::mapping, + Token::Private => sym::private, Token::Program => sym::program, - Token::Public => sym::Public, + Token::Public => sym::public, Token::Record => sym::record, Token::Return => sym::Return, Token::Scalar => sym::scalar, @@ -348,6 +351,7 @@ impl fmt::Display for Token { Increment => write!(f, "increment"), Let => write!(f, "let"), Mapping => write!(f, "mapping"), + Private => write!(f, "private"), Program => write!(f, "program"), Public => write!(f, "public"), Return => write!(f, "return"), diff --git a/compiler/passes/Cargo.toml b/compiler/passes/Cargo.toml index 0c97781c49..d47a424177 100644 --- a/compiler/passes/Cargo.toml +++ b/compiler/passes/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "leo-passes" -version = "1.5.3" +version = "1.6.0" authors = [ "The Aleo Team " ] description = "The Leo programming language" homepage = "https://aleo.org" @@ -26,26 +26,26 @@ version = "1.9" [dependencies.leo-ast] path = "../ast" -version = "1.5.3" +version = "1.6.0" [dependencies.leo-errors] path = "../../errors" -version = "1.5.3" +version = "1.6.0" [dependencies.leo-parser] path = "../parser" -version = "1.5.3" +version = "1.6.0" [dependencies.leo-span] path = "../span" -version = "1.5.3" +version = "1.6.0" [dependencies.leo-core] path = "../core" -version = "1.5.3" +version = "1.6.0" [dependencies.itertools] version = "0.10.5" [dependencies.num-traits] -version = "0.2.15" \ No newline at end of file +version = "0.2.15" diff --git a/compiler/passes/src/loop_unrolling/mod.rs b/compiler/passes/src/loop_unrolling/mod.rs index f175149610..8e03cef9fb 100644 --- a/compiler/passes/src/loop_unrolling/mod.rs +++ b/compiler/passes/src/loop_unrolling/mod.rs @@ -42,7 +42,7 @@ impl<'a> Pass for Unroller<'a> { // Reconstructs the AST based off any flattening work that is done. let mut reconstructor = Self::new(st, handler); let program = reconstructor.reconstruct_program(ast.into_repr()); - handler.last_err()?; + handler.last_err().map_err(|e| *e)?; Ok((Ast::new(program), reconstructor.symbol_table.take())) } diff --git a/compiler/passes/src/symbol_table/mod.rs b/compiler/passes/src/symbol_table/mod.rs index 67353426a1..396ae3f6ad 100644 --- a/compiler/passes/src/symbol_table/mod.rs +++ b/compiler/passes/src/symbol_table/mod.rs @@ -39,7 +39,7 @@ impl<'a> Pass for CreateSymbolTable<'a> { fn do_pass((ast, handler): Self::Input) -> Self::Output { let mut visitor = CreateSymbolTable::new(handler); visitor.visit_program(ast.as_repr()); - handler.last_err()?; + handler.last_err().map_err(|e| *e)?; Ok(visitor.symbol_table) } diff --git a/compiler/passes/src/type_checking/check_program.rs b/compiler/passes/src/type_checking/check_program.rs index a30b752553..bd09fe09de 100644 --- a/compiler/passes/src/type_checking/check_program.rs +++ b/compiler/passes/src/type_checking/check_program.rs @@ -23,10 +23,63 @@ use leo_span::sym; use std::collections::HashSet; -// TODO: Generally, cleanup tyc logic. // TODO: Cleanup logic for tuples. impl<'a> ProgramVisitor<'a> for TypeChecker<'a> { + fn visit_program(&mut self, input: &'a Program) { + match self.is_imported { + // If the program is imported, then it is not allowed to import any other programs. + true => { + input.imports.values().for_each(|(_, span)| { + self.emit_err(TypeCheckerError::imported_program_cannot_import_program(*span)) + }); + } + // Otherwise, typecheck the imported programs. + false => { + // Set `self.is_imported`. + let previous_is_imported = core::mem::replace(&mut self.is_imported, true); + + // Typecheck the imported programs. + input.imports.values().for_each(|import| self.visit_import(&import.0)); + + // Set `self.is_imported` to its previous state. + self.is_imported = previous_is_imported; + } + } + + // Typecheck the program scopes. + input + .program_scopes + .values() + .for_each(|scope| self.visit_program_scope(scope)); + } + + fn visit_program_scope(&mut self, input: &'a ProgramScope) { + // Typecheck the struct definitions. + input.structs.values().for_each(|function| self.visit_struct(function)); + + // Typecheck the mapping definitions. + input.mappings.values().for_each(|mapping| self.visit_mapping(mapping)); + + // Typecheck the function definitions. + let mut transition_count = 0; + for function in input.functions.values() { + self.visit_function(function); + if matches!(function.call_type, CallType::Transition) { + transition_count += 1; + } + } + + // TODO: Use the snarkVM configurations to parameterize the check, need similar checks for structs (all in separate PR) + // Check that the number of transitions does not exceed the maximum. + if transition_count > 15 { + self.emit_err(TypeCheckerError::too_many_transitions( + 15, + input.program_id.name.span + input.program_id.network.span, + )); + } + } + fn visit_struct(&mut self, input: &'a Struct) { // Check for conflicting struct/record member names. let mut used = HashSet::new(); @@ -153,7 +206,7 @@ impl<'a> ProgramVisitor<'a> for TypeChecker<'a> { true if input_var.mode() == Mode::Const => self.emit_err( TypeCheckerError::transition_function_inputs_cannot_be_const(input_var.span()), ), - // If the function is not a program function, then check that the parameters do not have an associated mode. + // If the function is not a transition function, then check that the parameters do not have an associated mode. false if input_var.mode() != Mode::None => self.emit_err( TypeCheckerError::regular_function_inputs_cannot_have_modes(input_var.span()), ), @@ -308,32 +361,4 @@ impl<'a> ProgramVisitor<'a> for TypeChecker<'a> { // Unset `is_transition_function` flag. self.is_transition_function = false; } - - fn visit_program(&mut self, input: &'a Program) { - match self.is_imported { - // If the program is imported, then it is not allowed to import any other programs. - true => { - input.imports.values().for_each(|(_, span)| { - self.emit_err(TypeCheckerError::imported_program_cannot_import_program(*span)) - }); - } - // Otherwise, typecheck the imported programs. - false => { - // Set `self.is_imported`. - let previous_is_imported = core::mem::replace(&mut self.is_imported, true); - - // Typecheck the imported programs. - input.imports.values().for_each(|import| self.visit_import(&import.0)); - - // Set `self.is_imported` to its previous state. - self.is_imported = previous_is_imported; - } - } - - // Typecheck the program scopes. - input - .program_scopes - .values() - .for_each(|scope| self.visit_program_scope(scope)); - } } diff --git a/compiler/passes/src/type_checking/mod.rs b/compiler/passes/src/type_checking/mod.rs index 69dc6bf13a..49f436f447 100644 --- a/compiler/passes/src/type_checking/mod.rs +++ b/compiler/passes/src/type_checking/mod.rs @@ -39,7 +39,7 @@ impl<'a> Pass for TypeChecker<'a> { fn do_pass((ast, handler, st): Self::Input) -> Self::Output { let mut visitor = TypeChecker::new(st, handler); visitor.visit_program(ast.as_repr()); - handler.last_err()?; + handler.last_err().map_err(|e| *e)?; Ok(visitor.symbol_table.take()) } diff --git a/compiler/span/Cargo.toml b/compiler/span/Cargo.toml index 5360bd6516..0df1edfc6a 100644 --- a/compiler/span/Cargo.toml +++ b/compiler/span/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "leo-span" -version = "1.5.3" +version = "1.6.0" authors = [ "The Aleo Team " ] description = "Span handling in the Leo programming language" homepage = "https://aleo.org" @@ -20,7 +20,7 @@ rust-version = "1.63" [dependencies.indexmap] version = "1.9" -features = ["serde"] +features = [ "serde" ] [dependencies.fxhash] version = "0.2.1" @@ -30,6 +30,4 @@ version = "1.0.1" [dependencies.serde] version = "1.0.147" -features = ["derive", "rc"] - - +features = [ "derive", "rc" ] diff --git a/compiler/span/src/symbol.rs b/compiler/span/src/symbol.rs index 15f92dc2fd..00dc75e0b4 100644 --- a/compiler/span/src/symbol.rs +++ b/compiler/span/src/symbol.rs @@ -206,7 +206,6 @@ symbols! { mapping, Mut: "mut", prelude, - Public, Return: "return", SelfLower: "self", SelfUpper: "Self", diff --git a/docs/grammar/Cargo.toml b/docs/grammar/Cargo.toml index fcd5b794c7..263f595098 100644 --- a/docs/grammar/Cargo.toml +++ b/docs/grammar/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "leo-abnf" -version = "1.5.3" +version = "1.6.0" authors = [ "The Aleo Team " ] description = "ABNF to Markdown converter for the Leo programming language" homepage = "https://aleo.org" diff --git a/errors/Cargo.toml b/errors/Cargo.toml index 026c1e9b7a..f0e55a71ff 100644 --- a/errors/Cargo.toml +++ b/errors/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "leo-errors" -version = "1.5.3" +version = "1.6.0" authors = [ "The Aleo Team " ] description = "Errors of the Leo programming language" homepage = "https://aleo.org" @@ -20,7 +20,7 @@ rust-version = "1.63" [dependencies.leo-span] path = "../compiler/span" -version = "1.5.3" +version = "1.6.0" [dependencies.anyhow] version = "1.0" diff --git a/errors/src/emitter/mod.rs b/errors/src/emitter/mod.rs index c3e3026757..04950420ee 100644 --- a/errors/src/emitter/mod.rs +++ b/errors/src/emitter/mod.rs @@ -239,9 +239,9 @@ impl Handler { /// Gets the last emitted error's exit code if it exists. /// Then exits the program with it if it did exist. - pub fn last_err(&self) -> Result<(), LeoError> { + pub fn last_err(&self) -> Result<(), Box> { if let Some(code) = self.inner.borrow().last_emited_err_code() { - Err(LeoError::LastErrorCode(code)) + Err(Box::new(LeoError::LastErrorCode(code))) } else { Ok(()) } diff --git a/errors/src/errors/parser/parser_errors.rs b/errors/src/errors/parser/parser_errors.rs index 8435347b51..e152fcd8b8 100644 --- a/errors/src/errors/parser/parser_errors.rs +++ b/errors/src/errors/parser/parser_errors.rs @@ -183,12 +183,12 @@ create_messages!( help: None, } - /// For when a user specified more than a type on a parameter. + /// For when a user specified more than one mode on a parameter. @formatted - inputs_multiple_variable_types_specified { + inputs_multiple_variable_modes_specified { args: (), - msg: "A parameter cannot be both public and const.", - help: None, + msg: "A parameter cannot have multiple modes.", + help: Some("Consider using either `constant`, `public`, `private`, or none at all.".to_string()), } /// For when the lexer encountered a bidi override character diff --git a/errors/src/errors/type_checker/type_checker_error.rs b/errors/src/errors/type_checker/type_checker_error.rs index dd7eeca192..01fbbdf083 100644 --- a/errors/src/errors/type_checker/type_checker_error.rs +++ b/errors/src/errors/type_checker/type_checker_error.rs @@ -309,14 +309,14 @@ create_messages!( finalize_input_mode_must_be_public { args: (), msg: format!("An input to a finalize block must be public."), - help: Some("Add a `public` modifier to the input variable declaration or remove the visibility modifier entirely.".to_string()), + help: Some("Use a `public` modifier to the input variable declaration or remove the visibility modifier entirely.".to_string()), } @formatted finalize_output_mode_must_be_public { args: (), - msg: format!("An output of a finalize block must be public."), - help: Some("Add a `public` modifier to the output type declaration or remove the visibility modifier entirely.".to_string()), + msg: format!("An output from a finalize block must be public."), + help: Some("Use a `public` modifier to the output type declaration or remove the visibility modifier entirely.".to_string()), } @formatted @@ -447,6 +447,13 @@ create_messages!( help: None, } + @formatted + too_many_transitions { + args: (max: impl Display), + msg: format!("The number of transitions exceeds the maximum. snarkVM allows up to {max} transitions within a single program."), + help: None, + } + // TODO: Consider chainging this to a warning. @formatted diff --git a/examples/fibonacci/README.md b/examples/fibonacci/README.md new file mode 100644 index 0000000000..07beee8184 --- /dev/null +++ b/examples/fibonacci/README.md @@ -0,0 +1,13 @@ +# fibonacci.aleo + +## Build Guide + +To run this program, run: +```bash +leo run fibonacci +``` + +## Overview +This example shows how to calculate Fibonacci number using the [fast-doubling method](https://math.stackexchange.com/questions/1124590/need-help-understanding-fibonacci-fast-doubling-proof). + +It takes the input data from `inputs/fibonacci.in` \ No newline at end of file diff --git a/examples/fibonacci/inputs/fibonacci.in b/examples/fibonacci/inputs/fibonacci.in new file mode 100644 index 0000000000..5a7b84c071 --- /dev/null +++ b/examples/fibonacci/inputs/fibonacci.in @@ -0,0 +1,3 @@ +// The program input for fibonacci/src/main.leo +[fibonacci] +public n: u8 = 63u8; diff --git a/examples/fibonacci/program.json b/examples/fibonacci/program.json new file mode 100644 index 0000000000..c13efaf5c6 --- /dev/null +++ b/examples/fibonacci/program.json @@ -0,0 +1,10 @@ +{ + "program": "fibonacci.aleo", + "version": "0.0.0", + "description": "", + "development": { + "private_key": "APrivateKey1zkpFebmqLzRHMbtdwensSVNUPDWV6WnYw5JcNsYVLDuu8ig", + "address": "aleo1l0l25evjzxac3j4r5xf7uwv3jfnqwll2g9h8j0g5vvk0grnnmq8qexra3d" + }, + "license": "MIT" +} diff --git a/examples/fibonacci/src/main.leo b/examples/fibonacci/src/main.leo new file mode 100644 index 0000000000..5ac3eeb12d --- /dev/null +++ b/examples/fibonacci/src/main.leo @@ -0,0 +1,48 @@ +program fibonacci.aleo { + // This calculates the n-th fibonacci number (up to 64th) + transition fibonacci(public n: u8) -> u128 { + console.assert(n <= 64u8); + + let f0: u128 = 0u128; + let f1: u128 = 1u128; + let c: u8 = 0u8; + + let z: u8 = reverse_bits(n); + + for i:u8 in 0u8..8u8 { + if n > 0u8 { + let f2i1: u128 = f1 * f1 + f0 * f0; + let f2i: u128 = f0 * (2u128 * f1 - f0); + if z & 1u8.shl(c) == 0u8 { + f0 = f2i; + f1 = f2i1; + } else { + f0 = f2i1; + f1 = f2i + f2i1; + } + c = c + 1u8; + n = n >> 1u8; + } + } + + return f0; + } + + function reverse_bits(n: u8) -> u8 { + let reverse: u8 = 0u8; + + for i:u8 in 0u8..8u8 { + if n > 0u8 { + reverse = reverse << 1u8; + + if n & 1u8 == 1u8 { + reverse ^= 1u8; + } + + n = n >> 1u8; + } + } + + return reverse; + } +} diff --git a/leo/commands/build.rs b/leo/commands/build.rs index 394be25ee3..222de665b8 100644 --- a/leo/commands/build.rs +++ b/leo/commands/build.rs @@ -180,6 +180,9 @@ impl Command for Build { None }; + // Unset the Leo panic hook. + let _ = std::panic::take_hook(); + // Change the cwd to the build directory to compile aleo files. std::env::set_current_dir(&build_directory) .map_err(|err| PackageError::failed_to_set_cwd(build_directory.display(), err))?; diff --git a/leo/commands/deploy.rs b/leo/commands/deploy.rs index 5adabaa96f..e2b39991c3 100644 --- a/leo/commands/deploy.rs +++ b/leo/commands/deploy.rs @@ -16,6 +16,7 @@ use crate::commands::ALEO_CLI_COMMAND; use crate::{commands::Command, context::Context}; + use leo_errors::{CliError, PackageError, Result}; use leo_package::build::BuildDirectory; @@ -49,6 +50,9 @@ impl Command for Deploy { std::env::set_current_dir(&build_directory) .map_err(|err| PackageError::failed_to_set_cwd(build_directory.display(), err))?; + // Unset the Leo panic hook. + let _ = std::panic::take_hook(); + // Call the `aleo node` command from the Aleo SDK. println!(); let command = AleoDeploy::try_parse_from([ALEO_CLI_COMMAND]).map_err(CliError::failed_to_parse_aleo_node)?; diff --git a/leo/commands/new.rs b/leo/commands/new.rs index b438bca449..3b2ec8f1f6 100644 --- a/leo/commands/new.rs +++ b/leo/commands/new.rs @@ -66,7 +66,7 @@ impl Command for New { // Initialize the Leo package in the directory created by `aleo new`. Package::initialize(&self.name, &package_path)?; - // Change the cwd to the Leo package directory. to compile aleo files. + // Change the cwd to the Leo package directory to compile aleo files. std::env::set_current_dir(&package_path) .map_err(|err| PackageError::failed_to_set_cwd(package_path.display(), err))?; diff --git a/leo/commands/run.rs b/leo/commands/run.rs index de641013c5..6f0dfeefbb 100644 --- a/leo/commands/run.rs +++ b/leo/commands/run.rs @@ -86,6 +86,10 @@ impl Command for Run { if self.compiler_options.offline { arguments.push(String::from("--offline")); } + + // Unset the Leo panic hook + let _ = std::panic::take_hook(); + println!(); let command = AleoRun::try_parse_from(&arguments).map_err(CliError::failed_to_parse_aleo_run)?; let res = command.parse().map_err(CliError::failed_to_execute_aleo_run)?; diff --git a/leo/package/Cargo.toml b/leo/package/Cargo.toml index 4ba17d6372..8f03c4fce3 100644 --- a/leo/package/Cargo.toml +++ b/leo/package/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "leo-package" -version = "1.5.3" +version = "1.6.0" authors = [ "The Aleo Team " ] description = "Package parser of the Leo programming language" homepage = "https://aleo.org" @@ -20,11 +20,11 @@ rust-version = "1.63" [dependencies.leo-errors] path = "../../errors" -version = "1.5.3" +version = "1.6.0" [dependencies.indexmap] version = "1.9" -features = ["serde"] +features = [ "serde" ] [dependencies.serde] version = "1.0" diff --git a/tests/compiler/finalize/private_input_ouput_fail.leo b/tests/compiler/finalize/private_input_ouput_fail.leo new file mode 100644 index 0000000000..f3f04f6451 --- /dev/null +++ b/tests/compiler/finalize/private_input_ouput_fail.leo @@ -0,0 +1,24 @@ +/* +namespace: Compile +expectation: Fail +*/ + +program test.aleo { + transition foo(public a: u8) -> u8 { + async finalize(a); + return a + a; + } + + finalize foo(private a: u8) -> u8 { + return a * a; + } + + transition bar(public a: u8) -> u8 { + async finalize (a); + return a + a; + } + + finalize bar(a: u8) -> private u8 { + return a * a; + } +} diff --git a/tests/compiler/function/private_input_output.leo b/tests/compiler/function/private_input_output.leo new file mode 100644 index 0000000000..7a664e37f6 --- /dev/null +++ b/tests/compiler/function/private_input_output.leo @@ -0,0 +1,11 @@ +/* +namespace: Compile +expectation: Pass +*/ + +program test.aleo { + transition foo(private a: u8, public b: u8) -> private u8 { + let c: u8 = a + b; + return c; + } +} diff --git a/tests/compiler/function/too_many_transitions_fail.leo b/tests/compiler/function/too_many_transitions_fail.leo new file mode 100644 index 0000000000..449145ea37 --- /dev/null +++ b/tests/compiler/function/too_many_transitions_fail.leo @@ -0,0 +1,71 @@ +/* +namespace: Compile +expectation: Fail +*/ + +program test.aleo { + + transition one() -> u8 { + return 1u8 + 1u8; + } + + transition two() -> u8 { + return 2u8 + 2u8; + } + + transition three() -> u8 { + return 3u8 + 3u8; + } + + transition four() -> u8 { + return 4u8 + 4u8; + } + + transition five() -> u8 { + return 5u8 + 5u8; + } + + transition six() -> u8 { + return 6u8 + 6u8; + } + + transition seven() -> u8 { + return 7u8 + 7u8; + } + + transition eight() -> u8 { + return 8u8 + 8u8; + } + + transition nine() -> u8 { + return 9u8 + 9u8; + } + + transition ten() -> u8 { + return 10u8 + 10u8; + } + + transition eleven() -> u8 { + return 11u8 + 11u8; + } + + transition twelve() -> u8 { + return 12u8 + 12u8; + } + + transition thirteen() -> u8 { + return 13u8 + 13u8; + } + + transition fourteen() -> u8 { + return 14u8 + 14u8; + } + + transition fifteen() -> u8 { + return 15u8 + 15u8; + } + + transition sixteen() -> u8 { + return 16u8 + 16u8; + } +} diff --git a/tests/expectations/compiler/finalize/finalize_incorrect_modes_fail.out b/tests/expectations/compiler/finalize/finalize_incorrect_modes_fail.out index 41e33b590f..6c0a145d4e 100644 --- a/tests/expectations/compiler/finalize/finalize_incorrect_modes_fail.out +++ b/tests/expectations/compiler/finalize/finalize_incorrect_modes_fail.out @@ -2,4 +2,4 @@ namespace: Compile expectation: Fail outputs: - - "Error [ETYC0372032]: An input to a finalize block must be public.\n --> compiler-test:10:62\n |\n 10 | finalize mint_public (public receiver: address, constant amount: u64) -> constant u64 {\n | ^^^^^^\n |\n = Add a `public` modifier to the input variable declaration or remove the visibility modifier entirely.\nError [ETYC0372033]: An output of a finalize block must be public.\n --> compiler-test:10:87\n |\n 10 | finalize mint_public (public receiver: address, constant amount: u64) -> constant u64 {\n | ^^^\n |\n = Add a `public` modifier to the output type declaration or remove the visibility modifier entirely.\nError [ETYC0372038]: Function must return a value.\n --> compiler-test:10:5\n |\n 10 | finalize mint_public (public receiver: address, constant amount: u64) -> constant u64 {\n 11 | increment(account, receiver, amount);\n 12 | }\n | ^\n" + - "Error [ETYC0372032]: An input to a finalize block must be public.\n --> compiler-test:10:62\n |\n 10 | finalize mint_public (public receiver: address, constant amount: u64) -> constant u64 {\n | ^^^^^^\n |\n = Use a `public` modifier to the input variable declaration or remove the visibility modifier entirely.\nError [ETYC0372033]: An output from a finalize block must be public.\n --> compiler-test:10:87\n |\n 10 | finalize mint_public (public receiver: address, constant amount: u64) -> constant u64 {\n | ^^^\n |\n = Use a `public` modifier to the output type declaration or remove the visibility modifier entirely.\nError [ETYC0372038]: Function must return a value.\n --> compiler-test:10:5\n |\n 10 | finalize mint_public (public receiver: address, constant amount: u64) -> constant u64 {\n 11 | increment(account, receiver, amount);\n 12 | }\n | ^\n" diff --git a/tests/expectations/compiler/finalize/private_input_ouput_fail.out b/tests/expectations/compiler/finalize/private_input_ouput_fail.out new file mode 100644 index 0000000000..18dac19526 --- /dev/null +++ b/tests/expectations/compiler/finalize/private_input_ouput_fail.out @@ -0,0 +1,5 @@ +--- +namespace: Compile +expectation: Fail +outputs: + - "Error [EPAR0370030]: `async finalize` is deprecated.\n --> compiler-test:5:9\n |\n 5 | async finalize(a);\n | ^^^^^\n |\n = Use `return then finalize()` instead." diff --git a/tests/expectations/compiler/function/private_input_output.out b/tests/expectations/compiler/function/private_input_output.out new file mode 100644 index 0000000000..268fa2cc31 --- /dev/null +++ b/tests/expectations/compiler/function/private_input_output.out @@ -0,0 +1,10 @@ +--- +namespace: Compile +expectation: Pass +outputs: + - output: + - initial_input_ast: no input + initial_ast: b5c5ae7110c20b2fa7949b853a1a5b0a43b94667901da28ce759b3df3639145c + unrolled_ast: b5c5ae7110c20b2fa7949b853a1a5b0a43b94667901da28ce759b3df3639145c + ssa_ast: 34a50a879f1b146118035e5d19e022d857c9bdab0853d3eb1e826487b5805671 + flattened_ast: 2c89be5251a0f6f950735e04cbdbff7d32e6105c7d23cd78abed8301eeb062b0 diff --git a/tests/expectations/compiler/function/too_many_transitions_fail.out b/tests/expectations/compiler/function/too_many_transitions_fail.out new file mode 100644 index 0000000000..7fe4695114 --- /dev/null +++ b/tests/expectations/compiler/function/too_many_transitions_fail.out @@ -0,0 +1,5 @@ +--- +namespace: Compile +expectation: Fail +outputs: + - "Error [ETYC0372052]: The number of transitions exceeds the maximum. snarkVM allows up to 15 transitions within a single program.\n --> compiler-test:3:9\n |\n 3 | program test.aleo {\n | ^^^^^^^^^\n" diff --git a/tests/expectations/compiler/records/nested_record_2_fail.out b/tests/expectations/compiler/records/nested_record_2_fail.out index 27405208d7..1ff3e45459 100644 --- a/tests/expectations/compiler/records/nested_record_2_fail.out +++ b/tests/expectations/compiler/records/nested_record_2_fail.out @@ -2,4 +2,4 @@ namespace: Compile expectation: Fail outputs: - - "Error [ETYC0372054]: A record cannot contain a tuple.\n --> compiler-test:8:9\n |\n 8 | foo: (Foo, Foo),\n | ^^^\nError [ETYC0372029]: A struct or record cannot contain another record.\n --> compiler-test:8:9\n |\n 8 | foo: (Foo, Foo),\n | ^^^\n |\n = Remove the record `Foo` from `Token2`.\nError [ETYC0372029]: A struct or record cannot contain another record.\n --> compiler-test:8:9\n |\n 8 | foo: (Foo, Foo),\n | ^^^\n |\n = Remove the record `Foo` from `Token2`.\n" + - "Error [ETYC0372055]: A record cannot contain a tuple.\n --> compiler-test:8:9\n |\n 8 | foo: (Foo, Foo),\n | ^^^\nError [ETYC0372029]: A struct or record cannot contain another record.\n --> compiler-test:8:9\n |\n 8 | foo: (Foo, Foo),\n | ^^^\n |\n = Remove the record `Foo` from `Token2`.\nError [ETYC0372029]: A struct or record cannot contain another record.\n --> compiler-test:8:9\n |\n 8 | foo: (Foo, Foo),\n | ^^^\n |\n = Remove the record `Foo` from `Token2`.\n" diff --git a/tests/expectations/compiler/records/nested_record_4_fail.out b/tests/expectations/compiler/records/nested_record_4_fail.out index 602ea8c2dd..61485f0ccc 100644 --- a/tests/expectations/compiler/records/nested_record_4_fail.out +++ b/tests/expectations/compiler/records/nested_record_4_fail.out @@ -2,4 +2,4 @@ namespace: Compile expectation: Fail outputs: - - "Error [ETYC0372054]: A record cannot contain a tuple.\n --> compiler-test:7:9\n |\n 7 | bar: (Bar, Bar),\n | ^^^\nError [ETYC0372054]: A struct cannot contain a tuple.\n --> compiler-test:11:9\n |\n 11 | bar: (Token, Token),\n | ^^^\nError [ETYC0372029]: A struct or record cannot contain another record.\n --> compiler-test:11:9\n |\n 11 | bar: (Token, Token),\n | ^^^\n |\n = Remove the record `Token` from `Bar`.\nError [ETYC0372029]: A struct or record cannot contain another record.\n --> compiler-test:11:9\n |\n 11 | bar: (Token, Token),\n | ^^^\n |\n = Remove the record `Token` from `Bar`.\n" + - "Error [ETYC0372055]: A record cannot contain a tuple.\n --> compiler-test:7:9\n |\n 7 | bar: (Bar, Bar),\n | ^^^\nError [ETYC0372055]: A struct cannot contain a tuple.\n --> compiler-test:11:9\n |\n 11 | bar: (Token, Token),\n | ^^^\nError [ETYC0372029]: A struct or record cannot contain another record.\n --> compiler-test:11:9\n |\n 11 | bar: (Token, Token),\n | ^^^\n |\n = Remove the record `Token` from `Bar`.\nError [ETYC0372029]: A struct or record cannot contain another record.\n --> compiler-test:11:9\n |\n 11 | bar: (Token, Token),\n | ^^^\n |\n = Remove the record `Token` from `Bar`.\n" diff --git a/tests/expectations/compiler/statements/expr_statement_fail.out b/tests/expectations/compiler/statements/expr_statement_fail.out index 97a1c06c0c..affd90e42a 100644 --- a/tests/expectations/compiler/statements/expr_statement_fail.out +++ b/tests/expectations/compiler/statements/expr_statement_fail.out @@ -2,4 +2,4 @@ namespace: Compile expectation: Fail outputs: - - "Error [EAST0372006]: function `foo` shadowed by\n --> compiler-test:9:46\n |\n 9 | transition foo(flag: bool, a: u8, b: u8, foo: Foo, i: i8) -> u8 {\n | ^^^\nError [ETYC0372059]: An expression statement must be a function call.\n --> compiler-test:10:9\n |\n 10 | a + b;\n | ^^^^^^\nError [ETYC0372059]: An expression statement must be a function call.\n --> compiler-test:11:9\n |\n 11 | flag ? a : b;\n | ^^^^^^^^^^^^^\nError [ETYC0372059]: An expression statement must be a function call.\n --> compiler-test:12:9\n |\n 12 | foo.a;\n | ^^^^^^\nError [ETYC0372059]: An expression statement must be a function call.\n --> compiler-test:13:9\n |\n 13 | Foo {\n 14 | a: a,\n 15 | };\n | ^^\nError [ETYC0372059]: An expression statement must be a function call.\n --> compiler-test:16:9\n |\n 16 | a;\n | ^^\nError [ETYC0372059]: An expression statement must be a function call.\n --> compiler-test:17:9\n |\n 17 | 1u8;\n | ^^^^\nError [ETYC0372059]: An expression statement must be a function call.\n --> compiler-test:18:9\n |\n 18 | -i8;\n | ^^^^\nError [ETYC0372059]: An expression statement must be a function call.\n --> compiler-test:19:9\n |\n 19 | ();\n | ^^^\n" + - "Error [EAST0372006]: function `foo` shadowed by\n --> compiler-test:9:46\n |\n 9 | transition foo(flag: bool, a: u8, b: u8, foo: Foo, i: i8) -> u8 {\n | ^^^\nError [ETYC0372060]: An expression statement must be a function call.\n --> compiler-test:10:9\n |\n 10 | a + b;\n | ^^^^^^\nError [ETYC0372060]: An expression statement must be a function call.\n --> compiler-test:11:9\n |\n 11 | flag ? a : b;\n | ^^^^^^^^^^^^^\nError [ETYC0372060]: An expression statement must be a function call.\n --> compiler-test:12:9\n |\n 12 | foo.a;\n | ^^^^^^\nError [ETYC0372060]: An expression statement must be a function call.\n --> compiler-test:13:9\n |\n 13 | Foo {\n 14 | a: a,\n 15 | };\n | ^^\nError [ETYC0372060]: An expression statement must be a function call.\n --> compiler-test:16:9\n |\n 16 | a;\n | ^^\nError [ETYC0372060]: An expression statement must be a function call.\n --> compiler-test:17:9\n |\n 17 | 1u8;\n | ^^^^\nError [ETYC0372060]: An expression statement must be a function call.\n --> compiler-test:18:9\n |\n 18 | -i8;\n | ^^^^\nError [ETYC0372060]: An expression statement must be a function call.\n --> compiler-test:19:9\n |\n 19 | ();\n | ^^^\n" diff --git a/tests/expectations/compiler/tuple/assign_unit_fail.out b/tests/expectations/compiler/tuple/assign_unit_fail.out index a23efd62c8..f09242f943 100644 --- a/tests/expectations/compiler/tuple/assign_unit_fail.out +++ b/tests/expectations/compiler/tuple/assign_unit_fail.out @@ -2,4 +2,4 @@ namespace: Compile expectation: Fail outputs: - - "Error [ETYC0372061]: The left-hand side of a `DefinitionStatement` can only be an identifier or tuple. Note that a tuple must contain at least two elements.\n --> compiler-test:6:9\n |\n 6 | let b: () = ();\n | ^^^^^^^^^^^^^^\nError [ETYC0372062]: Unit expressions can only be used in return statements.\n --> compiler-test:6:21\n |\n 6 | let b: () = ();\n | ^^\nError [ETYC0372061]: The left-hand side of a `DefinitionStatement` can only be an identifier or tuple. Note that a tuple must contain at least two elements.\n --> compiler-test:11:9\n |\n 11 | let b: () = bar();\n | ^^^^^^^^^^^^^^^^^\nError [ETYC0372048]: Cannot call a local transition function from a transition function.\n --> compiler-test:11:21\n |\n 11 | let b: () = bar();\n | ^^^^^\nError [ETYC0372006]: Call expected `1` args, but got `0`\n --> compiler-test:11:21\n |\n 11 | let b: () = bar();\n | ^^^^^\n" + - "Error [ETYC0372062]: The left-hand side of a `DefinitionStatement` can only be an identifier or tuple. Note that a tuple must contain at least two elements.\n --> compiler-test:6:9\n |\n 6 | let b: () = ();\n | ^^^^^^^^^^^^^^\nError [ETYC0372063]: Unit expressions can only be used in return statements.\n --> compiler-test:6:21\n |\n 6 | let b: () = ();\n | ^^\nError [ETYC0372062]: The left-hand side of a `DefinitionStatement` can only be an identifier or tuple. Note that a tuple must contain at least two elements.\n --> compiler-test:11:9\n |\n 11 | let b: () = bar();\n | ^^^^^^^^^^^^^^^^^\nError [ETYC0372048]: Cannot call a local transition function from a transition function.\n --> compiler-test:11:21\n |\n 11 | let b: () = bar();\n | ^^^^^\nError [ETYC0372006]: Call expected `1` args, but got `0`\n --> compiler-test:11:21\n |\n 11 | let b: () = bar();\n | ^^^^^\n" diff --git a/tests/expectations/compiler/tuple/function_return_zero_fail.out b/tests/expectations/compiler/tuple/function_return_zero_fail.out deleted file mode 100644 index 53da785600..0000000000 --- a/tests/expectations/compiler/tuple/function_return_zero_fail.out +++ /dev/null @@ -1,5 +0,0 @@ ---- -namespace: Compile -expectation: Fail -outputs: - - "Failed to parse string. Parsing Error: VerboseError { errors: [(\"closure main:\\n input r0 as boolean;\\n input r1 as boolean;\\n\\n\\n\", Nom(Tag)), (\"\\n\\n\\nclosure main:\\n input r0 as boolean;\\n input r1 as boolean;\\n\\n\\n\", Nom(Alt)), (\"\\n\\n\\nclosure main:\\n input r0 as boolean;\\n input r1 as boolean;\\n\\n\\n\", Nom(Many1))] }" diff --git a/tests/expectations/compiler/tuple/function_unit_input_fail.out b/tests/expectations/compiler/tuple/function_unit_input_fail.out index 81974dfef1..b9a9c692b4 100644 --- a/tests/expectations/compiler/tuple/function_unit_input_fail.out +++ b/tests/expectations/compiler/tuple/function_unit_input_fail.out @@ -2,4 +2,4 @@ namespace: Compile expectation: Fail outputs: - - "Error [ETYC0372062]: Unit expressions can only be used in return statements.\n --> compiler-test:10:13\n |\n 10 | foo(());\n | ^^\n" + - "Error [ETYC0372063]: Unit expressions can only be used in return statements.\n --> compiler-test:10:13\n |\n 10 | foo(());\n | ^^\n" diff --git a/tests/expectations/compiler/tuple/tuple_in_assignment_fail.out b/tests/expectations/compiler/tuple/tuple_in_assignment_fail.out deleted file mode 100644 index a7f15623e0..0000000000 --- a/tests/expectations/compiler/tuple/tuple_in_assignment_fail.out +++ /dev/null @@ -1,5 +0,0 @@ ---- -namespace: Compile -expectation: Fail -outputs: - - "Error [ETYC0372058]: A function cannot take in tuples as input.\n --> compiler-test:4:20\n |\n 4 | transition baz(a: (u8, u16)) -> u8 {\n | ^\n" diff --git a/tests/expectations/compiler/tuple/tuple_in_function_param.out b/tests/expectations/compiler/tuple/tuple_in_function_param.out index 37ba4e505a..48c20b9668 100644 --- a/tests/expectations/compiler/tuple/tuple_in_function_param.out +++ b/tests/expectations/compiler/tuple/tuple_in_function_param.out @@ -2,4 +2,4 @@ namespace: Compile expectation: Fail outputs: - - "Error [ETYC0372055]: A function cannot take in a tuple as input.\n --> compiler-test:4:20\n |\n 4 | transition foo(a: (u8, u16)) -> (u8, u16) {\n | ^\n" + - "Error [ETYC0372056]: A function cannot take in a tuple as input.\n --> compiler-test:4:20\n |\n 4 | transition foo(a: (u8, u16)) -> (u8, u16) {\n | ^\n" diff --git a/tests/expectations/compiler/tuple/tuple_in_record_fail.out b/tests/expectations/compiler/tuple/tuple_in_record_fail.out index 117f83383e..1dae4627f2 100644 --- a/tests/expectations/compiler/tuple/tuple_in_record_fail.out +++ b/tests/expectations/compiler/tuple/tuple_in_record_fail.out @@ -2,4 +2,4 @@ namespace: Compile expectation: Fail outputs: - - "Error [ETYC0372054]: A record cannot contain a tuple.\n --> compiler-test:7:9\n |\n 7 | amounts: (u64, u64),\n | ^^^^^^^\n" + - "Error [ETYC0372055]: A record cannot contain a tuple.\n --> compiler-test:7:9\n |\n 7 | amounts: (u64, u64),\n | ^^^^^^^\n" diff --git a/tests/expectations/compiler/tuple/tuple_in_return_type.out b/tests/expectations/compiler/tuple/tuple_in_return_type.out index 5fbbc7188d..3724da1c31 100644 --- a/tests/expectations/compiler/tuple/tuple_in_return_type.out +++ b/tests/expectations/compiler/tuple/tuple_in_return_type.out @@ -2,4 +2,4 @@ namespace: Compile expectation: Fail outputs: - - "Error [ETYC0372053]: A tuple type cannot contain a tuple.\n --> compiler-test:4:35\n |\n 4 | transition bar(a: u8) -> (u8, (u8, u8)) {\n | ^^^^^^^^\nError [ETYC0372057]: A tuple expression cannot contain another tuple expression.\n --> compiler-test:5:20\n |\n 5 | return (a, (a + a, a * a));\n | ^^^^^^^^^^^^^^\nError [ETYC0372057]: A tuple expression cannot contain another tuple expression.\n --> compiler-test:5:20\n |\n 5 | return (a, (a + a, a * a));\n | ^^^^^^^^^^^^^^\n" + - "Error [ETYC0372054]: A tuple type cannot contain a tuple.\n --> compiler-test:4:35\n |\n 4 | transition bar(a: u8) -> (u8, (u8, u8)) {\n | ^^^^^^^^\nError [ETYC0372058]: A tuple expression cannot contain another tuple expression.\n --> compiler-test:5:20\n |\n 5 | return (a, (a + a, a * a));\n | ^^^^^^^^^^^^^^\nError [ETYC0372058]: A tuple expression cannot contain another tuple expression.\n --> compiler-test:5:20\n |\n 5 | return (a, (a + a, a * a));\n | ^^^^^^^^^^^^^^\n" diff --git a/tests/expectations/compiler/tuple/tuple_in_struct.out b/tests/expectations/compiler/tuple/tuple_in_struct.out deleted file mode 100644 index 91784df936..0000000000 --- a/tests/expectations/compiler/tuple/tuple_in_struct.out +++ /dev/null @@ -1,5 +0,0 @@ ---- -namespace: Compile -expectation: Fail -outputs: - - "Error [EPAR0370027]: The keyword `circuit` is deprecated.\n --> compiler-test:12:5\n |\n 12 | circuit Token {\n | ^^^^^^^\n |\n = Use `struct` instead." diff --git a/tests/expectations/compiler/tuple/tuple_in_struct_fail.out b/tests/expectations/compiler/tuple/tuple_in_struct_fail.out index 08cfaa00f1..173191b051 100644 --- a/tests/expectations/compiler/tuple/tuple_in_struct_fail.out +++ b/tests/expectations/compiler/tuple/tuple_in_struct_fail.out @@ -2,4 +2,4 @@ namespace: Compile expectation: Fail outputs: - - "Error [ETYC0372054]: A struct cannot contain a tuple.\n --> compiler-test:5:9\n |\n 5 | mem: (u8, u16)\n | ^^^\nError [ETYC0372054]: A struct cannot contain a tuple.\n --> compiler-test:9:9\n |\n 9 | mems: (A, A)\n | ^^^^\n" + - "Error [ETYC0372055]: A struct cannot contain a tuple.\n --> compiler-test:5:9\n |\n 5 | mem: (u8, u16)\n | ^^^\nError [ETYC0372055]: A struct cannot contain a tuple.\n --> compiler-test:9:9\n |\n 9 | mems: (A, A)\n | ^^^^\n" diff --git a/tests/expectations/compiler/tuple/tuple_not_allowed.out b/tests/expectations/compiler/tuple/tuple_not_allowed.out deleted file mode 100644 index 5d32056484..0000000000 --- a/tests/expectations/compiler/tuple/tuple_not_allowed.out +++ /dev/null @@ -1,5 +0,0 @@ ---- -namespace: Compile -expectation: Fail -outputs: - - "Error [ETYC0372056]: A struct cannot contain a tuple.\n --> compiler-test:22:9\n |\n 22 | mem: (u8, u16)\n | ^^^\nError [ETYC0372058]: A function cannot take in tuples as input.\n --> compiler-test:8:18\n |\n 8 | function foo(a: (u8, u16)) -> (u8, u16) {\n | ^\nError [ETYC0372055]: A tuple type cannot contain a tuple.\n --> compiler-test:12:28\n |\n 12 | function bar() -> (u8, (u16, u32)) {\n | ^^^^^^^^^^\nError [ETYC0372060]: A tuple expression cannot contain another tuple expression.\n --> compiler-test:13:22\n |\n 13 | return (1u8, (2u16, 3u32));\n | ^^^^^^^^^^^^\nError [ETYC0372060]: A tuple expression cannot contain another tuple expression.\n --> compiler-test:13:22\n |\n 13 | return (1u8, (2u16, 3u32));\n | ^^^^^^^^^^^^\nError [ETYC0372007]: Expected one type from `i8, i16, i32, i64, i128, u8, u16, u32, u64, u128`, but got `(u8,u16)`\n --> compiler-test:17:13\n |\n 17 | for i: (u8, u16) in 0u8..2u8 {}\n | ^\nError [ETYC0372003]: Expected type `(u8,u16)` but type `u8` was found\n --> compiler-test:17:29\n |\n 17 | for i: (u8, u16) in 0u8..2u8 {}\n | ^^^\nError [ETYC0372003]: Expected type `(u8,u16)` but type `u8` was found\n --> compiler-test:17:34\n |\n 17 | for i: (u8, u16) in 0u8..2u8 {}\n | ^^^\n" diff --git a/tests/expectations/compiler/tuple/tuple_not_allowed_fail.out b/tests/expectations/compiler/tuple/tuple_not_allowed_fail.out index 80bf433fc0..8c3f551d81 100644 --- a/tests/expectations/compiler/tuple/tuple_not_allowed_fail.out +++ b/tests/expectations/compiler/tuple/tuple_not_allowed_fail.out @@ -2,4 +2,4 @@ namespace: Compile expectation: Fail outputs: - - "Error [ETYC0372054]: A struct cannot contain a tuple.\n --> compiler-test:22:9\n |\n 22 | mem: (u8, u16)\n | ^^^\nError [ETYC0372055]: A function cannot take in a tuple as input.\n --> compiler-test:8:18\n |\n 8 | function foo(a: (u8, u16)) -> (u8, u16) {\n | ^\nError [ETYC0372053]: A tuple type cannot contain a tuple.\n --> compiler-test:12:28\n |\n 12 | function bar() -> (u8, (u16, u32)) {\n | ^^^^^^^^^^\nError [ETYC0372057]: A tuple expression cannot contain another tuple expression.\n --> compiler-test:13:22\n |\n 13 | return (1u8, (2u16, 3u32));\n | ^^^^^^^^^^^^\nError [ETYC0372057]: A tuple expression cannot contain another tuple expression.\n --> compiler-test:13:22\n |\n 13 | return (1u8, (2u16, 3u32));\n | ^^^^^^^^^^^^\nError [ETYC0372007]: Expected one type from `i8, i16, i32, i64, i128, u8, u16, u32, u64, u128`, but got `(u8,u16)`\n --> compiler-test:17:13\n |\n 17 | for i: (u8, u16) in 0u8..2u8 {}\n | ^\nError [ETYC0372003]: Expected type `(u8,u16)` but type `u8` was found\n --> compiler-test:17:29\n |\n 17 | for i: (u8, u16) in 0u8..2u8 {}\n | ^^^\nError [ETYC0372003]: Expected type `(u8,u16)` but type `u8` was found\n --> compiler-test:17:34\n |\n 17 | for i: (u8, u16) in 0u8..2u8 {}\n | ^^^\n" + - "Error [ETYC0372055]: A struct cannot contain a tuple.\n --> compiler-test:22:9\n |\n 22 | mem: (u8, u16)\n | ^^^\nError [ETYC0372056]: A function cannot take in a tuple as input.\n --> compiler-test:8:18\n |\n 8 | function foo(a: (u8, u16)) -> (u8, u16) {\n | ^\nError [ETYC0372054]: A tuple type cannot contain a tuple.\n --> compiler-test:12:28\n |\n 12 | function bar() -> (u8, (u16, u32)) {\n | ^^^^^^^^^^\nError [ETYC0372058]: A tuple expression cannot contain another tuple expression.\n --> compiler-test:13:22\n |\n 13 | return (1u8, (2u16, 3u32));\n | ^^^^^^^^^^^^\nError [ETYC0372058]: A tuple expression cannot contain another tuple expression.\n --> compiler-test:13:22\n |\n 13 | return (1u8, (2u16, 3u32));\n | ^^^^^^^^^^^^\nError [ETYC0372007]: Expected one type from `i8, i16, i32, i64, i128, u8, u16, u32, u64, u128`, but got `(u8,u16)`\n --> compiler-test:17:13\n |\n 17 | for i: (u8, u16) in 0u8..2u8 {}\n | ^\nError [ETYC0372003]: Expected type `(u8,u16)` but type `u8` was found\n --> compiler-test:17:29\n |\n 17 | for i: (u8, u16) in 0u8..2u8 {}\n | ^^^\nError [ETYC0372003]: Expected type `(u8,u16)` but type `u8` was found\n --> compiler-test:17:34\n |\n 17 | for i: (u8, u16) in 0u8..2u8 {}\n | ^^^\n" diff --git a/tests/expectations/parser/functions/public_const_param_fail.out b/tests/expectations/parser/functions/public_const_param_fail.out index 71569472a8..7b1f424768 100644 --- a/tests/expectations/parser/functions/public_const_param_fail.out +++ b/tests/expectations/parser/functions/public_const_param_fail.out @@ -2,4 +2,4 @@ namespace: Parse expectation: Fail outputs: - - "Error [EPAR0370019]: A parameter cannot be both public and const.\n --> test:4:24\n |\n 4 | function x(x: u32, public const y: i32) {\n | ^^^^^^^^^^^^" + - "Error [EPAR0370019]: A parameter cannot have multiple modes.\n --> test:4:24\n |\n 4 | function x(x: u32, public const y: i32) {\n | ^^^^^^^^^^^^\n |\n = Consider using either `constant`, `public`, `private`, or none at all." diff --git a/tests/expectations/parser/inputs/input_public_constant_fail.out b/tests/expectations/parser/inputs/input_public_constant_fail.out index f91a9926be..dda0297a22 100644 --- a/tests/expectations/parser/inputs/input_public_constant_fail.out +++ b/tests/expectations/parser/inputs/input_public_constant_fail.out @@ -2,4 +2,4 @@ namespace: Input expectation: Fail outputs: - - "Error [EPAR0370019]: A parameter cannot be both public and const.\n --> test:4:1\n |\n 4 | public constant a: bool = true;\n | ^^^^^^^^^^^^^^^" + - "Error [EPAR0370019]: A parameter cannot have multiple modes.\n --> test:4:1\n |\n 4 | public constant a: bool = true;\n | ^^^^^^^^^^^^^^^\n |\n = Consider using either `constant`, `public`, `private`, or none at all." diff --git a/tests/test-framework/Cargo.toml b/tests/test-framework/Cargo.toml index 76bb1d8859..29d9f5cd62 100644 --- a/tests/test-framework/Cargo.toml +++ b/tests/test-framework/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "leo-test-framework" -version = "1.5.3" -authors = ["The Aleo Team "] +version = "1.6.0" +authors = [ "The Aleo Team " ] description = "Leo testing framework" homepage = "https://aleo.org" repository = "https://github.com/AleoHQ/leo" @@ -10,10 +10,10 @@ keywords = [ "cryptography", "leo", "programming-language", - "zero-knowledge", + "zero-knowledge" ] -categories = ["cryptography::cryptocurrencies", "web-programming"] -include = ["Cargo.toml", "src", "README.md", "LICENSE.md"] +categories = [ "cryptography::cryptocurrencies", "web-programming" ] +include = [ "Cargo.toml", "src", "benches", "README.md", "LICENSE.md" ] license = "GPL-3.0" edition = "2018" @@ -23,22 +23,22 @@ harness = false [dependencies.leo-errors] path = "../../errors" -version = "1.5.3" +version = "1.6.0" [dependencies.backtrace] version = "0.3.66" [dependencies.clap] version = "3.2" -features = ["derive"] +features = [ "derive" ] [dependencies.serde] version = "1.0" -features = ["derive"] +features = [ "derive" ] [dependencies.serde_json] version = "1.0" -features = ["preserve_order"] +features = [ "preserve_order" ] [dependencies.serde_yaml] version = "0.8"