Merge pull request #2073 from AleoHQ/fix/core-function-composite-data-types

Enable core function calls on composite data types.
This commit is contained in:
Collin Chin 2022-09-20 00:14:22 +02:00 committed by GitHub
commit bbd41f81b6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
31 changed files with 494 additions and 402 deletions

428
Cargo.lock generated
View File

@ -1226,7 +1226,7 @@ dependencies = [
"serde",
"serde_yaml",
"sha2",
"snarkvm 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"tempfile",
]
@ -1281,7 +1281,7 @@ dependencies = [
"self_update 0.32.0",
"serde",
"serde_json",
"snarkvm 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"sys-info",
"test_dir",
"toml",
@ -2354,7 +2354,8 @@ dependencies = [
[[package]]
name = "snarkvm"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5b279f770bcda283e2cfbe263856f3c0e59f61a3b5d6e28535c21f5db8b4684"
dependencies = [
"anyhow",
"clap",
@ -2366,12 +2367,12 @@ dependencies = [
"rayon",
"self_update 0.30.0",
"serde_json",
"snarkvm-circuit 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-compiler 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-fields 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-parameters 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-utilities 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-compiler 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-fields 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-parameters 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-utilities 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"thiserror",
"ureq",
"walkdir",
@ -2407,7 +2408,8 @@ dependencies = [
[[package]]
name = "snarkvm-algorithms"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4d3e262f8366dd864e6f7f24019c72f8d23b8004b969d663179cba79f320300c"
dependencies = [
"aleo-std",
"anyhow",
@ -2430,11 +2432,11 @@ dependencies = [
"serde",
"sha2",
"smallvec",
"snarkvm-curves 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-fields 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-parameters 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-r1cs 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-utilities 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-curves 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-fields 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-parameters 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-r1cs 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-utilities 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"thiserror",
]
@ -2467,15 +2469,16 @@ dependencies = [
[[package]]
name = "snarkvm-circuit"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ceb241abea74266d938c370e11353a7088af7737ac1e8196ebce99fb7833cd73"
dependencies = [
"snarkvm-circuit-account 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-algorithms 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-collections 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-environment 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-network 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-program 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-account 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-algorithms 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-collections 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-environment 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-network 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-program 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -2495,12 +2498,13 @@ dependencies = [
[[package]]
name = "snarkvm-circuit-account"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "177d73a08f1f30e273082f63858d6e24048e59d8230e461110403d6ef04f9024"
dependencies = [
"snarkvm-circuit-algorithms 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-network 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-account 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-algorithms 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-network 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-account 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -2517,11 +2521,12 @@ dependencies = [
[[package]]
name = "snarkvm-circuit-algorithms"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1010ff54e1907918dd888bd9b82cfed194458049de61b709a4d831c01d903c5"
dependencies = [
"snarkvm-circuit-types 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-algorithms 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-fields 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-algorithms 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-fields 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -2537,11 +2542,12 @@ dependencies = [
[[package]]
name = "snarkvm-circuit-collections"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0983db21aeab0cb219af3c61ce12fb25e13b652c88638f66fa1a9e6677835d9"
dependencies = [
"snarkvm-circuit-algorithms 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-collections 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-algorithms 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-collections 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -2557,19 +2563,20 @@ dependencies = [
[[package]]
name = "snarkvm-circuit-environment"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8209a8be834ac3dea29361baf57b768628626d3f75faeb121f50dcce1be7feba"
dependencies = [
"indexmap",
"itertools",
"nom",
"num-traits",
"once_cell",
"snarkvm-circuit-environment-witness 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-network 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-curves 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-fields 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-r1cs 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-utilities 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-environment-witness 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-network 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-curves 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-fields 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-r1cs 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-utilities 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -2593,7 +2600,8 @@ dependencies = [
[[package]]
name = "snarkvm-circuit-environment-witness"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7583026e8509730f5c8f3700afae0a5542ec8186babb71a4d735bc7dbce4aae4"
[[package]]
name = "snarkvm-circuit-environment-witness"
@ -2603,12 +2611,13 @@ source = "git+https://github.com/AleoHQ/snarkVM.git?rev=69cf3bd#69cf3bd1120f9a7e
[[package]]
name = "snarkvm-circuit-network"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "503935e0378d10a3d3d16f74458b968d8198f11c88d9f2553343d7a94659e0bf"
dependencies = [
"snarkvm-circuit-algorithms 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-collections 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-network 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-algorithms 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-collections 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-network 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -2625,13 +2634,14 @@ dependencies = [
[[package]]
name = "snarkvm-circuit-program"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b03458b3076dfd37795120c7157c6e2cea1fdfa93164dbc890fe8c483591d101"
dependencies = [
"snarkvm-circuit-account 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-network 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-program 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-utilities 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-account 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-network 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-program 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-utilities 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -2649,16 +2659,17 @@ dependencies = [
[[package]]
name = "snarkvm-circuit-types"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b5ba70d16e5a395febfc8d40d01f35fc491fc6bfbb2af3ce2ca525f487802cd"
dependencies = [
"snarkvm-circuit-environment 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-address 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-boolean 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-field 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-group 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-integers 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-scalar 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-string 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-environment 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-address 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-boolean 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-field 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-group 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-integers 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-scalar 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-string 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -2679,14 +2690,15 @@ dependencies = [
[[package]]
name = "snarkvm-circuit-types-address"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb9fd3c7a888e6608f0cd88d72e45494e97615c2a16e417c7ca400bcea78ab55"
dependencies = [
"snarkvm-circuit-environment 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-boolean 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-field 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-group 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-scalar 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-address 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-environment 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-boolean 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-field 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-group 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-scalar 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-address 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -2705,10 +2717,11 @@ dependencies = [
[[package]]
name = "snarkvm-circuit-types-boolean"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f342e6f46818692471f4e052358f57694079c3af90c6f89ab248f1e624ef5a8"
dependencies = [
"snarkvm-circuit-environment 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-boolean 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-environment 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-boolean 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -2723,11 +2736,12 @@ dependencies = [
[[package]]
name = "snarkvm-circuit-types-field"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b3973d536296f7493eb71ee57b987f3a8239a62042965bab24d51f071a34b981"
dependencies = [
"snarkvm-circuit-environment 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-boolean 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-field 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-environment 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-boolean 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-field 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -2743,13 +2757,14 @@ dependencies = [
[[package]]
name = "snarkvm-circuit-types-group"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e4b08f2d065e3eb1276d733e2f150969475c6a42c22d8bb8b9d97dd0d478666"
dependencies = [
"snarkvm-circuit-environment 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-boolean 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-field 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-scalar 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-group 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-environment 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-boolean 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-field 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-scalar 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-group 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -2767,12 +2782,13 @@ dependencies = [
[[package]]
name = "snarkvm-circuit-types-integers"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca891df425ffc54eb64101d8c4ea547a25156d0764c75d7fc97cb2e46b7e1740"
dependencies = [
"snarkvm-circuit-environment 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-boolean 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-field 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-integers 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-environment 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-boolean 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-field 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-integers 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -2789,12 +2805,13 @@ dependencies = [
[[package]]
name = "snarkvm-circuit-types-scalar"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "315d6edbf6c6a2263d84cd3a8f598375924004753b100d8613307df4cc9891c9"
dependencies = [
"snarkvm-circuit-environment 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-boolean 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-field 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-scalar 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-environment 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-boolean 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-field 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-scalar 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -2811,13 +2828,14 @@ dependencies = [
[[package]]
name = "snarkvm-circuit-types-string"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1787f084fd0ba31dffd0ab5d1dd93a6bb2ae737cac3f4ff1a259870d6cb4b8e1"
dependencies = [
"snarkvm-circuit-environment 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-boolean 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-field 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-types-integers 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-string 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit-environment 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-boolean 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-field 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit-types-integers 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-string 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -2835,7 +2853,8 @@ dependencies = [
[[package]]
name = "snarkvm-compiler"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "63538715dec99b58be27b510084c39cf09de3d67ecf9a206987c73b40b64772b"
dependencies = [
"anyhow",
"colored",
@ -2847,13 +2866,13 @@ dependencies = [
"rayon",
"serde",
"serde_json",
"snarkvm-algorithms 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-circuit 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-curves 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-fields 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-parameters 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-utilities 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-algorithms 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-circuit 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-curves 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-fields 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-parameters 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-utilities 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"time",
"tracing",
]
@ -2900,14 +2919,15 @@ dependencies = [
[[package]]
name = "snarkvm-console"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f1ba7c383de0a3530c3499a7cc7634a273f197a3299e64fd5d5b216e7ce6b84"
dependencies = [
"snarkvm-console-account 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-algorithms 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-collections 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-network 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-program 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-account 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-algorithms 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-collections 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-network 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-program 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -2936,11 +2956,12 @@ dependencies = [
[[package]]
name = "snarkvm-console-account"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d154b01c514338c59bc7321704e9f4c6208869e45b91a2e3441a0ee54ab9c668"
dependencies = [
"base58",
"snarkvm-console-network 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-network 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -2968,13 +2989,14 @@ dependencies = [
[[package]]
name = "snarkvm-console-algorithms"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56b85e0b048b65948a26291edfb9493fe42273a113a42eb2f297dabf4fb63ff8"
dependencies = [
"blake2s_simd",
"smallvec",
"snarkvm-console-types 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-fields 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-utilities 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-fields 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-utilities 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -3003,12 +3025,13 @@ dependencies = [
[[package]]
name = "snarkvm-console-collections"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a75be0fafa2699be8d2552f73275125d80cfc7ef32004344648ba7137646323d"
dependencies = [
"aleo-std",
"rayon",
"snarkvm-console-algorithms 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-algorithms 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -3043,20 +3066,21 @@ dependencies = [
[[package]]
name = "snarkvm-console-network"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "094a9ea02c0b095f4a16f9e5fc57819fdb0c61cf3cf57094a0577445405a10d0"
dependencies = [
"anyhow",
"itertools",
"lazy_static",
"serde",
"snarkvm-algorithms 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-algorithms 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-collections 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-network-environment 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-curves 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-fields 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-utilities 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-algorithms 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-algorithms 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-collections 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-network-environment 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-curves 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-fields 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-utilities 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -3099,7 +3123,8 @@ dependencies = [
[[package]]
name = "snarkvm-console-network-environment"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "caca5fe70ad114ceaaaa6e026c433f32e857d3eb1f1d0aa1abb24bafcee037fa"
dependencies = [
"anyhow",
"bech32",
@ -3109,9 +3134,9 @@ dependencies = [
"rand",
"rand_xorshift",
"serde",
"snarkvm-curves 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-fields 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-utilities 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-curves 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-fields 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-utilities 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -3151,7 +3176,8 @@ dependencies = [
[[package]]
name = "snarkvm-console-program"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5622e20ab81208eac2421426b2aedbe35cf44452ebbed8ac8060b4cbfd6f548c"
dependencies = [
"enum_index",
"enum_index_derive",
@ -3160,9 +3186,9 @@ dependencies = [
"num-traits",
"once_cell",
"serde_json",
"snarkvm-console-account 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-network 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-account 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-network 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -3200,16 +3226,17 @@ dependencies = [
[[package]]
name = "snarkvm-console-types"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0723afaeb9fc0aa8f419821b8216a5e622259014a22e0df3a2692a36cb4b9eca"
dependencies = [
"snarkvm-console-network-environment 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-address 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-boolean 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-field 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-group 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-integers 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-scalar 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-string 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-network-environment 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-address 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-boolean 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-field 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-group 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-integers 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-scalar 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-string 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -3241,12 +3268,13 @@ dependencies = [
[[package]]
name = "snarkvm-console-types-address"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f043b8cf64f17668cf9335ac517de258a83a1ef99b6f164c2dfb1744c3e84e1"
dependencies = [
"snarkvm-console-network-environment 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-boolean 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-field 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-group 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-network-environment 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-boolean 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-field 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-group 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -3271,9 +3299,10 @@ dependencies = [
[[package]]
name = "snarkvm-console-types-boolean"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c41ee6d8839625f20a69ed5e0aea4a4a375065a3771e82087e653f9ffab992c"
dependencies = [
"snarkvm-console-network-environment 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-network-environment 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -3296,10 +3325,11 @@ dependencies = [
[[package]]
name = "snarkvm-console-types-field"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7fdb87d808337c2d3d8f308ea033b5c0ef5a2b6f9b8c65da9be9c95c378eac74"
dependencies = [
"snarkvm-console-network-environment 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-boolean 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-network-environment 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-boolean 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -3325,12 +3355,13 @@ dependencies = [
[[package]]
name = "snarkvm-console-types-group"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "992544843cb3d9e7092f368735ab26adc684e8351a623165e9047f3656385963"
dependencies = [
"snarkvm-console-network-environment 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-boolean 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-field 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-scalar 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-network-environment 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-boolean 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-field 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-scalar 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -3357,11 +3388,12 @@ dependencies = [
[[package]]
name = "snarkvm-console-types-integers"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5c8c39788b51ebe64afe2ff0713ff1e38ab9655fbda4ead4a9709052751662a"
dependencies = [
"snarkvm-console-network-environment 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-boolean 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-field 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-network-environment 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-boolean 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-field 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -3387,11 +3419,12 @@ dependencies = [
[[package]]
name = "snarkvm-console-types-scalar"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d2ee92bfee12ad9cb726edb4f09bfec64a383a0742e12645027b92f6951dc71"
dependencies = [
"snarkvm-console-network-environment 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-boolean 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-field 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-network-environment 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-boolean 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-field 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -3418,12 +3451,13 @@ dependencies = [
[[package]]
name = "snarkvm-console-types-string"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b6284e9d8e4fe278ee148ec926b29810d32d374aa137b47d015f72afe15a39b"
dependencies = [
"snarkvm-console-network-environment 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-boolean 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-field 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-types-integers 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-console-network-environment 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-boolean 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-field 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-console-types-integers 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -3454,13 +3488,14 @@ dependencies = [
[[package]]
name = "snarkvm-curves"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba592e7423b5255a02963459d9772e31310b480691cbed53ccd7112f6a4ce141"
dependencies = [
"rand",
"rustc_version",
"serde",
"snarkvm-fields 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-utilities 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-fields 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-utilities 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"thiserror",
]
@ -3494,7 +3529,8 @@ dependencies = [
[[package]]
name = "snarkvm-fields"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3adac545c670fa0195e4baad740dae85b62b5a72c30872edbe511c37963a158f"
dependencies = [
"aleo-std",
"anyhow",
@ -3504,7 +3540,7 @@ dependencies = [
"rand",
"rayon",
"serde",
"snarkvm-utilities 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-utilities 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"thiserror",
]
@ -3528,7 +3564,8 @@ dependencies = [
[[package]]
name = "snarkvm-parameters"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e52a5a3271010e0ca76688933e706f967586153d85f4e251595e1ae6803c89e"
dependencies = [
"aleo-std",
"anyhow",
@ -3543,8 +3580,8 @@ dependencies = [
"rand",
"serde_json",
"sha2",
"snarkvm-curves 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-utilities 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-curves 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-utilities 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"thiserror",
]
@ -3574,16 +3611,17 @@ dependencies = [
[[package]]
name = "snarkvm-r1cs"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dce2a7bf947d8bdc6a5016bc196d85610e5a14825e48c31cbadfadee78adf119"
dependencies = [
"anyhow",
"cfg-if",
"fxhash",
"indexmap",
"itertools",
"snarkvm-curves 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-fields 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-utilities 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-curves 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-fields 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"snarkvm-utilities 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"thiserror",
]
@ -3636,7 +3674,8 @@ dependencies = [
[[package]]
name = "snarkvm-utilities"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "566bf746514d899c1863224e06c06ba66b2162a650e529dcafdfa3c9428d7bf8"
dependencies = [
"aleo-std",
"anyhow",
@ -3647,7 +3686,7 @@ dependencies = [
"rand_xorshift",
"rayon",
"serde",
"snarkvm-utilities-derives 0.9.0 (git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0)",
"snarkvm-utilities-derives 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"thiserror",
]
@ -3684,7 +3723,8 @@ dependencies = [
[[package]]
name = "snarkvm-utilities-derives"
version = "0.9.0"
source = "git+https://github.com/AleoHQ/snarkVM.git?tag=v0.9.0#76587550b86ddd9b70ea1e6dea952daae2be7b2d"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62be8d121e259363e949a4db7df7d770a94ea1a5cc6c88e5103d08204c6f4aed"
dependencies = [
"proc-macro-crate",
"proc-macro-error",

View File

@ -14,7 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
use crate::algorithms::{CoreFunction, ALL_TYPES};
use crate::algorithms::CoreFunction;
use leo_ast::Type;
pub struct BHP256Hash;
@ -22,8 +22,8 @@ pub struct BHP256Hash;
impl CoreFunction for BHP256Hash {
const NUM_ARGS: usize = 1;
fn first_arg_types() -> &'static [Type] {
&ALL_TYPES
fn first_arg_is_allowed_type(type_: &Type) -> bool {
!matches!(type_, Type::Mapping(_) | Type::Tuple(_) | Type::Err | Type::Unit)
}
fn return_type() -> Type {
@ -36,12 +36,12 @@ pub struct BHP256Commit;
impl CoreFunction for BHP256Commit {
const NUM_ARGS: usize = 2;
fn first_arg_types() -> &'static [Type] {
&ALL_TYPES
fn first_arg_is_allowed_type(type_: &Type) -> bool {
!matches!(type_, Type::Mapping(_) | Type::Tuple(_) | Type::Err | Type::Unit)
}
fn second_arg_types() -> &'static [Type] {
&[Type::Scalar]
fn second_arg_is_allowed_type(type_: &Type) -> bool {
matches!(type_, Type::Scalar)
}
fn return_type() -> Type {
@ -54,8 +54,8 @@ pub struct BHP512Hash;
impl CoreFunction for BHP512Hash {
const NUM_ARGS: usize = 1;
fn first_arg_types() -> &'static [Type] {
&ALL_TYPES
fn first_arg_is_allowed_type(type_: &Type) -> bool {
!matches!(type_, Type::Mapping(_) | Type::Tuple(_) | Type::Err | Type::Unit)
}
fn return_type() -> Type {
@ -68,12 +68,12 @@ pub struct BHP512Commit;
impl CoreFunction for BHP512Commit {
const NUM_ARGS: usize = 2;
fn first_arg_types() -> &'static [Type] {
&ALL_TYPES
fn first_arg_is_allowed_type(type_: &Type) -> bool {
!matches!(type_, Type::Mapping(_) | Type::Tuple(_) | Type::Err | Type::Unit)
}
fn second_arg_types() -> &'static [Type] {
&[Type::Scalar]
fn second_arg_is_allowed_type(type_: &Type) -> bool {
matches!(type_, Type::Scalar)
}
fn return_type() -> Type {
@ -86,8 +86,8 @@ pub struct BHP768Hash;
impl CoreFunction for BHP768Hash {
const NUM_ARGS: usize = 1;
fn first_arg_types() -> &'static [Type] {
&ALL_TYPES
fn first_arg_is_allowed_type(type_: &Type) -> bool {
!matches!(type_, Type::Mapping(_) | Type::Tuple(_) | Type::Err | Type::Unit)
}
fn return_type() -> Type {
@ -100,12 +100,12 @@ pub struct BHP768Commit;
impl CoreFunction for BHP768Commit {
const NUM_ARGS: usize = 2;
fn first_arg_types() -> &'static [Type] {
&ALL_TYPES
fn first_arg_is_allowed_type(type_: &Type) -> bool {
!matches!(type_, Type::Mapping(_) | Type::Tuple(_) | Type::Err | Type::Unit)
}
fn second_arg_types() -> &'static [Type] {
&[Type::Scalar]
fn second_arg_is_allowed_type(type_: &Type) -> bool {
matches!(type_, Type::Scalar)
}
fn return_type() -> Type {
@ -118,8 +118,8 @@ pub struct BHP1024Hash;
impl CoreFunction for BHP1024Hash {
const NUM_ARGS: usize = 1;
fn first_arg_types() -> &'static [Type] {
&ALL_TYPES
fn first_arg_is_allowed_type(type_: &Type) -> bool {
!matches!(type_, Type::Mapping(_) | Type::Tuple(_) | Type::Err | Type::Unit)
}
fn return_type() -> Type {
@ -132,12 +132,12 @@ pub struct BHP1024Commit;
impl CoreFunction for BHP1024Commit {
const NUM_ARGS: usize = 2;
fn first_arg_types() -> &'static [Type] {
&ALL_TYPES
fn first_arg_is_allowed_type(type_: &Type) -> bool {
!matches!(type_, Type::Mapping(_) | Type::Tuple(_) | Type::Err | Type::Unit)
}
fn second_arg_types() -> &'static [Type] {
&[Type::Scalar]
fn second_arg_is_allowed_type(type_: &Type) -> bool {
matches!(type_, Type::Scalar)
}
fn return_type() -> Type {

View File

@ -22,7 +22,7 @@ pub use pedersen::*;
mod poseidon;
pub use poseidon::*;
use leo_ast::{IntegerType, Type};
use leo_ast::Type;
use leo_span::{sym, Symbol};
/// A core instruction that maps directly to an AVM bytecode instruction.
@ -95,49 +95,45 @@ impl CoreInstruction {
}
}
/// The allowed types for the first argument of the instruction.
pub fn first_arg_types(&self) -> &'static [Type] {
/// Returns whether or not the first argument is an allowed type.
pub fn first_arg_is_allowed_type(&self, type_: &Type) -> bool {
match self {
Self::BHP256Commit => BHP256Commit::first_arg_types(),
Self::BHP256Hash => BHP256Hash::first_arg_types(),
Self::BHP512Commit => BHP512Commit::first_arg_types(),
Self::BHP512Hash => BHP512Hash::first_arg_types(),
Self::BHP768Commit => BHP768Commit::first_arg_types(),
Self::BHP768Hash => BHP768Hash::first_arg_types(),
Self::BHP1024Commit => BHP1024Commit::first_arg_types(),
Self::BHP1024Hash => BHP1024Hash::first_arg_types(),
Self::Pedersen64Commit => Pedersen64Commit::first_arg_types(),
Self::Pedersen64Hash => Pedersen64Hash::first_arg_types(),
Self::Pedersen128Commit => Pedersen128Commit::first_arg_types(),
Self::Pedersen128Hash => Pedersen128Hash::first_arg_types(),
Self::Poseidon2Hash => Poseidon2Hash::first_arg_types(),
Self::Poseidon4Hash => Poseidon4Hash::first_arg_types(),
Self::Poseidon8Hash => Poseidon8Hash::first_arg_types(),
CoreInstruction::BHP256Commit => BHP256Commit::first_arg_is_allowed_type(type_),
CoreInstruction::BHP256Hash => BHP256Hash::first_arg_is_allowed_type(type_),
CoreInstruction::BHP512Commit => BHP512Commit::first_arg_is_allowed_type(type_),
CoreInstruction::BHP512Hash => BHP512Hash::first_arg_is_allowed_type(type_),
CoreInstruction::BHP768Commit => BHP768Commit::first_arg_is_allowed_type(type_),
CoreInstruction::BHP768Hash => BHP768Hash::first_arg_is_allowed_type(type_),
CoreInstruction::BHP1024Commit => BHP1024Commit::first_arg_is_allowed_type(type_),
CoreInstruction::BHP1024Hash => BHP1024Hash::first_arg_is_allowed_type(type_),
CoreInstruction::Pedersen64Commit => Pedersen64Commit::first_arg_is_allowed_type(type_),
CoreInstruction::Pedersen64Hash => Pedersen64Hash::first_arg_is_allowed_type(type_),
CoreInstruction::Pedersen128Commit => Pedersen128Commit::first_arg_is_allowed_type(type_),
CoreInstruction::Pedersen128Hash => Pedersen128Hash::first_arg_is_allowed_type(type_),
CoreInstruction::Poseidon2Hash => Poseidon2Hash::first_arg_is_allowed_type(type_),
CoreInstruction::Poseidon4Hash => Poseidon4Hash::first_arg_is_allowed_type(type_),
CoreInstruction::Poseidon8Hash => Poseidon8Hash::first_arg_is_allowed_type(type_),
}
}
/// The allowed types for the second argument of the instruction.
pub fn second_arg_types(&self) -> &'static [Type] {
/// Returns whether or not the second argument is an allowed type.
pub fn second_arg_is_allowed_type(&self, type_: &Type) -> bool {
match self {
Self::BHP256Commit => BHP256Commit::second_arg_types(),
Self::BHP256Hash => BHP256Hash::second_arg_types(),
Self::BHP512Commit => BHP512Commit::second_arg_types(),
Self::BHP512Hash => BHP512Hash::second_arg_types(),
Self::BHP768Commit => BHP768Commit::second_arg_types(),
Self::BHP768Hash => BHP768Hash::second_arg_types(),
Self::BHP1024Commit => BHP1024Commit::second_arg_types(),
Self::BHP1024Hash => BHP1024Hash::second_arg_types(),
Self::Pedersen64Commit => Pedersen64Commit::second_arg_types(),
Self::Pedersen64Hash => Pedersen64Hash::second_arg_types(),
Self::Pedersen128Commit => Pedersen128Commit::second_arg_types(),
Self::Pedersen128Hash => Pedersen128Hash::second_arg_types(),
Self::Poseidon2Hash => Poseidon2Hash::second_arg_types(),
Self::Poseidon4Hash => Poseidon4Hash::second_arg_types(),
Self::Poseidon8Hash => Poseidon8Hash::second_arg_types(),
CoreInstruction::BHP256Commit => BHP256Commit::second_arg_is_allowed_type(type_),
CoreInstruction::BHP256Hash => BHP256Hash::second_arg_is_allowed_type(type_),
CoreInstruction::BHP512Commit => BHP512Commit::second_arg_is_allowed_type(type_),
CoreInstruction::BHP512Hash => BHP512Hash::second_arg_is_allowed_type(type_),
CoreInstruction::BHP768Commit => BHP768Commit::second_arg_is_allowed_type(type_),
CoreInstruction::BHP768Hash => BHP768Hash::second_arg_is_allowed_type(type_),
CoreInstruction::BHP1024Commit => BHP1024Commit::second_arg_is_allowed_type(type_),
CoreInstruction::BHP1024Hash => BHP1024Hash::second_arg_is_allowed_type(type_),
CoreInstruction::Pedersen64Commit => Pedersen64Commit::second_arg_is_allowed_type(type_),
CoreInstruction::Pedersen64Hash => Pedersen64Hash::second_arg_is_allowed_type(type_),
CoreInstruction::Pedersen128Commit => Pedersen128Commit::second_arg_is_allowed_type(type_),
CoreInstruction::Pedersen128Hash => Pedersen128Hash::second_arg_is_allowed_type(type_),
CoreInstruction::Poseidon2Hash => Poseidon2Hash::second_arg_is_allowed_type(type_),
CoreInstruction::Poseidon4Hash => Poseidon4Hash::second_arg_is_allowed_type(type_),
CoreInstruction::Poseidon8Hash => Poseidon8Hash::second_arg_is_allowed_type(type_),
}
}
@ -170,62 +166,16 @@ impl CoreInstruction {
trait CoreFunction {
const NUM_ARGS: usize;
/// Returns first argument allowed types.
fn first_arg_types() -> &'static [Type];
/// Returns whether or not the first argument is an allowed type.
fn first_arg_is_allowed_type(_: &Type) -> bool {
false
}
/// Returns the second argument allowed types.
/// Implementing this method is optional since some functions may not allow a second argument.
fn second_arg_types() -> &'static [Type] {
&[]
/// Returns whether or not the second argument is an allowed type.
fn second_arg_is_allowed_type(_: &Type) -> bool {
false
}
/// The return type of the core function.
fn return_type() -> Type;
}
const ALL_TYPES: [Type; 16] = [
Type::Address,
Type::Boolean,
Type::Field,
Type::Group,
Type::Integer(IntegerType::I8),
Type::Integer(IntegerType::I16),
Type::Integer(IntegerType::I32),
Type::Integer(IntegerType::I64),
Type::Integer(IntegerType::I128),
Type::Integer(IntegerType::U8),
Type::Integer(IntegerType::U16),
Type::Integer(IntegerType::U32),
Type::Integer(IntegerType::U64),
Type::Integer(IntegerType::U128),
Type::Scalar,
Type::String,
];
const BOOL_INT_STRING_TYPES: [Type; 12] = [
Type::Boolean,
Type::Integer(IntegerType::I8),
Type::Integer(IntegerType::I16),
Type::Integer(IntegerType::I32),
Type::Integer(IntegerType::I64),
Type::Integer(IntegerType::I128),
Type::Integer(IntegerType::U8),
Type::Integer(IntegerType::U16),
Type::Integer(IntegerType::U32),
Type::Integer(IntegerType::U64),
Type::Integer(IntegerType::U128),
Type::String,
];
const BOOL_INT64_STRING_TYPES: [Type; 10] = [
Type::Boolean,
Type::Integer(IntegerType::I8),
Type::Integer(IntegerType::I16),
Type::Integer(IntegerType::I32),
Type::Integer(IntegerType::I64),
Type::Integer(IntegerType::U8),
Type::Integer(IntegerType::U16),
Type::Integer(IntegerType::U32),
Type::Integer(IntegerType::U64),
Type::String,
];

View File

@ -14,16 +14,28 @@
// You should have received a copy of the GNU General Public License
// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
use crate::algorithms::{CoreFunction, BOOL_INT64_STRING_TYPES, BOOL_INT_STRING_TYPES};
use leo_ast::Type;
use crate::algorithms::CoreFunction;
use leo_ast::{IntegerType, Type};
pub struct Pedersen64Hash;
impl CoreFunction for Pedersen64Hash {
const NUM_ARGS: usize = 1;
fn first_arg_types() -> &'static [Type] {
&BOOL_INT64_STRING_TYPES
fn first_arg_is_allowed_type(type_: &Type) -> bool {
matches!(
type_,
Type::Boolean
| Type::Integer(IntegerType::I8)
| Type::Integer(IntegerType::I16)
| Type::Integer(IntegerType::I32)
| Type::Integer(IntegerType::I64)
| Type::Integer(IntegerType::U8)
| Type::Integer(IntegerType::U16)
| Type::Integer(IntegerType::U32)
| Type::Integer(IntegerType::U64)
| Type::String
)
}
fn return_type() -> Type {
@ -36,12 +48,24 @@ pub struct Pedersen64Commit;
impl CoreFunction for Pedersen64Commit {
const NUM_ARGS: usize = 2;
fn first_arg_types() -> &'static [Type] {
&BOOL_INT64_STRING_TYPES
fn first_arg_is_allowed_type(type_: &Type) -> bool {
matches!(
type_,
Type::Boolean
| Type::Integer(IntegerType::I8)
| Type::Integer(IntegerType::I16)
| Type::Integer(IntegerType::I32)
| Type::Integer(IntegerType::I64)
| Type::Integer(IntegerType::U8)
| Type::Integer(IntegerType::U16)
| Type::Integer(IntegerType::U32)
| Type::Integer(IntegerType::U64)
| Type::String
)
}
fn second_arg_types() -> &'static [Type] {
&[Type::Scalar]
fn second_arg_is_allowed_type(type_: &Type) -> bool {
matches!(type_, Type::Scalar)
}
fn return_type() -> Type {
@ -54,8 +78,8 @@ pub struct Pedersen128Hash;
impl CoreFunction for Pedersen128Hash {
const NUM_ARGS: usize = 1;
fn first_arg_types() -> &'static [Type] {
&BOOL_INT_STRING_TYPES
fn first_arg_is_allowed_type(type_: &Type) -> bool {
matches!(type_, Type::Boolean | Type::Integer(_) | Type::String)
}
fn return_type() -> Type {
@ -68,12 +92,12 @@ pub struct Pedersen128Commit;
impl CoreFunction for Pedersen128Commit {
const NUM_ARGS: usize = 2;
fn first_arg_types() -> &'static [Type] {
&BOOL_INT_STRING_TYPES
fn first_arg_is_allowed_type(type_: &Type) -> bool {
matches!(type_, Type::Boolean | Type::Integer(_) | Type::String)
}
fn second_arg_types() -> &'static [Type] {
&[Type::Scalar]
fn second_arg_is_allowed_type(type_: &Type) -> bool {
matches!(type_, Type::Scalar)
}
fn return_type() -> Type {

View File

@ -14,7 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
use crate::algorithms::{CoreFunction, ALL_TYPES};
use crate::algorithms::CoreFunction;
use leo_ast::Type;
pub struct Poseidon2Hash;
@ -22,8 +22,8 @@ pub struct Poseidon2Hash;
impl CoreFunction for Poseidon2Hash {
const NUM_ARGS: usize = 1;
fn first_arg_types() -> &'static [Type] {
&ALL_TYPES
fn first_arg_is_allowed_type(type_: &Type) -> bool {
!matches!(type_, Type::Mapping(_) | Type::Tuple(_) | Type::Err | Type::Unit)
}
fn return_type() -> Type {
@ -36,8 +36,8 @@ pub struct Poseidon4Hash;
impl CoreFunction for Poseidon4Hash {
const NUM_ARGS: usize = 1;
fn first_arg_types() -> &'static [Type] {
&ALL_TYPES
fn first_arg_is_allowed_type(type_: &Type) -> bool {
!matches!(type_, Type::Mapping(_) | Type::Tuple(_) | Type::Err | Type::Unit)
}
fn return_type() -> Type {
@ -50,8 +50,8 @@ pub struct Poseidon8Hash;
impl CoreFunction for Poseidon8Hash {
const NUM_ARGS: usize = 1;
fn first_arg_types() -> &'static [Type] {
&ALL_TYPES
fn first_arg_is_allowed_type(type_: &Type) -> bool {
!matches!(type_, Type::Mapping(_) | Type::Tuple(_) | Type::Err | Type::Unit)
}
fn return_type() -> Type {

View File

@ -51,6 +51,7 @@ impl<'a> ExpressionVisitor<'a> for TypeChecker<'a> {
if let Some(core_instruction) = self.check_core_circuit_call(&access.ty, &access.name) {
// Check num input arguments.
if core_instruction.num_args() != access.args.len() {
// TODO: Better error messages.
self.emit_err(TypeCheckerError::incorrect_num_args_to_call(
core_instruction.num_args(),
access.args.len(),
@ -60,14 +61,28 @@ impl<'a> ExpressionVisitor<'a> for TypeChecker<'a> {
// Check first argument type.
if let Some(first_arg) = access.args.get(0usize) {
let first_arg_type = self.visit_expression(first_arg, &None);
self.assert_one_of_types(&first_arg_type, core_instruction.first_arg_types(), access.span());
if let Some(first_arg_type) = self.visit_expression(first_arg, &None) {
if !core_instruction.first_arg_is_allowed_type(&first_arg_type) {
// TODO: Better error messages.
self.emit_err(TypeCheckerError::invalid_type(
&first_arg_type,
access.args.get(0).unwrap().span(),
));
}
}
}
// Check second argument type.
if let Some(second_arg) = access.args.get(1usize) {
let second_arg_type = self.visit_expression(second_arg, &None);
self.assert_one_of_types(&second_arg_type, core_instruction.second_arg_types(), access.span());
if let Some(second_arg_type) = self.visit_expression(second_arg, &None) {
if !core_instruction.second_arg_is_allowed_type(&second_arg_type) {
// TODO: Better error messages.
self.emit_err(TypeCheckerError::invalid_type(
&second_arg_type,
access.args.get(1).unwrap().span(),
));
}
}
}
// Check return type.

View File

@ -174,16 +174,6 @@ impl<'a> TypeChecker<'a> {
)
}
/// Emits an error to the error handler if the actual type is not equal to any of the expected types.
pub(crate) fn assert_one_of_types(&self, actual: &Option<Type>, expected: &[Type], span: Span) {
self.check_type(
|actual: &Type| expected.iter().any(|t: &Type| t == actual),
types_to_string(expected),
actual,
span,
)
}
/// Emits an error to the handler if the given type is not a boolean.
pub(crate) fn assert_bool_type(&self, type_: &Option<Type>, span: Span) {
self.check_type(

View File

@ -402,4 +402,11 @@ create_messages!(
msg: format!("`finalize` name `{finalize_name}` does not match function name `{function_name}`"),
help: None,
}
@formatted
invalid_type {
args: (type_: impl Display),
msg: format!("Invalid type `{type_}`"),
help: None,
}
);

View File

@ -4,6 +4,11 @@ expectation: Pass
input_file: inputs/int64.in
*/
circuit Foo {
a: u128,
b: u128,
}
@program
function main(
i8_value: i8,
@ -41,6 +46,7 @@ function main(
let n: field = BHP1024::commit(u128_value, 1scalar);
let o: field = BHP1024::commit(scalar_value, 1scalar);
// let p: field = BHP1024::commit(string_value, 1scalar);
let q: field = BHP1024::commit(Foo { a: 1u128, b: 2u128 }, 1scalar);
return a + o;
}

View File

@ -4,6 +4,11 @@ expectation: Pass
input_file: inputs/int64.in
*/
circuit Foo {
a: u128,
b: u128,
}
@program
function main(
i8_value: i8,
@ -41,6 +46,7 @@ function main(
let n: field = BHP1024::hash(u128_value);
let o: field = BHP1024::hash(scalar_value);
// let p: field = BHP1024::hash(string_value);
let q: field = BHP256::hash(Foo { a: 1u128, b: 1u128 });
return a + o;
}

View File

@ -4,6 +4,11 @@ expectation: Pass
input_file: inputs/int64.in
*/
circuit Foo {
a: u128,
b: u128,
}
@program
function main(
i8_value: i8,
@ -41,6 +46,7 @@ function main(
let n: field = BHP256::commit(u128_value, 1scalar);
let o: field = BHP256::commit(scalar_value, 1scalar);
// let p: field = BHP256::commit(string_value, 1scalar);
let q: field = BHP256::commit(Foo { a: 1u128, b: 2u128 }, 1scalar);
return a + o;
}

View File

@ -4,6 +4,11 @@ expectation: Pass
input_file: inputs/int64.in
*/
circuit Foo {
a: u128,
b: u128,
}
@program
function main(
i8_value: i8,
@ -41,6 +46,7 @@ function main(
let n: field = BHP256::hash(u128_value);
let o: field = BHP256::hash(scalar_value);
// let p: field = BHP256::hash(string_value);
let q: field = BHP256::hash(Foo { a: 1u128, b: 1u128 });
return a + o;
}

View File

@ -4,6 +4,11 @@ expectation: Pass
input_file: inputs/int64.in
*/
circuit Foo {
a: u128,
b: u128,
}
@program
function main(
i8_value: i8,
@ -41,6 +46,7 @@ function main(
let n: field = BHP512::commit(u128_value, 1scalar);
let o: field = BHP512::commit(scalar_value, 1scalar);
// let p: field = BHP512::commit(string_value, 1scalar);
let q: field = BHP512::commit(Foo { a: 1u128, b: 2u128 }, 1scalar);
return a + o;
}

View File

@ -4,6 +4,11 @@ expectation: Pass
input_file: inputs/int64.in
*/
circuit Foo {
a: u128,
b: u128,
}
@program
function main(
i8_value: i8,
@ -41,6 +46,7 @@ function main(
let n: field = BHP512::hash(u128_value);
let o: field = BHP512::hash(scalar_value);
// let p: field = BHP512::hash(string_value);
let q: field = BHP256::hash(Foo { a: 1u128, b: 1u128 });
return a + o;
}

View File

@ -4,6 +4,11 @@ expectation: Pass
input_file: inputs/int64.in
*/
circuit Foo {
a: u128,
b: u128,
}
@program
function main(
i8_value: i8,
@ -41,6 +46,7 @@ function main(
let n: field = BHP768::commit(u128_value, 1scalar);
let o: field = BHP768::commit(scalar_value, 1scalar);
// let p: field = BHP768::commit(string_value, 1scalar);
let q: field = BHP768::commit(Foo { a: 1u128, b: 2u128 }, 1scalar);
return a + o;
}

View File

@ -4,6 +4,11 @@ expectation: Pass
input_file: inputs/int64.in
*/
circuit Foo {
a: u128,
b: u128,
}
@program
function main(
i8_value: i8,
@ -41,6 +46,7 @@ function main(
let n: field = BHP768::hash(u128_value);
let o: field = BHP768::hash(scalar_value);
// let p: field = BHP768::hash(string_value);
let q: field = BHP256::hash(Foo { a: 1u128, b: 1u128 });
return a + o;
}

View File

@ -4,6 +4,11 @@ expectation: Pass
input_file: inputs/int64.in
*/
circuit Foo {
a: u128,
b: u128,
}
@program
function main(
i8_value: i8,
@ -35,6 +40,7 @@ function main(
let k: field = Poseidon2::hash(u128_value);
let l: field = Poseidon2::hash(scalar_value);
// let m: field = Poseidon2::hash(string_value);
let n: field = Poseidon2::hash(Foo { a: 1u128, b: 2u128 });
return a + l;
}

View File

@ -4,6 +4,11 @@ expectation: Pass
input_file: inputs/int64.in
*/
circuit Foo {
a: u128,
b: u128,
}
@program
function main(
i8_value: i8,
@ -35,6 +40,7 @@ function main(
let k: field = Poseidon4::hash(u128_value);
let l: field = Poseidon4::hash(scalar_value);
// let m: field = Poseidon4::hash(string_value);
let n: field = Poseidon2::hash(Foo { a: 1u128, b: 2u128 });
return a + l;
}

View File

@ -4,6 +4,11 @@ expectation: Pass
input_file: inputs/int64.in
*/
circuit Foo {
a: u128,
b: u128,
}
@program
function main(
i8_value: i8,
@ -35,6 +40,7 @@ function main(
let k: field = Poseidon8::hash(u128_value);
let l: field = Poseidon8::hash(scalar_value);
// let m: field = Poseidon8::hash(string_value);
let n: field = Poseidon2::hash(Foo { a: 1u128, b: 2u128 });
return a + l;
}

View File

@ -3,8 +3,8 @@ namespace: Compile
expectation: Pass
outputs:
- output:
- initial_input_ast: e2bfa0e0050ddd8f84ce1a20c2ffc199a98ca3cbf8127be7981ac6a9bf6cad17
initial_ast: 9958494d0536d06297f929fc32bf8c1fd51256b60f2b59b763434b50318e6bae
unrolled_ast: 9958494d0536d06297f929fc32bf8c1fd51256b60f2b59b763434b50318e6bae
ssa_ast: b2a66a976ae8977fe709dacaff1d844b8008ef9cc53a93f050984feab0489b9e
flattened_ast: 08547eb032d303946c50bb6f92cf5865ebd7ffb60fcf72c5042613a04e756c38
- initial_input_ast: 8d6ceebb7eec5992baf2e10dd8b859dd823a066e40289d5fa2a3df24a0dc56f0
initial_ast: 8903fd80b2bf02ed5e96b14441b83d69a09ccf670961ab5213cc2f5e131684db
unrolled_ast: 8903fd80b2bf02ed5e96b14441b83d69a09ccf670961ab5213cc2f5e131684db
ssa_ast: 34934d9d302a1f80cb9ee60fb1f59e74447f4e343aff1590eacd839480033b60
flattened_ast: 97bc52775c1f822ccc2ce947e6fac88e31bf5af2abd960016c8cae8497fd9142

View File

@ -3,8 +3,8 @@ namespace: Compile
expectation: Pass
outputs:
- output:
- initial_input_ast: fbfd0e7729a170e9ad5edbe89d81a834f80286bdac7386e976bef82006266241
initial_ast: 35df8cb8a4eaedf0d7ef8c5641afc850e7ae8af4da3a370d8e8699095d7a0af0
unrolled_ast: 35df8cb8a4eaedf0d7ef8c5641afc850e7ae8af4da3a370d8e8699095d7a0af0
ssa_ast: 0073d2ce69045204ae8b098661f7ab3b03328c97e9e9462aa96ffdb7c36c45f9
flattened_ast: 6b3b316107625e6b10fc201c1fa82d70a1edf870d672a0093c63b1b154852051
- initial_input_ast: 63a3ca615379adca59155029f240686c68b95ad4885f23971dffba3444880f46
initial_ast: 7849140c0e36a400e527c807b6d64b68ec0b862f5f3669763a2fa30fdcb7367a
unrolled_ast: 7849140c0e36a400e527c807b6d64b68ec0b862f5f3669763a2fa30fdcb7367a
ssa_ast: 47dd7ea513bd2a911f75cca9a49a87a827f2a222b3c4efeda6e4f5362c7277ad
flattened_ast: d41851bc8eb88d9b2bd825f6e1b5f29e20d12e92e35e482b9a4e2a862149337d

View File

@ -3,8 +3,8 @@ namespace: Compile
expectation: Pass
outputs:
- output:
- initial_input_ast: 30bcdf9e3064f59cff10bde5c59834ff95d21da38a9f0db7f12dee3017ae5887
initial_ast: dc461726551948d314658bfee8f13d333e454220c328756674080c5b6021c24e
unrolled_ast: dc461726551948d314658bfee8f13d333e454220c328756674080c5b6021c24e
ssa_ast: 7b94d0cbfddeeee7665d7c5094314784a7e4b9ab6cacd7739aadf8a62b52d5ac
flattened_ast: 2753015adb7a9046abffdbe034620565cdc876d9f57d39fdea9dd6927025e670
- initial_input_ast: 8762f4e3aa37b05e762fbfce76fe6904854e68b4f6c41b3151f2c472c172a50a
initial_ast: 58354a3f130aec878f279494196abb9be21000e78e2ef07d81993cecba7012ee
unrolled_ast: 58354a3f130aec878f279494196abb9be21000e78e2ef07d81993cecba7012ee
ssa_ast: 1576837d18755a2506a96b7ff6fe1283a39c21e1517a1042200a2e46bf71a5da
flattened_ast: 8c7685683d896be857be3a6e1a0083433da0018de9fae4c2fc35729c0e968a43

View File

@ -3,8 +3,8 @@ namespace: Compile
expectation: Pass
outputs:
- output:
- initial_input_ast: 8c88aa92e2f75c9e87085f5f02553aa660cecd69581cbcaccd29b27fd2d075a8
initial_ast: d3f51f1b88ecbc5bdf7db2940fdd16cd2f58d7e6bbf118bd31d6a7986ddc93a2
unrolled_ast: d3f51f1b88ecbc5bdf7db2940fdd16cd2f58d7e6bbf118bd31d6a7986ddc93a2
ssa_ast: 5b21cb88d7cfe90a3ddd1c930b6abb38c3af19a5f7ad64e45dff11b8a8868c9f
flattened_ast: b07a3c47b0290b34dacb228bdade88d3c53951535cd3a11de395e94579c118f3
- initial_input_ast: b638b226aa80d9c8720c2abc5fef167a2903a7e46c0a15a10d85c9a9bf73ba13
initial_ast: acf1332b3e50018dd9c08f0e2eeed37a1c5a0f08aa8ee5150992dcc51ec4703e
unrolled_ast: acf1332b3e50018dd9c08f0e2eeed37a1c5a0f08aa8ee5150992dcc51ec4703e
ssa_ast: b64d34803f1cd84be4335ae4b73ebb75415d195fff8638845f02c27512d74d6a
flattened_ast: e3a01e1c1960b51f05f9e364d48ac27d854e8e7a67cfdaa963a4f5d7a604de1a

View File

@ -3,8 +3,8 @@ namespace: Compile
expectation: Pass
outputs:
- output:
- initial_input_ast: 30bcdf9e3064f59cff10bde5c59834ff95d21da38a9f0db7f12dee3017ae5887
initial_ast: 4ff93db33f5dd59444a198075fdd86ce6445c0c2a8f899703fa6e74b18dc44a2
unrolled_ast: 4ff93db33f5dd59444a198075fdd86ce6445c0c2a8f899703fa6e74b18dc44a2
ssa_ast: 73e24de98e9639c977a47eb470758385a32daf920bd06bfdd2fb55df228624d3
flattened_ast: ecab8afdf68437603d2b8730f015c9d17bd72564c121455843f5703b17c91641
- initial_input_ast: 8762f4e3aa37b05e762fbfce76fe6904854e68b4f6c41b3151f2c472c172a50a
initial_ast: f2c00b12d62a178bbd497d3b97e8c82524b7017841b4981bdb22c0659c424ae4
unrolled_ast: f2c00b12d62a178bbd497d3b97e8c82524b7017841b4981bdb22c0659c424ae4
ssa_ast: 2a7ea14ba791f357e277f0a2a1d8f787eddfb49dd34ddec1666f3ff555bc5e98
flattened_ast: 9c88fbcb38c6494f4b5ff3d418b9dd69eb9fd739469bf3080edb4f6407b30a4c

View File

@ -3,8 +3,8 @@ namespace: Compile
expectation: Pass
outputs:
- output:
- initial_input_ast: 8c88aa92e2f75c9e87085f5f02553aa660cecd69581cbcaccd29b27fd2d075a8
initial_ast: f006a1f3c2cc03184773f2ded982799ca75b70f4da50dbbeccd201480a151100
unrolled_ast: f006a1f3c2cc03184773f2ded982799ca75b70f4da50dbbeccd201480a151100
ssa_ast: 8e292d024d064f980f3968a305909949db2796fe75a40909d6b1feb231a34f88
flattened_ast: 9e179adcba5c6e862c18f1c10f7cf6059e8f51dcaddfad90c5ed689a5e87c3d8
- initial_input_ast: b638b226aa80d9c8720c2abc5fef167a2903a7e46c0a15a10d85c9a9bf73ba13
initial_ast: d42dde2e874e4f99efd01efe1e4961f61d6f8cff46e30c038fbd0a3735e00bd3
unrolled_ast: d42dde2e874e4f99efd01efe1e4961f61d6f8cff46e30c038fbd0a3735e00bd3
ssa_ast: 2b365232f1fb9e7dd576fa2fcb172d86f058be4544f353b96ddb6ceb9e245379
flattened_ast: 6c6dd818ff24551f5f36e704f476247308f5afe578c1aee16712c7c8409fdeff

View File

@ -3,8 +3,8 @@ namespace: Compile
expectation: Pass
outputs:
- output:
- initial_input_ast: 30bcdf9e3064f59cff10bde5c59834ff95d21da38a9f0db7f12dee3017ae5887
initial_ast: 2e0e6612574ad838172c2075dea4cdb5a880b739cce7df5cdc427f6756b02687
unrolled_ast: 2e0e6612574ad838172c2075dea4cdb5a880b739cce7df5cdc427f6756b02687
ssa_ast: 3347601679bb63067c68437801a27385a3be9280641ae5624507aa219d3c0be8
flattened_ast: 11c6f51ce168b4a6bc2d501a705cc28af8503697eeb3980d38a8a2ac412be9b5
- initial_input_ast: 8762f4e3aa37b05e762fbfce76fe6904854e68b4f6c41b3151f2c472c172a50a
initial_ast: 9826202bb36bcfcaa5d89d31de7c26a8e17bdcb1f858c924272c7b781e7aa1c8
unrolled_ast: 9826202bb36bcfcaa5d89d31de7c26a8e17bdcb1f858c924272c7b781e7aa1c8
ssa_ast: 71fcb33cb7d7af8f6f92c24e252973c0d1f062c09644a5326f4926ac86a5476b
flattened_ast: 1bc3c6d850b3b9ea858cc44206cbfae54b5c082eea6500ea248e2ca263c8bb5c

View File

@ -3,8 +3,8 @@ namespace: Compile
expectation: Pass
outputs:
- output:
- initial_input_ast: 8c88aa92e2f75c9e87085f5f02553aa660cecd69581cbcaccd29b27fd2d075a8
initial_ast: 3356ad5308de7f981cf38ce7eed5f1c2d6d31bc8a822d780e31b08ecb769982a
unrolled_ast: 3356ad5308de7f981cf38ce7eed5f1c2d6d31bc8a822d780e31b08ecb769982a
ssa_ast: acea126e4d4433df22831def7395ff3c00e092982ad91fcb4600b6526b427158
flattened_ast: 59841f502448ab758012feb048f70bf4a4467882a40d3a94c9b9818d11b63ea3
- initial_input_ast: b638b226aa80d9c8720c2abc5fef167a2903a7e46c0a15a10d85c9a9bf73ba13
initial_ast: 142d39ab2813fecc19a096468315f242e72a9c586d1532fc96386e107678b47e
unrolled_ast: 142d39ab2813fecc19a096468315f242e72a9c586d1532fc96386e107678b47e
ssa_ast: 4c518161bd0e20e4fa6de1750fa52a62d07a09b8b93427257644d7a7f869c919
flattened_ast: 7743fbb072340a5e48e4ce17c240b1e73198cae3a0bf635edc465afec96094f8

View File

@ -2,4 +2,4 @@
namespace: Compile
expectation: Fail
outputs:
- "Error [ETYC0372007]: Expected one type from `boolean, i8, i16, i32, i64, u8, u16, u32, u64, string`, but got `u128`\n --> compiler-test:4:20\n |\n 4 | let a: group = Pedersen64::hash(1u128);\n | ^^^^^^^^^^^^^^^^^^^^^^^\nError [ETYC0372003]: Expected type `group` but type `field` was found\n --> compiler-test:4:20\n |\n 4 | let a: group = Pedersen64::hash(1u128);\n | ^^^^^^^^^^^^^^^^^^^^^^^\n"
- "Error [ETYC0372046]: Invalid type `u128`\n --> compiler-test:4:37\n |\n 4 | let a: group = Pedersen64::hash(1u128);\n | ^^^^^\nError [ETYC0372003]: Expected type `group` but type `field` was found\n --> compiler-test:4:20\n |\n 4 | let a: group = Pedersen64::hash(1u128);\n | ^^^^^^^^^^^^^^^^^^^^^^^\n"

View File

@ -3,8 +3,8 @@ namespace: Compile
expectation: Pass
outputs:
- output:
- initial_input_ast: 320bf92be1f73a8faef64838d58c78d2c1b3bb305d4eff603e032995d9b4bca2
initial_ast: 0044702b991284bbaa0002ff474560989765411fa886ef249f45607eeb6c3be8
unrolled_ast: 0044702b991284bbaa0002ff474560989765411fa886ef249f45607eeb6c3be8
ssa_ast: 769622ca0aeb40338fded913b743550967ae5892fa9e25a1fea655c6ba4542da
flattened_ast: 11fd8a56a5b54a699fc3e1ec3efcc4edfca7a1dba07c36e2c49eaf57c6bd3bd9
- initial_input_ast: bd66a8c48fe434715d1d19ca0c60e77b4f2b8ec92f4b0a785277774a2074a804
initial_ast: 22116947f0e502345f67deea4376392a6d5a7a1c147dcd4d58d3bda0ddfb245b
unrolled_ast: 22116947f0e502345f67deea4376392a6d5a7a1c147dcd4d58d3bda0ddfb245b
ssa_ast: ee76b847a759607f4ba1f4e896b67434442e0af2f7e666c14cbbed9c3a6c0086
flattened_ast: 4ba31b085167ff9a5ec622d5a41e21d8443d767046795d1545a26cbd3655e639

View File

@ -3,8 +3,8 @@ namespace: Compile
expectation: Pass
outputs:
- output:
- initial_input_ast: 320bf92be1f73a8faef64838d58c78d2c1b3bb305d4eff603e032995d9b4bca2
initial_ast: b07a4db770b9b071150bbecff5d3fac88c35db3ddf438b8191b83bc2aa6cafa5
unrolled_ast: b07a4db770b9b071150bbecff5d3fac88c35db3ddf438b8191b83bc2aa6cafa5
ssa_ast: af03b3bdf60cd63d94f5c16fa6a08bf094d8311ac42b77d6a80ccdc2e5befd85
flattened_ast: e6f060f9869245aac7492ae153d07cf8c28e029c507cd2e0006c577e8991ffae
- initial_input_ast: bd66a8c48fe434715d1d19ca0c60e77b4f2b8ec92f4b0a785277774a2074a804
initial_ast: 992d7b50e675edb82bcbad04d90276b8caeaccd815aea3eee972589e4bfb789a
unrolled_ast: 992d7b50e675edb82bcbad04d90276b8caeaccd815aea3eee972589e4bfb789a
ssa_ast: b4defa34c9d548db0f4cddb89da478b4ddf522227d8edb513fad7b6ff09451fa
flattened_ast: 0c0ca9e6d949f089e03fea84caf72d5ac1ccbdbfd10ae169fd5fff5032d6d166

View File

@ -3,8 +3,8 @@ namespace: Compile
expectation: Pass
outputs:
- output:
- initial_input_ast: 320bf92be1f73a8faef64838d58c78d2c1b3bb305d4eff603e032995d9b4bca2
initial_ast: 1b4da40189d509aafd6f106c53dfd98c6ac73947d2b4067a0c47aa96cc4f44ad
unrolled_ast: 1b4da40189d509aafd6f106c53dfd98c6ac73947d2b4067a0c47aa96cc4f44ad
ssa_ast: 2616c66e98cbdc6407b8c969992c2cfdb2db0a496ca42ed321be6802b97d26af
flattened_ast: 32a93762013659a955cebbbc79ea8b64cc635c9efe9006e57b3ca008211924d8
- initial_input_ast: bd66a8c48fe434715d1d19ca0c60e77b4f2b8ec92f4b0a785277774a2074a804
initial_ast: f6c4fd99998e9c3bbd97aa8778435493b4e68cdb60fe21d3a5dcb1251225c5f2
unrolled_ast: f6c4fd99998e9c3bbd97aa8778435493b4e68cdb60fe21d3a5dcb1251225c5f2
ssa_ast: f4aa21d116f7f2043d0acce34d88a0fd36dc6c341ea1a453490fd58774ebaefc
flattened_ast: d2d42db9bcdefdd583835d4b4f774f37515bffcd47194c34736cac8ef1dbc228