Updates Leo to snarkVM v0.7.4

This commit is contained in:
howardwu 2021-07-17 00:42:24 -07:00
parent 9d8fdc7efb
commit 546636152b
20 changed files with 335 additions and 198 deletions

314
Cargo.lock generated
View File

@ -17,6 +17,17 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]]
name = "ahash"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43bb833f0bf979d8475d38fbf09ed3b8a55e1885fe93ad3f93239fc6a4f17b98"
dependencies = [
"getrandom 0.2.3",
"once_cell",
"version_check",
]
[[package]]
name = "aho-corasick"
version = "0.7.18"
@ -110,9 +121,9 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
[[package]]
name = "bech32"
version = "0.8.0"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c7f7096bc256f5e5cb960f60dfc4f4ef979ca65abe7fb9d5a4f77150d3783d4"
checksum = "cf9ff0bbfd639f15c74af777d81383cf53efb7c93613f6cab67c6c11e05bbf8b"
[[package]]
name = "bincode"
@ -220,9 +231,9 @@ checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040"
[[package]]
name = "bzip2"
version = "0.4.2"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abf8012c8a15d5df745fcf258d93e6149dcf102882c8d8702d9cff778eab43a8"
checksum = "6afcd980b5f3a45017c57e57a2fcccbb351cc43a356ce117ef760ef8052b89b0"
dependencies = [
"bzip2-sys",
"libc",
@ -230,9 +241,9 @@ dependencies = [
[[package]]
name = "bzip2-sys"
version = "0.1.10+1.0.8"
version = "0.1.11+1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "17fa3d1ac1ca21c5c4e36a97f3c3eb25084576f6fc47bf0139c1123434216c6c"
checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc"
dependencies = [
"cc",
"libc",
@ -241,18 +252,18 @@ dependencies = [
[[package]]
name = "cast"
version = "0.2.6"
version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57cdfa5d50aad6cb4d44dcab6101a7f79925bd59d82ca42f38a9856a28865374"
checksum = "4c24dab4283a142afa2fdca129b80ad2c6284e073930f964c3a1293c225ee39a"
dependencies = [
"rustc_version",
"rustc_version 0.4.0",
]
[[package]]
name = "cc"
version = "1.0.68"
version = "1.0.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a72c244c1ff497a746a7e1fb3d14bd08420ecda70c8f25c7112f2781652d787"
checksum = "e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2"
[[package]]
name = "cfg-if"
@ -348,9 +359,9 @@ checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b"
[[package]]
name = "cpufeatures"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed00c67cb5d0a7d64a44f6ad2668db7e7530311dd53ea79bcd4fb022c64911c8"
checksum = "66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71ef"
dependencies = [
"libc",
]
@ -476,6 +487,36 @@ dependencies = [
"memchr",
]
[[package]]
name = "curl"
version = "0.4.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "003cb79c1c6d1c93344c7e1201bb51c2148f24ec2bd9c253709d6b2efb796515"
dependencies = [
"curl-sys",
"libc",
"openssl-probe",
"openssl-sys",
"schannel",
"socket2",
"winapi 0.3.9",
]
[[package]]
name = "curl-sys"
version = "0.4.44+curl-7.77.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4b6d85e9322b193f117c966e79c2d6929ec08c02f339f950044aba12e20bbaf1"
dependencies = [
"cc",
"libc",
"libz-sys",
"openssl-sys",
"pkg-config",
"vcpkg",
"winapi 0.3.9",
]
[[package]]
name = "derivative"
version = "2.2.0"
@ -484,7 +525,7 @@ checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
"syn 1.0.72",
"syn 1.0.73",
]
[[package]]
@ -592,7 +633,7 @@ checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
"syn 1.0.72",
"syn 1.0.73",
"synstructure",
]
@ -868,6 +909,9 @@ name = "hashbrown"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
dependencies = [
"ahash",
]
[[package]]
name = "heck"
@ -880,9 +924,9 @@ dependencies = [
[[package]]
name = "hermit-abi"
version = "0.1.18"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
"libc",
]
@ -929,9 +973,9 @@ checksum = "6456b8a6c8f33fee7d958fcd1b60d55b11940a79e63ae87013e6d22e26034440"
[[package]]
name = "hyper"
version = "0.14.9"
version = "0.14.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07d6baa1b441335f3ce5098ac421fb6547c46dda735ca1bc6d0153c838f9dd83"
checksum = "7728a72c4c7d72665fde02204bcbd93b247721025b222ef78606f14513e0fd03"
dependencies = [
"bytes",
"futures-channel",
@ -1029,9 +1073,9 @@ dependencies = [
[[package]]
name = "ipnet"
version = "2.3.0"
version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135"
checksum = "68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9"
[[package]]
name = "itertools"
@ -1324,9 +1368,21 @@ dependencies = [
[[package]]
name = "libc"
version = "0.2.95"
version = "0.2.98"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "789da6d93f1b866ffe175afc5322a4d76c038605a1c3319bb57b06967ca98a36"
checksum = "320cfe77175da3a483efed4bc0adc1968ca050b098ce4f2f1c13a56626128790"
[[package]]
name = "libz-sys"
version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66"
dependencies = [
"cc",
"libc",
"pkg-config",
"vcpkg",
]
[[package]]
name = "linked-hash-map"
@ -1432,9 +1488,9 @@ dependencies = [
[[package]]
name = "mio"
version = "0.7.11"
version = "0.7.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf80d3e903b34e0bd7282b218398aec54e082c840d9baf8339e0080a0c542956"
checksum = "8c2bdb6314ec10835cd3293dd268473a835c02b7b352e788be788b3c6ca6bb16"
dependencies = [
"libc",
"log",
@ -1592,9 +1648,9 @@ checksum = "17b02fc0ff9a9e4b35b3342880f48e896ebf69f2967921fe8646bf5b7125956a"
[[package]]
name = "object"
version = "0.25.2"
version = "0.25.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8bc1d42047cf336f0f939c99e97183cf31551bf0f2865a2ec9c8d91fd4ffb5e"
checksum = "a38f2be3697a57b4060074ff41b44c16870d916ad7877c17696e063257482bc7"
dependencies = [
"memchr",
]
@ -1625,9 +1681,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[package]]
name = "openssl"
version = "0.10.34"
version = "0.10.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d7830286ad6a3973c0f1d9b73738f69c76b739301d0229c4b96501695cbe4c8"
checksum = "549430950c79ae24e6d02e0b7404534ecf311d94cc9f861e9e4020187d13d885"
dependencies = [
"bitflags",
"cfg-if 1.0.0",
@ -1645,9 +1701,9 @@ checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
[[package]]
name = "openssl-sys"
version = "0.9.63"
version = "0.9.65"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6b0d6fb7d80f877617dfcb014e605e2b5ab2fb0afdf27935219bb6bd984cb98"
checksum = "7a7907e3bfa08bb85105209cdfcb6c63d109f8f6c1ed6ca318fff5c1853fbc1d"
dependencies = [
"autocfg",
"cc",
@ -1704,7 +1760,7 @@ dependencies = [
"pest_meta",
"proc-macro2 1.0.27",
"quote 1.0.9",
"syn 1.0.72",
"syn 1.0.73",
]
[[package]]
@ -1720,9 +1776,9 @@ dependencies = [
[[package]]
name = "pin-project-lite"
version = "0.2.6"
version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905"
checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443"
[[package]]
name = "pin-utils"
@ -1751,15 +1807,15 @@ dependencies = [
[[package]]
name = "plotters-backend"
version = "0.3.0"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b07fffcddc1cb3a1de753caa4e4df03b79922ba43cf882acc1bdd7e8df9f4590"
checksum = "d88417318da0eaf0fdcdb51a0ee6c3bed624333bff8f946733049380be67ac1c"
[[package]]
name = "plotters-svg"
version = "0.3.0"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b38a02e23bd9604b842a812063aec4ef702b57989c37b655254bb61c471ad211"
checksum = "521fa9638fa597e1dc53e9412a4f9cefb01187ee1f7413076f9e6749e2885ba9"
dependencies = [
"plotters-backend",
]
@ -1815,7 +1871,7 @@ dependencies = [
"proc-macro-error-attr",
"proc-macro2 1.0.27",
"quote 1.0.9",
"syn 1.0.72",
"syn 1.0.73",
"version_check",
]
@ -1901,9 +1957,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
dependencies = [
"libc",
"rand_chacha 0.3.0",
"rand_chacha 0.3.1",
"rand_core 0.6.3",
"rand_hc 0.3.0",
"rand_hc 0.3.1",
]
[[package]]
@ -1918,9 +1974,9 @@ dependencies = [
[[package]]
name = "rand_chacha"
version = "0.3.0"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
dependencies = [
"ppv-lite86",
"rand_core 0.6.3",
@ -1955,9 +2011,9 @@ dependencies = [
[[package]]
name = "rand_hc"
version = "0.3.0"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7"
dependencies = [
"rand_core 0.6.3",
]
@ -1998,9 +2054,9 @@ dependencies = [
[[package]]
name = "redox_syscall"
version = "0.2.8"
version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "742739e41cd49414de871ea5e549afb7e2a3ac77b589bcbebe8c82fab37147fc"
checksum = "5ab49abadf3f9e1c4bc499e8845e152ad87d2ad2d30371841171169e9d75feee"
dependencies = [
"bitflags",
]
@ -2088,9 +2144,9 @@ dependencies = [
[[package]]
name = "rustc-demangle"
version = "0.1.19"
version = "0.1.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "410f7acf3cb3a44527c5d9546bad4bf4e6c460915d5f9f2fc524498bfe8f70ce"
checksum = "dead70b0b5e03e9c814bcb6b01e03e68f7c57a80aa48c72ec92152ab3e818d49"
[[package]]
name = "rustc_version"
@ -2098,7 +2154,16 @@ version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee"
dependencies = [
"semver",
"semver 0.11.0",
]
[[package]]
name = "rustc_version"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
dependencies = [
"semver 1.0.3",
]
[[package]]
@ -2179,7 +2244,7 @@ dependencies = [
"quick-xml",
"regex",
"reqwest",
"semver",
"semver 0.11.0",
"serde_json",
"tempfile",
"zip",
@ -2194,6 +2259,12 @@ dependencies = [
"semver-parser",
]
[[package]]
name = "semver"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f3aac57ee7f3272d8395c6e4f502f434f0e289fcd62876f70daa008c20dcabe"
[[package]]
name = "semver-parser"
version = "0.10.2"
@ -2230,7 +2301,7 @@ checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
"syn 1.0.72",
"syn 1.0.73",
]
[[package]]
@ -2325,10 +2396,11 @@ checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
[[package]]
name = "snarkvm-algorithms"
version = "0.6.0"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba6482ab4ec9170c9b8ce6c1ac9689d02aba1e112b474fa10cb72e8dda6ae0bd"
checksum = "352a3345d4ba258c1454b459f6449b48ae2062c686e8beba43805031abb70c72"
dependencies = [
"anyhow",
"bitvec",
"blake2",
"crossbeam-channel",
@ -2338,7 +2410,7 @@ dependencies = [
"lazy_static",
"once_cell",
"rand 0.8.4",
"rand_chacha 0.3.0",
"rand_chacha 0.3.1",
"rayon",
"sha2",
"smallvec",
@ -2352,14 +2424,14 @@ dependencies = [
[[package]]
name = "snarkvm-curves"
version = "0.6.0"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29f5549929d0cc1cb8165e643f2d348f619f2f7cd5ce655201b36bf8b1aa4494"
checksum = "f97e6d7dc07a949050728353f2de05fd2ea376515a866fb9f06cfde14803a91e"
dependencies = [
"derivative",
"rand 0.8.4",
"rand_xorshift",
"rustc_version",
"rustc_version 0.3.3",
"serde",
"snarkvm-fields",
"snarkvm-utilities",
@ -2368,22 +2440,22 @@ dependencies = [
[[package]]
name = "snarkvm-derives"
version = "0.6.0"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "45886a0c7a81323c267a4c2cfab1de7f0621a8f03a04fb78e2ea4f3ae5e26066"
checksum = "ffcfd2f005ec8c25c627516dfe4245e330792d22a21f6176627309072cd65176"
dependencies = [
"proc-macro-crate",
"proc-macro-error",
"proc-macro2 1.0.27",
"quote 1.0.9",
"syn 1.0.72",
"syn 1.0.73",
]
[[package]]
name = "snarkvm-dpc"
version = "0.6.0"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03ce3598d82ad7b3401c6d9a2a1a97dfce24eb25dba75e366389d106a62d3995"
checksum = "4e778b5e032a4c48e2a12a1806ca10044900d92c0ae42e721faa85af40430109"
dependencies = [
"anyhow",
"base58",
@ -2402,7 +2474,9 @@ dependencies = [
"snarkvm-curves",
"snarkvm-fields",
"snarkvm-gadgets",
"snarkvm-marlin",
"snarkvm-parameters",
"snarkvm-polycommit",
"snarkvm-profiler",
"snarkvm-r1cs",
"snarkvm-utilities",
@ -2411,10 +2485,11 @@ dependencies = [
[[package]]
name = "snarkvm-fields"
version = "0.6.0"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9467325948cf839e5aeb5c91a502a2b79474d35672155a225b51b7b2c39e8e5e"
checksum = "aab09f08aee0e85613772242a442ad7057f166c54150ac52d5d5fbe00df77f1b"
dependencies = [
"anyhow",
"bincode",
"derivative",
"rand 0.8.4",
@ -2426,9 +2501,9 @@ dependencies = [
[[package]]
name = "snarkvm-gadgets"
version = "0.6.0"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2511b5493f835f6908ee1c1411b233c1abb5de7937925dd17ca44ae6e819a186"
checksum = "552bb91384d004a314d27eefd863c0992a3a984b7e5dcfce711b4e85f1cbfc03"
dependencies = [
"derivative",
"digest 0.9.0",
@ -2445,11 +2520,36 @@ dependencies = [
]
[[package]]
name = "snarkvm-parameters"
version = "0.6.0"
name = "snarkvm-marlin"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8591a36b0a21f24394ec6a592ac3e6d669694156094771bd0a58c0c113b2d25"
checksum = "e2af3e3720556f0fd653e2255c0e2aa1333624e658b759eb109f6364f9456c7f"
dependencies = [
"blake2",
"derivative",
"digest 0.9.0",
"hashbrown",
"rand 0.8.4",
"rand_chacha 0.3.1",
"rand_core 0.6.3",
"rayon",
"snarkvm-algorithms",
"snarkvm-curves",
"snarkvm-fields",
"snarkvm-gadgets",
"snarkvm-polycommit",
"snarkvm-profiler",
"snarkvm-r1cs",
"snarkvm-utilities",
]
[[package]]
name = "snarkvm-parameters"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0bae615fbc1065cfe3e23dd8e3407148c4e7a5afa1632e3120f4b85ad099d810"
dependencies = [
"curl",
"hex",
"snarkvm-algorithms",
"snarkvm-utilities",
@ -2457,16 +2557,35 @@ dependencies = [
]
[[package]]
name = "snarkvm-profiler"
version = "0.6.0"
name = "snarkvm-polycommit"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8892a13630b65576cd983bc69fa89bdff3f568e56466cc523a1cee783ec1513"
checksum = "c7f72af773beed90a4ef947ad153b7cc9733e543414d144b68d7d3d62b32fd98"
dependencies = [
"derivative",
"digest 0.9.0",
"hashbrown",
"rand_core 0.6.3",
"snarkvm-algorithms",
"snarkvm-curves",
"snarkvm-fields",
"snarkvm-gadgets",
"snarkvm-profiler",
"snarkvm-r1cs",
"snarkvm-utilities",
]
[[package]]
name = "snarkvm-profiler"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a428f675f2df8c3aa3683ee583ea36fd8ecff5959cdcd528c07f209986d3614"
[[package]]
name = "snarkvm-r1cs"
version = "0.6.0"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea6805a58c986fd78be5cf474a62e40b19abf64187457874a7c93f0b8573fde6"
checksum = "42fc7eaab616b21fb6e0dab4f0c9402a8c831d7c65fa5e4eb941919bf7d9ea33"
dependencies = [
"cfg-if 1.0.0",
"fxhash",
@ -2479,11 +2598,13 @@ dependencies = [
[[package]]
name = "snarkvm-utilities"
version = "0.6.0"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f6dcdbf85edf6a03157aef21608e3c44835eeff97d0c2d0b3c90b3bcb869e82"
checksum = "c47f9b27b3dadda802b019e494bd6ddb6b4b3cc001b402eb217b75d66ff7758f"
dependencies = [
"anyhow",
"bincode",
"num-bigint",
"rand 0.8.4",
"snarkvm-derives",
"thiserror",
@ -2526,14 +2647,14 @@ dependencies = [
"proc-macro-error",
"proc-macro2 1.0.27",
"quote 1.0.9",
"syn 1.0.72",
"syn 1.0.73",
]
[[package]]
name = "subtle"
version = "2.4.0"
version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2"
checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
[[package]]
name = "syn"
@ -2548,9 +2669,9 @@ dependencies = [
[[package]]
name = "syn"
version = "1.0.72"
version = "1.0.73"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82"
checksum = "f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
@ -2559,13 +2680,13 @@ dependencies = [
[[package]]
name = "synstructure"
version = "0.12.4"
version = "0.12.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701"
checksum = "474aaa926faa1603c40b7885a9eaea29b444d1cb2850cb7c0e37bb1a4182f4fa"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
"syn 1.0.72",
"syn 1.0.73",
"unicode-xid 0.2.2",
]
@ -2645,7 +2766,7 @@ checksum = "060d69a0afe7796bf42e9e2ff91f5ee691fb15c53d38b4b62a9a53eb23164745"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
"syn 1.0.72",
"syn 1.0.73",
]
[[package]]
@ -2694,17 +2815,18 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
[[package]]
name = "tokio"
version = "1.6.1"
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0a38d31d7831c6ed7aad00aa4c12d9375fd225a6dd77da1d25b707346319a975"
checksum = "98c8b05dc14c75ea83d63dd391100353789f5f24b8b3866542a5e85c8be8e985"
dependencies = [
"autocfg",
"bytes",
"libc",
"memchr",
"mio 0.7.11",
"mio 0.7.13",
"num_cpus",
"pin-project-lite",
"winapi 0.3.9",
]
[[package]]
@ -2766,7 +2888,7 @@ checksum = "c42e6fa53307c8a17e4ccd4dc81cf5ec38db9209f59b222210375b54ee40d1e2"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
"syn 1.0.72",
"syn 1.0.73",
]
[[package]]
@ -2880,9 +3002,9 @@ dependencies = [
[[package]]
name = "unicode-segmentation"
version = "1.7.1"
version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796"
checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b"
[[package]]
name = "unicode-width"
@ -2922,9 +3044,9 @@ checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
[[package]]
name = "vcpkg"
version = "0.2.13"
version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "025ce40a007e1907e58d5bc1a594def78e5573bb0b1160bc389634e8f12e4faa"
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
[[package]]
name = "vec_map"
@ -3009,7 +3131,7 @@ dependencies = [
"log",
"proc-macro2 1.0.27",
"quote 1.0.9",
"syn 1.0.72",
"syn 1.0.73",
"wasm-bindgen-shared",
]
@ -3043,7 +3165,7 @@ checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
"syn 1.0.72",
"syn 1.0.73",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]

View File

@ -74,22 +74,22 @@ path = "./synthesizer"
version = "1.5.2"
[dependencies.snarkvm-algorithms]
version = "0.6.0"
version = "0.7.4"
[dependencies.snarkvm-curves]
version = "0.6.0"
version = "0.7.4"
default-features = false
[dependencies.snarkvm-gadgets]
version = "0.6.0"
version = "0.7.4"
default-features = false
[dependencies.snarkvm-r1cs]
version = "0.6.0"
version = "0.7.4"
default-features = false
[dependencies.snarkvm-utilities]
version = "0.6.0"
version = "0.7.4"
[dependencies.anyhow]
version = "1.0"

View File

@ -57,27 +57,28 @@ version = "1.5.2"
version = "0.4"
[dependencies.snarkvm-curves]
version = "0.6.0"
version = "0.7.4"
default-features = false
[dependencies.snarkvm-fields]
version = "0.6.0"
version = "0.7.4"
default-features = false
[dependencies.snarkvm-dpc]
version = "0.6.0"
version = "0.7.4"
default-features = false
[dependencies.snarkvm-gadgets]
version = "0.6.0"
version = "0.7.4"
default-features = false
features = ["curves"]
[dependencies.snarkvm-r1cs]
version = "0.6.0"
version = "0.7.4"
default-features = false
[dependencies.snarkvm-utilities]
version = "0.6.0"
version = "0.7.4"
[dependencies.bincode]
version = "1.3"
@ -118,7 +119,7 @@ version = "0.3"
default-features = false
[dev-dependencies.snarkvm-algorithms]
version = "0.6.0"
version = "0.7.4"
default-features = false
[dev-dependencies.tempfile]

View File

@ -31,8 +31,10 @@ use leo_asg::{ConstInt, Expression, Span};
use snarkvm_fields::PrimeField;
use snarkvm_gadgets::{
boolean::Boolean,
traits::{
eq::{EqGadget, EvaluateEqGadget},
select::CondSelectGadget,
},
};
use snarkvm_r1cs::ConstraintSystem;

View File

@ -20,7 +20,7 @@ use crate::{enforce_and, errors::ExpressionError, value::ConstrainedValue, Group
use leo_asg::Span;
use snarkvm_fields::PrimeField;
use snarkvm_gadgets::{boolean::Boolean, eq::EvaluateEqGadget};
use snarkvm_gadgets::{boolean::Boolean, traits::eq::EvaluateEqGadget};
use snarkvm_r1cs::ConstraintSystem;
pub fn evaluate_eq<'a, F: PrimeField, G: GroupType<F>, CS: ConstraintSystem<F>>(

View File

@ -27,7 +27,7 @@ use crate::{
use leo_asg::{Span, Type};
use snarkvm_fields::PrimeField;
use snarkvm_gadgets::{boolean::Boolean, select::CondSelectGadget};
use snarkvm_gadgets::{boolean::Boolean, traits::select::CondSelectGadget};
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {

View File

@ -28,7 +28,7 @@ use crate::{
use leo_asg::{ConstInt, Expression, Node};
use snarkvm_fields::PrimeField;
use snarkvm_gadgets::{eq::EvaluateEqGadget, select::CondSelectGadget};
use snarkvm_gadgets::traits::{eq::EvaluateEqGadget, select::CondSelectGadget};
use snarkvm_r1cs::ConstraintSystem;
use super::ResolverContext;

View File

@ -17,7 +17,7 @@
use crate::{errors::AddressError, ConstrainedValue, GroupType, IntegerTrait};
use leo_ast::{InputValue, Span};
use snarkvm_dpc::{account::AccountAddress, testnet1::instantiated::Components};
use snarkvm_dpc::{account::Address as AleoAddress, testnet1::instantiated::Components};
use snarkvm_fields::PrimeField;
use snarkvm_gadgets::{
boolean::Boolean,
@ -35,16 +35,16 @@ use std::{borrow::Borrow, str::FromStr};
/// A public address
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Address {
pub address: Option<AccountAddress<Components>>,
pub address: Option<AleoAddress<Components>>,
pub bytes: Vec<UInt8>,
}
impl Address {
pub(crate) fn constant(address: String, span: &Span) -> Result<Self, AddressError> {
let address = AccountAddress::from_str(&address).map_err(|error| AddressError::account_error(error, span))?;
let address = AleoAddress::from_str(&address).map_err(|error| AddressError::account_error(error, span))?;
let mut address_bytes = vec![];
address.write(&mut address_bytes).unwrap();
address.write_le(&mut address_bytes).unwrap();
let bytes = UInt8::constant_vec(&address_bytes[..]);
@ -87,7 +87,7 @@ impl Address {
pub(crate) fn alloc_helper<Fn: FnOnce() -> Result<T, SynthesisError>, T: Borrow<String>>(
value_gen: Fn,
) -> Result<AccountAddress<Components>, SynthesisError> {
) -> Result<AleoAddress<Components>, SynthesisError> {
let address_string = match value_gen() {
Ok(value) => {
let string_value = value.borrow().clone();
@ -96,7 +96,7 @@ impl Address {
_ => Err(SynthesisError::AssignmentMissing),
}?;
AccountAddress::from_str(&address_string).map_err(|_| SynthesisError::AssignmentMissing)
AleoAddress::from_str(&address_string).map_err(|_| SynthesisError::AssignmentMissing)
}
}
@ -108,7 +108,7 @@ impl<F: PrimeField> AllocGadget<String, F> for Address {
let address = Self::alloc_helper(value_gen)?;
let mut address_bytes = vec![];
address
.write(&mut address_bytes)
.write_le(&mut address_bytes)
.map_err(|_| SynthesisError::AssignmentMissing)?;
let bytes = UInt8::alloc_vec(cs, &address_bytes[..])?;
@ -126,7 +126,7 @@ impl<F: PrimeField> AllocGadget<String, F> for Address {
let address = Self::alloc_helper(value_gen)?;
let mut address_bytes = vec![];
address
.write(&mut address_bytes)
.write_le(&mut address_bytes)
.map_err(|_| SynthesisError::AssignmentMissing)?;
let bytes = UInt8::alloc_input_vec_le(cs, &address_bytes[..])?;

View File

@ -25,9 +25,11 @@ use leo_ast::{InputValue, Span};
use snarkvm_fields::PrimeField;
use snarkvm_gadgets::{
boolean::Boolean,
traits::{
bits::comparator::{ComparatorGadget, EvaluateLtGadget},
eq::{ConditionalEqGadget, EqGadget, EvaluateEqGadget, NEqGadget},
select::CondSelectGadget,
traits::bits::comparator::{ComparatorGadget, EvaluateLtGadget},
},
};
use snarkvm_r1cs::{ConstraintSystem, SynthesisError};

View File

@ -19,15 +19,15 @@ use leo_asg::{GroupCoordinate, GroupValue, Span};
use snarkvm_curves::{
edwards_bls12::{EdwardsAffine, EdwardsParameters, Fq},
templates::twisted_edwards_extended::GroupAffine,
templates::twisted_edwards_extended::Affine,
AffineCurve,
TEModelParameters,
TwistedEdwardsParameters,
};
use snarkvm_fields::{Fp256, One, Zero};
use snarkvm_gadgets::{
bits::{ToBitsBEGadget, ToBytesGadget},
boolean::Boolean,
curves::edwards_bls12::EdwardsBlsGadget,
curves::edwards_bls12::EdwardsBls12Gadget,
fields::{AllocatedFp, FpGadget},
integers::uint::UInt8,
traits::{
@ -48,7 +48,7 @@ use std::{
#[derive(Clone, Debug)]
pub enum EdwardsGroupType {
Constant(EdwardsAffine),
Allocated(Box<EdwardsBlsGadget>),
Allocated(Box<EdwardsBls12Gadget>),
}
impl GroupType<Fq> for EdwardsGroupType {
@ -68,7 +68,7 @@ impl GroupType<Fq> for EdwardsGroupType {
match self {
EdwardsGroupType::Constant(group) => Ok(EdwardsGroupType::Constant(group.neg())),
EdwardsGroupType::Allocated(group) => {
let result = <EdwardsBlsGadget as GroupGadget<GroupAffine<EdwardsParameters>, Fq>>::negate(group, cs)
let result = <EdwardsBls12Gadget as GroupGadget<Affine<EdwardsParameters>, Fq>>::negate(group, cs)
.map_err(|e| GroupError::negate_operation(e, span))?;
Ok(EdwardsGroupType::Allocated(Box::new(result)))
@ -83,7 +83,7 @@ impl GroupType<Fq> for EdwardsGroupType {
}
(EdwardsGroupType::Allocated(self_value), EdwardsGroupType::Allocated(other_value)) => {
let result = <EdwardsBlsGadget as GroupGadget<GroupAffine<EdwardsParameters>, Fq>>::add(
let result = <EdwardsBls12Gadget as GroupGadget<Affine<EdwardsParameters>, Fq>>::add(
self_value,
cs,
other_value,
@ -111,7 +111,7 @@ impl GroupType<Fq> for EdwardsGroupType {
}
(EdwardsGroupType::Allocated(self_value), EdwardsGroupType::Allocated(other_value)) => {
let result = <EdwardsBlsGadget as GroupGadget<GroupAffine<EdwardsParameters>, Fq>>::sub(
let result = <EdwardsBls12Gadget as GroupGadget<Affine<EdwardsParameters>, Fq>>::sub(
self_value,
cs,
other_value,
@ -317,10 +317,10 @@ impl EdwardsGroupType {
Self::edwards_affine_from_value(&group_value, &Span::default()).map_err(|_| SynthesisError::AssignmentMissing)
}
pub fn allocated<CS: ConstraintSystem<Fq>>(&self, mut cs: CS) -> Result<EdwardsBlsGadget, SynthesisError> {
pub fn allocated<CS: ConstraintSystem<Fq>>(&self, mut cs: CS) -> Result<EdwardsBls12Gadget, SynthesisError> {
match self {
EdwardsGroupType::Constant(constant) => {
<EdwardsBlsGadget as AllocGadget<GroupAffine<EdwardsParameters>, Fq>>::alloc(
<EdwardsBls12Gadget as AllocGadget<Affine<EdwardsParameters>, Fq>>::alloc(
&mut cs.ns(|| format!("{:?}", constant)),
|| Ok(constant),
)
@ -332,7 +332,7 @@ impl EdwardsGroupType {
let x_allocated = FpGadget::alloc(cs.ns(|| "x"), || x_value.ok_or(SynthesisError::AssignmentMissing))?;
let y_allocated = FpGadget::alloc(cs.ns(|| "y"), || y_value.ok_or(SynthesisError::AssignmentMissing))?;
Ok(EdwardsBlsGadget::new(x_allocated, y_allocated))
Ok(EdwardsBls12Gadget::new(x_allocated, y_allocated))
}
}
}
@ -343,7 +343,7 @@ impl AllocGadget<GroupValue, Fq> for EdwardsGroupType {
cs: CS,
value_gen: Fn,
) -> Result<Self, SynthesisError> {
let value = <EdwardsBlsGadget as AllocGadget<GroupAffine<EdwardsParameters>, Fq>>::alloc(cs, || {
let value = <EdwardsBls12Gadget as AllocGadget<Affine<EdwardsParameters>, Fq>>::alloc(cs, || {
Self::alloc_helper(value_gen)
})?;
@ -354,7 +354,7 @@ impl AllocGadget<GroupValue, Fq> for EdwardsGroupType {
cs: CS,
value_gen: Fn,
) -> Result<Self, SynthesisError> {
let value = <EdwardsBlsGadget as AllocGadget<GroupAffine<EdwardsParameters>, Fq>>::alloc_input(cs, || {
let value = <EdwardsBls12Gadget as AllocGadget<Affine<EdwardsParameters>, Fq>>::alloc_input(cs, || {
Self::alloc_helper(value_gen)
})?;
@ -375,7 +375,7 @@ impl PartialEq for EdwardsGroupType {
(EdwardsGroupType::Constant(constant_value), EdwardsGroupType::Allocated(allocated_value))
| (EdwardsGroupType::Allocated(allocated_value), EdwardsGroupType::Constant(constant_value)) => {
<EdwardsBlsGadget as GroupGadget<GroupAffine<EdwardsParameters>, Fq>>::get_value(allocated_value)
<EdwardsBls12Gadget as GroupGadget<Affine<EdwardsParameters>, Fq>>::get_value(allocated_value)
.map(|allocated_value| allocated_value == *constant_value)
.unwrap_or(false)
}
@ -387,8 +387,8 @@ impl Eq for EdwardsGroupType {}
// fn compare_allocated_edwards_bls_gadgets<CS: ConstraintSystem<Fq>>(
// mut cs: CS,
// first: &EdwardsBlsGadget,
// second: &EdwardsBlsGadget,
// first: &EdwardsBls12Gadget,
// second: &EdwardsBls12Gadget,
// ) -> Result<Boolean, SynthesisError> {
// // compare x coordinates
// let x_first = &first.x;
@ -422,7 +422,7 @@ impl EvaluateEqGadget<Fq> for EdwardsGroupType {
// (EdwardsGroupType::Constant(constant_value), EdwardsGroupType::Allocated(allocated_value))
// | (EdwardsGroupType::Allocated(allocated_value), EdwardsGroupType::Constant(constant_value)) => {
// let allocated_constant_value =
// <EdwardsBlsGadget as AllocGadget<GroupAffine<EdwardsParameters>, Fq>>::alloc(
// <EdwardsBls12Gadget as AllocGadget<Affine<EdwardsParameters>, Fq>>::alloc(
// &mut cs.ns(|| format!("alloc constant for eq")),
// || Ok(constant_value),
// )?;
@ -452,14 +452,14 @@ impl ConditionalEqGadget<Fq> for EdwardsGroupType {
}
// a - a
(EdwardsGroupType::Allocated(self_value), EdwardsGroupType::Allocated(other_value)) => {
<EdwardsBlsGadget>::conditional_enforce_equal(self_value, cs, other_value, condition)
<EdwardsBls12Gadget>::conditional_enforce_equal(self_value, cs, other_value, condition)
}
// c - a = a - c
(EdwardsGroupType::Constant(constant_value), EdwardsGroupType::Allocated(allocated_value))
| (EdwardsGroupType::Allocated(allocated_value), EdwardsGroupType::Constant(constant_value)) => {
let x = FpGadget::from(AllocatedFp::from(&mut cs, &constant_value.x));
let y = FpGadget::from(AllocatedFp::from(&mut cs, &constant_value.y));
let constant_gadget = EdwardsBlsGadget::new(x, y);
let constant_gadget = EdwardsBls12Gadget::new(x, y);
constant_gadget.conditional_enforce_equal(cs, allocated_value, condition)
}
@ -467,7 +467,7 @@ impl ConditionalEqGadget<Fq> for EdwardsGroupType {
}
fn cost() -> usize {
2 * <EdwardsBlsGadget as ConditionalEqGadget<Fq>>::cost() //upper bound
2 * <EdwardsBls12Gadget as ConditionalEqGadget<Fq>>::cost() //upper bound
}
}
@ -483,14 +483,14 @@ impl CondSelectGadget<Fq> for EdwardsGroupType {
} else {
let first_gadget = first.allocated(cs.ns(|| "first"))?;
let second_gadget = second.allocated(cs.ns(|| "second"))?;
let result = EdwardsBlsGadget::conditionally_select(cs, cond, &first_gadget, &second_gadget)?;
let result = EdwardsBls12Gadget::conditionally_select(cs, cond, &first_gadget, &second_gadget)?;
Ok(EdwardsGroupType::Allocated(Box::new(result)))
}
}
fn cost() -> usize {
2 * <EdwardsBlsGadget as CondSelectGadget<Fq>>::cost()
2 * <EdwardsBls12Gadget as CondSelectGadget<Fq>>::cost()
}
}
@ -518,7 +518,7 @@ impl ToBytesGadget<Fq> for EdwardsGroupType {
}
}
fn edwards_affine_one() -> GroupAffine<EdwardsParameters> {
fn edwards_affine_one() -> Affine<EdwardsParameters> {
let (x, y) = EdwardsParameters::AFFINE_GENERATOR_COEFFS;
EdwardsAffine::new(x, y)

View File

@ -70,7 +70,7 @@ impl Command for Prove {
// Write the proof file to the output directory
let mut proof = vec![];
program_proof.write(&mut proof)?;
program_proof.write_le(&mut proof)?;
ProofFile::new(&package_name).write_to(&path, &proof)?;
Ok((program_proof, prepared_verifying_key))

View File

@ -24,6 +24,7 @@ use snarkvm_algorithms::{
traits::snark::SNARK,
};
use snarkvm_curves::bls12_377::{Bls12_377, Fr};
use snarkvm_utilities::ToBytes;
use anyhow::{anyhow, Result};
use rand::thread_rng;
@ -86,7 +87,7 @@ impl Command for Setup {
let proving_key_file = ProvingKeyFile::new(&package_name);
tracing::info!("Saving proving key ({:?})", proving_key_file.full_path(&path));
let mut proving_key_bytes = vec![];
proving_key.write(&mut proving_key_bytes)?;
proving_key.write_le(&mut proving_key_bytes)?;
let _ = proving_key_file.write_to(&path, &proving_key_bytes)?;
tracing::info!("Complete");
@ -94,7 +95,7 @@ impl Command for Setup {
let verification_key_file = VerificationKeyFile::new(&package_name);
tracing::info!("Saving verification key ({:?})", verification_key_file.full_path(&path));
let mut verification_key = vec![];
proving_key.vk.write(&mut verification_key)?;
proving_key.vk.write_le(&mut verification_key)?;
let _ = verification_key_file.write_to(&path, &verification_key)?;
tracing::info!("Complete");

View File

@ -26,19 +26,18 @@ path = "../ast"
version = "1.5.2"
[dependencies.snarkvm-algorithms]
version = "0.6.0"
version = "0.7.4"
[dependencies.snarkvm-curves]
version = "0.6.0"
version = "0.7.4"
default-features = false
[dependencies.snarkvm-dpc]
version = "0.6.0"
default-features = false
version = "0.7.4"
features = [ "testnet1" ]
[dependencies.snarkvm-utilities]
version = "0.6.0"
version = "0.7.4"
[dependencies.indexmap]
version = "1.7.0"

View File

@ -22,25 +22,22 @@ use snarkvm_algorithms::{
traits::{CommitmentScheme, CRH},
};
use snarkvm_dpc::{
testnet1::{
instantiated::{Components, LocalDataCRH, LocalDataCommitment},
parameters::SystemParameters,
},
traits::DPCComponents,
testnet1::{instantiated::Components, parameters::SystemParameters},
DPCComponents,
};
use snarkvm_utilities::{bytes::ToBytes, to_bytes, FromBytes};
use snarkvm_utilities::{bytes::ToBytes, to_bytes_le, FromBytes};
use std::convert::TryFrom;
/// Returns `true` if the path to the local data commitment leaf is a valid path in the record
/// commitment Merkle tree.
pub fn verify_local_data_commitment(
system_parameters: &SystemParameters<Components>,
dpc: &SystemParameters<Components>,
ast_input: &AstInput,
) -> Result<bool, LocalDataVerificationError> {
// Verify record commitment.
let typed_record = ast_input.get_record();
let dpc_record_values = verify_record_commitment(system_parameters, typed_record)?;
let dpc_record_values = verify_record_commitment(dpc, typed_record)?;
let record_commitment: Vec<u8> = dpc_record_values.commitment;
let record_serial_number: Vec<u8> = dpc_record_values.serial_number;
@ -61,26 +58,32 @@ pub fn verify_local_data_commitment(
// Select local data commitment input bytes.
let is_death = leaf_index < (Components::NUM_INPUT_RECORDS as u32);
let input_bytes = if is_death {
to_bytes![record_serial_number, record_commitment, memo, network_id]?
to_bytes_le![record_serial_number, record_commitment, memo, network_id]?
} else {
to_bytes![record_commitment, memo, network_id]?
to_bytes_le![record_commitment, memo, network_id]?
};
// Construct local data commitment leaf.
let local_data_leaf_randomness = <LocalDataCommitment as CommitmentScheme>::Randomness::read(&leaf_randomness[..])?;
let local_data_commitment_leaf = LocalDataCommitment::commit(
&system_parameters.local_data_commitment,
let local_data_leaf_randomness =
<<Components as DPCComponents>::LocalDataCommitment as CommitmentScheme>::Randomness::read_le(
&leaf_randomness[..],
)?;
let local_data_commitment_leaf = <Components as DPCComponents>::LocalDataCommitment::commit(
&dpc.local_data_commitment,
&input_bytes,
&local_data_leaf_randomness,
)?;
// Construct record commitment merkle path.
let local_data_merkle_path = CommitmentMerklePath::<LocalDataCommitment, LocalDataCRH>::read(&path[..])?;
let local_data_merkle_path = CommitmentMerklePath::<
<Components as DPCComponents>::LocalDataCommitment,
<Components as DPCComponents>::LocalDataCRH,
>::read_le(&path[..])?;
// Check record commitment merkle path is valid for the given local data commitment root.
let local_data_commitment_root = <LocalDataCRH as CRH>::Output::read(&root[..])?;
let local_data_commitment_root = <<Components as DPCComponents>::LocalDataCRH as CRH>::Output::read_le(&root[..])?;
let result = local_data_merkle_path.verify(
&system_parameters.local_data_crh,
&dpc.local_data_crh,
&local_data_commitment_root,
&local_data_commitment_leaf,
)?;

View File

@ -17,7 +17,7 @@
use crate::{utilities::*, DPCRecordValuesError};
use leo_ast::Record as AstRecord;
use snarkvm_dpc::{testnet1::instantiated::Components, AccountAddress};
use snarkvm_dpc::{testnet1::instantiated::Components, Address};
use std::{convert::TryFrom, str::FromStr};
@ -36,7 +36,7 @@ static COMMITMENT_RANDOMNESS_PARAMETER_STRING: &str = "commitment_randomness";
/// A new [`DPCRecordValues`] type can be constructed from an [`AstRecord`] type.
pub struct DPCRecordValues {
pub serial_number: Vec<u8>,
pub owner: AccountAddress<Components>,
pub owner: Address<Components>,
pub is_dummy: bool,
pub value: u64,
pub payload: Vec<u8>,
@ -59,7 +59,7 @@ impl TryFrom<&AstRecord> for DPCRecordValues {
// Lookup record owner
let owner_value = find_input(OWNER_PARAMETER_STRING.to_owned(), &parameters)?;
let owner = AccountAddress::<Components>::from_str(&owner_value.to_string())?;
let owner = Address::<Components>::from_str(&owner_value.to_string())?;
// Lookup record is_dummy
let is_dummy_value = find_input(IS_DUMMY_PARAMETER_STRING.to_owned(), &parameters)?;

View File

@ -18,25 +18,25 @@ use crate::{DPCRecordValues, RecordVerificationError};
use leo_ast::Record as AstRecord;
use snarkvm_algorithms::traits::CommitmentScheme;
use snarkvm_dpc::testnet1::{
instantiated::{Components, RecordCommitment},
parameters::SystemParameters,
use snarkvm_dpc::{
testnet1::{instantiated::Components, parameters::SystemParameters},
DPCComponents,
};
use snarkvm_utilities::{bytes::ToBytes, to_bytes, FromBytes};
use snarkvm_utilities::{bytes::ToBytes, to_bytes_le, FromBytes};
use std::convert::TryFrom;
/// Returns a serialized [`DPCRecordValues`] type if the record commitment is valid given the
/// system parameters.
pub fn verify_record_commitment(
system_parameters: &SystemParameters<Components>,
dpc: &SystemParameters<Components>,
ast_record: &AstRecord,
) -> Result<DPCRecordValues, RecordVerificationError> {
// generate a dpc record from the typed record
let record = DPCRecordValues::try_from(ast_record)?;
// verify record commitment
let record_commitment_input = to_bytes![
let record_commitment_input = to_bytes_le![
record.owner,
record.is_dummy,
record.value,
@ -46,12 +46,15 @@ pub fn verify_record_commitment(
record.serial_number_nonce
]?;
let commitment = <RecordCommitment as CommitmentScheme>::Output::read(&record.commitment[..])?;
let commitment =
<<Components as DPCComponents>::RecordCommitment as CommitmentScheme>::Output::read_le(&record.commitment[..])?;
let commitment_randomness =
<RecordCommitment as CommitmentScheme>::Randomness::read(&record.commitment_randomness[..])?;
<<Components as DPCComponents>::RecordCommitment as CommitmentScheme>::Randomness::read_le(
&record.commitment_randomness[..],
)?;
let record_commitment = RecordCommitment::commit(
&system_parameters.record_commitment,
let record_commitment = <Components as DPCComponents>::RecordCommitment::commit(
&dpc.record_commitment,
&record_commitment_input,
&commitment_randomness,
)?;

View File

@ -72,10 +72,10 @@
// let noop_program_snark_pp =
// InstantiatedDPC::generate_noop_program_snark_parameters(&system_parameters, &mut rng).unwrap();
//
// let noop_program_id = to_bytes![
// let noop_program_id = to_bytes_le![
// ProgramVerificationKeyCRH::hash(
// &system_parameters.program_verification_key_crh,
// &to_bytes![noop_program_snark_pp.verification_key].unwrap()
// &to_bytes_le![noop_program_snark_pp.verification_key].unwrap()
// )
// .unwrap()
// ]
@ -160,11 +160,11 @@
// let root = local_data.local_data_merkle_tree.root();
//
// let serial_number = local_data.old_serial_numbers[0];
// let serial_number_bytes = to_bytes![serial_number].unwrap();
// let serial_number_bytes = to_bytes_le![serial_number].unwrap();
//
// let memorandum = local_data.memorandum;
// let network_id = local_data.network_id;
// let input_bytes = to_bytes![serial_number, record.commitment(), memorandum, network_id].unwrap();
// let input_bytes = to_bytes_le![serial_number, record.commitment(), memorandum, network_id].unwrap();
// let leaf_randomness = local_data.local_data_commitment_randomizers[0];
//
// let old_record_leaf = <LocalDataCommitment as CommitmentScheme>::commit(
@ -185,7 +185,7 @@
// println!();
// println!("[state]");
// println!("leaf index {}", leaf_index);
// println!("root {:?}", to_bytes![root].unwrap());
// println!("root {:?}", to_bytes_le![root].unwrap());
// println!();
// println!("[record]");
// println!(
@ -193,7 +193,7 @@
// serial_number_bytes,
// serial_number_bytes.len()
// );
// println!("commitment {:?}", to_bytes![record.commitment()].unwrap());
// println!("commitment {:?}", to_bytes_le![record.commitment()].unwrap());
// println!("owner {}", record.owner());
// println!("is_dummy {:?}", record.is_dummy());
// println!("value {:?}", record.value());
@ -202,18 +202,18 @@
// println!("death_program_id {:?}", record.death_program_id());
// println!(
// "serial number nonce {:?}",
// to_bytes![record.serial_number_nonce()].unwrap()
// to_bytes_le![record.serial_number_nonce()].unwrap()
// );
// println!(
// "commitment randomness {:?}",
// to_bytes![record.commitment_randomness()].unwrap()
// to_bytes_le![record.commitment_randomness()].unwrap()
// );
// println!();
// println!("[state_leaf]");
// println!("path {:?}", to_bytes![path].unwrap());
// println!("path {:?}", to_bytes_le![path].unwrap());
// println!("memo {:?}", memorandum);
// println!("network id {:?}", network_id);
// println!("leaf randomness {:?}", to_bytes![leaf_randomness].unwrap());
// println!("leaf randomness {:?}", to_bytes_le![leaf_randomness].unwrap());
// println!();
// println!("////////////////////////////////////////////////////");
// }

View File

@ -18,18 +18,18 @@ license = "GPL-3.0"
edition = "2018"
[dependencies.snarkvm-curves]
version = "0.6.0"
version = "0.7.4"
default-features = false
[dependencies.snarkvm-fields]
version = "0.6.0"
version = "0.7.4"
default-features = false
[dependencies.snarkvm-gadgets]
version = "0.6.0"
version = "0.7.4"
[dependencies.snarkvm-r1cs]
version = "0.6.0"
version = "0.7.4"
default-features = false
[dependencies.num-bigint]

View File

@ -155,6 +155,10 @@ impl<E: PairingEngine> ConstraintSystem<E::Fr> for CircuitSynthesizer<E> {
fn num_private_variables(&self) -> usize {
self.private_variables.len()
}
fn is_in_setup_mode(&self) -> bool {
true
}
}
fn push_constraints<F: Field>(l: LinearCombination<F>, constraint: &mut Vec<(F, Index)>) {

View File

@ -29,7 +29,7 @@ impl<F: Field> From<&F> for SerializedField {
let mut buf = Vec::new();
field.write(&mut buf).unwrap();
field.write_le(&mut buf).unwrap();
// convert to base 10 integer