From e48676d15b83c9349439e61ad6e2803f270c85e7 Mon Sep 17 00:00:00 2001 From: umadayal Date: Wed, 4 Dec 2024 18:31:18 -0800 Subject: [PATCH] invert --- crates/core/executor/src/hook.rs | 2 +- examples/Cargo.lock | 2 +- examples/elf/riscv32im-succinct-zkvm-elf | Bin 1793236 -> 1793220 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/core/executor/src/hook.rs b/crates/core/executor/src/hook.rs index b95b380b8..d1a1114fb 100644 --- a/crates/core/executor/src/hook.rs +++ b/crates/core/executor/src/hook.rs @@ -6,7 +6,7 @@ use hashbrown::HashMap; use sp1_curves::{ ecdsa::RecoveryId as ecdsaRecoveryId, k256::{Invert, RecoveryId, Signature, VerifyingKey}, - p256::{Signature as p256Signature, VerifyingKey as p256VerifyingKey}, + p256::{Invert as p256Invert, Signature as p256Signature, VerifyingKey as p256VerifyingKey}, }; use crate::Executor; diff --git a/examples/Cargo.lock b/examples/Cargo.lock index 1c22eee3d..2359997c1 100644 --- a/examples/Cargo.lock +++ b/examples/Cargo.lock @@ -5901,7 +5901,7 @@ dependencies = [ [[package]] name = "sp1-lib" version = "4.0.0-rc.1" -source = "git+https://github.com/succinctlabs/sp1.git?branch=v4.0.0-rc.2#43792f1c6b7ff80f6c854d4eab9f60e0d49b822e" +source = "git+https://github.com/succinctlabs/sp1.git?branch=v4.0.0-rc.2#9bb49f4c6a5757c597e5b13a3e9e8a2b6e18cd41" dependencies = [ "bincode", "serde", diff --git a/examples/elf/riscv32im-succinct-zkvm-elf b/examples/elf/riscv32im-succinct-zkvm-elf index c149c58c562c6148da21b39a8fe6950e5b3103e8..a3e78afb29012a47a50ad6b516249175bba20236 100755 GIT binary patch delta 11704 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 VC7vFN`K7>OLFi;ZJSwp3{{j+}mX!bi delta 11701 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 WIe)I7w-WG7Sh*l{lB-6B1^+*{D~5ys