From ff54cc74aa81974a2f24a304e776605552da7b10 Mon Sep 17 00:00:00 2001 From: jonathanpwang Date: Tue, 18 Feb 2025 22:37:42 +0000 Subject: [PATCH 01/10] Update openvm commits in dependencies --- Cargo.lock | 92 +++++++++++++++++++-------------------- Cargo.toml | 38 ++++++++-------- bin/client-eth/Cargo.lock | 34 +++++++-------- bin/client-eth/Cargo.toml | 20 ++++----- 4 files changed, 92 insertions(+), 92 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index de2d6f970..425109c6c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3057,7 +3057,7 @@ dependencies = [ [[package]] name = "openvm" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "bytemuck", "hex-literal", @@ -3071,7 +3071,7 @@ dependencies = [ [[package]] name = "openvm-algebra-circuit" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", @@ -3100,7 +3100,7 @@ dependencies = [ [[package]] name = "openvm-algebra-complex-macros" version = "0.1.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "openvm-macros-common", "quote", @@ -3110,7 +3110,7 @@ dependencies = [ [[package]] name = "openvm-algebra-guest" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "halo2curves-axiom 0.5.3", "num-bigint 0.4.6", @@ -3126,7 +3126,7 @@ dependencies = [ [[package]] name = "openvm-algebra-moduli-macros" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "openvm-macros-common", "quote", @@ -3136,7 +3136,7 @@ dependencies = [ [[package]] name = "openvm-algebra-transpiler" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "openvm-algebra-guest", "openvm-instructions", @@ -3151,7 +3151,7 @@ dependencies = [ [[package]] name = "openvm-benchmarks" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "bincode 2.0.0-rc.3", "clap", @@ -3194,7 +3194,7 @@ dependencies = [ [[package]] name = "openvm-bigint-circuit" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", @@ -3216,7 +3216,7 @@ dependencies = [ [[package]] name = "openvm-bigint-guest" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "num-bigint 0.4.6", "num-traits", @@ -3229,7 +3229,7 @@ dependencies = [ [[package]] name = "openvm-bigint-transpiler" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "openvm-bigint-guest", "openvm-instructions", @@ -3244,7 +3244,7 @@ dependencies = [ [[package]] name = "openvm-build" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "cargo_metadata", "dirs", @@ -3259,7 +3259,7 @@ dependencies = [ [[package]] name = "openvm-circuit" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "async-trait", "backtrace", @@ -3297,7 +3297,7 @@ dependencies = [ [[package]] name = "openvm-circuit-derive" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "itertools 0.13.0", "proc-macro2", @@ -3308,7 +3308,7 @@ dependencies = [ [[package]] name = "openvm-circuit-primitives" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "bitcode", "derive-new 0.6.0", @@ -3326,7 +3326,7 @@ dependencies = [ [[package]] name = "openvm-circuit-primitives-derive" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "itertools 0.13.0", "proc-macro2", @@ -3373,7 +3373,7 @@ dependencies = [ [[package]] name = "openvm-custom-insn" version = "0.1.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "proc-macro2", "quote", @@ -3383,7 +3383,7 @@ dependencies = [ [[package]] name = "openvm-ecc-circuit" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", @@ -3414,7 +3414,7 @@ dependencies = [ [[package]] name = "openvm-ecc-guest" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "ecdsa", "elliptic-curve", @@ -3440,7 +3440,7 @@ dependencies = [ [[package]] name = "openvm-ecc-sw-macros" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "openvm-macros-common", "quote", @@ -3450,7 +3450,7 @@ dependencies = [ [[package]] name = "openvm-ecc-transpiler" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "openvm-ecc-guest", "openvm-instructions", @@ -3500,7 +3500,7 @@ dependencies = [ [[package]] name = "openvm-instructions" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "backtrace", "derive-new 0.6.0", @@ -3517,7 +3517,7 @@ dependencies = [ [[package]] name = "openvm-instructions-derive" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "proc-macro2", "quote", @@ -3527,7 +3527,7 @@ dependencies = [ [[package]] name = "openvm-keccak256-circuit" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "bitcode", "derive-new 0.6.0", @@ -3556,7 +3556,7 @@ dependencies = [ [[package]] name = "openvm-keccak256-guest" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "openvm-platform", "serde", @@ -3566,7 +3566,7 @@ dependencies = [ [[package]] name = "openvm-keccak256-transpiler" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "openvm-instructions", "openvm-instructions-derive", @@ -3580,7 +3580,7 @@ dependencies = [ [[package]] name = "openvm-macros-common" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "syn 2.0.98", ] @@ -3588,7 +3588,7 @@ dependencies = [ [[package]] name = "openvm-mod-circuit-builder" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "itertools 0.13.0", "num-bigint 0.4.6", @@ -3634,7 +3634,7 @@ dependencies = [ [[package]] name = "openvm-native-circuit" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "bitcode", "derive-new 0.6.0", @@ -3662,7 +3662,7 @@ dependencies = [ [[package]] name = "openvm-native-compiler" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "backtrace", "itertools 0.13.0", @@ -3686,7 +3686,7 @@ dependencies = [ [[package]] name = "openvm-native-compiler-derive" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "proc-macro2", "quote", @@ -3696,7 +3696,7 @@ dependencies = [ [[package]] name = "openvm-native-recursion" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "cfg-if", "itertools 0.13.0", @@ -3723,7 +3723,7 @@ dependencies = [ [[package]] name = "openvm-pairing-circuit" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", @@ -3754,7 +3754,7 @@ dependencies = [ [[package]] name = "openvm-pairing-guest" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "group 0.13.0", "halo2curves-axiom 0.5.3", @@ -3779,7 +3779,7 @@ dependencies = [ [[package]] name = "openvm-pairing-transpiler" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "openvm-instructions", "openvm-instructions-derive", @@ -3793,7 +3793,7 @@ dependencies = [ [[package]] name = "openvm-platform" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "getrandom 0.2.15", "libm", @@ -3805,7 +3805,7 @@ dependencies = [ [[package]] name = "openvm-poseidon2-air" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "derivative", "itertools 0.13.0", @@ -3901,7 +3901,7 @@ dependencies = [ [[package]] name = "openvm-rv32-adapters" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "derive-new 0.6.0", "itertools 0.13.0", @@ -3922,7 +3922,7 @@ dependencies = [ [[package]] name = "openvm-rv32im-circuit" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "bitcode", "derive-new 0.6.0", @@ -3949,7 +3949,7 @@ dependencies = [ [[package]] name = "openvm-rv32im-guest" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "openvm-platform", "strum_macros", @@ -3958,7 +3958,7 @@ dependencies = [ [[package]] name = "openvm-rv32im-transpiler" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "openvm-instructions", "openvm-instructions-derive", @@ -3974,7 +3974,7 @@ dependencies = [ [[package]] name = "openvm-sdk" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "async-trait", "bitcode", @@ -4017,7 +4017,7 @@ dependencies = [ [[package]] name = "openvm-sha256-air" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "openvm-circuit-primitives", "openvm-stark-backend", @@ -4028,7 +4028,7 @@ dependencies = [ [[package]] name = "openvm-sha256-circuit" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "bitcode", "derive-new 0.6.0", @@ -4052,7 +4052,7 @@ dependencies = [ [[package]] name = "openvm-sha256-guest" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "openvm", "openvm-platform", @@ -4062,7 +4062,7 @@ dependencies = [ [[package]] name = "openvm-sha256-transpiler" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "openvm-instructions", "openvm-instructions-derive", @@ -4139,7 +4139,7 @@ dependencies = [ [[package]] name = "openvm-transpiler" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "derive_more 1.0.0", "elf", diff --git a/Cargo.toml b/Cargo.toml index 132533077..110789a6d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -78,25 +78,25 @@ alloy-trie = "0.5.0" # openvm openvm-stark-sdk = { git = "https://github.com/openvm-org/stark-backend.git", tag = "v1.0.0-rc.0", default-features = false } -openvm-build = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", default-features = false } -openvm = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", default-features = false } -openvm-transpiler = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", default-features = false } -openvm-circuit = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", default-features = false } -openvm-benchmarks = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", default-features = false } -openvm-keccak256-circuit = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", default-features = false } -openvm-keccak256-transpiler = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", default-features = false } -openvm-rv32im-circuit = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", default-features = false } -openvm-rv32im-transpiler = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", default-features = false } -openvm-bigint-circuit = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", default-features = false } -openvm-bigint-transpiler = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", default-features = false } -openvm-algebra-circuit = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", default-features = false } -openvm-algebra-transpiler = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", default-features = false } -openvm-ecc-circuit = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", default-features = false } -openvm-ecc-transpiler = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", default-features = false } -openvm-pairing-circuit = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", default-features = false } -openvm-sdk = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", default-features = false } -openvm-native-compiler = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", default-features = false } -openvm-native-recursion = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", default-features = false } +openvm-build = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", default-features = false } +openvm = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", default-features = false } +openvm-transpiler = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", default-features = false } +openvm-circuit = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", default-features = false } +openvm-benchmarks = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", default-features = false } +openvm-keccak256-circuit = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", default-features = false } +openvm-keccak256-transpiler = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", default-features = false } +openvm-rv32im-circuit = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", default-features = false } +openvm-rv32im-transpiler = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", default-features = false } +openvm-bigint-circuit = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", default-features = false } +openvm-bigint-transpiler = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", default-features = false } +openvm-algebra-circuit = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", default-features = false } +openvm-algebra-transpiler = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", default-features = false } +openvm-ecc-circuit = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", default-features = false } +openvm-ecc-transpiler = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", default-features = false } +openvm-pairing-circuit = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", default-features = false } +openvm-sdk = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", default-features = false } +openvm-native-compiler = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", default-features = false } +openvm-native-recursion = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", default-features = false } [workspace.lints] rust.missing_debug_implementations = "warn" diff --git a/bin/client-eth/Cargo.lock b/bin/client-eth/Cargo.lock index 0240cc5f7..92e10e71c 100644 --- a/bin/client-eth/Cargo.lock +++ b/bin/client-eth/Cargo.lock @@ -1956,7 +1956,7 @@ dependencies = [ [[package]] name = "openvm" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "bytemuck", "hex-literal", @@ -1970,7 +1970,7 @@ dependencies = [ [[package]] name = "openvm-algebra-complex-macros" version = "0.1.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "openvm-macros-common", "quote", @@ -1980,7 +1980,7 @@ dependencies = [ [[package]] name = "openvm-algebra-guest" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "halo2curves-axiom", "num-bigint", @@ -1996,7 +1996,7 @@ dependencies = [ [[package]] name = "openvm-algebra-moduli-macros" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "openvm-macros-common", "quote", @@ -2006,7 +2006,7 @@ dependencies = [ [[package]] name = "openvm-bigint-guest" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "num-bigint", "num-traits", @@ -2076,7 +2076,7 @@ dependencies = [ [[package]] name = "openvm-custom-insn" version = "0.1.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "proc-macro2", "quote", @@ -2086,7 +2086,7 @@ dependencies = [ [[package]] name = "openvm-ecc-guest" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "ecdsa", "elliptic-curve", @@ -2112,7 +2112,7 @@ dependencies = [ [[package]] name = "openvm-ecc-sw-macros" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "openvm-macros-common", "quote", @@ -2122,7 +2122,7 @@ dependencies = [ [[package]] name = "openvm-keccak256-guest" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "openvm-platform", "serde", @@ -2132,7 +2132,7 @@ dependencies = [ [[package]] name = "openvm-macros-common" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "syn 2.0.98", ] @@ -2163,7 +2163,7 @@ dependencies = [ [[package]] name = "openvm-pairing-guest" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "group", "hex-literal", @@ -2187,7 +2187,7 @@ dependencies = [ [[package]] name = "openvm-platform" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "critical-section", "embedded-alloc", @@ -2220,7 +2220,7 @@ dependencies = [ [[package]] name = "openvm-rv32im-guest" version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=30576cc6ce838f213bf05b2e4ad035d95498c8b3#30576cc6ce838f213bf05b2e4ad035d95498c8b3" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "openvm-platform", "strum_macros", @@ -2970,7 +2970,7 @@ dependencies = [ [[package]] name = "revm" version = "14.0.1" -source = "git+https://github.com/axiom-crypto/revm?branch=v43-openvm#a3d9cae641dc799604d27993b34dfedc89b4ddd3" +source = "git+https://github.com/axiom-crypto/revm?branch=v43-openvm#412fdf0a23444a48752401d56b66ac6abadbe628" dependencies = [ "auto_impl", "cfg-if", @@ -2984,7 +2984,7 @@ dependencies = [ [[package]] name = "revm-interpreter" version = "10.0.1" -source = "git+https://github.com/axiom-crypto/revm?branch=v43-openvm#a3d9cae641dc799604d27993b34dfedc89b4ddd3" +source = "git+https://github.com/axiom-crypto/revm?branch=v43-openvm#412fdf0a23444a48752401d56b66ac6abadbe628" dependencies = [ "revm-primitives", "serde", @@ -2993,7 +2993,7 @@ dependencies = [ [[package]] name = "revm-precompile" version = "11.0.1" -source = "git+https://github.com/axiom-crypto/revm?branch=v43-openvm#a3d9cae641dc799604d27993b34dfedc89b4ddd3" +source = "git+https://github.com/axiom-crypto/revm?branch=v43-openvm#412fdf0a23444a48752401d56b66ac6abadbe628" dependencies = [ "aurora-engine-modexp", "c-kzg", @@ -3015,7 +3015,7 @@ dependencies = [ [[package]] name = "revm-primitives" version = "9.0.1" -source = "git+https://github.com/axiom-crypto/revm?branch=v43-openvm#a3d9cae641dc799604d27993b34dfedc89b4ddd3" +source = "git+https://github.com/axiom-crypto/revm?branch=v43-openvm#412fdf0a23444a48752401d56b66ac6abadbe628" dependencies = [ "alloy-eips", "alloy-primitives", diff --git a/bin/client-eth/Cargo.toml b/bin/client-eth/Cargo.toml index 54fb55bbd..2914287b8 100644 --- a/bin/client-eth/Cargo.toml +++ b/bin/client-eth/Cargo.toml @@ -16,22 +16,22 @@ revm-precompile = { version = "11.0.1", default-features = false, features = [ ] } # openvm -openvm = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", features = [ +openvm = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", features = [ "std", ] } -openvm-platform = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3" } -openvm-keccak256-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3" } -openvm-algebra-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3" } -openvm-algebra-moduli-macros = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3" } -openvm-algebra-complex-macros = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3" } -openvm-ecc-sw-macros = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3" } -openvm-ecc-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", features = [ +openvm-platform = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" } +openvm-keccak256-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" } +openvm-algebra-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" } +openvm-algebra-moduli-macros = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" } +openvm-algebra-complex-macros = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" } +openvm-ecc-sw-macros = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" } +openvm-ecc-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", features = [ "k256", ] } -openvm-bigint-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", features = [ +openvm-bigint-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", features = [ "export-intrinsics", ] } -openvm-pairing-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "30576cc6ce838f213bf05b2e4ad035d95498c8b3", features = [ +openvm-pairing-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", features = [ "bn254", ] } From 91dd8ed7f4cb26905e48443031b7f9621cfdf7f0 Mon Sep 17 00:00:00 2001 From: Jonathan Wang <31040440+jonathanpwang@users.noreply.github.com> Date: Tue, 18 Feb 2025 17:07:10 -0600 Subject: [PATCH 02/10] chore: update to use BLS12-381 VM extensions --- bin/client-eth/Cargo.lock | 1504 ++++++++++++++++++++++++-- bin/client-eth/Cargo.toml | 28 +- bin/client-eth/src/main.rs | 8 +- bin/host/src/main.rs | 13 +- crates/executor/client/Cargo.toml | 3 + crates/executor/client/src/custom.rs | 48 +- 6 files changed, 1453 insertions(+), 151 deletions(-) diff --git a/bin/client-eth/Cargo.lock b/bin/client-eth/Cargo.lock index 92e10e71c..ee4743e9a 100644 --- a/bin/client-eth/Cargo.lock +++ b/bin/client-eth/Cargo.lock @@ -2,6 +2,17 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "addchain" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" +dependencies = [ + "num-bigint 0.3.3", + "num-integer", + "num-traits", +] + [[package]] name = "addr2line" version = "0.24.2" @@ -29,6 +40,15 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + [[package]] name = "allocator-api2" version = "0.2.21" @@ -97,7 +117,7 @@ dependencies = [ "alloy-rlp", "alloy-serde", "c-kzg", - "derive_more", + "derive_more 1.0.0", "once_cell", "serde", "sha2", @@ -148,7 +168,7 @@ dependencies = [ "bytes", "cfg-if", "const-hex", - "derive_more", + "derive_more 1.0.0", "foldhash", "getrandom 0.2.15", "hashbrown 0.15.2", @@ -213,7 +233,7 @@ dependencies = [ "alloy-serde", "alloy-sol-types", "cfg-if", - "derive_more", + "derive_more 1.0.0", "hashbrown 0.14.5", "itertools 0.13.0", "serde", @@ -309,7 +329,7 @@ checksum = "0a46c9c4fdccda7982e7928904bd85fe235a0404ee3d7e197fff13d61eac8b4f" dependencies = [ "alloy-primitives", "alloy-rlp", - "derive_more", + "derive_more 1.0.0", "hashbrown 0.14.5", "nybbles", "serde", @@ -332,6 +352,15 @@ dependencies = [ "libc", ] +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + [[package]] name = "anyhow" version = "1.0.95" @@ -349,7 +378,7 @@ dependencies = [ "ark-serialize 0.3.0", "ark-std 0.3.0", "derivative", - "num-bigint", + "num-bigint 0.4.6", "num-traits", "paste", "rustc_version 0.3.3", @@ -369,7 +398,7 @@ dependencies = [ "derivative", "digest 0.10.7", "itertools 0.10.5", - "num-bigint", + "num-bigint 0.4.6", "num-traits", "paste", "rustc_version 0.4.1", @@ -402,7 +431,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" dependencies = [ - "num-bigint", + "num-bigint 0.4.6", "num-traits", "quote", "syn 1.0.109", @@ -414,7 +443,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" dependencies = [ - "num-bigint", + "num-bigint 0.4.6", "num-traits", "proc-macro2", "quote", @@ -439,7 +468,7 @@ checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ "ark-std 0.4.0", "digest 0.10.7", - "num-bigint", + "num-bigint 0.4.6", ] [[package]] @@ -474,6 +503,17 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +[[package]] +name = "async-trait" +version = "0.1.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "aurora-engine-modexp" version = "1.2.0" @@ -513,6 +553,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", + "serde", "windows-targets", ] @@ -580,6 +621,16 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" +[[package]] +name = "bitcode" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ae9f4d868fa036ee7517b997dc2b6efd383a8b2efdcb4b07058260de060d3ef" +dependencies = [ + "bytemuck", + "serde", +] + [[package]] name = "bitflags" version = "2.8.0" @@ -602,6 +653,15 @@ dependencies = [ "wyz", ] +[[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 = "blake2b_simd" version = "1.0.3" @@ -613,6 +673,20 @@ dependencies = [ "constant_time_eq", ] +[[package]] +name = "blake3" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1230237285e3e10cde447185e8975408ae24deaa67205ce684805c25bc0c7937" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "memmap2", +] + [[package]] name = "block-buffer" version = "0.10.4" @@ -622,6 +696,32 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bls12_381" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3c196a77437e7cc2fb515ce413a6401291578b5afc8ecb29a3c7ab957f05941" +dependencies = [ + "ff 0.12.1", + "group 0.12.1", + "pairing 0.22.0", + "rand_core", + "subtle", +] + +[[package]] +name = "bls12_381" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7bc6d6292be3a19e6379786dac800f551e5865a5bb51ebbe3064ab80433f403" +dependencies = [ + "ff 0.13.0", + "group 0.13.0", + "pairing 0.23.0", + "rand_core", + "subtle", +] + [[package]] name = "blst" version = "0.3.13" @@ -761,6 +861,12 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + [[package]] name = "convert_case" version = "0.6.0" @@ -925,6 +1031,41 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive-new" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.98", +] + +[[package]] +name = "derive-new" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cdc8d50f426189eef89dac62fabfa0abb27d5cc008f25bf4156a0203325becc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.98", +] + +[[package]] +name = "derive_more" +version = "0.99.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" +dependencies = [ + "convert_case 0.4.0", + "proc-macro2", + "quote", + "rustc_version 0.4.1", + "syn 2.0.98", +] + [[package]] name = "derive_more" version = "1.0.0" @@ -940,7 +1081,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ - "convert_case", + "convert_case 0.6.0", "proc-macro2", "quote", "syn 2.0.98", @@ -979,6 +1120,12 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + [[package]] name = "dunce" version = "1.0.5" @@ -1011,6 +1158,12 @@ version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +[[package]] +name = "elf" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4445909572dbd556c457c849c4ca58623d84b27c8fff1e74b0b4227d8b90d17b" + [[package]] name = "elliptic-curve" version = "0.13.8" @@ -1020,9 +1173,9 @@ dependencies = [ "base16ct", "crypto-bigint", "digest 0.10.7", - "ff", + "ff 0.13.0", "generic-array", - "group", + "group 0.13.0", "pkcs8", "rand_core", "sec1", @@ -1042,6 +1195,12 @@ dependencies = [ "rlsf", ] +[[package]] +name = "endian-type" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" + [[package]] name = "enr" version = "0.12.1" @@ -1058,6 +1217,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "enumn" version = "0.1.14" @@ -1112,6 +1283,17 @@ dependencies = [ "bytes", ] +[[package]] +name = "ff" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +dependencies = [ + "bitvec", + "rand_core", + "subtle", +] + [[package]] name = "ff" version = "0.13.0" @@ -1119,10 +1301,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ "bitvec", + "byteorder", + "ff_derive", "rand_core", "subtle", ] +[[package]] +name = "ff_derive" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f54704be45ed286151c5e11531316eaef5b8f5af7d597b806fdb8af108d84a" +dependencies = [ + "addchain", + "cfg-if", + "num-bigint 0.3.3", + "num-integer", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "fixed-hash" version = "0.8.0" @@ -1251,6 +1451,12 @@ dependencies = [ "slab", ] +[[package]] +name = "gcd" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" + [[package]] name = "generic-array" version = "0.14.7" @@ -1285,6 +1491,18 @@ dependencies = [ "windows-targets", ] +[[package]] +name = "getset" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eded738faa0e88d3abc9d1a13cb11adc2073c400969eeb8793cf7132589959fc" +dependencies = [ + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "gimli" version = "0.31.1" @@ -1297,15 +1515,79 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +[[package]] +name = "group" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +dependencies = [ + "ff 0.12.1", + "memuse", + "rand_core", + "subtle", +] + [[package]] name = "group" version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ - "ff", + "ff 0.13.0", + "rand_core", + "subtle", +] + +[[package]] +name = "halo2" +version = "0.1.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a23c779b38253fe1538102da44ad5bd5378495a61d2c4ee18d64eaa61ae5995" +dependencies = [ + "halo2_proofs", +] + +[[package]] +name = "halo2_proofs" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e925780549adee8364c7f2b685c753f6f3df23bde520c67416e93bf615933760" +dependencies = [ + "blake2b_simd", + "ff 0.12.1", + "group 0.12.1", + "pasta_curves 0.4.1", + "rand_core", + "rayon", +] + +[[package]] +name = "halo2curves" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b756596082144af6e57105a20403b7b80fe9dccd085700b74fae3af523b74dba" +dependencies = [ + "blake2", + "digest 0.10.7", + "ff 0.13.0", + "group 0.13.0", + "halo2derive", + "hex", + "lazy_static", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "pairing 0.23.0", + "paste", + "rand", "rand_core", + "rayon", + "serde", + "serde_arrays", + "sha2", + "static_assertions", "subtle", + "unroll", ] [[package]] @@ -1316,15 +1598,15 @@ checksum = "75bb262279138550a603b35a73da944fcde987a321eb550c05276ce7b0a4e692" dependencies = [ "blake2b_simd", "digest 0.10.7", - "ff", - "group", + "ff 0.13.0", + "group 0.13.0", "hex", "lazy_static", "maybe-rayon", - "num-bigint", + "num-bigint 0.4.6", "num-traits", - "pairing", - "pasta_curves", + "pairing 0.23.0", + "pasta_curves 0.5.1", "paste", "rand", "rand_core", @@ -1335,6 +1617,20 @@ dependencies = [ "subtle", ] +[[package]] +name = "halo2derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb99e7492b4f5ff469d238db464131b86c2eaac814a78715acba369f64d2c76" +dependencies = [ + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -1649,6 +1945,20 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "jubjub" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a575df5f985fe1cd5b2b05664ff6accfc46559032b954529fd225a2168d27b0f" +dependencies = [ + "bitvec", + "bls12_381 0.7.1", + "ff 0.12.1", + "group 0.12.1", + "rand_core", + "subtle", +] + [[package]] name = "k256" version = "0.13.4" @@ -1730,12 +2040,27 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "lockfree-object-pool" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" + [[package]] name = "log" version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + [[package]] name = "maybe-rayon" version = "0.1.1" @@ -1753,42 +2078,122 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] -name = "miniz_oxide" -version = "0.8.4" +name = "memmap2" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b1c9bd4fe1f0f8b387f6eb9eb3b4a1aa26185e5750efb9140301703f62cd1b" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" dependencies = [ - "adler2", + "libc", ] [[package]] -name = "modular-bitfield" -version = "0.11.2" +name = "memuse" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" -dependencies = [ - "modular-bitfield-impl", - "static_assertions", -] +checksum = "3d97bbf43eb4f088f8ca469930cde17fa036207c9a5e02ccc5107c4e8b17c964" [[package]] -name = "modular-bitfield-impl" -version = "0.11.2" +name = "metrics" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" +checksum = "884adb57038347dfbaf2d5065887b6cf4312330dc8e94bc30a1a839bd79d3261" dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", + "ahash", + "portable-atomic", ] [[package]] -name = "num" +name = "metrics-tracing-context" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62a6a1f7141f1d9bc7a886b87536bbfc97752e08b369e1e0453a9acfab5f5da4" +dependencies = [ + "indexmap 2.7.1", + "itoa", + "lockfree-object-pool", + "metrics", + "metrics-util", + "once_cell", + "tracing", + "tracing-core", + "tracing-subscriber", +] + +[[package]] +name = "metrics-util" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4259040465c955f9f2f1a4a8a16dc46726169bca0f88e8fb2dbeced487c3e828" +dependencies = [ + "aho-corasick", + "crossbeam-epoch", + "crossbeam-utils", + "hashbrown 0.14.5", + "indexmap 2.7.1", + "metrics", + "num_cpus", + "ordered-float", + "quanta", + "radix_trie", + "sketches-ddsketch", +] + +[[package]] +name = "miniz_oxide" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3b1c9bd4fe1f0f8b387f6eb9eb3b4a1aa26185e5750efb9140301703f62cd1b" +dependencies = [ + "adler2", +] + +[[package]] +name = "modular-bitfield" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" +dependencies = [ + "modular-bitfield-impl", + "static_assertions", +] + +[[package]] +name = "modular-bitfield-impl" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "nibble_vec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" +dependencies = [ + "smallvec", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" dependencies = [ - "num-bigint", + "num-bigint 0.4.6", "num-complex", "num-integer", "num-iter", @@ -1796,6 +2201,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-bigint" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-bigint" version = "0.4.6" @@ -1804,6 +2220,7 @@ checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", "num-traits", + "rand", ] [[package]] @@ -1847,7 +2264,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "num-bigint", + "num-bigint 0.4.6", "num-integer", "num-traits", ] @@ -1891,6 +2308,18 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "nums" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3c74f925fb8cfc49a8022f2afce48a0683b70f9e439885594e84c5edbf5b01" +dependencies = [ + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "rand", +] + [[package]] name = "nybbles" version = "0.2.1" @@ -1930,7 +2359,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-serde", - "derive_more", + "derive_more 1.0.0", "serde", "spin", ] @@ -1960,7 +2389,7 @@ source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8c dependencies = [ "bytemuck", "hex-literal", - "num-bigint", + "num-bigint 0.4.6", "num-traits", "openvm-platform", "openvm-rv32im-guest", @@ -1983,7 +2412,7 @@ version = "1.0.0-rc.1" source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ "halo2curves-axiom", - "num-bigint", + "num-bigint 0.4.6", "openvm", "openvm-algebra-complex-macros", "openvm-algebra-moduli-macros", @@ -2008,7 +2437,7 @@ name = "openvm-bigint-guest" version = "1.0.0-rc.1" source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ - "num-bigint", + "num-bigint 0.4.6", "num-traits", "openvm", "openvm-platform", @@ -2016,6 +2445,81 @@ dependencies = [ "strum_macros", ] +[[package]] +name = "openvm-circuit" +version = "1.0.0-rc.1" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" +dependencies = [ + "async-trait", + "backtrace", + "bitcode", + "cfg-if", + "derivative", + "derive-new 0.6.0", + "derive_more 1.0.0", + "enum_dispatch", + "eyre", + "getset", + "itertools 0.13.0", + "once_cell", + "openvm-circuit-derive", + "openvm-circuit-primitives", + "openvm-circuit-primitives-derive", + "openvm-instructions", + "openvm-poseidon2-air", + "openvm-stark-backend", + "p3-baby-bear", + "p3-symmetric", + "rand", + "rustc-hash", + "serde", + "serde-big-array", + "static_assertions", + "thiserror 1.0.69", + "toml", + "tracing", +] + +[[package]] +name = "openvm-circuit-derive" +version = "1.0.0-rc.1" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" +dependencies = [ + "itertools 0.13.0", + "proc-macro2", + "quote", + "syn 2.0.98", +] + +[[package]] +name = "openvm-circuit-primitives" +version = "1.0.0-rc.1" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" +dependencies = [ + "bitcode", + "derive-new 0.6.0", + "itertools 0.13.0", + "lazy_static", + "num-bigint 0.4.6", + "num-traits", + "openvm-circuit-primitives-derive", + "openvm-stark-backend", + "rand", + "serde", + "tracing", +] + +[[package]] +name = "openvm-circuit-primitives-derive" +version = "1.0.0-rc.1" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" +dependencies = [ + "itertools 0.13.0", + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "openvm-client-eth" version = "0.0.0" @@ -2090,13 +2594,13 @@ source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8c dependencies = [ "ecdsa", "elliptic-curve", - "group", + "group 0.13.0", "halo2curves-axiom", "hex-literal", "itertools 0.13.0", "k256", "lazy_static", - "num-bigint", + "num-bigint 0.4.6", "num-traits", "openvm", "openvm-algebra-guest", @@ -2119,6 +2623,33 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "openvm-instructions" +version = "1.0.0-rc.1" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" +dependencies = [ + "backtrace", + "derive-new 0.6.0", + "itertools 0.13.0", + "num-bigint 0.4.6", + "num-traits", + "openvm-instructions-derive", + "openvm-stark-backend", + "serde", + "strum", + "strum_macros", +] + +[[package]] +name = "openvm-instructions-derive" +version = "1.0.0-rc.1" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "openvm-keccak256-guest" version = "1.0.0-rc.1" @@ -2129,6 +2660,28 @@ dependencies = [ "tiny-keccak", ] +[[package]] +name = "openvm-kzg" +version = "0.1.0-alpha" +source = "git+https://github.com/axiom-crypto/openvm-kzg.git?rev=c6028f9f81049c958866cc6df4cd1454955159ae#c6028f9f81049c958866cc6df4cd1454955159ae" +dependencies = [ + "bls12_381 0.8.0", + "ff 0.13.0", + "hex", + "hex-literal", + "num-bigint 0.4.6", + "num-traits", + "openvm-algebra-guest", + "openvm-circuit", + "openvm-ecc-guest", + "openvm-pairing-guest", + "openvm-transpiler", + "serde", + "serde-big-array", + "sha2", + "spin", +] + [[package]] name = "openvm-macros-common" version = "1.0.0-rc.1" @@ -2165,11 +2718,12 @@ name = "openvm-pairing-guest" version = "1.0.0-rc.1" source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" dependencies = [ - "group", + "group 0.13.0", + "halo2curves-axiom", "hex-literal", "itertools 0.13.0", "lazy_static", - "num-bigint", + "num-bigint 0.4.6", "num-traits", "openvm", "openvm-algebra-complex-macros", @@ -2185,68 +2739,508 @@ dependencies = [ ] [[package]] -name = "openvm-platform" -version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" +name = "openvm-platform" +version = "1.0.0-rc.1" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" +dependencies = [ + "critical-section", + "embedded-alloc", + "getrandom 0.2.15", + "libm", + "openvm-custom-insn", + "stability", + "strum_macros", +] + +[[package]] +name = "openvm-poseidon2-air" +version = "1.0.0-rc.1" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" +dependencies = [ + "derivative", + "itertools 0.13.0", + "lazy_static", + "openvm-circuit-primitives", + "openvm-stark-backend", + "openvm-stark-sdk", + "p3-monty-31", + "p3-poseidon2", + "p3-poseidon2-air", + "p3-symmetric", + "rand", + "tracing", + "zkhash", +] + +[[package]] +name = "openvm-primitives" +version = "0.1.0" +dependencies = [ + "alloy-rpc-types", + "eyre", + "reth-chainspec", + "reth-optimism-chainspec", + "reth-primitives", + "reth-revm", + "reth-trie", + "revm-interpreter", + "revm-precompile", + "revm-primitives", + "serde", + "serde_json", + "tracing", +] + +[[package]] +name = "openvm-rv32im-guest" +version = "1.0.0-rc.1" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" +dependencies = [ + "openvm-platform", + "strum_macros", +] + +[[package]] +name = "openvm-sha256-guest" +version = "1.0.0-rc.1" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" +dependencies = [ + "openvm", + "openvm-platform", + "sha2", +] + +[[package]] +name = "openvm-stark-backend" +version = "1.0.0-rc.0" +source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.0.0-rc.0#18cf1c084ebeb3ca1163e55b87893f1d1fd7fc1f" +dependencies = [ + "async-trait", + "cfg-if", + "derivative", + "derive-new 0.7.0", + "itertools 0.13.0", + "p3-air", + "p3-challenger", + "p3-commit", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-uni-stark", + "p3-util", + "rustc-hash", + "serde", + "thiserror 1.0.69", + "tracing", +] + +[[package]] +name = "openvm-stark-sdk" +version = "1.0.0-rc.0" +source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.0.0-rc.0#18cf1c084ebeb3ca1163e55b87893f1d1fd7fc1f" +dependencies = [ + "derivative", + "derive_more 0.99.19", + "ff 0.13.0", + "itertools 0.13.0", + "metrics", + "metrics-tracing-context", + "metrics-util", + "openvm-stark-backend", + "p3-baby-bear", + "p3-blake3", + "p3-bn254-fr", + "p3-dft", + "p3-fri", + "p3-goldilocks", + "p3-keccak", + "p3-merkle-tree", + "p3-poseidon", + "p3-poseidon2", + "p3-symmetric", + "rand", + "serde", + "serde_json", + "static_assertions", + "toml", + "tracing", + "tracing-forest", + "tracing-subscriber", + "zkhash", +] + +[[package]] +name = "openvm-transpiler" +version = "1.0.0-rc.1" +source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" +dependencies = [ + "derive_more 1.0.0", + "elf", + "eyre", + "openvm-instructions", + "openvm-platform", + "openvm-stark-backend", + "rrs-lib", + "strum", + "thiserror 1.0.69", + "tracing", +] + +[[package]] +name = "openvm-witness-db" +version = "0.1.0" +dependencies = [ + "openvm-primitives", + "reth-primitives", + "reth-storage-errors", + "revm-primitives", + "serde", +] + +[[package]] +name = "ordered-float" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" +dependencies = [ + "num-traits", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2", +] + +[[package]] +name = "p3-air" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" +dependencies = [ + "p3-field", + "p3-matrix", +] + +[[package]] +name = "p3-baby-bear" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" +dependencies = [ + "p3-field", + "p3-mds", + "p3-monty-31", + "p3-poseidon2", + "p3-symmetric", + "rand", + "serde", +] + +[[package]] +name = "p3-blake3" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" +dependencies = [ + "blake3", + "p3-symmetric", + "p3-util", +] + +[[package]] +name = "p3-bn254-fr" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" +dependencies = [ + "ff 0.13.0", + "halo2curves", + "num-bigint 0.4.6", + "p3-field", + "p3-poseidon2", + "p3-symmetric", + "rand", + "serde", +] + +[[package]] +name = "p3-challenger" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" +dependencies = [ + "p3-field", + "p3-maybe-rayon", + "p3-symmetric", + "p3-util", + "tracing", +] + +[[package]] +name = "p3-commit" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" +dependencies = [ + "itertools 0.13.0", + "p3-challenger", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-util", + "serde", +] + +[[package]] +name = "p3-dft" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" +dependencies = [ + "itertools 0.13.0", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "tracing", +] + +[[package]] +name = "p3-field" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" +dependencies = [ + "itertools 0.13.0", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "nums", + "p3-maybe-rayon", + "p3-util", + "rand", + "serde", + "tracing", +] + +[[package]] +name = "p3-fri" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" +dependencies = [ + "itertools 0.13.0", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-interpolation", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "rand", + "serde", + "tracing", +] + +[[package]] +name = "p3-goldilocks" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" +dependencies = [ + "num-bigint 0.4.6", + "p3-dft", + "p3-field", + "p3-mds", + "p3-poseidon", + "p3-poseidon2", + "p3-symmetric", + "p3-util", + "rand", + "serde", +] + +[[package]] +name = "p3-interpolation" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" +dependencies = [ + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", +] + +[[package]] +name = "p3-keccak" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" +dependencies = [ + "itertools 0.13.0", + "p3-field", + "p3-symmetric", + "p3-util", + "tiny-keccak", +] + +[[package]] +name = "p3-matrix" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" +dependencies = [ + "itertools 0.13.0", + "p3-field", + "p3-maybe-rayon", + "p3-util", + "rand", + "serde", + "tracing", + "transpose", +] + +[[package]] +name = "p3-maybe-rayon" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" + +[[package]] +name = "p3-mds" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" +dependencies = [ + "itertools 0.13.0", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-symmetric", + "p3-util", + "rand", +] + +[[package]] +name = "p3-merkle-tree" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" +dependencies = [ + "itertools 0.13.0", + "p3-commit", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-symmetric", + "p3-util", + "rand", + "serde", + "tracing", +] + +[[package]] +name = "p3-monty-31" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" +dependencies = [ + "itertools 0.13.0", + "num-bigint 0.4.6", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-mds", + "p3-poseidon2", + "p3-symmetric", + "p3-util", + "rand", + "serde", + "tracing", + "transpose", +] + +[[package]] +name = "p3-poseidon" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" +dependencies = [ + "p3-field", + "p3-mds", + "p3-symmetric", + "rand", +] + +[[package]] +name = "p3-poseidon2" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" dependencies = [ - "critical-section", - "embedded-alloc", - "getrandom 0.2.15", - "libm", - "openvm-custom-insn", - "stability", - "strum_macros", + "gcd", + "p3-field", + "p3-mds", + "p3-symmetric", + "rand", ] [[package]] -name = "openvm-primitives" +name = "p3-poseidon2-air" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" +dependencies = [ + "p3-air", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-poseidon2", + "p3-util", + "rand", + "tikv-jemallocator", + "tracing", +] + +[[package]] +name = "p3-symmetric" version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" dependencies = [ - "alloy-rpc-types", - "eyre", - "reth-chainspec", - "reth-optimism-chainspec", - "reth-primitives", - "reth-revm", - "reth-trie", - "revm-interpreter", - "revm-precompile", - "revm-primitives", + "itertools 0.13.0", + "p3-field", "serde", - "serde_json", - "tracing", ] [[package]] -name = "openvm-rv32im-guest" -version = "1.0.0-rc.1" -source = "git+https://github.com/openvm-org/openvm.git?rev=91496503cb9a214ce7f8cef3a4a6e35fc6f0d938#91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" +name = "p3-uni-stark" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" dependencies = [ - "openvm-platform", - "strum_macros", + "itertools 0.13.0", + "p3-air", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "serde", + "tracing", ] [[package]] -name = "openvm-witness-db" +name = "p3-util" version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=b0591e9#b0591e9b82d58d10f86359875b5d5fa96433b4cf" dependencies = [ - "openvm-primitives", - "reth-primitives", - "reth-storage-errors", - "revm-primitives", "serde", ] [[package]] -name = "p256" -version = "0.13.2" +name = "pairing" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +checksum = "135590d8bdba2b31346f9cd1fb2a912329f5135e832a4f422942eb6ead8b6b3b" dependencies = [ - "ecdsa", - "elliptic-curve", - "primeorder", - "sha2", + "group 0.12.1", ] [[package]] @@ -2255,7 +3249,7 @@ version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" dependencies = [ - "group", + "group 0.13.0", ] [[package]] @@ -2286,6 +3280,21 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "pasta_curves" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc65faf8e7313b4b1fbaa9f7ca917a0eed499a9663be71477f87993604341d8" +dependencies = [ + "blake2b_simd", + "ff 0.12.1", + "group 0.12.1", + "lazy_static", + "rand", + "static_assertions", + "subtle", +] + [[package]] name = "pasta_curves" version = "0.5.1" @@ -2293,8 +3302,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" dependencies = [ "blake2b_simd", - "ff", - "group", + "ff 0.13.0", + "group 0.13.0", "lazy_static", "rand", "static_assertions", @@ -2346,6 +3355,12 @@ dependencies = [ "spki", ] +[[package]] +name = "portable-atomic" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" + [[package]] name = "powerfmt" version = "0.2.0" @@ -2435,12 +3450,27 @@ dependencies = [ "rand", "rand_chacha", "rand_xorshift", - "regex-syntax", + "regex-syntax 0.8.5", "rusty-fork", "tempfile", "unarray", ] +[[package]] +name = "quanta" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bd1fe6824cea6538803de3ff1bc0cf3949024db3d43c9643024bfb33a807c0e" +dependencies = [ + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid", + "wasi 0.11.0+wasi-snapshot-preview1", + "web-sys", + "winapi", +] + [[package]] name = "quick-error" version = "1.2.3" @@ -2462,6 +3492,16 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" +[[package]] +name = "radix_trie" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" +dependencies = [ + "endian-type", + "nibble_vec", +] + [[package]] name = "rand" version = "0.8.5" @@ -2502,6 +3542,15 @@ dependencies = [ "rand_core", ] +[[package]] +name = "raw-cpuid" +version = "11.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "529468c1335c1c03919960dfefdb1b3648858c20d7ec2d0663e728e4a717efbc" +dependencies = [ + "bitflags", +] + [[package]] name = "rayon" version = "1.10.0" @@ -2522,6 +3571,44 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + [[package]] name = "regex-syntax" version = "0.8.5" @@ -2551,7 +3638,7 @@ dependencies = [ "alloy-primitives", "alloy-trie", "auto_impl", - "derive_more", + "derive_more 1.0.0", "once_cell", "op-alloy-rpc-types", "reth-ethereum-forks", @@ -2583,7 +3670,7 @@ name = "reth-codecs-derive" version = "1.0.6" source = "git+https://github.com/axiom-crypto/reth?branch=openvm%2Fv1.0.6#06be1a5ec87b8ce2d2793b12192a335255674164" dependencies = [ - "convert_case", + "convert_case 0.6.0", "proc-macro2", "quote", "syn 2.0.98", @@ -2595,7 +3682,7 @@ version = "1.0.6" source = "git+https://github.com/axiom-crypto/reth?branch=openvm%2Fv1.0.6#06be1a5ec87b8ce2d2793b12192a335255674164" dependencies = [ "auto_impl", - "derive_more", + "derive_more 1.0.0", "reth-primitives", ] @@ -2727,7 +3814,7 @@ dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", - "derive_more", + "derive_more 1.0.0", "nybbles", "reth-consensus", "reth-prune-types", @@ -2777,7 +3864,7 @@ source = "git+https://github.com/axiom-crypto/reth?branch=openvm%2Fv1.0.6#06be1a dependencies = [ "alloy-chains", "alloy-primitives", - "derive_more", + "derive_more 1.0.0", "once_cell", "reth-chainspec", "reth-ethereum-forks", @@ -2810,7 +3897,7 @@ dependencies = [ "alloy-rpc-types", "alloy-serde", "bytes", - "derive_more", + "derive_more 1.0.0", "k256", "once_cell", "op-alloy-rpc-types", @@ -2840,7 +3927,7 @@ dependencies = [ "alloy-rpc-types-eth", "byteorder", "bytes", - "derive_more", + "derive_more 1.0.0", "modular-bitfield", "reth-codecs", "revm-primitives", @@ -2855,7 +3942,7 @@ source = "git+https://github.com/axiom-crypto/reth?branch=openvm%2Fv1.0.6#06be1a dependencies = [ "alloy-primitives", "bytes", - "derive_more", + "derive_more 1.0.0", "modular-bitfield", "reth-codecs", "serde", @@ -2896,7 +3983,7 @@ version = "1.0.6" source = "git+https://github.com/axiom-crypto/reth?branch=openvm%2Fv1.0.6#06be1a5ec87b8ce2d2793b12192a335255674164" dependencies = [ "alloy-primitives", - "derive_more", + "derive_more 1.0.0", "serde", "strum", ] @@ -2923,7 +4010,7 @@ version = "1.0.6" source = "git+https://github.com/axiom-crypto/reth?branch=openvm%2Fv1.0.6#06be1a5ec87b8ce2d2793b12192a335255674164" dependencies = [ "alloy-rlp", - "derive_more", + "derive_more 1.0.0", "reth-fs-util", "reth-primitives", ] @@ -2935,7 +4022,7 @@ source = "git+https://github.com/axiom-crypto/reth?branch=openvm%2Fv1.0.6#06be1a dependencies = [ "alloy-rlp", "auto_impl", - "derive_more", + "derive_more 1.0.0", "itertools 0.13.0", "rayon", "reth-execution-errors", @@ -2958,7 +4045,7 @@ dependencies = [ "alloy-rlp", "alloy-trie", "bytes", - "derive_more", + "derive_more 1.0.0", "itertools 0.13.0", "nybbles", "reth-codecs", @@ -3003,7 +4090,9 @@ dependencies = [ "openvm", "openvm-ecc-guest", "openvm-keccak256-guest", + "openvm-kzg", "openvm-pairing-guest", + "openvm-sha256-guest", "p256", "revm-primitives", "ripemd", @@ -3028,6 +4117,7 @@ dependencies = [ "enumn", "hashbrown 0.14.5", "hex", + "openvm-kzg", "serde", ] @@ -3082,6 +4172,16 @@ dependencies = [ "byteorder", ] +[[package]] +name = "rrs-lib" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4382d3af3a4ebdae7f64ba6edd9114fff92c89808004c4943b393377a25d001" +dependencies = [ + "downcast-rs", + "paste", +] + [[package]] name = "ruint" version = "1.12.3" @@ -3092,7 +4192,7 @@ dependencies = [ "ark-ff 0.4.2", "bytes", "fastrlp", - "num-bigint", + "num-bigint 0.4.6", "num-traits", "parity-scale-codec", "primitive-types", @@ -3300,6 +4400,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + [[package]] name = "serde_with" version = "3.12.0" @@ -3361,6 +4470,15 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + [[package]] name = "shlex" version = "1.3.0" @@ -3377,6 +4495,12 @@ dependencies = [ "rand_core", ] +[[package]] +name = "sketches-ddsketch" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85636c14b73d81f541e525f585c0a2109e6744e1565b5c1668e31c70c10ed65c" + [[package]] name = "slab" version = "0.4.9" @@ -3436,6 +4560,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "strength_reduce" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82" + [[package]] name = "strsim" version = "0.11.1" @@ -3621,6 +4751,16 @@ dependencies = [ "thiserror-impl-no-std", ] +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + [[package]] name = "threadpool" version = "1.8.1" @@ -3630,6 +4770,26 @@ dependencies = [ "num_cpus", ] +[[package]] +name = "tikv-jemalloc-sys" +version = "0.6.0+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd3c60906412afa9c2b5b5a48ca6a5abe5736aec9eb48ad05037a677e52e4e2d" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "tikv-jemallocator" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cec5ff18518d81584f477e9bfdf957f5bb0979b0bac3af4ca30b5b3ae2d2865" +dependencies = [ + "libc", + "tikv-jemalloc-sys", +] + [[package]] name = "time" version = "0.3.37" @@ -3690,11 +4850,26 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "toml" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + [[package]] name = "toml_datetime" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] [[package]] name = "toml_edit" @@ -3703,6 +4878,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ "indexmap 2.7.1", + "serde", + "serde_spanned", "toml_datetime", "winnow", ] @@ -3736,6 +4913,59 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", + "valuable", +] + +[[package]] +name = "tracing-forest" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee40835db14ddd1e3ba414292272eddde9dad04d3d4b65509656414d1c42592f" +dependencies = [ + "ansi_term", + "smallvec", + "thiserror 1.0.69", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "transpose" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad61aed86bc3faea4300c7aee358b4c6d0c8d6ccc36524c96e4c92ccf26e77e" +dependencies = [ + "num-integer", + "strength_reduce", ] [[package]] @@ -3792,6 +5022,16 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "unroll" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ad948c1cb799b1a70f836077721a92a35ac177d4daddf4c20a633786d4cf618" +dependencies = [ + "quote", + "syn 1.0.109", +] + [[package]] name = "url" version = "2.5.4" @@ -3915,6 +5155,38 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "web-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + [[package]] name = "windows-core" version = "0.52.0" @@ -4143,3 +5415,29 @@ dependencies = [ "quote", "syn 2.0.98", ] + +[[package]] +name = "zkhash" +version = "0.2.0" +source = "git+https://github.com/HorizenLabs/poseidon2.git?rev=bb476b9#bb476b9ca38198cf5092487283c8b8c5d4317c4e" +dependencies = [ + "ark-ff 0.4.2", + "ark-std 0.4.0", + "bitvec", + "blake2", + "bls12_381 0.7.1", + "byteorder", + "cfg-if", + "group 0.12.1", + "group 0.13.0", + "halo2", + "hex", + "jubjub", + "lazy_static", + "pasta_curves 0.5.1", + "rand", + "serde", + "sha2", + "sha3", + "subtle", +] diff --git a/bin/client-eth/Cargo.toml b/bin/client-eth/Cargo.toml index 2914287b8..3b9c3cac0 100644 --- a/bin/client-eth/Cargo.toml +++ b/bin/client-eth/Cargo.toml @@ -8,39 +8,25 @@ edition = "2021" rustc-hash = "2.1.0" # workspace -openvm-client-executor = { path = "../../crates/executor/client" } +openvm-client-executor = { path = "../../crates/executor/client", features = ["kzg"] } -revm-precompile = { version = "11.0.1", default-features = false, features = [ - "openvm-k256", - "openvm-bn", -] } +revm-precompile = { version = "11.0.1", default-features = false, features = ["openvm"] } # openvm -openvm = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", features = [ - "std", -] } +openvm = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", features = ["std"] } openvm-platform = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" } openvm-keccak256-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" } openvm-algebra-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" } openvm-algebra-moduli-macros = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" } openvm-algebra-complex-macros = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" } openvm-ecc-sw-macros = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" } -openvm-ecc-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", features = [ - "k256", -] } -openvm-bigint-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", features = [ - "export-intrinsics", -] } -openvm-pairing-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", features = [ - "bn254", -] } +openvm-ecc-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", features = ["k256"] } +openvm-bigint-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", features = ["export-intrinsics"] } +openvm-pairing-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", features = ["bn254"] } # Statically turns off logging log = { version = "0.4", features = ["max_level_off", "release_max_level_off"] } -tracing = { version = "0.1", features = [ - "max_level_off", - "release_max_level_off", -] } +tracing = { version = "0.1", features = ["max_level_off", "release_max_level_off"] } [features] default = [] diff --git a/bin/client-eth/src/main.rs b/bin/client-eth/src/main.rs index b951f21b1..27697f4f9 100644 --- a/bin/client-eth/src/main.rs +++ b/bin/client-eth/src/main.rs @@ -8,21 +8,25 @@ use { openvm_bigint_guest, // trigger extern u256 (this may be unneeded) openvm_ecc_guest::k256::Secp256k1Point, openvm_keccak256_guest, // trigger extern native-keccak256 - openvm_pairing_guest::bn254::Bn254G1Affine, + openvm_pairing_guest::{bls12_381::Bls12_381G1Affine, bn254::Bn254G1Affine}, }; openvm_algebra_moduli_macros::moduli_init! { "0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47", // Bn254Fp Coordinate field - "0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001", // Bn254 Scalar + "0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001", // Bn254 Scalar field "0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F", // secp256k1 Coordinate field "0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141", // secp256k1 Scalar field + "0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab", // BLS12-381 Coordinate field + "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" // BLS12-381 Scalar field } openvm_ecc_sw_macros::sw_init! { Bn254G1Affine, Secp256k1Point, + Bls12_381G1Affine, } openvm_algebra_complex_macros::complex_init! { Bn254Fp2 { mod_idx = 0 }, + Bls12_381Fp2 { mod_idx = 4 }, } pub fn main() { diff --git a/bin/host/src/main.rs b/bin/host/src/main.rs index d43e31967..98db1f5aa 100644 --- a/bin/host/src/main.rs +++ b/bin/host/src/main.rs @@ -91,6 +91,7 @@ fn reth_vm_config( )); let int256 = Int256::default(); let bn_config = PairingCurve::Bn254.curve_config(); + let bls_config = PairingCurve::Bls12_381.curve_config(); // The builder will do this automatically, but we set it just in case. let rv32m = Rv32M { range_tuple_checker_sizes: int256.range_tuple_checker_sizes }; SdkVmConfig::builder() @@ -105,10 +106,16 @@ fn reth_vm_config( bn_config.scalar.clone(), SECP256K1_CONFIG.modulus.clone(), SECP256K1_CONFIG.scalar.clone(), + bls_config.modulus.clone(), + bls_config.scalar.clone(), ])) - .fp2(Fp2Extension::new(vec![bn_config.modulus.clone()])) - .ecc(WeierstrassExtension::new(vec![bn_config.clone(), SECP256K1_CONFIG.clone()])) - .pairing(PairingExtension::new(vec![PairingCurve::Bn254])) + .fp2(Fp2Extension::new(vec![bn_config.modulus.clone(), bls_config.modulus.clone()])) + .ecc(WeierstrassExtension::new(vec![ + bn_config.clone(), + SECP256K1_CONFIG.clone(), + bls_config.clone(), + ])) + .pairing(PairingExtension::new(vec![PairingCurve::Bn254, PairingCurve::Bls12_381])) .build() } diff --git a/crates/executor/client/Cargo.toml b/crates/executor/client/Cargo.toml index 0450c29b6..0fceea3e5 100644 --- a/crates/executor/client/Cargo.toml +++ b/crates/executor/client/Cargo.toml @@ -54,3 +54,6 @@ revm-primitives = { workspace = true, features = ["hashbrown"] } alloy-primitives = { workspace = true, features = ["native-keccak"] } [dev-dependencies] + +[features] +kzg = [] diff --git a/crates/executor/client/src/custom.rs b/crates/executor/client/src/custom.rs index e1a0b12f9..98f4bc875 100644 --- a/crates/executor/client/src/custom.rs +++ b/crates/executor/client/src/custom.rs @@ -18,7 +18,9 @@ use reth_revm::{ handler::register::EvmHandler, precompile::PrecompileSpecId, primitives::Env, ContextPrecompiles, Database, Evm, EvmBuilder, }; -use revm::precompile::{bn128, secp256k1, Precompile, PrecompileResult, PrecompileWithAddress}; /* todo: kzg_point_evaluation */ +#[cfg(feature = "kzg")] +use revm::precompile::kzg_point_evaluation; +use revm::precompile::{bn128, secp256k1, Precompile, PrecompileResult, PrecompileWithAddress}; use std::sync::Arc; /// Create an annotated precompile that tracks the cycle count of a precompile. @@ -44,26 +46,27 @@ macro_rules! create_annotated_precompile { }; } -// // An annotated version of the KZG point evaluation precompile. Because this is a stateful -// // precompile we cannot use the `create_annotated_precompile` macro -// pub(crate) const ANNOTATED_KZG_PROOF: PrecompileWithAddress = PrecompileWithAddress( -// kzg_point_evaluation::POINT_EVALUATION.0, -// Precompile::Env(|input: &Bytes, gas_limit: u64, env: &Env| -> PrecompileResult { -// let precompile = kzg_point_evaluation::POINT_EVALUATION.precompile(); -// match precompile { -// Precompile::Env(precompile) => { -// println!(concat!( -// "cycle-tracker-report-start: precompile-", -// "kzg-point-evaluation" -// )); -// let result = precompile(input, gas_limit, env); -// println!(concat!("cycle-tracker-report-end: precompile-", -// "kzg-point-evaluation")); result -// } -// _ => panic!("Annotated precompile must be a env precompile."), -// } -// }), -// ); +// An annotated version of the KZG point evaluation precompile. Because this is a stateful +// precompile we cannot use the `create_annotated_precompile` macro +#[cfg(feature = "kzg")] +pub(crate) const ANNOTATED_KZG_PROOF: PrecompileWithAddress = PrecompileWithAddress( + kzg_point_evaluation::POINT_EVALUATION.0, + Precompile::Env(|input: &Bytes, gas_limit: u64, env: &Env| -> PrecompileResult { + let precompile = kzg_point_evaluation::POINT_EVALUATION.precompile(); + match precompile { + Precompile::Env(precompile) => { + println!(concat!( + "cycle-tracker-report-start: precompile-", + "kzg-point-evaluation" + )); + let result = precompile(input, gas_limit, env); + println!(concat!("cycle-tracker-report-end: precompile-", "kzg-point-evaluation")); + result + } + _ => panic!("Annotated precompile must be a env precompile."), + } + }), +); pub(crate) const ANNOTATED_ECRECOVER: PrecompileWithAddress = create_annotated_precompile!(secp256k1::ECRECOVER, "ecrecover"); @@ -101,7 +104,8 @@ impl CustomEvmConfig { ANNOTATED_BN_ADD, ANNOTATED_BN_MUL, ANNOTATED_BN_PAIR, - // ANNOTATED_KZG_PROOF, + #[cfg(feature = "kzg")] + ANNOTATED_KZG_PROOF, ]); loaded_precompiles From 67879249424c17c24a36e1903ebd0456777197b9 Mon Sep 17 00:00:00 2001 From: Jonathan Wang <31040440+jonathanpwang@users.noreply.github.com> Date: Tue, 18 Feb 2025 17:24:00 -0600 Subject: [PATCH 03/10] test: add blockhash --- bin/host/src/main.rs | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/bin/host/src/main.rs b/bin/host/src/main.rs index 98db1f5aa..9536b843c 100644 --- a/bin/host/src/main.rs +++ b/bin/host/src/main.rs @@ -7,7 +7,10 @@ use openvm_circuit::{ arch::{ instructions::exe::VmExe, DefaultSegmentationStrategy, SystemConfig, VmConfig, VmExecutor, }, - openvm_stark_sdk::config::baby_bear_poseidon2::BabyBearPoseidon2Config, + openvm_stark_sdk::{ + bench::run_with_metric_collection, config::baby_bear_poseidon2::BabyBearPoseidon2Config, + openvm_stark_backend::p3_field::PrimeField32, p3_baby_bear::BabyBear, + }, }; use openvm_client_executor::{ io::ClientExecutorInput, ChainVariant, CHAIN_ID_ETH_MAINNET, CHAIN_ID_LINEA_MAINNET, @@ -24,9 +27,9 @@ use openvm_sdk::{ prover::{AppProver, ContinuationProver}, Sdk, StdIn, }; -use openvm_stark_sdk::{bench::run_with_metric_collection, p3_baby_bear::BabyBear}; use openvm_transpiler::{elf::Elf, openvm_platform::memory::MEM_SIZE, FromElf}; pub use reth_primitives; +use reth_primitives::hex::ToHexExt; use std::{path::PathBuf, sync::Arc}; use tracing::info_span; @@ -216,9 +219,13 @@ async fn main() -> eyre::Result<()> { info_span!("reth-block", block_number = args.block_number).in_scope( || -> eyre::Result<()> { if args.execute { - let executor = VmExecutor::<_, _>::new(app_config.app_vm_config); - info_span!("execute", group = program_name) - .in_scope(|| executor.execute(exe, stdin))?; + let pvs = info_span!("execute", group = program_name) + .in_scope(|| sdk.execute(exe, app_config.app_vm_config, stdin))?; + let block_hash: Vec = pvs + .iter() + .map(|x| x.as_canonical_u32().try_into().unwrap()) + .collect::>(); + println!("block_hash: {}", ToHexExt::encode_hex(&block_hash)); } else if args.tracegen { let executor = VmExecutor::<_, _>::new(app_config.app_vm_config); info_span!("tracegen", group = program_name).in_scope(|| { @@ -262,7 +269,13 @@ async fn main() -> eyre::Result<()> { full_agg_pk, ); prover.set_program_name(program_name); - let _evm_proof = prover.generate_proof_for_evm(stdin); + let evm_proof = prover.generate_proof_for_evm(stdin); + let instances = &evm_proof.instances[0]; + let block_hash = instances[instances.len() - 32..] + .iter() + .map(|x| x.to_bytes()[0]) + .collect::>(); + println!("block_hash: {}", ToHexExt::encode_hex(&block_hash)); } Ok(()) From a54b204694e46efe1590225aa254c7632b6a376c Mon Sep 17 00:00:00 2001 From: Jonathan Wang <31040440+jonathanpwang@users.noreply.github.com> Date: Tue, 18 Feb 2025 17:30:47 -0600 Subject: [PATCH 04/10] fix: forgot sha2 extension --- bin/host/src/main.rs | 1 + run.sh | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/bin/host/src/main.rs b/bin/host/src/main.rs index 9536b843c..3acb87f3d 100644 --- a/bin/host/src/main.rs +++ b/bin/host/src/main.rs @@ -103,6 +103,7 @@ fn reth_vm_config( .rv32m(rv32m) .io(Default::default()) .keccak(Default::default()) + .sha256(Default::default()) .bigint(int256) .modular(ModularExtension::new(vec![ bn_config.modulus.clone(), diff --git a/run.sh b/run.sh index e1232bf4f..75bdbbb80 100755 --- a/run.sh +++ b/run.sh @@ -13,8 +13,8 @@ cd ../.. mkdir -p rpc-cache source .env -MODE=tracegen # can be execute, tracegen, prove, or prove-e2e -PROFILE="maxperf" +MODE=execute # can be execute, tracegen, prove, or prove-e2e +PROFILE="release" FEATURES="bench-metrics,nightly-features,jemalloc" BLOCK_NUMBER=21000000 From c3a19f925c59090497d63a891983eae669aba260 Mon Sep 17 00:00:00 2001 From: Jonathan Wang <31040440+jonathanpwang@users.noreply.github.com> Date: Tue, 18 Feb 2025 17:31:26 -0600 Subject: [PATCH 05/10] revert run.sh --- bin/client-eth/src/main.rs | 9 ++++++--- run.sh | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/bin/client-eth/src/main.rs b/bin/client-eth/src/main.rs index 27697f4f9..5d8608205 100644 --- a/bin/client-eth/src/main.rs +++ b/bin/client-eth/src/main.rs @@ -31,9 +31,12 @@ openvm_algebra_complex_macros::complex_init! { pub fn main() { println("client-eth starting"); - setup_all_moduli(); - setup_all_curves(); - setup_all_complex_extensions(); + setup_2(); + setup_3(); + setup_sw_Secp256k1Point(); + // setup_all_moduli(); + // setup_all_curves(); + // setup_all_complex_extensions(); // Read the input. let input: ClientExecutorInput = read(); diff --git a/run.sh b/run.sh index 75bdbbb80..720c72ade 100755 --- a/run.sh +++ b/run.sh @@ -13,8 +13,8 @@ cd ../.. mkdir -p rpc-cache source .env -MODE=execute # can be execute, tracegen, prove, or prove-e2e -PROFILE="release" +MODE=prove-e2e # can be execute, tracegen, prove, or prove-e2e +PROFILE="maxperf" FEATURES="bench-metrics,nightly-features,jemalloc" BLOCK_NUMBER=21000000 From 66cdc7f9c026d0994eacfe9c07501c8457a4dae4 Mon Sep 17 00:00:00 2001 From: Jonathan Wang <31040440+jonathanpwang@users.noreply.github.com> Date: Wed, 19 Feb 2025 19:50:42 -0600 Subject: [PATCH 06/10] feat: selective setup of intrinsics --- bin/client-eth/Cargo.toml | 4 ++-- bin/client-eth/src/main.rs | 35 ++++++++++++++++++++++++---- crates/executor/client/Cargo.toml | 5 +++- crates/executor/client/src/custom.rs | 32 +++++++++++++++++-------- run.sh | 6 ++--- 5 files changed, 61 insertions(+), 21 deletions(-) diff --git a/bin/client-eth/Cargo.toml b/bin/client-eth/Cargo.toml index 3b9c3cac0..8ccc99f34 100644 --- a/bin/client-eth/Cargo.toml +++ b/bin/client-eth/Cargo.toml @@ -8,7 +8,7 @@ edition = "2021" rustc-hash = "2.1.0" # workspace -openvm-client-executor = { path = "../../crates/executor/client", features = ["kzg"] } +openvm-client-executor = { path = "../../crates/executor/client" } revm-precompile = { version = "11.0.1", default-features = false, features = ["openvm"] } @@ -22,7 +22,7 @@ openvm-algebra-complex-macros = { git = "https://github.com/openvm-org/openvm.gi openvm-ecc-sw-macros = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938" } openvm-ecc-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", features = ["k256"] } openvm-bigint-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", features = ["export-intrinsics"] } -openvm-pairing-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", features = ["bn254"] } +openvm-pairing-guest = { git = "https://github.com/openvm-org/openvm.git", rev = "91496503cb9a214ce7f8cef3a4a6e35fc6f0d938", features = ["bn254", "bls12_381"] } # Statically turns off logging log = { version = "0.4", features = ["max_level_off", "release_max_level_off"] } diff --git a/bin/client-eth/src/main.rs b/bin/client-eth/src/main.rs index 5d8608205..9a9f0b7f9 100644 --- a/bin/client-eth/src/main.rs +++ b/bin/client-eth/src/main.rs @@ -1,7 +1,12 @@ use core::mem::transmute; use openvm::io::{println, read, reveal}; -use openvm_client_executor::{io::ClientExecutorInput, ClientExecutor, EthereumVariant}; +use openvm_client_executor::{ + custom::{USED_BN_ADD, USED_BN_MUL, USED_BN_PAIR, USED_KZG_PROOF}, + io::ClientExecutorInput, + reth_primitives::revm_primitives::FixedBytes, + ClientExecutor, EthereumVariant, +}; #[allow(unused_imports, clippy::single_component_path_imports)] use { openvm_algebra_guest::IntMod, @@ -31,12 +36,10 @@ openvm_algebra_complex_macros::complex_init! { pub fn main() { println("client-eth starting"); + // Setup secp256k1 because it is always used for recover_signers setup_2(); setup_3(); setup_sw_Secp256k1Point(); - // setup_all_moduli(); - // setup_all_curves(); - // setup_all_complex_extensions(); // Read the input. let input: ClientExecutorInput = read(); @@ -48,7 +51,29 @@ pub fn main() { let block_hash = header.hash_slow(); // Commit the block hash. - let block_hash = unsafe { transmute::<_, [u32; 8]>(block_hash) }; + // SAFETY: 32 bytes = 8 u32s + let block_hash = unsafe { transmute::, [u32; 8]>(block_hash) }; block_hash.into_iter().enumerate().for_each(|(i, x)| reveal(x, i)); + + // Setup can be called at any time. + if unsafe { USED_BN_ADD || USED_BN_MUL || USED_BN_PAIR } { + setup_0(); // Bn254 coordinate field + } + if unsafe { USED_BN_ADD || USED_BN_MUL } { + // pairing does not use ecc extension + setup_sw_Bn254G1Affine(); + } + if unsafe { USED_BN_MUL || USED_BN_PAIR } { + setup_1(); // Bn254 scalar field + } + if unsafe { USED_BN_PAIR } { + setup_complex_0(); // Bn254 complex extension of coordinate field + } + if unsafe { USED_KZG_PROOF } { + setup_4(); // Bls12-381 coordinate field + setup_5(); // Bls12-381 scalar field + setup_sw_Bls12_381G1Affine(); + setup_complex_1(); // Bls12-381 complex extension of coordinate field + } } diff --git a/crates/executor/client/Cargo.toml b/crates/executor/client/Cargo.toml index 0fceea3e5..71ad67139 100644 --- a/crates/executor/client/Cargo.toml +++ b/crates/executor/client/Cargo.toml @@ -52,8 +52,11 @@ futures.workspace = true [target.'cfg(target_os = "zkvm")'.dependencies] revm-primitives = { workspace = true, features = ["hashbrown"] } alloy-primitives = { workspace = true, features = ["native-keccak"] } +# revm must have feature `kzg-rs` or `openvm-kzg` enabled. Due to patching we cannot enable `openvm-kzg` here. + +[target.'cfg(not(target_os = "zkvm"))'.dependencies] +revm = { workspace = true, features = ["c-kzg"] } [dev-dependencies] [features] -kzg = [] diff --git a/crates/executor/client/src/custom.rs b/crates/executor/client/src/custom.rs index 98f4bc875..6bf5d0fd7 100644 --- a/crates/executor/client/src/custom.rs +++ b/crates/executor/client/src/custom.rs @@ -18,22 +18,32 @@ use reth_revm::{ handler::register::EvmHandler, precompile::PrecompileSpecId, primitives::Env, ContextPrecompiles, Database, Evm, EvmBuilder, }; -#[cfg(feature = "kzg")] -use revm::precompile::kzg_point_evaluation; -use revm::precompile::{bn128, secp256k1, Precompile, PrecompileResult, PrecompileWithAddress}; +use revm::precompile::{ + bn128, kzg_point_evaluation, secp256k1, Precompile, PrecompileResult, PrecompileWithAddress, +}; use std::sync::Arc; +pub static mut USED_BN_ADD: bool = false; +pub static mut USED_BN_MUL: bool = false; +pub static mut USED_BN_PAIR: bool = false; +pub static mut USED_ECRECOVER: bool = false; +pub static mut USED_KZG_PROOF: bool = false; + /// Create an annotated precompile that tracks the cycle count of a precompile. /// This is useful for tracking how many cycles in total are consumed by calls to a given /// precompile. macro_rules! create_annotated_precompile { - ($precompile:expr, $name:expr) => { + ($precompile:expr, $name:expr, $used:expr) => { PrecompileWithAddress( $precompile.0, Precompile::Standard(|input: &Bytes, gas_limit: u64| -> PrecompileResult { let precompile = $precompile.precompile(); match precompile { Precompile::Standard(precompile) => { + // SAFETY: only ever goes from false -> true + unsafe { + $used = true; + } println!(concat!("cycle-tracker-report-start: precompile-", $name)); let result = precompile(input, gas_limit); println!(concat!("cycle-tracker-report-end: precompile-", $name)); @@ -48,13 +58,16 @@ macro_rules! create_annotated_precompile { // An annotated version of the KZG point evaluation precompile. Because this is a stateful // precompile we cannot use the `create_annotated_precompile` macro -#[cfg(feature = "kzg")] pub(crate) const ANNOTATED_KZG_PROOF: PrecompileWithAddress = PrecompileWithAddress( kzg_point_evaluation::POINT_EVALUATION.0, Precompile::Env(|input: &Bytes, gas_limit: u64, env: &Env| -> PrecompileResult { let precompile = kzg_point_evaluation::POINT_EVALUATION.precompile(); match precompile { Precompile::Env(precompile) => { + unsafe { + // SAFETY: only ever goes from false -> true + USED_KZG_PROOF = true; + } println!(concat!( "cycle-tracker-report-start: precompile-", "kzg-point-evaluation" @@ -69,13 +82,13 @@ pub(crate) const ANNOTATED_KZG_PROOF: PrecompileWithAddress = PrecompileWithAddr ); pub(crate) const ANNOTATED_ECRECOVER: PrecompileWithAddress = - create_annotated_precompile!(secp256k1::ECRECOVER, "ecrecover"); + create_annotated_precompile!(secp256k1::ECRECOVER, "ecrecover", USED_ECRECOVER); pub(crate) const ANNOTATED_BN_ADD: PrecompileWithAddress = - create_annotated_precompile!(bn128::add::ISTANBUL, "bn-add"); + create_annotated_precompile!(bn128::add::ISTANBUL, "bn-add", USED_BN_ADD); pub(crate) const ANNOTATED_BN_MUL: PrecompileWithAddress = - create_annotated_precompile!(bn128::mul::ISTANBUL, "bn-mul"); + create_annotated_precompile!(bn128::mul::ISTANBUL, "bn-mul", USED_BN_MUL); pub(crate) const ANNOTATED_BN_PAIR: PrecompileWithAddress = - create_annotated_precompile!(bn128::pair::ISTANBUL, "bn-pair"); + create_annotated_precompile!(bn128::pair::ISTANBUL, "bn-pair", USED_BN_PAIR); /// Custom EVM configuration #[derive(Debug, Clone, Copy)] @@ -104,7 +117,6 @@ impl CustomEvmConfig { ANNOTATED_BN_ADD, ANNOTATED_BN_MUL, ANNOTATED_BN_PAIR, - #[cfg(feature = "kzg")] ANNOTATED_KZG_PROOF, ]); diff --git a/run.sh b/run.sh index 720c72ade..78b45c377 100755 --- a/run.sh +++ b/run.sh @@ -13,10 +13,10 @@ cd ../.. mkdir -p rpc-cache source .env -MODE=prove-e2e # can be execute, tracegen, prove, or prove-e2e -PROFILE="maxperf" +MODE=execute # can be execute, tracegen, prove, or prove-e2e +PROFILE="release" FEATURES="bench-metrics,nightly-features,jemalloc" -BLOCK_NUMBER=21000000 +BLOCK_NUMBER=21882667 arch=$(uname -m) case $arch in From 2bcbe047c3f3b3ec53835fe1e266da5a424409fe Mon Sep 17 00:00:00 2001 From: Jonathan Wang <31040440+jonathanpwang@users.noreply.github.com> Date: Fri, 21 Feb 2025 14:47:40 -0600 Subject: [PATCH 07/10] feature gate kzg-intrinsics --- bin/client-eth/Cargo.lock | 10 +++++----- bin/client-eth/Cargo.toml | 1 + bin/client-eth/src/main.rs | 22 ++++++++++++++++++++++ 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/bin/client-eth/Cargo.lock b/bin/client-eth/Cargo.lock index ee4743e9a..5ac736224 100644 --- a/bin/client-eth/Cargo.lock +++ b/bin/client-eth/Cargo.lock @@ -2663,7 +2663,7 @@ dependencies = [ [[package]] name = "openvm-kzg" version = "0.1.0-alpha" -source = "git+https://github.com/axiom-crypto/openvm-kzg.git?rev=c6028f9f81049c958866cc6df4cd1454955159ae#c6028f9f81049c958866cc6df4cd1454955159ae" +source = "git+https://github.com/axiom-crypto/openvm-kzg.git?rev=480372aa04dc0b3c2df2a9d31fe5a4c84a8cf13c#480372aa04dc0b3c2df2a9d31fe5a4c84a8cf13c" dependencies = [ "bls12_381 0.8.0", "ff 0.13.0", @@ -4057,7 +4057,7 @@ dependencies = [ [[package]] name = "revm" version = "14.0.1" -source = "git+https://github.com/axiom-crypto/revm?branch=v43-openvm#412fdf0a23444a48752401d56b66ac6abadbe628" +source = "git+https://github.com/axiom-crypto/revm?branch=v43-openvm#698a1e8904848897e0bcf573e0fc12aee46d7ad7" dependencies = [ "auto_impl", "cfg-if", @@ -4071,7 +4071,7 @@ dependencies = [ [[package]] name = "revm-interpreter" version = "10.0.1" -source = "git+https://github.com/axiom-crypto/revm?branch=v43-openvm#412fdf0a23444a48752401d56b66ac6abadbe628" +source = "git+https://github.com/axiom-crypto/revm?branch=v43-openvm#698a1e8904848897e0bcf573e0fc12aee46d7ad7" dependencies = [ "revm-primitives", "serde", @@ -4080,7 +4080,7 @@ dependencies = [ [[package]] name = "revm-precompile" version = "11.0.1" -source = "git+https://github.com/axiom-crypto/revm?branch=v43-openvm#412fdf0a23444a48752401d56b66ac6abadbe628" +source = "git+https://github.com/axiom-crypto/revm?branch=v43-openvm#698a1e8904848897e0bcf573e0fc12aee46d7ad7" dependencies = [ "aurora-engine-modexp", "c-kzg", @@ -4104,7 +4104,7 @@ dependencies = [ [[package]] name = "revm-primitives" version = "9.0.1" -source = "git+https://github.com/axiom-crypto/revm?branch=v43-openvm#412fdf0a23444a48752401d56b66ac6abadbe628" +source = "git+https://github.com/axiom-crypto/revm?branch=v43-openvm#698a1e8904848897e0bcf573e0fc12aee46d7ad7" dependencies = [ "alloy-eips", "alloy-primitives", diff --git a/bin/client-eth/Cargo.toml b/bin/client-eth/Cargo.toml index 8ccc99f34..986553c09 100644 --- a/bin/client-eth/Cargo.toml +++ b/bin/client-eth/Cargo.toml @@ -31,6 +31,7 @@ tracing = { version = "0.1", features = ["max_level_off", "release_max_level_off [features] default = [] heap-embedded-alloc = ["openvm/heap-embedded-alloc"] +kzg-intrinsics = ["revm-precompile/openvm-kzg-intrinsics"] # uses OpenVM BLS12-381 intrinsic functions [patch.crates-io] revm = { git = "https://github.com/axiom-crypto/revm", branch = "v43-openvm" } diff --git a/bin/client-eth/src/main.rs b/bin/client-eth/src/main.rs index 9a9f0b7f9..c75f55980 100644 --- a/bin/client-eth/src/main.rs +++ b/bin/client-eth/src/main.rs @@ -1,6 +1,7 @@ use core::mem::transmute; use openvm::io::{println, read, reveal}; +#[allow(unused_imports)] use openvm_client_executor::{ custom::{USED_BN_ADD, USED_BN_MUL, USED_BN_PAIR, USED_KZG_PROOF}, io::ClientExecutorInput, @@ -16,6 +17,7 @@ use { openvm_pairing_guest::{bls12_381::Bls12_381G1Affine, bn254::Bn254G1Affine}, }; +#[cfg(feature = "kzg-intrinsics")] openvm_algebra_moduli_macros::moduli_init! { "0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47", // Bn254Fp Coordinate field "0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001", // Bn254 Scalar field @@ -24,16 +26,35 @@ openvm_algebra_moduli_macros::moduli_init! { "0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab", // BLS12-381 Coordinate field "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" // BLS12-381 Scalar field } +#[cfg(feature = "kzg-intrinsics")] openvm_ecc_sw_macros::sw_init! { Bn254G1Affine, Secp256k1Point, Bls12_381G1Affine, } +#[cfg(feature = "kzg-intrinsics")] openvm_algebra_complex_macros::complex_init! { Bn254Fp2 { mod_idx = 0 }, Bls12_381Fp2 { mod_idx = 4 }, } +#[cfg(not(feature = "kzg-intrinsics"))] +openvm_algebra_moduli_macros::moduli_init! { + "0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47", // Bn254Fp Coordinate field + "0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001", // Bn254 Scalar field + "0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F", // secp256k1 Coordinate field + "0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141", // secp256k1 Scalar field +} +#[cfg(not(feature = "kzg-intrinsics"))] +openvm_ecc_sw_macros::sw_init! { + Bn254G1Affine, + Secp256k1Point, +} +#[cfg(not(feature = "kzg-intrinsics"))] +openvm_algebra_complex_macros::complex_init! { + Bn254Fp2 { mod_idx = 0 }, +} + pub fn main() { println("client-eth starting"); // Setup secp256k1 because it is always used for recover_signers @@ -70,6 +91,7 @@ pub fn main() { if unsafe { USED_BN_PAIR } { setup_complex_0(); // Bn254 complex extension of coordinate field } + #[cfg(feature = "kzg-intrinsics")] if unsafe { USED_KZG_PROOF } { setup_4(); // Bls12-381 coordinate field setup_5(); // Bls12-381 scalar field From 363d4929ea305f9e6d506d2bacd7552b3131c1b7 Mon Sep 17 00:00:00 2001 From: Jonathan Wang <31040440+jonathanpwang@users.noreply.github.com> Date: Fri, 21 Feb 2025 14:55:30 -0600 Subject: [PATCH 08/10] chore: update host --- bin/host/src/main.rs | 47 ++++++++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/bin/host/src/main.rs b/bin/host/src/main.rs index 3acb87f3d..1ca15015e 100644 --- a/bin/host/src/main.rs +++ b/bin/host/src/main.rs @@ -75,6 +75,9 @@ struct HostArgs { /// Max cells per chip in segment for continuations #[arg(short, long, alias = "max_cells_per_chip_in_segment")] pub max_cells_per_chip_in_segment: Option, + + #[arg(long)] + pub kzg_intrinsics: bool, } const OPENVM_CLIENT_ETH_ELF: &[u8] = include_bytes!("../elf/openvm-client-eth"); @@ -83,6 +86,7 @@ fn reth_vm_config( app_log_blowup: usize, max_segment_length: usize, max_cells_per_chip_in_segment: usize, + use_kzg_intrinsics: bool, ) -> SdkVmConfig { let mut system_config = SystemConfig::default() .with_continuations() @@ -97,6 +101,22 @@ fn reth_vm_config( let bls_config = PairingCurve::Bls12_381.curve_config(); // The builder will do this automatically, but we set it just in case. let rv32m = Rv32M { range_tuple_checker_sizes: int256.range_tuple_checker_sizes }; + let mut supported_moduli = vec![ + bn_config.modulus.clone(), + bn_config.scalar.clone(), + SECP256K1_CONFIG.modulus.clone(), + SECP256K1_CONFIG.scalar.clone(), + ]; + let mut supported_complex_moduli = vec![bn_config.modulus.clone()]; + let mut supported_curves = vec![bn_config.clone(), SECP256K1_CONFIG.clone()]; + let mut supported_pairing_curves = vec![PairingCurve::Bn254]; + if use_kzg_intrinsics { + supported_moduli.push(bls_config.modulus.clone()); + supported_moduli.push(bls_config.scalar.clone()); + supported_complex_moduli.push(bls_config.modulus.clone()); + supported_curves.push(bls_config.clone()); + supported_pairing_curves.push(PairingCurve::Bls12_381); + } SdkVmConfig::builder() .system(system_config.into()) .rv32i(Default::default()) @@ -105,21 +125,10 @@ fn reth_vm_config( .keccak(Default::default()) .sha256(Default::default()) .bigint(int256) - .modular(ModularExtension::new(vec![ - bn_config.modulus.clone(), - bn_config.scalar.clone(), - SECP256K1_CONFIG.modulus.clone(), - SECP256K1_CONFIG.scalar.clone(), - bls_config.modulus.clone(), - bls_config.scalar.clone(), - ])) - .fp2(Fp2Extension::new(vec![bn_config.modulus.clone(), bls_config.modulus.clone()])) - .ecc(WeierstrassExtension::new(vec![ - bn_config.clone(), - SECP256K1_CONFIG.clone(), - bls_config.clone(), - ])) - .pairing(PairingExtension::new(vec![PairingCurve::Bn254, PairingCurve::Bls12_381])) + .modular(ModularExtension::new(supported_moduli)) + .fp2(Fp2Extension::new(supported_complex_moduli)) + .ecc(WeierstrassExtension::new(supported_curves)) + .pairing(PairingExtension::new(supported_pairing_curves)) .build() } @@ -198,8 +207,12 @@ async fn main() -> eyre::Result<()> { let max_cells_per_chip_in_segment = args.max_cells_per_chip_in_segment.unwrap_or(((1 << 23) - 100) * 120); - let vm_config = - reth_vm_config(app_log_blowup, max_segment_length, max_cells_per_chip_in_segment); + let vm_config = reth_vm_config( + app_log_blowup, + max_segment_length, + max_cells_per_chip_in_segment, + args.kzg_intrinsics, + ); let sdk = Sdk; let elf = Elf::decode(OPENVM_CLIENT_ETH_ELF, MEM_SIZE as u32)?; let exe = VmExe::from_elf(elf, vm_config.transpiler()).unwrap(); From ed650ac019745936a133473b914cea4296db7fce Mon Sep 17 00:00:00 2001 From: Jonathan Wang <31040440+jonathanpwang@users.noreply.github.com> Date: Fri, 21 Feb 2025 14:56:53 -0600 Subject: [PATCH 09/10] tmp: use kzg-intrinsics --- .github/workflows/reth-benchmark.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/reth-benchmark.yml b/.github/workflows/reth-benchmark.yml index 7c1986712..368e56573 100644 --- a/.github/workflows/reth-benchmark.yml +++ b/.github/workflows/reth-benchmark.yml @@ -255,7 +255,7 @@ jobs: working-directory: bin/client-eth run: | GUEST_PROFILE=${{ steps.set-cache-keys.outputs.guest_profile }} - cargo openvm build --no-transpile --profile=$GUEST_PROFILE + cargo openvm build --no-transpile --profile=$GUEST_PROFILE --features=kzg-intrinsics mkdir -p ../host/elf cp target/riscv32im-risc0-zkvm-elf/$GUEST_PROFILE/openvm-client-eth ../host/elf/ @@ -318,6 +318,7 @@ jobs: --root-log-blowup ${{ inputs.root_log_blowup || github.event.inputs.root_log_blowup }} \ --max-segment-length ${{ inputs.max_segment_length || github.event.inputs.max_segment_length }} \ --max-cells-per-chip-in-segment ${{ inputs.max_cells_per_chip_in_segment || github.event.inputs.max_cells_per_chip_in_segment }} \ + --kzg-intrinsics \ $OPTIONAL_ARGS EOF chmod +x run_benchmark.sh From 0a7c8bd0bcf22885a69df0727f31cf18f3b03b01 Mon Sep 17 00:00:00 2001 From: Jonathan Wang <31040440+jonathanpwang@users.noreply.github.com> Date: Fri, 21 Feb 2025 16:53:14 -0600 Subject: [PATCH 10/10] Revert "tmp: use kzg-intrinsics" This reverts commit ed650ac019745936a133473b914cea4296db7fce. --- .github/workflows/reth-benchmark.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/reth-benchmark.yml b/.github/workflows/reth-benchmark.yml index 368e56573..7c1986712 100644 --- a/.github/workflows/reth-benchmark.yml +++ b/.github/workflows/reth-benchmark.yml @@ -255,7 +255,7 @@ jobs: working-directory: bin/client-eth run: | GUEST_PROFILE=${{ steps.set-cache-keys.outputs.guest_profile }} - cargo openvm build --no-transpile --profile=$GUEST_PROFILE --features=kzg-intrinsics + cargo openvm build --no-transpile --profile=$GUEST_PROFILE mkdir -p ../host/elf cp target/riscv32im-risc0-zkvm-elf/$GUEST_PROFILE/openvm-client-eth ../host/elf/ @@ -318,7 +318,6 @@ jobs: --root-log-blowup ${{ inputs.root_log_blowup || github.event.inputs.root_log_blowup }} \ --max-segment-length ${{ inputs.max_segment_length || github.event.inputs.max_segment_length }} \ --max-cells-per-chip-in-segment ${{ inputs.max_cells_per_chip_in_segment || github.event.inputs.max_cells_per_chip_in_segment }} \ - --kzg-intrinsics \ $OPTIONAL_ARGS EOF chmod +x run_benchmark.sh