Use tempfiles in relayer

This commit is contained in:
hu55a1n1 2024-02-26 13:57:54 -08:00
parent bfb426bca0
commit f94803a274
3 changed files with 24 additions and 12 deletions

1
Cargo.lock generated
View file

@ -2098,6 +2098,7 @@ dependencies = [
"quartz-proto", "quartz-proto",
"serde", "serde",
"serde_json", "serde_json",
"tempfile",
"tokio", "tokio",
"tonic", "tonic",
] ]

View file

@ -8,6 +8,7 @@ clap = { version = "4.1.8", features = ["derive"] }
cosmwasm-std = "1.4.0" cosmwasm-std = "1.4.0"
serde = { version = "1.0.189", features = ["derive"] } serde = { version = "1.0.189", features = ["derive"] }
serde_json = "1.0.94" serde_json = "1.0.94"
tempfile = "3"
tonic = "0.11" tonic = "0.11"
tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] } tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] }

View file

@ -1,15 +1,17 @@
mod cli; mod cli;
use std::{fs::File, io::Write}; use std::{
use std::fs::read_to_string; fs::{read_to_string, File},
use std::process::Command; io::Write,
process::Command,
};
use clap::Parser; use clap::Parser;
use serde_json::json;
use quartz_proto::quartz::{core_client::CoreClient, InstantiateRequest}; use quartz_proto::quartz::{core_client::CoreClient, InstantiateRequest};
use quartz_relayer::types::InstantiateResponse; use quartz_relayer::types::InstantiateResponse;
use serde_json::json;
use crate::{cli::Cli}; use crate::cli::Cli;
#[tokio::main] #[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> { async fn main() -> Result<(), Box<dyn std::error::Error>> {
@ -19,23 +21,31 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
let response = client.instantiate(InstantiateRequest {}).await?; let response = client.instantiate(InstantiateRequest {}).await?;
let response: InstantiateResponse = response.into_inner().try_into()?; 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())?; quote_file.write_all(response.quote())?;
let gramine_sgx_ias_request_output = Command::new("gramine-sgx-ias-request") let gramine_sgx_ias_request_output = Command::new("gramine-sgx-ias-request")
.arg("report") .arg("report")
.args(["-g", "51CAF5A48B450D624AEFE3286D314894"]) .args(["-g", "51CAF5A48B450D624AEFE3286D314894"])
.args(["-k", "669244b3e6364b5888289a11d2a1726d"]) .args(["-k", "669244b3e6364b5888289a11d2a1726d"])
.args(["-q", "test.quote"]) .args(["-q", quote_file_path])
.args(["-r", "datareport"]) .args(["-r", datareport_file_path])
.args(["-s", "datareportsig"]) .args(["-s", datareportsig_file_path])
.output()?; .output()?;
println!("{gramine_sgx_ias_request_output:?}"); println!("{gramine_sgx_ias_request_output:?}");
let report = read_to_string("datareport")?; let report = read_to_string(datareport_file_path)?;
let report_sig = read_to_string("datareportsig")?; let report_sig = read_to_string(datareportsig_file_path)?;
let ias_report = json!({"report": report, "reportsig": report_sig}); 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(()) Ok(())
} }