diff --git a/Cargo.lock b/Cargo.lock index 8e67706..5c26965 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2098,6 +2098,7 @@ dependencies = [ "quartz-proto", "serde", "serde_json", + "tempfile", "tokio", "tonic", ] diff --git a/utils/quartz-relayer/Cargo.toml b/utils/quartz-relayer/Cargo.toml index b9193cd..ded46a7 100644 --- a/utils/quartz-relayer/Cargo.toml +++ b/utils/quartz-relayer/Cargo.toml @@ -8,6 +8,7 @@ clap = { version = "4.1.8", features = ["derive"] } cosmwasm-std = "1.4.0" serde = { version = "1.0.189", features = ["derive"] } serde_json = "1.0.94" +tempfile = "3" tonic = "0.11" tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] } diff --git a/utils/quartz-relayer/src/main.rs b/utils/quartz-relayer/src/main.rs index a28948c..1e5fb29 100644 --- a/utils/quartz-relayer/src/main.rs +++ b/utils/quartz-relayer/src/main.rs @@ -1,15 +1,17 @@ mod cli; -use std::{fs::File, io::Write}; -use std::fs::read_to_string; -use std::process::Command; +use std::{ + fs::{read_to_string, File}, + io::Write, + process::Command, +}; use clap::Parser; -use serde_json::json; use quartz_proto::quartz::{core_client::CoreClient, InstantiateRequest}; use quartz_relayer::types::InstantiateResponse; +use serde_json::json; -use crate::{cli::Cli}; +use crate::cli::Cli; #[tokio::main] async fn main() -> Result<(), Box> { @@ -19,23 +21,31 @@ async fn main() -> Result<(), Box> { let response = client.instantiate(InstantiateRequest {}).await?; let response: InstantiateResponse = response.into_inner().try_into()?; - let mut quote_file = File::create("test.quote")?; + let dir = tempfile::tempdir()?; + let quote_file_path = dir.path().join("test.quote"); + let datareport_file_path = dir.path().join("datareport"); + let datareportsig_file_path = dir.path().join("datareportsig"); + + let mut quote_file = File::create(quote_file_path)?; quote_file.write_all(response.quote())?; let gramine_sgx_ias_request_output = Command::new("gramine-sgx-ias-request") .arg("report") .args(["-g", "51CAF5A48B450D624AEFE3286D314894"]) .args(["-k", "669244b3e6364b5888289a11d2a1726d"]) - .args(["-q", "test.quote"]) - .args(["-r", "datareport"]) - .args(["-s", "datareportsig"]) + .args(["-q", quote_file_path]) + .args(["-r", datareport_file_path]) + .args(["-s", datareportsig_file_path]) .output()?; println!("{gramine_sgx_ias_request_output:?}"); - let report = read_to_string("datareport")?; - let report_sig = read_to_string("datareportsig")?; + let report = read_to_string(datareport_file_path)?; + let report_sig = read_to_string(datareportsig_file_path)?; let ias_report = json!({"report": report, "reportsig": report_sig}); - println!("{}", serde_json::to_string(&ias_report).expect("infallible serializer")); + println!( + "{}", + serde_json::to_string(&ias_report).expect("infallible serializer") + ); Ok(()) }