diff --git a/bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/contract.rs b/bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/contract.rs index 55f68d4..85d7db4 100644 --- a/bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/contract.rs +++ b/bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/contract.rs @@ -144,6 +144,7 @@ pub mod execute { pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> StdResult { match msg { QueryMsg::GetSgxState {} => to_json_binary(&query::get_sgx_state(deps)?), + QueryMsg::GetEpochState {} => to_json_binary(&query::get_epoch_state(deps)?), QueryMsg::GetRequests {} => to_json_binary(&query::get_requests(deps)?), } } @@ -151,8 +152,8 @@ pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> StdResult { pub mod query { use cosmwasm_std::{Deps, StdResult}; - use crate::msg::query::{GetRequestsResponse, GetSgxStateResponse}; - use crate::state::{SgxState, REQUESTS, SGX_STATE}; + use crate::msg::query::{GetEpochStateResponse, GetRequestsResponse, GetSgxStateResponse}; + use crate::state::{EpochState, SgxState, EPOCH_STATE, REQUESTS, SGX_STATE}; pub fn get_sgx_state(deps: Deps) -> StdResult { let SgxState { @@ -166,6 +167,11 @@ pub mod query { }) } + pub fn get_epoch_state(deps: Deps) -> StdResult { + let EpochState { epoch_key } = EPOCH_STATE.load(deps.storage)?; + Ok(GetEpochStateResponse { epoch_key }) + } + pub fn get_requests(deps: Deps) -> StdResult { Ok(GetRequestsResponse { requests: REQUESTS.load(deps.storage)?, diff --git a/bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/msg.rs b/bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/msg.rs index f442b26..701b249 100644 --- a/bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/msg.rs +++ b/bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/msg.rs @@ -38,6 +38,8 @@ pub mod execute { pub enum QueryMsg { #[returns(query::GetSgxStateResponse)] GetSgxState {}, + #[returns(query::GetEpochStateResponse)] + GetEpochState {}, #[returns(query::GetRequestsResponse)] GetRequests {}, } @@ -45,7 +47,7 @@ pub enum QueryMsg { pub mod query { use super::*; - use crate::state::{RawMrenclave, RawNonce, Request}; + use crate::state::{RawMrenclave, RawNonce, RawPublicKey, Request}; #[cw_serde] pub struct GetSgxStateResponse { @@ -53,6 +55,11 @@ pub mod query { pub key_manager_mrenclave: RawMrenclave, } + #[cw_serde] + pub struct GetEpochStateResponse { + pub epoch_key: RawPublicKey, + } + #[cw_serde] pub struct GetRequestsResponse { pub requests: Vec<(RawNonce, Request)>,