feat(jolt): add secp256k1 inlines support (#286)

Co-authored-by: Han <tinghan0110@gmail.com>
This commit is contained in:
brech1
2026-02-06 12:12:17 -03:00
committed by GitHub
parent 45bebbfe5c
commit 23b863a68b
4 changed files with 40 additions and 7 deletions

40
Cargo.lock generated
View File

@@ -940,6 +940,16 @@ dependencies = [
"tracing-subscriber 0.2.25",
]
[[package]]
name = "ark-secp256k1"
version = "0.5.0"
source = "git+https://github.com/a16z/arkworks-algebra?branch=dev%2Ftwist-shout#76bb3a4518928f1ff7f15875f940d614bb9845e6"
dependencies = [
"ark-ec",
"ark-ff 0.5.0",
"ark-std 0.5.0",
]
[[package]]
name = "ark-serialize"
version = "0.3.0"
@@ -1841,7 +1851,7 @@ dependencies = [
"bitflags 2.9.0",
"cexpr",
"clang-sys",
"itertools 0.12.1",
"itertools 0.11.0",
"lazy_static",
"lazycell",
"log",
@@ -1864,7 +1874,7 @@ dependencies = [
"bitflags 2.9.0",
"cexpr",
"clang-sys",
"itertools 0.13.0",
"itertools 0.11.0",
"log",
"prettyplease 0.2.32",
"proc-macro2",
@@ -3920,6 +3930,7 @@ dependencies = [
"ere-test-utils",
"ere-zkvm-interface",
"jolt-core",
"jolt-inlines-secp256k1",
"jolt-sdk",
"serde",
"tempfile",
@@ -6233,6 +6244,23 @@ dependencies = [
"tracing",
]
[[package]]
name = "jolt-inlines-secp256k1"
version = "0.1.0"
source = "git+https://github.com/a16z/jolt.git?rev=6dcd401#6dcd401375efbf1a0e70079088745bacd55d4e88"
dependencies = [
"ark-ec",
"ark-ff 0.5.0",
"ark-secp256k1",
"ark-serialize 0.5.0",
"ctor 0.2.9",
"num-bigint 0.4.6",
"num-integer",
"serde",
"tracer",
"tracing",
]
[[package]]
name = "jolt-inlines-sha2"
version = "0.1.0"
@@ -10923,8 +10951,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4"
dependencies = [
"bytes",
"heck 0.5.0",
"itertools 0.12.1",
"heck 0.4.1",
"itertools 0.11.0",
"log",
"multimap 0.10.1",
"once_cell",
@@ -10943,7 +10971,7 @@ version = "0.13.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf"
dependencies = [
"heck 0.5.0",
"heck 0.4.1",
"itertools 0.14.0",
"log",
"multimap 0.10.1",
@@ -10977,7 +11005,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1"
dependencies = [
"anyhow",
"itertools 0.12.1",
"itertools 0.11.0",
"proc-macro2",
"quote",
"syn 2.0.101",

View File

@@ -91,6 +91,7 @@ jolt-ark-serialize = { git = "https://github.com/a16z/arkworks-algebra", package
jolt-common = { git = "https://github.com/a16z/jolt.git", package = "common", rev = "6dcd401", default-features = false }
jolt-core = { git = "https://github.com/a16z/jolt.git", rev = "6dcd401" }
jolt-sdk = { git = "https://github.com/a16z/jolt.git", rev = "6dcd401", default-features = false }
jolt-inlines-secp256k1 = { git = "https://github.com/a16z/jolt.git", rev = "6dcd401", features = ["host"] }
# Miden dependencies
miden-assembly = { git = "https://github.com/0xPolygonMiden/miden-vm.git", tag = "v0.20.4" }

View File

@@ -16,6 +16,7 @@ jolt-ark-serialize = { workspace = true, features = ["derive"] }
jolt-common.workspace = true
jolt-core.workspace = true
jolt-sdk = { workspace = true, features = ["host"], optional = true }
jolt-inlines-secp256k1 = { workspace = true, optional = true }
# Local dependencies
ere-compile-utils = { workspace = true, optional = true }
@@ -30,7 +31,7 @@ ere-build-utils.workspace = true
[features]
default = ["compiler", "zkvm"]
compiler = ["dep:ere-compile-utils"]
zkvm = ["dep:jolt-sdk"]
zkvm = ["dep:jolt-sdk", "dep:jolt-inlines-secp256k1"]
[lints]
workspace = true

View File

@@ -46,3 +46,6 @@ pub mod zkvm;
#[cfg(feature = "zkvm")]
pub use zkvm::*;
#[cfg(feature = "zkvm")]
use jolt_inlines_secp256k1 as _;