Impl get_epoch_state query

This commit is contained in:
hu55a1n1 2024-01-10 07:26:41 -08:00
parent 976c1cacf0
commit a52ba76265
2 changed files with 16 additions and 3 deletions

View file

@ -144,6 +144,7 @@ pub mod execute {
pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> StdResult<Binary> { pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> StdResult<Binary> {
match msg { match msg {
QueryMsg::GetSgxState {} => to_json_binary(&query::get_sgx_state(deps)?), 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)?), QueryMsg::GetRequests {} => to_json_binary(&query::get_requests(deps)?),
} }
} }
@ -151,8 +152,8 @@ pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> StdResult<Binary> {
pub mod query { pub mod query {
use cosmwasm_std::{Deps, StdResult}; use cosmwasm_std::{Deps, StdResult};
use crate::msg::query::{GetRequestsResponse, GetSgxStateResponse}; use crate::msg::query::{GetEpochStateResponse, GetRequestsResponse, GetSgxStateResponse};
use crate::state::{SgxState, REQUESTS, SGX_STATE}; use crate::state::{EpochState, SgxState, EPOCH_STATE, REQUESTS, SGX_STATE};
pub fn get_sgx_state(deps: Deps) -> StdResult<GetSgxStateResponse> { pub fn get_sgx_state(deps: Deps) -> StdResult<GetSgxStateResponse> {
let SgxState { let SgxState {
@ -166,6 +167,11 @@ pub mod query {
}) })
} }
pub fn get_epoch_state(deps: Deps) -> StdResult<GetEpochStateResponse> {
let EpochState { epoch_key } = EPOCH_STATE.load(deps.storage)?;
Ok(GetEpochStateResponse { epoch_key })
}
pub fn get_requests(deps: Deps) -> StdResult<GetRequestsResponse> { pub fn get_requests(deps: Deps) -> StdResult<GetRequestsResponse> {
Ok(GetRequestsResponse { Ok(GetRequestsResponse {
requests: REQUESTS.load(deps.storage)?, requests: REQUESTS.load(deps.storage)?,

View file

@ -38,6 +38,8 @@ pub mod execute {
pub enum QueryMsg { pub enum QueryMsg {
#[returns(query::GetSgxStateResponse)] #[returns(query::GetSgxStateResponse)]
GetSgxState {}, GetSgxState {},
#[returns(query::GetEpochStateResponse)]
GetEpochState {},
#[returns(query::GetRequestsResponse)] #[returns(query::GetRequestsResponse)]
GetRequests {}, GetRequests {},
} }
@ -45,7 +47,7 @@ pub enum QueryMsg {
pub mod query { pub mod query {
use super::*; use super::*;
use crate::state::{RawMrenclave, RawNonce, Request}; use crate::state::{RawMrenclave, RawNonce, RawPublicKey, Request};
#[cw_serde] #[cw_serde]
pub struct GetSgxStateResponse { pub struct GetSgxStateResponse {
@ -53,6 +55,11 @@ pub mod query {
pub key_manager_mrenclave: RawMrenclave, pub key_manager_mrenclave: RawMrenclave,
} }
#[cw_serde]
pub struct GetEpochStateResponse {
pub epoch_key: RawPublicKey,
}
#[cw_serde] #[cw_serde]
pub struct GetRequestsResponse { pub struct GetRequestsResponse {
pub requests: Vec<(RawNonce, Request)>, pub requests: Vec<(RawNonce, Request)>,