From cb2fe2b6072b3a07cb0fa2959d5a2b83f77c0906 Mon Sep 17 00:00:00 2001 From: martyall Date: Mon, 13 Jan 2025 15:22:39 -0800 Subject: [PATCH 1/2] sanity check --- o1vm/src/interpreters/mips/witness.rs | 6 +++++- o1vm/src/preimage_oracle.rs | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/o1vm/src/interpreters/mips/witness.rs b/o1vm/src/interpreters/mips/witness.rs index f09174540d..fea8e7027b 100644 --- a/o1vm/src/interpreters/mips/witness.rs +++ b/o1vm/src/interpreters/mips/witness.rs @@ -606,6 +606,7 @@ impl InterpreterEnv for Env InterpreterEnv for Env = panic!( + "Attempted to get preimage key {}", + hex::encode(preimage_key) + ); self.preimage = Some(preimage.clone()); self.preimage_key = Some(preimage_key); } diff --git a/o1vm/src/preimage_oracle.rs b/o1vm/src/preimage_oracle.rs index 571b4a7603..2a78fde5db 100644 --- a/o1vm/src/preimage_oracle.rs +++ b/o1vm/src/preimage_oracle.rs @@ -176,7 +176,9 @@ impl PreImageOracleT for PreImageOracle { // +---------------------------------+ // a. a 64-bit integer indicating the length of the actual data // b. the preimage data, with a size of bits + #[allow(unreachable_code)] fn get_preimage(&mut self, key: [u8; 32]) -> Preimage { + panic!("Attempted to get preimage for key {}", hex::encode(&key)); let RW(ReadWrite { reader, writer }) = &mut self.oracle_client; let r = writer.write_all(&key); From fa0e9816bc519ab0cf8be9a89d64f279b7c5db71 Mon Sep 17 00:00:00 2001 From: martyall Date: Mon, 13 Jan 2025 17:15:56 -0800 Subject: [PATCH 2/2] once more for great good --- o1vm/src/interpreters/mips/witness.rs | 4 +- o1vm/src/preimage_oracle.rs | 64 ++++++++++++++------------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/o1vm/src/interpreters/mips/witness.rs b/o1vm/src/interpreters/mips/witness.rs index fea8e7027b..c4ccc5822a 100644 --- a/o1vm/src/interpreters/mips/witness.rs +++ b/o1vm/src/interpreters/mips/witness.rs @@ -622,12 +622,10 @@ impl InterpreterEnv for Env = panic!( + panic!( "Attempted to get preimage key {}", hex::encode(preimage_key) ); - self.preimage = Some(preimage.clone()); - self.preimage_key = Some(preimage_key); } const LENGTH_SIZE: usize = 8; diff --git a/o1vm/src/preimage_oracle.rs b/o1vm/src/preimage_oracle.rs index 2a78fde5db..1a023b3f8a 100644 --- a/o1vm/src/preimage_oracle.rs +++ b/o1vm/src/preimage_oracle.rs @@ -3,7 +3,7 @@ use crate::cannon::{ PREIMAGE_CLIENT_READ_FD, PREIMAGE_CLIENT_WRITE_FD, }; use command_fds::{CommandFdExt, FdMapping}; -use log::debug; +//use log::debug; use os_pipe::{PipeReader, PipeWriter}; use std::{ io::{Read, Write}, @@ -20,7 +20,9 @@ pub struct PreImageOracle { } pub trait PreImageOracleT { - fn get_preimage(&mut self, key: [u8; 32]) -> Preimage; + fn get_preimage(&mut self, key: [u8; 32]) -> Preimage { + panic!("This function is never being used {}", hex::encode(key)); + } fn hint(&mut self, hint: Hint); } @@ -178,35 +180,35 @@ impl PreImageOracleT for PreImageOracle { // b. the preimage data, with a size of bits #[allow(unreachable_code)] fn get_preimage(&mut self, key: [u8; 32]) -> Preimage { - panic!("Attempted to get preimage for key {}", hex::encode(&key)); - let RW(ReadWrite { reader, writer }) = &mut self.oracle_client; - - let r = writer.write_all(&key); - assert!(r.is_ok()); - let r = writer.flush(); - assert!(r.is_ok()); - - debug!("Reading response"); - let mut buf = [0_u8; 8]; - let resp = reader.read_exact(&mut buf); - assert!(resp.is_ok()); - - debug!("Extracting contents"); - let length = u64::from_be_bytes(buf); - let mut preimage = vec![0_u8; length as usize]; - let resp = reader.read_exact(&mut preimage); - - assert!(resp.is_ok()); - - debug!( - "Got preimage of length {}\n {}", - preimage.len(), - hex::encode(&preimage) - ); - // We should have read exactly bytes - assert_eq!(preimage.len(), length as usize); - - Preimage::create(preimage) + panic!("Attempted to get preimage for key {}", hex::encode(key)); + //let RW(ReadWrite { reader, writer }) = &mut self.oracle_client; + + //let r = writer.write_all(&key); + //assert!(r.is_ok()); + //let r = writer.flush(); + //assert!(r.is_ok()); + + //debug!("Reading response"); + //let mut buf = [0_u8; 8]; + //let resp = reader.read_exact(&mut buf); + //assert!(resp.is_ok()); + + //debug!("Extracting contents"); + //let length = u64::from_be_bytes(buf); + //let mut preimage = vec![0_u8; length as usize]; + //let resp = reader.read_exact(&mut preimage); + + //assert!(resp.is_ok()); + + //debug!( + // "Got preimage of length {}\n {}", + // preimage.len(), + // hex::encode(&preimage) + //); + //// We should have read exactly bytes + //assert_eq!(preimage.len(), length as usize); + + //Preimage::create(preimage) } // The hint protocol goes as follows: