From de5314122ab1654896c6f61ff396f45486e38673 Mon Sep 17 00:00:00 2001 From: hu55a1n1 Date: Mon, 1 Jan 2024 12:37:08 -0800 Subject: [PATCH] Use Deque for REQUESTS storage --- .../contracts/cw-tee-mtcs/src/contract.rs | 16 ++++++++-------- .../contracts/cw-tee-mtcs/src/state.rs | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) 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 2e7793b..3c076a3 100644 --- a/bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/contract.rs +++ b/bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/contract.rs @@ -108,10 +108,12 @@ pub mod execute { let _ = deps.api.addr_validate(&address)?; let _ = hex::decode(&nonce); - REQUESTS.save( + REQUESTS.push_back( deps.storage, - &nonce, - &Request::JoinComputeNode((io_exchange_key.clone(), address)), + &( + nonce, + Request::JoinComputeNode((io_exchange_key.clone(), address)), + ), )?; Ok(Response::new() @@ -129,10 +131,10 @@ pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> StdResult { } pub mod query { - use cosmwasm_std::{Deps, Order, StdResult}; + use cosmwasm_std::{Deps, StdResult}; use crate::msg::query::{GetRequestsResponse, GetSgxStateResponse}; - use crate::state::{RawNonce, Request, SgxState, REQUESTS, SGX_STATE}; + use crate::state::{SgxState, REQUESTS, SGX_STATE}; pub fn get_sgx_state(deps: Deps) -> StdResult { let SgxState { @@ -148,9 +150,7 @@ pub mod query { pub fn get_requests(deps: Deps) -> StdResult { Ok(GetRequestsResponse { - requests: REQUESTS - .range(deps.storage, None, None, Order::Ascending) - .collect::>>()?, + requests: REQUESTS.iter(deps.storage)?.flat_map(|r| r.ok()).collect(), }) } } diff --git a/bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/state.rs b/bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/state.rs index 56a0bc6..3fd17e7 100644 --- a/bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/state.rs +++ b/bisenzone-cw-mvp/contracts/cw-tee-mtcs/src/state.rs @@ -1,5 +1,5 @@ use cosmwasm_schema::cw_serde; -use cw_storage_plus::{Item, Map}; +use cw_storage_plus::{Deque, Item}; pub type RawNonce = String; pub type RawPublicKey = String; @@ -27,5 +27,5 @@ pub struct SgxState { } pub const STATE: Item = Item::new("state"); -pub const REQUESTS: Map<&RawNonce, Request> = Map::new("requests"); +pub const REQUESTS: Deque<(RawNonce, Request)> = Deque::new("requests"); pub const SGX_STATE: Item = Item::new("sgxstate");