From 089b1eac4df32feba230ff99e277a84203524033 Mon Sep 17 00:00:00 2001 From: hu55a1n1 Date: Fri, 23 Feb 2024 12:51:55 -0800 Subject: [PATCH] Impl instantiate handler correctly --- enclaves/quartz/src/server.rs | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/enclaves/quartz/src/server.rs b/enclaves/quartz/src/server.rs index bfc2025..600f546 100644 --- a/enclaves/quartz/src/server.rs +++ b/enclaves/quartz/src/server.rs @@ -1,18 +1,22 @@ -use std::time::Duration; +use std::{ + fs::{read, File}, + io::{Result as IoResult, Write}, +}; use quartz_cw::{ msg::{execute::attested::HasUserData, instantiate::CoreInstantiate}, state::{Config, UserData}, }; use quartz_proto::quartz::{ - core_server::Core, InstantiateRequest, InstantiateResponse, SessionCreateRequest, - SessionCreateResponse, + core_server::Core, InstantiateRequest as RawInstantiateRequest, + InstantiateResponse as RawInstantiateResponse, SessionCreateRequest, SessionCreateResponse, }; -use serde::{Deserialize, Serialize}; -use tendermint::Hash; -use tendermint_light_client::types::{Height, TrustThreshold}; use tonic::{Request, Response, Status}; +use crate::types::InstantiateResponse; + +type TonicResult = Result; + #[derive(Clone, Debug)] pub struct CoreService { config: Config, @@ -28,20 +32,20 @@ impl CoreService { impl Core for CoreService { async fn instantiate( &self, - request: Request, - ) -> Result, Status> { - println!("Got a request: {:?}", request); + _request: Request, + ) -> TonicResult> { + let core_instantiate_msg = CoreInstantiate::new(self.config.clone()); - let reply = InstantiateResponse { - message: "Hello!".to_string(), - }; + let user_data = core_instantiate_msg.user_data(); + let quote = attestion_quote(user_data).map_err(|e| Status::internal(e.to_string()))?; - Ok(Response::new(reply)) + let response = InstantiateResponse::new(self.config.clone(), quote); + Ok(Response::new(response.into())) } async fn session_create( &self, request: Request, - ) -> Result, Status> { + ) -> TonicResult> { println!("Got a request: {:?}", request); let reply = SessionCreateResponse {