From 650488b0e85c67017cd5ed792fd3bdd5129d603b Mon Sep 17 00:00:00 2001 From: Oleksandr Zarudnyi Date: Mon, 13 Nov 2023 19:26:31 +0100 Subject: [PATCH] Release zksolc v1.3.17 and zkvyper v1.3.13 --- Cargo.lock | 850 +++++++++--------- Cargo.toml | 1 + LLVM.lock | 2 +- compiler_tester/Cargo.toml | 18 +- .../src/compiler_tester/arguments.rs | 4 +- compiler_tester/src/compiler_tester/main.rs | 10 +- .../src/compilers/downloader/mod.rs | 23 +- .../src/compilers/{zkevm.rs => eravm.rs} | 20 +- compiler_tester/src/compilers/llvm.rs | 19 +- compiler_tester/src/compilers/mod.rs | 2 +- .../src/compilers/mode/{zkevm.rs => eravm.rs} | 4 +- compiler_tester/src/compilers/mode/mod.rs | 48 +- compiler_tester/src/compilers/output/build.rs | 4 +- compiler_tester/src/compilers/solidity/mod.rs | 24 +- compiler_tester/src/compilers/vyper/mod.rs | 7 +- compiler_tester/src/compilers/yul.rs | 10 +- compiler_tester/src/deployers/mod.rs | 6 +- .../src/deployers/native_deployer.rs | 8 +- .../src/deployers/system_contract_deployer.rs | 8 +- .../src/{zkevm => eravm}/execution_result.rs | 4 +- compiler_tester/src/{zkevm => eravm}/mod.rs | 16 +- .../src/{zkevm => eravm}/system_context.rs | 17 +- .../src/{zkevm => eravm}/system_contracts.rs | 8 +- compiler_tester/src/lib.rs | 24 +- compiler_tester/src/summary/mod.rs | 29 +- .../src/test/case/input/balance.rs | 4 +- compiler_tester/src/test/case/input/deploy.rs | 4 +- compiler_tester/src/test/case/input/mod.rs | 4 +- .../src/test/case/input/runtime.rs | 4 +- .../src/test/case/input/storage_empty.rs | 4 +- compiler_tester/src/test/case/mod.rs | 4 +- compiler_tester/src/test/mod.rs | 6 +- configs/solc-bin-default.json | 20 +- configs/solc-bin-zkevm-candidate-0.8.21.json | 14 + configs/solc-bin-zkevm-candidate-0.8.22.json | 14 + configs/solc-bin-zkevm-candidate-0.8.23.json | 14 + configs/solc-bin-zkevm-reference-0.8.21.json | 14 + configs/solc-bin-zkevm-reference-0.8.22.json | 14 + configs/solc-bin-zkevm-reference-0.8.23.json | 14 + configs/vyper-bin-default.json | 6 + coverage_watcher/Cargo.toml | 4 +- solidity | 2 +- solidity_adapter/Cargo.toml | 13 +- .../src/test/params/evm_version.rs | 2 +- system-contracts | 2 +- tests | 2 +- 46 files changed, 759 insertions(+), 572 deletions(-) rename compiler_tester/src/compilers/{zkevm.rs => eravm.rs} (76%) rename compiler_tester/src/compilers/mode/{zkevm.rs => eravm.rs} (74%) rename compiler_tester/src/{zkevm => eravm}/execution_result.rs (93%) rename compiler_tester/src/{zkevm => eravm}/mod.rs (97%) rename compiler_tester/src/{zkevm => eravm}/system_context.rs (90%) rename compiler_tester/src/{zkevm => eravm}/system_contracts.rs (98%) create mode 100644 configs/solc-bin-zkevm-candidate-0.8.21.json create mode 100644 configs/solc-bin-zkevm-candidate-0.8.22.json create mode 100644 configs/solc-bin-zkevm-candidate-0.8.23.json create mode 100644 configs/solc-bin-zkevm-reference-0.8.21.json create mode 100644 configs/solc-bin-zkevm-reference-0.8.22.json create mode 100644 configs/solc-bin-zkevm-reference-0.8.23.json diff --git a/Cargo.lock b/Cargo.lock index 8b8d4dd4..16d09e8f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "addr2line" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ "gimli", ] @@ -19,18 +19,18 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aho-corasick" -version = "1.0.2" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] [[package]] name = "anyhow" -version = "1.0.72" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" [[package]] name = "arrayvec" @@ -57,9 +57,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" dependencies = [ "addr2line", "cc", @@ -78,15 +78,9 @@ checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" [[package]] name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.21.2" +version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" [[package]] name = "base64ct" @@ -123,15 +117,18 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] [[package]] name = "bitvec" -version = "0.20.4" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ "funty", "radium", @@ -142,20 +139,9 @@ dependencies = [ [[package]] name = "blake2" version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +source = "git+https://github.com/RustCrypto/hashes.git?rev=1f727ce37ff40fa0cce84eb8543a45bdd3ca4a4e#1f727ce37ff40fa0cce84eb8543a45bdd3ca4a4e" dependencies = [ - "block-padding", - "generic-array", + "digest", ] [[package]] @@ -167,17 +153,11 @@ dependencies = [ "generic-array", ] -[[package]] -name = "block-padding" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" - [[package]] name = "bumpalo" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "byte-slice-cast" @@ -187,21 +167,24 @@ checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] name = "byteorder" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "cc" -version = "1.0.79" +version = "1.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "0f8e7c90afad890484a21653d08b6e209ae34770fb5ee298f9c699fcc1e5c856" +dependencies = [ + "libc", +] [[package]] name = "cfg-if" @@ -233,13 +216,19 @@ dependencies = [ [[package]] name = "compiler-common" -version = "1.3.1" -source = "git+https://github.com/matter-labs/era-compiler-common?branch=main#a6c5b02e4f149f82f1c3821a6f258363308abd2a" +version = "1.3.3" +source = "git+https://github.com/matter-labs/era-compiler-common?branch=main#8635dbadff6727ed76b7aebea7a10ffe7690698c" +dependencies = [ + "anyhow", + "serde", + "serde_json", + "serde_stacker", +] [[package]] name = "compiler-llvm-context" -version = "1.3.2" -source = "git+https://github.com/matter-labs/era-compiler-llvm-context?branch=main#7d20d1323787ff50fb043cb4f798b3d9a9369ae8" +version = "1.3.3" +source = "git+https://github.com/matter-labs/era-compiler-llvm-context?branch=main#a5dd76f6d6d5a1df0e68da481926adfd56b65a78" dependencies = [ "anyhow", "compiler-common", @@ -252,16 +241,16 @@ dependencies = [ "regex", "semver", "serde", - "sha2", - "sha3 0.10.6", + "sha2 0.10.8", + "sha3 0.10.8", "zkevm-assembly", "zkevm_opcode_defs", ] [[package]] name = "compiler-solidity" -version = "1.3.13" -source = "git+https://github.com/matter-labs/era-compiler-solidity?branch=main#f7573459d185cea382c3daf95c59ace1f86b8322" +version = "1.3.17" +source = "git+https://github.com/matter-labs/era-compiler-solidity?branch=main#1650bde7f23592a75062385f52edf17da2522150" dependencies = [ "anyhow", "colored", @@ -279,16 +268,16 @@ dependencies = [ "semver", "serde", "serde_json", - "serde_stacker", - "sha3 0.10.6", + "sha3 0.10.8", "structopt", "thiserror", + "which", "zkevm-assembly", ] [[package]] name = "compiler-tester" -version = "1.3.2" +version = "1.3.3" dependencies = [ "anyhow", "benchmark-analyzer", @@ -313,7 +302,7 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "sha3 0.10.6", + "sha3 0.10.8", "solidity-adapter", "structopt", "tokio", @@ -325,8 +314,8 @@ dependencies = [ [[package]] name = "compiler-vyper" -version = "1.3.9" -source = "git+https://github.com/matter-labs/era-compiler-vyper?branch=main#e37641df708791c8d578be70cb1e475ca8e622d6" +version = "1.3.13" +source = "git+https://github.com/matter-labs/era-compiler-vyper?branch=main#701ca3db3e09705f4b69595d52325ecbecf63fd1" dependencies = [ "anyhow", "colored", @@ -341,18 +330,18 @@ dependencies = [ "semver", "serde", "serde_json", - "serde_stacker", - "sha3 0.10.6", + "sha3 0.10.8", "structopt", + "which", "zkevm-assembly", "zkevm_opcode_defs", ] [[package]] name = "const-oid" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "795bc6e66a8e340f075fcf6227e417a2dc976b92b91f3cdc778bb858778b6747" +checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" [[package]] name = "convert_case" @@ -360,9 +349,25 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + [[package]] name = "coverage-watcher" -version = "1.3.2" +version = "1.3.3" dependencies = [ "anyhow", "compiler-common", @@ -373,23 +378,13 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" dependencies = [ "libc", ] -[[package]] -name = "crossbeam-channel" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - [[package]] name = "crossbeam-deque" version = "0.8.3" @@ -474,22 +469,13 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - [[package]] name = "digest" version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", + "block-buffer", "crypto-common", "subtle", ] @@ -508,9 +494,9 @@ dependencies = [ [[package]] name = "either" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "elliptic-curve" @@ -521,7 +507,7 @@ dependencies = [ "base16ct", "crypto-bigint", "der", - "digest 0.10.7", + "digest", "ff", "generic-array", "group", @@ -534,9 +520,9 @@ dependencies = [ [[package]] name = "encoding_rs" -version = "0.8.32" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" dependencies = [ "cfg-if", ] @@ -562,45 +548,36 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.1" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +checksum = "7c18ee0ed65a5f1f81cac6b1d213b69c35fa47d4252ad41f1486dbd8226fe36e" dependencies = [ - "errno-dragonfly", "libc", "windows-sys", ] -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - [[package]] name = "ethabi" -version = "16.0.0" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c98847055d934070b90e806e12d3936b787d0a115068981c1d8dfd5dfef5a5" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" dependencies = [ "ethereum-types", "hex", + "once_cell", + "regex", "serde", "serde_json", - "sha3 0.9.1", + "sha3 0.10.8", "thiserror", "uint", ] [[package]] name = "ethbloom" -version = "0.11.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfb684ac8fa8f6c5759f788862bb22ec6fe3cb392f6bfd08e3c64b603661e3f8" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" dependencies = [ "crunchy", "fixed-hash", @@ -611,9 +588,9 @@ dependencies = [ [[package]] name = "ethereum-types" -version = "0.12.1" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05136f7057fe789f06e6d41d07b34e6f70d8c86e5693b60f97aaa6553553bdaf" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" dependencies = [ "ethbloom", "fixed-hash", @@ -635,9 +612,9 @@ dependencies = [ [[package]] name = "fixed-hash" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", "rand 0.8.5", @@ -668,15 +645,15 @@ checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" [[package]] name = "funty" -version = "1.1.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" +checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" dependencies = [ "futures-channel", "futures-core", @@ -689,9 +666,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" dependencies = [ "futures-core", "futures-sink", @@ -699,15 +676,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" [[package]] name = "futures-executor" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" dependencies = [ "futures-core", "futures-task", @@ -716,32 +693,32 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" [[package]] name = "futures-macro" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" +checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] name = "futures-sink" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" [[package]] name = "futures-task" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" [[package]] name = "futures-timer" @@ -751,9 +728,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" dependencies = [ "futures-channel", "futures-core", @@ -779,9 +756,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", "libc", @@ -790,9 +767,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.27.3" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" [[package]] name = "glob" @@ -813,9 +790,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.20" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" +checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" dependencies = [ "bytes", "fnv", @@ -838,18 +815,17 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" [[package]] name = "headers" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" +checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" dependencies = [ - "base64 0.13.1", - "bitflags 1.3.2", + "base64", "bytes", "headers-core", "http", @@ -887,9 +863,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "hex" @@ -903,14 +879,23 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.7", + "digest", +] + +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys", ] [[package]] name = "http" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" dependencies = [ "bytes", "fnv", @@ -936,9 +921,9 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" @@ -963,7 +948,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.4.10", "tokio", "tower-service", "tracing", @@ -972,9 +957,9 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", "http", @@ -984,17 +969,6 @@ dependencies = [ "tokio-rustls", ] -[[package]] -name = "idna" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" -dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", -] - [[package]] name = "idna" version = "0.4.0" @@ -1007,9 +981,9 @@ dependencies = [ [[package]] name = "impl-codec" -version = "0.5.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" dependencies = [ "parity-scale-codec", ] @@ -1025,9 +999,9 @@ dependencies = [ [[package]] name = "impl-serde" -version = "0.3.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" dependencies = [ "serde", ] @@ -1055,18 +1029,18 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ "equivalent", - "hashbrown 0.14.0", + "hashbrown 0.14.2", ] [[package]] name = "inkwell" version = "0.1.0" -source = "git+https://github.com/matter-labs-forks/inkwell?branch=llvm-15#b8578870c7357e529bf28c3b03dd3e05dd645d1d" +source = "git+https://github.com/matter-labs-forks/inkwell?branch=llvm-15#aeeada43db7fd6375ebe2929baeda1934d751cd6" dependencies = [ "either", "inkwell_internals", @@ -1080,7 +1054,7 @@ dependencies = [ [[package]] name = "inkwell_internals" version = "0.6.0" -source = "git+https://github.com/matter-labs-forks/inkwell?branch=llvm-15#b8578870c7357e529bf28c3b03dd3e05dd645d1d" +source = "git+https://github.com/matter-labs-forks/inkwell?branch=llvm-15#aeeada43db7fd6375ebe2929baeda1934d751cd6" dependencies = [ "proc-macro2", "quote", @@ -1089,9 +1063,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "is-terminal" @@ -1099,7 +1073,7 @@ version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ - "hermit-abi 0.3.2", + "hermit-abi 0.3.3", "rustix", "windows-sys", ] @@ -1121,9 +1095,9 @@ checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "js-sys" -version = "0.3.64" +version = "0.3.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" dependencies = [ "wasm-bindgen", ] @@ -1152,7 +1126,7 @@ dependencies = [ "cfg-if", "ecdsa", "elliptic-curve", - "sha2", + "sha2 0.10.8", ] [[package]] @@ -1172,9 +1146,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" [[package]] name = "libmath" @@ -1187,9 +1161,9 @@ dependencies = [ [[package]] name = "libmimalloc-sys" -version = "0.1.33" +version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4ac0e912c8ef1b735e92369695618dc5b1819f5a7bf3f167301a3ba1cea515e" +checksum = "3979b5c37ece694f1f5e51e7ecc871fdb0f517ed04ee45f88d15d6d553cb9664" dependencies = [ "cc", "libc", @@ -1197,14 +1171,14 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.3" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" [[package]] name = "llvm-sys" version = "150.0.5" -source = "git+https://github.com/matter-labs-forks/llvm-sys.rs?branch=llvm-15.0#71d3d59ea8f5974b9ffc3a6631676e0fa2825a27" +source = "git+https://github.com/matter-labs-forks/llvm-sys.rs?branch=llvm-15.0#4d5196cde1825d14028788d0ffa6202ea5f98db6" dependencies = [ "cc", "lazy_static", @@ -1215,9 +1189,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ "autocfg", "scopeguard", @@ -1225,15 +1199,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.19" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" - -[[package]] -name = "matches" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "md5" @@ -1243,9 +1211,9 @@ checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" @@ -1258,9 +1226,9 @@ dependencies = [ [[package]] name = "mimalloc" -version = "0.1.37" +version = "0.1.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e2894987a3459f3ffb755608bd82188f8ed00d0ae077f1edea29c068d639d98" +checksum = "fa01922b5ea280a911e323e4d2fd24b7fe5cc4042e0d2cda3c40775cdc4bdc9c" dependencies = [ "libmimalloc-sys", ] @@ -1288,9 +1256,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" dependencies = [ "libc", "wasi", @@ -1323,9 +1291,9 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ "autocfg", "num-integer", @@ -1334,9 +1302,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ "num-traits", ] @@ -1376,9 +1344,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", ] @@ -1389,15 +1357,15 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.2", + "hermit-abi 0.3.3", "libc", ] [[package]] name = "object" -version = "0.31.1" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" dependencies = [ "memchr", ] @@ -1408,17 +1376,11 @@ version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - [[package]] name = "parity-scale-codec" -version = "2.3.1" +version = "3.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" +checksum = "0dec8a8073036902368c2cdc0387e85ff9a37054d7e7c98e592145e0c92cd4fb" dependencies = [ "arrayvec", "bitvec", @@ -1430,9 +1392,9 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "2.3.1" +version = "3.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" +checksum = "312270ee71e1cd70289dacf597cab7b207aa107d2f28191c2ae45b2ece18a260" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1452,9 +1414,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", @@ -1471,29 +1433,29 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pin-project" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] name = "pin-project-lite" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -1519,9 +1481,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "primitive-types" -version = "0.10.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash", "impl-codec", @@ -1566,9 +1528,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] @@ -1584,18 +1546,18 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.31" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] [[package]] name = "radium" -version = "0.6.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" [[package]] name = "rand" @@ -1667,9 +1629,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" dependencies = [ "either", "rayon-core", @@ -1677,14 +1639,12 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" dependencies = [ - "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "num_cpus", ] [[package]] @@ -1698,18 +1658,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.3.5" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ "bitflags 1.3.2", ] [[package]] name = "regex" -version = "1.9.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", @@ -1719,9 +1679,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.3" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", @@ -1730,17 +1690,17 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" -version = "0.11.18" +version = "0.11.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" +checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" dependencies = [ - "base64 0.21.2", + "base64", "bytes", "encoding_rs", "futures-core", @@ -1762,6 +1722,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", + "system-configuration", "tokio", "tokio-rustls", "tower-service", @@ -1786,17 +1747,16 @@ dependencies = [ [[package]] name = "ring" -version = "0.16.20" +version = "0.17.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b" dependencies = [ "cc", + "getrandom", "libc", - "once_cell", "spin", "untrusted", - "web-sys", - "winapi", + "windows-sys", ] [[package]] @@ -1811,13 +1771,14 @@ dependencies = [ [[package]] name = "ron" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "300a51053b1cb55c80b7a9fde4120726ddf25ca241a1cbb926626f62fb136bff" +checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" dependencies = [ - "base64 0.13.1", - "bitflags 1.3.2", + "base64", + "bitflags 2.4.1", "serde", + "serde_derive", ] [[package]] @@ -1843,11 +1804,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.4" +version = "0.38.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" +checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.1", "errno", "libc", "linux-raw-sys", @@ -1856,9 +1817,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.5" +version = "0.21.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79ea77c539259495ce8ca47f53e66ae0330a8819f67e23ac96ca02f50e7b7d36" +checksum = "446e14c5cda4f3f30fe71863c34ec70f5ac79d6087097ad0bb433e1be5edf04c" dependencies = [ "log", "ring", @@ -1868,18 +1829,18 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "base64 0.21.2", + "base64", ] [[package]] name = "rustls-webpki" -version = "0.101.1" +version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15f36a6828982f422756984e47912a7a51dcbc2a197aa791158f8ca61cd8204e" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ "ring", "untrusted", @@ -1899,9 +1860,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sct" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ "ring", "untrusted", @@ -1923,56 +1884,56 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.21.3" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c42e6f1735c5f00f51e43e28d6634141f2bcad10931b2609ddd74a86d751260" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" dependencies = [ "secp256k1-sys", ] [[package]] name = "secp256k1-sys" -version = "0.4.2" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957da2573cde917463ece3570eab4a0b3f19de6f1646cde62e6fd3868f566036" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" dependencies = [ "cc", ] [[package]] name = "semver" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" dependencies = [ "serde", ] [[package]] name = "serde" -version = "1.0.171" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.171" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] name = "serde_json" -version = "1.0.103" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -2003,11 +1964,11 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.9.24" +version = "0.9.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5f51e3fdb5b9cdd1577e1cb7a733474191b1aca6a72c2e50913241632c1180" +checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.1.0", "itoa", "ryu", "serde", @@ -2016,45 +1977,52 @@ dependencies = [ [[package]] name = "sha1" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.7", + "digest", ] [[package]] name = "sha2" version = "0.10.6" +source = "git+https://github.com/RustCrypto/hashes.git?rev=1731ced4a116d61ba9dc6ee6d0f38fb8102e357a#1731ced4a116d61ba9dc6ee6d0f38fb8102e357a" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.7", + "digest", ] [[package]] name = "sha3" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +version = "0.10.6" +source = "git+https://github.com/RustCrypto/hashes.git?rev=7a187e934c1f6c68e4b4e5cf37541b7a0d64d303#7a187e934c1f6c68e4b4e5cf37541b7a0d64d303" dependencies = [ - "block-buffer 0.9.0", - "digest 0.9.0", + "digest", "keccak", - "opaque-debug", ] [[package]] name = "sha3" -version = "0.10.6" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "digest 0.10.7", + "digest", "keccak", ] @@ -2064,38 +2032,48 @@ version = "1.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" dependencies = [ - "digest 0.10.7", + "digest", "rand_core 0.6.4", ] [[package]] name = "slab" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", ] [[package]] name = "smallvec" -version = "1.11.0" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" [[package]] name = "socket2" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" dependencies = [ "libc", "winapi", ] +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys", +] + [[package]] name = "solidity-adapter" -version = "1.3.2" +version = "1.3.3" dependencies = [ "anyhow", "colored", @@ -2111,9 +2089,9 @@ dependencies = [ [[package]] name = "spin" -version = "0.5.2" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "spki" @@ -2187,15 +2165,36 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.26" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "tap" version = "1.0.1" @@ -2204,9 +2203,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "termcolor" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" dependencies = [ "winapi-util", ] @@ -2222,22 +2221,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.43" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.43" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] @@ -2266,18 +2265,17 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.29.1" +version = "1.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" dependencies = [ - "autocfg", "backtrace", "bytes", "libc", "mio", "num_cpus", "pin-project-lite", - "socket2", + "socket2 0.5.5", "windows-sys", ] @@ -2293,9 +2291,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.8" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" dependencies = [ "bytes", "futures-core", @@ -2307,17 +2305,17 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" [[package]] name = "toml_edit" -version = "0.19.14" +version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.1.0", "toml_datetime", "winnow", ] @@ -2330,11 +2328,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.37" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "cfg-if", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -2342,20 +2339,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] name = "tracing-core" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", ] @@ -2368,9 +2365,9 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "typenum" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "uint" @@ -2392,9 +2389,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" @@ -2413,9 +2410,9 @@ checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" [[package]] name = "unicode-width" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" [[package]] name = "unsafe-libyaml" @@ -2425,18 +2422,18 @@ checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa" [[package]] name = "untrusted" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" dependencies = [ "form_urlencoded", - "idna 0.4.0", + "idna", "percent-encoding", ] @@ -2469,9 +2466,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2479,24 +2476,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.37" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02" dependencies = [ "cfg-if", "js-sys", @@ -2506,9 +2503,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2516,28 +2513,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" [[package]] name = "web-sys" -version = "0.3.64" +version = "0.3.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" dependencies = [ "js-sys", "wasm-bindgen", @@ -2545,12 +2542,12 @@ dependencies = [ [[package]] name = "web3" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44f258e254752d210b84fe117b31f1e3cc9cbf04c0d747eb7f8cf7cf5e370f6d" +checksum = "5388522c899d1e1c96a4c307e3797e0f697ba7c77dd8e0e625ecba9dd0342937" dependencies = [ "arrayvec", - "base64 0.13.1", + "base64", "bytes", "derive_more", "ethabi", @@ -2559,7 +2556,7 @@ dependencies = [ "futures-timer", "headers", "hex", - "idna 0.2.3", + "idna", "jsonrpc-core", "log", "once_cell", @@ -2575,22 +2572,21 @@ dependencies = [ ] [[package]] -name = "webpki" -version = "0.22.0" +name = "webpki-roots" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" -dependencies = [ - "ring", - "untrusted", -] +checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" [[package]] -name = "webpki-roots" -version = "0.22.6" +name = "which" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" dependencies = [ - "webpki", + "either", + "home", + "once_cell", + "rustix", ] [[package]] @@ -2611,9 +2607,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi", ] @@ -2635,9 +2631,9 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", @@ -2650,69 +2646,73 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winnow" -version = "0.5.0" +version = "0.5.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fac9742fd1ad1bd9643b991319f72dd031016d44b77039a26977eb667141e7" +checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" dependencies = [ "memchr", ] [[package]] name = "winreg" -version = "0.10.1" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ - "winapi", + "cfg-if", + "windows-sys", ] [[package]] name = "wyz" -version = "0.2.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] [[package]] name = "zeroize" @@ -2723,7 +2723,7 @@ checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" [[package]] name = "zk_evm" version = "1.3.3" -source = "git+https://github.com/matter-labs/era-zk_evm?branch=v1.3.3#c08a8581421d2a0cf1fc8cbbdcd06c00da01fe0e" +source = "git+https://github.com/matter-labs/era-zk_evm?tag=v1.3.3-rc0#c08a8581421d2a0cf1fc8cbbdcd06c00da01fe0e" dependencies = [ "anyhow", "lazy_static", @@ -2738,7 +2738,7 @@ dependencies = [ [[package]] name = "zk_evm_abstractions" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-zk_evm_abstractions.git#973a1f661c045e0e8b9a287505f353659279b3b3" +source = "git+https://github.com/matter-labs/era-zk_evm_abstractions.git#7502a661d7d38906d849dcd3e7a15e5848af6581" dependencies = [ "anyhow", "serde", @@ -2749,7 +2749,7 @@ dependencies = [ [[package]] name = "zkevm-assembly" version = "1.3.2" -source = "git+https://github.com/matter-labs/era-zkEVM-assembly?branch=v1.3.2#edc364e59a2eea9c4b1d4ce79f15d0b7c6b55b98" +source = "git+https://github.com/matter-labs/era-zkEVM-assembly?branch=v1.3.2#3c61d450cbe6548068be8f313ed02f1bd229a865" dependencies = [ "env_logger", "hex", @@ -2758,7 +2758,7 @@ dependencies = [ "nom", "num-bigint", "num-traits", - "sha3 0.10.6", + "sha3 0.10.8", "smallvec", "structopt", "thiserror", @@ -2768,21 +2768,21 @@ dependencies = [ [[package]] name = "zkevm_opcode_defs" version = "1.3.2" -source = "git+https://github.com/matter-labs/era-zkevm_opcode_defs?branch=v1.3.2#2f69c6975a272e8c31d2d82c136a4ea81df25115" +source = "git+https://github.com/matter-labs/era-zkevm_opcode_defs?branch=v1.3.2#dffacadeccdfdbff4bc124d44c595c4a6eae5013" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.1", "blake2", "ethereum-types", "k256", "lazy_static", - "sha2", + "sha2 0.10.6", "sha3 0.10.6", ] [[package]] name = "zkevm_tester" version = "1.3.3" -source = "git+https://github.com/matter-labs/era-zkevm_tester?branch=v1.3.3#d26312f50971f7ed2a7f2b0ccd0da1ac0b41a550" +source = "git+https://github.com/matter-labs/era-zkevm_tester?branch=v1.3.3#7915461d7657c9d17758535554e3633783af576f" dependencies = [ "anyhow", "futures", @@ -2791,7 +2791,7 @@ dependencies = [ "num-traits", "serde", "serde_json", - "sha2", + "sha2 0.10.8", "tracing", "vlog", "zk_evm", diff --git a/Cargo.toml b/Cargo.toml index ad1c572a..b6cba5bd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,3 +5,4 @@ members = [ "coverage_watcher", "benchmark_analyzer", ] +resolver = "2" diff --git a/LLVM.lock b/LLVM.lock index 85412c17..41258726 100644 --- a/LLVM.lock +++ b/LLVM.lock @@ -1,2 +1,2 @@ url = "https://github.com/matter-labs/era-compiler-llvm" -branch = "v1.3.4" +branch = "v1.3.7" diff --git a/compiler_tester/Cargo.toml b/compiler_tester/Cargo.toml index 7c785c3b..3a28859f 100644 --- a/compiler_tester/Cargo.toml +++ b/compiler_tester/Cargo.toml @@ -1,13 +1,13 @@ [package] name = "compiler-tester" -version = "1.3.2" +version = "1.3.3" authors = [ - "Alex Zarudnyy ", + "Oleksandr Zarudnyi ", "Anton Dyadyuk ", ] license = "MIT OR Apache-2.0" edition = "2021" -description = "zkEVM Compiler Integration Testing Framework" +description = "EraVM Compiler Integration Testing Framework" [[bin]] name = "compiler-tester" @@ -21,19 +21,19 @@ structopt = { version = "0.3", default-features = false } anyhow = "1.0" colored = "2.0" -serde = { version = "1.0", features = [ "derive" ] } +serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" serde_yaml = "0.9" md5 = "0.7" hex = "0.4" sha3 = "0.10" ron = "0.8" -regex = "1.9" +regex = "1.8" glob = "0.3" -semver = { version = "1.0", features = [ "serde" ] } +semver = { version = "1.0", features = ["serde"] } itertools = "0.10" -rayon = "1.7" once_cell = "1.17" +rayon = "1.7" lazy_static = "1.4" bincode = "1.3" @@ -55,7 +55,7 @@ default-features = false features = ["rt-multi-thread"] [dependencies.web3] -version = "0.18" +version = "0.19" default-features = false features = ["http-rustls-tls", "test", "signing"] @@ -68,4 +68,4 @@ features = ["blocking"] git = "https://github.com/matter-labs-forks/inkwell" branch = "llvm-15" default-features = false -features = ["llvm15-0", "no-libffi-linking", "target-syncvm"] +features = ["llvm15-0", "no-libffi-linking", "target-eravm"] diff --git a/compiler_tester/src/compiler_tester/arguments.rs b/compiler_tester/src/compiler_tester/arguments.rs index e1a8a868..bb2e2300 100644 --- a/compiler_tester/src/compiler_tester/arguments.rs +++ b/compiler_tester/src/compiler_tester/arguments.rs @@ -12,7 +12,7 @@ use structopt::StructOpt; #[derive(Debug, StructOpt)] #[structopt( name = "compiler-tester", - about = "zkEVM Compiler Integration Testing Framework" + about = "EraVM Compiler Integration Testing Framework" )] pub struct Arguments { /// The logging level. @@ -28,7 +28,7 @@ pub struct Arguments { pub debug: bool, /// Saves all JSON traces produced by VM to `./trace/` directory. - /// If passed twice, dumps zkEVM instructions and registers to the terminal. + /// If passed twice, dumps EraVM instructions and registers to the terminal. #[structopt(short = "T", long = "trace", parse(from_occurrences))] pub trace: usize, diff --git a/compiler_tester/src/compiler_tester/main.rs b/compiler_tester/src/compiler_tester/main.rs index 18903ef9..b8b31b3a 100644 --- a/compiler_tester/src/compiler_tester/main.rs +++ b/compiler_tester/src/compiler_tester/main.rs @@ -41,7 +41,7 @@ fn main_inner(arguments: Arguments) -> anyhow::Result<()> { ); inkwell::support::enable_llvm_pretty_stack_trace(); - compiler_llvm_context::initialize_target(); + compiler_llvm_context::initialize_target(compiler_llvm_context::Target::EraVM); compiler_tester::LLVMOptions::initialize( arguments.llvm_verify_each, arguments.llvm_debug_logging, @@ -167,8 +167,8 @@ mod tests { quiet: false, debug: false, trace: 2, - modes: vec!["Y+M3B3 0.8.20".to_owned()], - paths: vec!["tests/solidity/simple/default.sol".to_owned()], + modes: vec!["Y+M3B3 0.8.21".to_owned()], + paths: vec!["./tests/solidity/simple/default.sol".to_owned()], groups: vec![], benchmark: None, threads: Some(1), @@ -177,8 +177,8 @@ mod tests { disable_value_simulator: false, zksolc: Some(PathBuf::from(compiler_solidity::DEFAULT_EXECUTABLE_NAME)), zkvyper: Some(PathBuf::from(compiler_vyper::DEFAULT_EXECUTABLE_NAME)), - solc_bin_config_path: Some(PathBuf::from("configs/solc-bin-default.json")), - vyper_bin_config_path: Some(PathBuf::from("configs/vyper-bin-default.json")), + solc_bin_config_path: Some(PathBuf::from("./configs/solc-bin-default.json")), + vyper_bin_config_path: Some(PathBuf::from("./configs/vyper-bin-default.json")), load_system_contracts: None, save_system_contracts: None, llvm_verify_each: false, diff --git a/compiler_tester/src/compilers/downloader/mod.rs b/compiler_tester/src/compilers/downloader/mod.rs index 9b902e3e..efd1539d 100644 --- a/compiler_tester/src/compilers/downloader/mod.rs +++ b/compiler_tester/src/compilers/downloader/mod.rs @@ -43,11 +43,19 @@ impl Downloader { /// pub fn download(mut self, config_path: &Path) -> anyhow::Result { let config_file = std::fs::File::open(config_path).map_err(|error| { - anyhow::anyhow!("Binaries download config opening error: {}", error) + anyhow::anyhow!( + "Binaries download config {:?} opening error: {}", + config_path, + error + ) })?; let config_reader = std::io::BufReader::new(config_file); let config: Config = serde_json::from_reader(config_reader).map_err(|error| { - anyhow::anyhow!("Binaries download config parsing error: {}", error) + anyhow::anyhow!( + "Binaries download config {:?} parsing error: {}", + config_path, + error + ) })?; let platform_directory = config.get_remote_platform_directory()?; @@ -77,8 +85,15 @@ impl Downloader { binary.destination, ); - std::fs::copy(source_path.as_str(), binary.destination.as_str()) - .map_err(|error| anyhow::anyhow!("Binary copying error: {}", error))?; + std::fs::copy(source_path.as_str(), binary.destination.as_str()).map_err( + |error| { + anyhow::anyhow!( + "Binary {:?} copying error: {}", + source_path.as_str(), + error + ) + }, + )?; continue; } Protocol::HTTPS => { diff --git a/compiler_tester/src/compilers/zkevm.rs b/compiler_tester/src/compilers/eravm.rs similarity index 76% rename from compiler_tester/src/compilers/zkevm.rs rename to compiler_tester/src/compilers/eravm.rs index 0425f82f..936f3c97 100644 --- a/compiler_tester/src/compilers/zkevm.rs +++ b/compiler_tester/src/compilers/eravm.rs @@ -1,23 +1,23 @@ //! -//! The zkEVM compiler. +//! The EraVM compiler. //! use std::collections::BTreeMap; use std::collections::HashMap; -use super::mode::zkevm::Mode as ZKEVMMode; +use super::mode::eravm::Mode as EraVMMode; use super::mode::Mode; -use super::output::build::Build as zkEVMContractBuild; +use super::output::build::Build as EraVMContractBuild; use super::output::Output; use super::Compiler; /// -/// The zkEVM compiler. +/// The EraVM compiler. /// #[allow(non_camel_case_types)] -pub struct zkEVMCompiler; +pub struct EraVMCompiler; -impl zkEVMCompiler { +impl EraVMCompiler { /// /// A shortcut constructor. /// @@ -26,9 +26,9 @@ impl zkEVMCompiler { } } -impl Compiler for zkEVMCompiler { +impl Compiler for EraVMCompiler { fn modes(&self) -> Vec { - vec![ZKEVMMode::default().into()] + vec![EraVMMode::default().into()] } fn compile( @@ -46,10 +46,10 @@ impl Compiler for zkEVMCompiler { .map(|(path, source_code)| { zkevm_assembly::Assembly::try_from(source_code.to_owned()) .map_err(anyhow::Error::new) - .and_then(zkEVMContractBuild::new) + .and_then(EraVMContractBuild::new) .map(|build| (path.to_string(), build)) }) - .collect::>>()?; + .collect::>>()?; let last_contract = sources .last() diff --git a/compiler_tester/src/compilers/llvm.rs b/compiler_tester/src/compilers/llvm.rs index 95b7e0b1..447e600c 100644 --- a/compiler_tester/src/compilers/llvm.rs +++ b/compiler_tester/src/compilers/llvm.rs @@ -9,7 +9,7 @@ use sha3::Digest; use super::mode::llvm::Mode as LLVMMode; use super::mode::Mode; -use super::output::build::Build as zkEVMContractBuild; +use super::output::build::Build as EraVMContractBuild; use super::output::Output; use super::Compiler; @@ -46,7 +46,7 @@ impl LLVMCompiler { name: &str, mode: &LLVMMode, debug_config: Option, - ) -> anyhow::Result { + ) -> anyhow::Result { let llvm = inkwell::context::Context::create(); let memory_buffer = inkwell::memory_buffer::MemoryBuffer::create_from_memory_range_copy( source_code.as_bytes(), @@ -58,19 +58,14 @@ impl LLVMCompiler { let optimizer = compiler_llvm_context::Optimizer::new(mode.llvm_optimizer_settings.clone()); let source_hash = sha3::Keccak256::digest(source_code.as_bytes()).into(); - let context = compiler_llvm_context::Context::::new( - &llvm, - module, - optimizer, - None, - true, - debug_config, - ); + let context = compiler_llvm_context::EraVMContext::< + compiler_llvm_context::EraVMDummyDependency, + >::new(&llvm, module, optimizer, None, true, debug_config); let build = context.build(name, Some(source_hash))?; let assembly = zkevm_assembly::Assembly::from_string(build.assembly_text, build.metadata_hash)?; - zkEVMContractBuild::new(assembly) + EraVMContractBuild::new(assembly) } } @@ -97,7 +92,7 @@ impl Compiler for LLVMCompiler { Self::compile_source(source, path, mode, debug_config.clone()) .map(|build| (path.to_owned(), build)) }) - .collect::>>()?; + .collect::>>()?; let last_contract = sources .last() diff --git a/compiler_tester/src/compilers/mod.rs b/compiler_tester/src/compilers/mod.rs index 20fdd7dd..a8dbc19d 100644 --- a/compiler_tester/src/compilers/mod.rs +++ b/compiler_tester/src/compilers/mod.rs @@ -4,13 +4,13 @@ pub mod cache; pub mod downloader; +pub mod eravm; pub mod llvm; pub mod mode; pub mod output; pub mod solidity; pub mod vyper; pub mod yul; -pub mod zkevm; use std::collections::BTreeMap; diff --git a/compiler_tester/src/compilers/mode/zkevm.rs b/compiler_tester/src/compilers/mode/eravm.rs similarity index 74% rename from compiler_tester/src/compilers/mode/zkevm.rs rename to compiler_tester/src/compilers/mode/eravm.rs index 1773b918..050c1f41 100644 --- a/compiler_tester/src/compilers/mode/zkevm.rs +++ b/compiler_tester/src/compilers/mode/eravm.rs @@ -1,9 +1,9 @@ //! -//! The compiler tester zkEVM mode. +//! The compiler tester EraVM mode. //! /// -/// The compiler tester zkEVM mode. +/// The compiler tester EraVM mode. /// #[derive(Debug, Default, Clone)] pub struct Mode {} diff --git a/compiler_tester/src/compilers/mode/mod.rs b/compiler_tester/src/compilers/mode/mod.rs index 31b90ce2..25a60ee4 100644 --- a/compiler_tester/src/compilers/mode/mod.rs +++ b/compiler_tester/src/compilers/mode/mod.rs @@ -2,17 +2,17 @@ //! The compiler mode. //! +pub mod eravm; pub mod llvm; pub mod solidity; pub mod vyper; pub mod yul; -pub mod zkevm; +use self::eravm::Mode as EraVMMode; use self::llvm::Mode as LLVMMode; use self::solidity::Mode as SolidityMode; use self::vyper::Mode as VyperMode; use self::yul::Mode as YulMode; -use self::zkevm::Mode as zkEVMMode; /// /// The compiler mode. @@ -27,8 +27,8 @@ pub enum Mode { Solidity(SolidityMode), /// The `LLVM` mode. LLVM(LLVMMode), - /// The `zkEVM` mode. - zkEVM(zkEVMMode), + /// The `EraVM` mode. + EraVM(EraVMMode), /// The `Vyper` mode. Vyper(VyperMode), } @@ -106,6 +106,19 @@ impl Mode { } } + /// + /// Returns the LLVM optimizer settings. + /// + pub fn llvm_optimizer_settings(&self) -> Option<&compiler_llvm_context::OptimizerSettings> { + match self { + Mode::Solidity(mode) => Some(&mode.llvm_optimizer_settings), + Mode::Yul(mode) => Some(&mode.llvm_optimizer_settings), + Mode::Vyper(mode) => Some(&mode.llvm_optimizer_settings), + Mode::LLVM(mode) => Some(&mode.llvm_optimizer_settings), + Mode::EraVM(_mode) => None, + } + } + /// /// Normalizes the mode according to the filter. /// @@ -153,6 +166,25 @@ impl Mode { .replace_all(current.as_str(), "B*") .to_string(); } + + if filter.starts_with('^') { + match self { + Self::Solidity(_) | Self::Vyper(_) => { + current = regex::Regex::new("[+]") + .expect("Always valid") + .replace_all(current.as_str(), "^") + .to_string(); + } + Self::Yul(_) | Self::LLVM(_) => { + current = regex::Regex::new(".*M") + .expect("Always valid") + .replace_all(current.as_str(), "^M") + .to_string(); + } + Self::EraVM(_) => {} + } + } + current } } @@ -175,9 +207,9 @@ impl From for Mode { } } -impl From for Mode { - fn from(inner: zkEVMMode) -> Self { - Self::zkEVM(inner) +impl From for Mode { + fn from(inner: EraVMMode) -> Self { + Self::EraVM(inner) } } @@ -193,7 +225,7 @@ impl std::fmt::Display for Mode { Self::Yul(inner) => write!(f, "{inner}"), Self::Solidity(inner) => write!(f, "{inner}"), Self::LLVM(inner) => write!(f, "{inner}"), - Self::zkEVM(inner) => write!(f, "{inner}"), + Self::EraVM(inner) => write!(f, "{inner}"), Self::Vyper(inner) => write!(f, "{inner}"), } } diff --git a/compiler_tester/src/compilers/output/build.rs b/compiler_tester/src/compilers/output/build.rs index 0abcd5c3..b82ea244 100644 --- a/compiler_tester/src/compilers/output/build.rs +++ b/compiler_tester/src/compilers/output/build.rs @@ -1,5 +1,5 @@ //! -//! The zkEVM contract build. +//! The EraVM contract build. //! use std::str::FromStr; @@ -8,7 +8,7 @@ use serde::Deserialize; use serde::Serialize; /// -/// The zkEVM contract build. +/// The EraVM contract build. /// #[derive(Debug, Clone)] pub struct Build { diff --git a/compiler_tester/src/compilers/solidity/mod.rs b/compiler_tester/src/compilers/solidity/mod.rs index 1cc15139..21ee521b 100644 --- a/compiler_tester/src/compilers/solidity/mod.rs +++ b/compiler_tester/src/compilers/solidity/mod.rs @@ -13,7 +13,7 @@ use itertools::Itertools; use super::cache::Cache; use super::mode::solidity::Mode as SolidityMode; use super::mode::Mode; -use super::output::build::Build as zkEVMContractBuild; +use super::output::build::Build as EraVMContractBuild; use super::output::Output; use super::Compiler; @@ -173,10 +173,12 @@ impl SolidityCompiler { let solc_input = compiler_solidity::SolcStandardJsonInput::try_from_sources( sources.iter().cloned().collect(), libraries.clone(), + None, output_selection, optimizer, None, mode.via_ir, + None, ) .map_err(|error| anyhow::anyhow!("Failed to build solc input standard json: {}", error))?; @@ -233,7 +235,7 @@ impl SolidityCompiler { mode: &SolidityMode, is_system_mode: bool, debug_config: Option, - ) -> anyhow::Result> { + ) -> anyhow::Result> { let project = solc_output.try_to_project( sources.into_iter().collect::>(), libraries, @@ -270,16 +272,16 @@ impl SolidityCompiler { let assembly = zkevm_assembly::Assembly::from_string(evm.assembly_text?, None) .expect("Always valid"); - Some(( - name, - zkEVMContractBuild::new_with_hash( - assembly, - contract.hash.expect("Always exists"), - ) - .expect("Always valid"), - )) + let build = match contract.hash { + Some(bytecode_hash) => { + EraVMContractBuild::new_with_hash(assembly, bytecode_hash) + .expect("Always valid") + } + None => EraVMContractBuild::new(assembly).expect("Always valid"), + }; + Some((name, build)) }) - .collect::>() + .collect::>() }) .collect()) } diff --git a/compiler_tester/src/compilers/vyper/mod.rs b/compiler_tester/src/compilers/vyper/mod.rs index 4b998672..42e0bc6f 100644 --- a/compiler_tester/src/compilers/vyper/mod.rs +++ b/compiler_tester/src/compilers/vyper/mod.rs @@ -15,7 +15,7 @@ use itertools::Itertools; use super::cache::Cache; use super::mode::vyper::Mode as VyperMode; use super::mode::Mode; -use super::output::build::Build as zkEVMContractBuild; +use super::output::build::Build as EraVMContractBuild; use super::output::Output; use super::Compiler; @@ -151,11 +151,12 @@ impl VyperCompiler { project: compiler_vyper::Project, mode: &VyperMode, debug_config: Option, - ) -> anyhow::Result> { + ) -> anyhow::Result> { let build = project.compile( mode.llvm_optimizer_settings.to_owned(), true, zkevm_assembly::get_encoding_mode(), + vec![], debug_config, )?; build @@ -169,7 +170,7 @@ impl VyperCompiler { .expect("Always valid"); Ok(( path, - zkEVMContractBuild::new_with_hash(assembly, contract.build.bytecode_hash)?, + EraVMContractBuild::new_with_hash(assembly, contract.build.bytecode_hash)?, )) }) .collect() diff --git a/compiler_tester/src/compilers/yul.rs b/compiler_tester/src/compilers/yul.rs index 108b5a25..bfb8d6d0 100644 --- a/compiler_tester/src/compilers/yul.rs +++ b/compiler_tester/src/compilers/yul.rs @@ -8,7 +8,7 @@ use std::path::PathBuf; use super::mode::yul::Mode as YulMode; use super::mode::Mode; -use super::output::build::Build as zkEVMContractBuild; +use super::output::build::Build as EraVMContractBuild; use super::output::Output; use super::solidity::SolidityCompiler; use super::Compiler; @@ -59,9 +59,7 @@ impl Compiler for YulCompiler { let solc_validator = if is_system_mode { None } else { - Some(SolidityCompiler::get_solc_by_version( - &compiler_solidity::SolcCompiler::LAST_SUPPORTED_VERSION, - )) + Some(SolidityCompiler::get_system_contract_solc()) }; let builds = sources @@ -93,10 +91,10 @@ impl Compiler for YulCompiler { .expect("Always valid"); let build = - zkEVMContractBuild::new_with_hash(assembly, contract.build.bytecode_hash)?; + EraVMContractBuild::new_with_hash(assembly, contract.build.bytecode_hash)?; Ok((path.to_owned(), build)) }) - .collect::>>()?; + .collect::>>()?; let last_contract = sources .last() diff --git a/compiler_tester/src/deployers/mod.rs b/compiler_tester/src/deployers/mod.rs index 061d43ea..f03ba557 100644 --- a/compiler_tester/src/deployers/mod.rs +++ b/compiler_tester/src/deployers/mod.rs @@ -6,8 +6,8 @@ pub mod address_predictor; pub mod native_deployer; pub mod system_contract_deployer; -use crate::zkevm::execution_result::ExecutionResult; -use crate::zkevm::zkEVM; +use crate::eravm::execution_result::ExecutionResult; +use crate::eravm::EraVM; /// /// The deployer trait. @@ -28,6 +28,6 @@ pub trait Deployer { bytecode_hash: web3::types::U256, constructor_calldata: Vec, value: Option, - vm: &mut zkEVM, + vm: &mut EraVM, ) -> anyhow::Result; } diff --git a/compiler_tester/src/deployers/native_deployer.rs b/compiler_tester/src/deployers/native_deployer.rs index c3b9766a..e0113728 100644 --- a/compiler_tester/src/deployers/native_deployer.rs +++ b/compiler_tester/src/deployers/native_deployer.rs @@ -6,10 +6,10 @@ use std::collections::HashMap; use web3::contract::tokens::Tokenizable; +use crate::eravm::execution_result::ExecutionResult; +use crate::eravm::EraVM; use crate::test::case::input::output::Output; use crate::test::case::input::value::Value; -use crate::zkevm::execution_result::ExecutionResult; -use crate::zkevm::zkEVM; use super::address_predictor::AddressPredictor; use super::Deployer; @@ -42,7 +42,7 @@ impl Deployer for NativeDeployer { bytecode_hash: web3::types::U256, constructor_calldata: Vec, value: Option, - vm: &mut zkEVM, + vm: &mut EraVM, ) -> anyhow::Result { let address = self.address_predictor.advance_next_address(&caller); @@ -95,7 +95,7 @@ impl NativeDeployer { fn set_immutables( address: web3::types::Address, encoded_data: &[Value], - vm: &mut zkEVM, + vm: &mut EraVM, ) -> anyhow::Result<()> { let return_data = encoded_data .iter() diff --git a/compiler_tester/src/deployers/system_contract_deployer.rs b/compiler_tester/src/deployers/system_contract_deployer.rs index b912835c..0cc22f7d 100644 --- a/compiler_tester/src/deployers/system_contract_deployer.rs +++ b/compiler_tester/src/deployers/system_contract_deployer.rs @@ -2,8 +2,8 @@ //! The system contract deployer implementation. //! -use crate::zkevm::execution_result::ExecutionResult; -use crate::zkevm::zkEVM; +use crate::eravm::execution_result::ExecutionResult; +use crate::eravm::EraVM; use super::Deployer; @@ -30,7 +30,7 @@ impl Deployer for SystemContractDeployer { bytecode_hash: web3::types::U256, constructor_calldata: Vec, value: Option, - vm: &mut zkEVM, + vm: &mut EraVM, ) -> anyhow::Result { let context_u128_value; let vm_launch_option; @@ -53,7 +53,7 @@ impl Deployer for SystemContractDeployer { zkevm_opcode_defs::ADDRESS_CONTRACT_DEPLOYER, )); r5 = Some(web3::types::U256::from(u8::from( - compiler_llvm_context::SYSTEM_CALL_BIT, + compiler_llvm_context::eravm_const::SYSTEM_CALL_BIT, ))); entry_address = web3::types::Address::from_low_u64_be( diff --git a/compiler_tester/src/zkevm/execution_result.rs b/compiler_tester/src/eravm/execution_result.rs similarity index 93% rename from compiler_tester/src/zkevm/execution_result.rs rename to compiler_tester/src/eravm/execution_result.rs index 7e93baa4..2b05e9df 100644 --- a/compiler_tester/src/zkevm/execution_result.rs +++ b/compiler_tester/src/eravm/execution_result.rs @@ -1,11 +1,11 @@ //! -//! The zkEVM execution result. +//! The EraVM execution result. //! use crate::test::case::input::output::Output; /// -/// The zkEVM execution result. +/// The EraVM execution result. /// #[derive(Debug, Clone)] pub struct ExecutionResult { diff --git a/compiler_tester/src/zkevm/mod.rs b/compiler_tester/src/eravm/mod.rs similarity index 97% rename from compiler_tester/src/zkevm/mod.rs rename to compiler_tester/src/eravm/mod.rs index a11673e6..177624c4 100644 --- a/compiler_tester/src/zkevm/mod.rs +++ b/compiler_tester/src/eravm/mod.rs @@ -1,5 +1,5 @@ //! -//! The zkEVM wrapper. +//! The EraVM wrapper. //! pub mod execution_result; @@ -18,11 +18,11 @@ use self::system_context::SystemContext; use self::system_contracts::SystemContracts; /// -/// The zkEVM wrapper. +/// The EraVM wrapper. /// #[derive(Clone)] #[allow(non_camel_case_types)] -pub struct zkEVM { +pub struct EraVM { /// The storage state. storage: HashMap, /// The deployed contracts. @@ -33,9 +33,9 @@ pub struct zkEVM { known_contracts: HashMap, } -impl zkEVM { +impl EraVM { /// - /// Creates and initializes new zkEVM instance. + /// Creates and initializes new EraVM instance. /// pub fn initialize( system_contracts_solc_downloader_config: DownloaderConfig, @@ -49,7 +49,7 @@ impl zkEVM { .next() .ok_or_else(|| { anyhow::anyhow!( - "zkEVM initializer could find the `solc` version for system contracts" + "EraVM initializer could find the `solc` version for system contracts" ) })?; let solc_version = semver::Version::parse(solc_version.as_str())?; @@ -133,7 +133,7 @@ impl zkEVM { let r3 = Some(web3::types::U256::from(value)); let r4 = Some(web3::types::U256::from_big_endian(entry_address.as_bytes())); let r5 = Some(web3::types::U256::from(u8::from( - compiler_llvm_context::SYSTEM_CALL_BIT, + compiler_llvm_context::eravm_const::SYSTEM_CALL_BIT, ))); entry_address = web3::types::Address::from_low_u64_be( @@ -394,7 +394,7 @@ impl zkEVM { key_preimage.extend_from_slice(address.as_bytes()); key_preimage.extend(vec![0u8; compiler_common::BYTE_LENGTH_FIELD]); - let key_string = compiler_llvm_context::keccak256(key_preimage.as_slice()); + let key_string = compiler_llvm_context::eravm_utils::keccak256(key_preimage.as_slice()); let key = web3::types::U256::from_str(key_string.as_str()).expect("Always valid"); zkevm_tester::runners::compiler_tests::StorageKey { address: web3::types::Address::from_low_u64_be( diff --git a/compiler_tester/src/zkevm/system_context.rs b/compiler_tester/src/eravm/system_context.rs similarity index 90% rename from compiler_tester/src/zkevm/system_context.rs rename to compiler_tester/src/eravm/system_context.rs index b0434cfb..18b90b9a 100644 --- a/compiler_tester/src/zkevm/system_context.rs +++ b/compiler_tester/src/eravm/system_context.rs @@ -33,12 +33,15 @@ impl SystemContext { /// The system context base fee value position in the storage. const SYSTEM_CONTEXT_BASE_FEE_POSITION: u64 = 6; - /// The system context current block info value position in the storage. - const SYSTEM_CONTEXT_BLOCK_INFO_POSITION: u64 = 7; - /// The system context block hashes mapping position in the storage. const SYSTEM_CONTEXT_BLOCK_HASH_POSITION: u64 = 8; + /// The system context current virtual l2 block info value position in the storage. + const SYSTEM_CONTEXT_VIRTUAL_L2_BLOCK_INFO_POSITION: u64 = 268; + + /// The system context virtual blocks upgrade info position in the storage. + const SYSTEM_CONTEXT_VIRTUAL_BLOCK_UPGRADE_INFO_POSITION: u64 = 269; + /// The zkSync chain ID. const CHAIND_ID: u64 = 280; @@ -106,6 +109,12 @@ impl SystemContext { web3::types::H256::from_low_u64_be(Self::SYSTEM_CONTEXT_BASE_FEE_POSITION), web3::types::H256::from_low_u64_be(Self::BASE_FEE), ), + ( + web3::types::H256::from_low_u64_be( + Self::SYSTEM_CONTEXT_VIRTUAL_BLOCK_UPGRADE_INFO_POSITION, + ), + web3::types::H256::from_low_u64_be(Self::CURRENT_BLOCK_NUMBER as u64), + ), ]; let block_info_bytes = [ @@ -115,7 +124,7 @@ impl SystemContext { .concat(); system_context_values.push(( - web3::types::H256::from_low_u64_be(Self::SYSTEM_CONTEXT_BLOCK_INFO_POSITION), + web3::types::H256::from_low_u64_be(Self::SYSTEM_CONTEXT_VIRTUAL_L2_BLOCK_INFO_POSITION), web3::types::H256::from_slice(block_info_bytes.as_slice()), )); diff --git a/compiler_tester/src/zkevm/system_contracts.rs b/compiler_tester/src/eravm/system_contracts.rs similarity index 98% rename from compiler_tester/src/zkevm/system_contracts.rs rename to compiler_tester/src/eravm/system_contracts.rs index 43bed1d2..4c8418b5 100644 --- a/compiler_tester/src/zkevm/system_contracts.rs +++ b/compiler_tester/src/eravm/system_contracts.rs @@ -16,7 +16,7 @@ use serde::Serialize; use crate::compilers::mode::solidity::Mode as SolidityMode; use crate::compilers::mode::yul::Mode as YulMode; use crate::compilers::mode::Mode; -use crate::compilers::output::build::Build as zkEVMContractBuild; +use crate::compilers::output::build::Build as EraVMContractBuild; use crate::compilers::solidity::SolidityCompiler; use crate::compilers::yul::YulCompiler; use crate::compilers::Compiler; @@ -27,9 +27,9 @@ use crate::compilers::Compiler; #[derive(Serialize, Deserialize)] pub struct SystemContracts { /// The deployed system contracts builds. - pub deployed_contracts: Vec<(web3::types::Address, zkEVMContractBuild)>, + pub deployed_contracts: Vec<(web3::types::Address, EraVMContractBuild)>, /// The default account abstraction contract build. - pub default_aa: zkEVMContractBuild, + pub default_aa: EraVMContractBuild, } impl SystemContracts { @@ -306,7 +306,7 @@ impl SystemContracts { mode: &Mode, paths: Vec, debug_config: Option, - ) -> anyhow::Result> + ) -> anyhow::Result> where C: Compiler, { diff --git a/compiler_tester/src/lib.rs b/compiler_tester/src/lib.rs index 6bedf6c5..5b4406ae 100644 --- a/compiler_tester/src/lib.rs +++ b/compiler_tester/src/lib.rs @@ -5,12 +5,12 @@ pub(crate) mod compilers; pub(crate) mod deployers; pub(crate) mod directories; +pub(crate) mod eravm; pub(crate) mod filters; pub(crate) mod llvm_options; pub(crate) mod summary; pub(crate) mod test; pub(crate) mod utils; -pub(crate) mod zkevm; pub use self::deployers::native_deployer::NativeDeployer; pub use self::deployers::system_contract_deployer::SystemContractDeployer; @@ -31,19 +31,19 @@ use rayon::iter::IntoParallelIterator; use rayon::iter::ParallelIterator; use crate::compilers::downloader::Downloader as CompilerDownloader; +use crate::compilers::eravm::EraVMCompiler; use crate::compilers::llvm::LLVMCompiler; use crate::compilers::mode::Mode; use crate::compilers::solidity::SolidityCompiler; use crate::compilers::vyper::VyperCompiler; use crate::compilers::yul::YulCompiler; -use crate::compilers::zkevm::zkEVMCompiler; use crate::compilers::Compiler; use crate::deployers::Deployer; use crate::directories::ethereum::EthereumDirectory; use crate::directories::matter_labs::MatterLabsDirectory; use crate::directories::Buildable; use crate::directories::TestsDirectory; -use crate::zkevm::zkEVM; +use crate::eravm::EraVM; /// The debug directory path. pub const DEBUG_DIRECTORY: &str = "./debug/"; @@ -66,8 +66,8 @@ pub struct CompilerTester { filters: Filters, /// The debug config. debug_config: Option, - /// The initial zkEVM. - initial_vm: Arc, + /// The initial EraVM. + initial_vm: Arc, } impl CompilerTester { @@ -91,8 +91,8 @@ impl CompilerTester { /// The LLVM simple tests directory. const LLVM_SIMPLE: &'static str = "tests/llvm"; - /// The zkEVM simple tests directory. - const ZKEVM_SIMPLE: &'static str = "tests/zkevm"; + /// The EraVM simple tests directory. + const ERAVM_SIMPLE: &'static str = "tests/zkevm"; } impl CompilerTester { @@ -132,7 +132,7 @@ impl CompilerTester { download_time_start.elapsed().as_secs() % 60, ); - let initial_vm = Arc::new(zkEVM::initialize( + let initial_vm = Arc::new(EraVM::initialize( system_contracts_solc_downloader_config, system_contracts_debug_config, system_contracts_path, @@ -160,7 +160,7 @@ impl CompilerTester { let vyper_compiler = Arc::new(VyperCompiler::new()); let yul_compiler = Arc::new(YulCompiler::new()); let llvm_compiler = Arc::new(LLVMCompiler::new()); - let zkevm_compiler = Arc::new(zkEVMCompiler::new()); + let eravm_compiler = Arc::new(EraVMCompiler::new()); let mut tests = Vec::new(); tests.extend(self.directory::( @@ -184,9 +184,9 @@ impl CompilerTester { llvm_compiler, )?); tests.extend(self.directory::( - Self::ZKEVM_SIMPLE, - compiler_common::EXTENSION_ZKEVM_ASSEMBLY, - zkevm_compiler, + Self::ERAVM_SIMPLE, + compiler_common::EXTENSION_ERAVM_ASSEMBLY, + eravm_compiler, )?); tests.extend(self.directory::( diff --git a/compiler_tester/src/summary/mod.rs b/compiler_tester/src/summary/mod.rs index 304557af..3d8de15f 100644 --- a/compiler_tester/src/summary/mod.rs +++ b/compiler_tester/src/summary/mod.rs @@ -78,9 +78,22 @@ impl Summary { pub fn benchmark(&self) -> benchmark_analyzer::Benchmark { let mut benchmark = benchmark_analyzer::Benchmark::default(); benchmark.groups.insert( - benchmark_analyzer::BENCHMARK_ALL_GROUP_NAME.to_string(), + format!( + "{} {}", + benchmark_analyzer::BENCHMARK_ALL_GROUP_NAME, + compiler_llvm_context::OptimizerSettings::cycles(), + ), benchmark_analyzer::BenchmarkGroup::default(), ); + benchmark.groups.insert( + format!( + "{} {}", + benchmark_analyzer::BENCHMARK_ALL_GROUP_NAME, + compiler_llvm_context::OptimizerSettings::size(), + ), + benchmark_analyzer::BenchmarkGroup::default(), + ); + for element in self.elements.iter() { let (size, cycles, ergs, group) = match &element.outcome { Outcome::Passed { @@ -93,6 +106,7 @@ impl Summary { } => (None, *cycles, *ergs, group.clone()), _ => continue, }; + let key = format!( "{:24} {}", element @@ -102,18 +116,27 @@ impl Summary { .unwrap_or_default(), element.name ); + let mode = element + .mode + .as_ref() + .and_then(|mode| mode.llvm_optimizer_settings().cloned()) + .unwrap_or(compiler_llvm_context::OptimizerSettings::none()); + let benchmark_element = benchmark_analyzer::BenchmarkElement::new(size, cycles, ergs); if let Some(group) = group { benchmark .groups - .entry(group) + .entry(format!("{} {}", group, mode)) .or_default() .elements .insert(key.clone(), benchmark_element.clone()); } + benchmark .groups - .get_mut(benchmark_analyzer::BENCHMARK_ALL_GROUP_NAME) + .get_mut( + format!("{} {}", benchmark_analyzer::BENCHMARK_ALL_GROUP_NAME, mode).as_str(), + ) .expect("Always exists") .elements .insert(key, benchmark_element); diff --git a/compiler_tester/src/test/case/input/balance.rs b/compiler_tester/src/test/case/input/balance.rs index 1335a0f5..b5b2d5e9 100644 --- a/compiler_tester/src/test/case/input/balance.rs +++ b/compiler_tester/src/test/case/input/balance.rs @@ -6,7 +6,7 @@ use std::sync::Arc; use std::sync::Mutex; use crate::compilers::mode::Mode; -use crate::zkevm::zkEVM; +use crate::eravm::EraVM; use crate::Summary; /// @@ -36,7 +36,7 @@ impl Balance { pub fn run( self, summary: Arc>, - vm: &zkEVM, + vm: &EraVM, mode: Mode, test_group: Option, name_prefix: String, diff --git a/compiler_tester/src/test/case/input/deploy.rs b/compiler_tester/src/test/case/input/deploy.rs index b92d5810..63bb6d50 100644 --- a/compiler_tester/src/test/case/input/deploy.rs +++ b/compiler_tester/src/test/case/input/deploy.rs @@ -7,7 +7,7 @@ use std::sync::Mutex; use crate::compilers::mode::Mode; use crate::deployers::Deployer; -use crate::zkevm::zkEVM; +use crate::eravm::EraVM; use crate::Summary; use super::calldata::Calldata; @@ -67,7 +67,7 @@ impl Deploy { pub fn run( self, summary: Arc>, - vm: &mut zkEVM, + vm: &mut EraVM, mode: Mode, deployer: &mut D, test_group: Option, diff --git a/compiler_tester/src/test/case/input/mod.rs b/compiler_tester/src/test/case/input/mod.rs index cf47ea54..812bfbe8 100644 --- a/compiler_tester/src/test/case/input/mod.rs +++ b/compiler_tester/src/test/case/input/mod.rs @@ -20,9 +20,9 @@ use std::sync::Mutex; use crate::compilers::mode::Mode; use crate::deployers::Deployer; use crate::directories::matter_labs::test::metadata::case::input::Input as MatterLabsTestInput; +use crate::eravm::EraVM; use crate::summary::Summary; use crate::test::instance::Instance; -use crate::zkevm::zkEVM; use self::balance::Balance; use self::calldata::Calldata; @@ -302,7 +302,7 @@ impl Input { pub fn run( self, summary: Arc>, - vm: &mut zkEVM, + vm: &mut EraVM, mode: Mode, deployer: &mut D, test_group: Option, diff --git a/compiler_tester/src/test/case/input/runtime.rs b/compiler_tester/src/test/case/input/runtime.rs index ea6df1bc..c0069c1e 100644 --- a/compiler_tester/src/test/case/input/runtime.rs +++ b/compiler_tester/src/test/case/input/runtime.rs @@ -6,7 +6,7 @@ use std::sync::Arc; use std::sync::Mutex; use crate::compilers::mode::Mode; -use crate::zkevm::zkEVM; +use crate::eravm::EraVM; use crate::Summary; use super::calldata::Calldata; @@ -66,7 +66,7 @@ impl Runtime { pub fn run( self, summary: Arc>, - vm: &mut zkEVM, + vm: &mut EraVM, mode: Mode, test_group: Option, name_prefix: String, diff --git a/compiler_tester/src/test/case/input/storage_empty.rs b/compiler_tester/src/test/case/input/storage_empty.rs index 998df8b8..691e4b53 100644 --- a/compiler_tester/src/test/case/input/storage_empty.rs +++ b/compiler_tester/src/test/case/input/storage_empty.rs @@ -6,7 +6,7 @@ use std::sync::Arc; use std::sync::Mutex; use crate::compilers::mode::Mode; -use crate::zkevm::zkEVM; +use crate::eravm::EraVM; use crate::Summary; /// @@ -34,7 +34,7 @@ impl StorageEmpty { pub fn run( self, summary: Arc>, - vm: &zkEVM, + vm: &EraVM, mode: Mode, test_group: Option, name_prefix: String, diff --git a/compiler_tester/src/test/case/mod.rs b/compiler_tester/src/test/case/mod.rs index 19830877..4b85a0f4 100644 --- a/compiler_tester/src/test/case/mod.rs +++ b/compiler_tester/src/test/case/mod.rs @@ -12,9 +12,9 @@ use std::sync::Mutex; use crate::compilers::mode::Mode; use crate::deployers::Deployer; use crate::directories::matter_labs::test::metadata::case::Case as MatterLabsTestCase; +use crate::eravm::EraVM; use crate::summary::Summary; use crate::test::instance::Instance; -use crate::zkevm::zkEVM; use self::input::Input; @@ -106,7 +106,7 @@ impl Case { pub fn run( self, summary: Arc>, - initial_vm: zkEVM, + initial_vm: EraVM, mode: &Mode, test_name: String, test_group: Option, diff --git a/compiler_tester/src/test/mod.rs b/compiler_tester/src/test/mod.rs index 3573ab63..1e6525dd 100644 --- a/compiler_tester/src/test/mod.rs +++ b/compiler_tester/src/test/mod.rs @@ -11,7 +11,7 @@ use std::sync::Mutex; use crate::compilers::mode::Mode; use crate::deployers::Deployer; -use crate::zkevm::zkEVM; +use crate::eravm::EraVM; use crate::Summary; use self::case::Case; @@ -55,12 +55,12 @@ impl Test { /// /// Run the test. /// - pub fn run(self, summary: Arc>, initial_vm: Arc) + pub fn run(self, summary: Arc>, initial_vm: Arc) where D: Deployer, { for case in self.cases { - let vm = zkEVM::clone_with_contracts(initial_vm.clone(), self.builds.clone()); + let vm = EraVM::clone_with_contracts(initial_vm.clone(), self.builds.clone()); case.run::( summary.clone(), vm, diff --git a/configs/solc-bin-default.json b/configs/solc-bin-default.json index 1e1a183d..75e9a557 100644 --- a/configs/solc-bin-default.json +++ b/configs/solc-bin-default.json @@ -439,10 +439,28 @@ "destination": "./solc-bin/solc-0.8.19" }, "0.8.20": { - "is_enabled": true, + "is_enabled": false, "protocol": "solc-bin-list", "source": "https://raw.githubusercontent.com/ethereum/solc-bin/gh-pages/${PLATFORM}/list.json", "destination": "./solc-bin/solc-0.8.20" + }, + "0.8.21": { + "is_enabled": false, + "protocol": "solc-bin-list", + "source": "https://raw.githubusercontent.com/ethereum/solc-bin/gh-pages/${PLATFORM}/list.json", + "destination": "./solc-bin/solc-0.8.21" + }, + "0.8.22": { + "is_enabled": false, + "protocol": "solc-bin-list", + "source": "https://raw.githubusercontent.com/ethereum/solc-bin/gh-pages/${PLATFORM}/list.json", + "destination": "./solc-bin/solc-0.8.22" + }, + "0.8.23": { + "is_enabled": true, + "protocol": "solc-bin-list", + "source": "https://raw.githubusercontent.com/ethereum/solc-bin/gh-pages/${PLATFORM}/list.json", + "destination": "./solc-bin/solc-0.8.23" } }, "platforms": { diff --git a/configs/solc-bin-zkevm-candidate-0.8.21.json b/configs/solc-bin-zkevm-candidate-0.8.21.json new file mode 100644 index 00000000..186d0a5a --- /dev/null +++ b/configs/solc-bin-zkevm-candidate-0.8.21.json @@ -0,0 +1,14 @@ +{ + "binaries": { + "0.8.21": { + "is_enabled": true, + "protocol": "file", + "source": "./solc-bin/solc-0.8.21", + "destination": "./solc-bin/solc-0.8.21" + } + }, + "platforms": { + "linux": "linux-amd64", + "macos": "macosx-amd64" + } +} diff --git a/configs/solc-bin-zkevm-candidate-0.8.22.json b/configs/solc-bin-zkevm-candidate-0.8.22.json new file mode 100644 index 00000000..fb3375d7 --- /dev/null +++ b/configs/solc-bin-zkevm-candidate-0.8.22.json @@ -0,0 +1,14 @@ +{ + "binaries": { + "0.8.22": { + "is_enabled": true, + "protocol": "file", + "source": "./solc-bin/solc-0.8.22", + "destination": "./solc-bin/solc-0.8.22" + } + }, + "platforms": { + "linux": "linux-amd64", + "macos": "macosx-amd64" + } +} diff --git a/configs/solc-bin-zkevm-candidate-0.8.23.json b/configs/solc-bin-zkevm-candidate-0.8.23.json new file mode 100644 index 00000000..cc615bd4 --- /dev/null +++ b/configs/solc-bin-zkevm-candidate-0.8.23.json @@ -0,0 +1,14 @@ +{ + "binaries": { + "0.8.23": { + "is_enabled": true, + "protocol": "file", + "source": "./solc-bin/solc-0.8.23", + "destination": "./solc-bin/solc-0.8.23" + } + }, + "platforms": { + "linux": "linux-amd64", + "macos": "macosx-amd64" + } +} diff --git a/configs/solc-bin-zkevm-reference-0.8.21.json b/configs/solc-bin-zkevm-reference-0.8.21.json new file mode 100644 index 00000000..05565fe8 --- /dev/null +++ b/configs/solc-bin-zkevm-reference-0.8.21.json @@ -0,0 +1,14 @@ +{ + "binaries": { + "0.8.21": { + "is_enabled": true, + "protocol": "solc-bin-list", + "source": "https://raw.githubusercontent.com/ethereum/solc-bin/gh-pages/${PLATFORM}/list.json", + "destination": "./solc-bin/solc-0.8.21" + } + }, + "platforms": { + "linux": "linux-amd64", + "macos": "macosx-amd64" + } +} diff --git a/configs/solc-bin-zkevm-reference-0.8.22.json b/configs/solc-bin-zkevm-reference-0.8.22.json new file mode 100644 index 00000000..4aabf118 --- /dev/null +++ b/configs/solc-bin-zkevm-reference-0.8.22.json @@ -0,0 +1,14 @@ +{ + "binaries": { + "0.8.22": { + "is_enabled": true, + "protocol": "solc-bin-list", + "source": "https://raw.githubusercontent.com/ethereum/solc-bin/gh-pages/${PLATFORM}/list.json", + "destination": "./solc-bin/solc-0.8.22" + } + }, + "platforms": { + "linux": "linux-amd64", + "macos": "macosx-amd64" + } +} diff --git a/configs/solc-bin-zkevm-reference-0.8.23.json b/configs/solc-bin-zkevm-reference-0.8.23.json new file mode 100644 index 00000000..ace07352 --- /dev/null +++ b/configs/solc-bin-zkevm-reference-0.8.23.json @@ -0,0 +1,14 @@ +{ + "binaries": { + "0.8.23": { + "is_enabled": true, + "protocol": "solc-bin-list", + "source": "https://raw.githubusercontent.com/ethereum/solc-bin/gh-pages/${PLATFORM}/list.json", + "destination": "./solc-bin/solc-0.8.23" + } + }, + "platforms": { + "linux": "linux-amd64", + "macos": "macosx-amd64" + } +} diff --git a/configs/vyper-bin-default.json b/configs/vyper-bin-default.json index 0c06381b..ecc03e0f 100644 --- a/configs/vyper-bin-default.json +++ b/configs/vyper-bin-default.json @@ -11,6 +11,12 @@ "protocol": "https", "source": "https://github.com/vyperlang/vyper/releases/download/v0.3.9/vyper.0.3.9+commit.66b96705.${PLATFORM}", "destination": "./vyper-bin/vyper-0.3.9" + }, + "0.3.10": { + "is_enabled": true, + "protocol": "https", + "source": "https://github.com/vyperlang/vyper/releases/download/v0.3.10/vyper.0.3.10+commit.91361694.${PLATFORM}", + "destination": "./vyper-bin/vyper-0.3.10" } }, "platforms": { diff --git a/coverage_watcher/Cargo.toml b/coverage_watcher/Cargo.toml index 5ac72f22..4be6266b 100644 --- a/coverage_watcher/Cargo.toml +++ b/coverage_watcher/Cargo.toml @@ -1,8 +1,8 @@ [package] name = "coverage-watcher" -version = "1.3.2" +version = "1.3.3" authors = [ - "Alex Zarudnyy ", + "Oleksandr Zarudnyi ", "Anton Dyadyuk ", ] license = "MIT OR Apache-2.0" diff --git a/solidity b/solidity index 4c4410e0..58811f13 160000 --- a/solidity +++ b/solidity @@ -1 +1 @@ -Subproject commit 4c4410e0c5ec0faf794b497086c9354c8c1d223a +Subproject commit 58811f134ac369b20c2ec1120907321edf08fff1 diff --git a/solidity_adapter/Cargo.toml b/solidity_adapter/Cargo.toml index 25481a3e..0849e5fd 100644 --- a/solidity_adapter/Cargo.toml +++ b/solidity_adapter/Cargo.toml @@ -1,8 +1,8 @@ [package] name = "solidity-adapter" -version = "1.3.2" +version = "1.3.3" authors = [ - "Alex Zarudnyy ", + "Oleksandr Zarudnyi ", "Anton Dyadyuk ", ] license = "MIT OR Apache-2.0" @@ -24,9 +24,12 @@ colored = "2.0" serde = { version = "1.0", features = [ "derive" ] } serde_yaml = "0.9" semver = { version = "1.0", features = [ "serde" ] } -regex = "1.9" +regex = "1.7" md5 = "0.7" -web3 = { version= "0.18.0", default-features = false, features = ["http-rustls-tls", "test", "signing"] } - compiler-common = { git = "https://github.com/matter-labs/era-compiler-common", branch = "main" } + +[dependencies.web3] +version = "0.19" +default-features = false +features = ["http-rustls-tls", "test", "signing"] diff --git a/solidity_adapter/src/test/params/evm_version.rs b/solidity_adapter/src/test/params/evm_version.rs index fc8f2940..fa058bc8 100644 --- a/solidity_adapter/src/test/params/evm_version.rs +++ b/solidity_adapter/src/test/params/evm_version.rs @@ -56,7 +56,7 @@ impl TryFrom<&str> for EVMVersion { type Error = anyhow::Error; fn try_from(value: &str) -> Result { - let regex = Regex::new(r#"^(=|>|<|>=|<=)(\w*)$"#).expect("Always valid"); + let regex = Regex::new(r"^(=|>|<|>=|<=)(\w*)$").expect("Always valid"); let captures = regex .captures(value) diff --git a/system-contracts b/system-contracts index ae905bd1..408dffdf 160000 --- a/system-contracts +++ b/system-contracts @@ -1 +1 @@ -Subproject commit ae905bd1f589dc702fc46830626cd607b1849c44 +Subproject commit 408dffdf089a81183daada55f6a5cacacc4cde1c diff --git a/tests b/tests index 818c539b..78314c55 160000 --- a/tests +++ b/tests @@ -1 +1 @@ -Subproject commit 818c539b1be36d479c7225b00447bb405be2800d +Subproject commit 78314c558db4c052412dfc93590bd45272e02283