This commit is contained in:
Rostyslav Tyshko 2024-11-10 02:14:01 +01:00
parent ac55fcf01d
commit 88e71fce82

View File

@ -4,14 +4,10 @@ pub fn prove<T: serde::ser::Serialize>(input_vec: Vec<T>, elf: &[u8]) -> (u64, R
let mut builder = ExecutorEnv::builder(); let mut builder = ExecutorEnv::builder();
for input in input_vec { for input in input_vec {
builder builder.write(&input).unwrap();
.write(&input)
.unwrap();
} }
let env = builder let env = builder.build().unwrap();
.build()
.unwrap();
let prover = default_prover(); let prover = default_prover();
@ -23,69 +19,57 @@ pub fn prove<T: serde::ser::Serialize>(input_vec: Vec<T>, elf: &[u8]) -> (u64, R
pub fn verify(receipt: Receipt, image_id: impl Into<Digest>) { pub fn verify(receipt: Receipt, image_id: impl Into<Digest>) {
receipt receipt
.verify(image_id) .verify(image_id)
.expect("receipt verification failed"); .expect("receipt verification failed");
} }
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use test_methods::{SUMMATION_ELF, SUMMATION_ID};
use test_methods::{MULTIPLICATION_ELF, MULTIPLICATION_ID};
use super::*; use super::*;
use test_methods::{MULTIPLICATION_ELF, MULTIPLICATION_ID};
use test_methods::{SUMMATION_ELF, SUMMATION_ID};
#[test] #[test]
fn simple_sum() { fn simple_sum() {
let message = 1; let message = 1;
let message_2 = 2; let message_2 = 2;
let (digest, receipt) = prove(vec![message, message_2], SUMMATION_ELF); let (digest, receipt) = prove(vec![message, message_2], SUMMATION_ELF);
verify(receipt, SUMMATION_ID); verify(receipt, SUMMATION_ID);
assert_eq!( assert_eq!(digest, message + message_2);
digest,
message + message_2
);
} }
#[test] #[test]
fn bigger_sum() { fn bigger_sum() {
let message = 123476; let message = 123476;
let message_2 = 2342384; let message_2 = 2342384;
let (digest, receipt) = prove(vec![message, message_2], SUMMATION_ELF); let (digest, receipt) = prove(vec![message, message_2], SUMMATION_ELF);
verify(receipt, SUMMATION_ID); verify(receipt, SUMMATION_ID);
assert_eq!( assert_eq!(digest, message + message_2);
digest,
message + message_2
);
} }
#[test] #[test]
fn simple_multiplication() { fn simple_multiplication() {
let message = 1; let message = 1;
let message_2 = 2; let message_2 = 2;
let (digest, receipt) = prove(vec![message, message_2], MULTIPLICATION_ELF); let (digest, receipt) = prove(vec![message, message_2], MULTIPLICATION_ELF);
verify(receipt, MULTIPLICATION_ID); verify(receipt, MULTIPLICATION_ID);
assert_eq!( assert_eq!(digest, message * message_2);
digest,
message * message_2
);
} }
#[test] #[test]
fn bigger_multiplication() { fn bigger_multiplication() {
let message = 3498; let message = 3498;
let message_2 = 438563; let message_2 = 438563;
let (digest, receipt) = prove(vec![message, message_2], MULTIPLICATION_ELF); let (digest, receipt) = prove(vec![message, message_2], MULTIPLICATION_ELF);
verify(receipt, MULTIPLICATION_ID); verify(receipt, MULTIPLICATION_ID);
assert_eq!( assert_eq!(digest, message * message_2);
digest,
message * message_2
);
} }
} }