Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/target
/Cargo.lock
.vscode
.DS_Store
.DS_Store
.claude/
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ serde_json = "1.0"
spongefish = { git = "https://github.com/z-tech/spongefish.git", branch = "smallfp-support", features = [
"ark-ff",
] }
efficient-sumcheck = { git = "https://github.com/compsec-epfl/efficient-sumcheck.git" }
effsc = { git = "https://github.com/compsec-epfl/efficient-sumcheck.git" }
thiserror = "2.0.16"
ark-codes = { git = "https://github.com/dmpierre/ark-codes.git" }

Expand Down
2 changes: 1 addition & 1 deletion benches/utils/domainsep.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ use spongefish::ProverState;

pub fn init_prover_state() -> ProverState {
let domainsep = spongefish::domain_separator!("warp::rs");
domainsep.instance(&0u32).std_prover()
domainsep.without_session().instance(&0u32).std_prover()
}
20 changes: 20 additions & 0 deletions src/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,26 @@ impl From<spongefish::VerificationError> for VerifierError {
}
}

impl From<effsc::proof::SumcheckError> for VerifierError {
fn from(err: effsc::proof::SumcheckError) -> Self {
use effsc::proof::SumcheckError;
match err {
// Round consistency or degree mismatch detected by the library.
SumcheckError::ConsistencyCheck { .. } | SumcheckError::DegreeMismatch { .. } => {
Self::SumcheckRound
}
// Not raised by `sumcheck_verify` any more (the library dropped
// the internal oracle check); warp does the final-claim check
// itself. Retained for enum completeness.
SumcheckError::FinalEvaluation => Self::Target,
// Ran out of transcript or malformed bytes.
SumcheckError::TranscriptError { .. } => Self::SpongeFish,
// Unreachable: warp always passes a noop hook.
SumcheckError::HookError { .. } => Self::SumcheckRound,
}
}
}

#[derive(Error, Debug)]
pub enum DeciderError {
#[error("Invalid merkle root")]
Expand Down
Loading
Loading