quartz-contract-core 0.5.0

A CosmWasm framework for securely interacting with Intel SGX enclaves.
Documentation
use cosmwasm_std::{DepsMut, Env, MessageInfo, Response};

use crate::{
    error::Error,
    handler::Handler,
    msg::execute::signed::{Auth, MsgVerifier, Signed},
};

impl<M, A, P, S> Handler for Signed<M, A>
where
    M: Handler + MsgVerifier<PubKey = P, Sig = S>,
    A: Auth<P, S>,
{
    fn handle(
        self,
        mut deps: DepsMut<'_>,
        env: &Env,
        info: &MessageInfo,
    ) -> Result<Response, Error> {
        let (msg, auth) = self.into_tuple();
        let pub_key = auth.pub_key();
        msg.verify(pub_key, auth.sig())?;
        Handler::handle(msg, deps.branch(), env, info)
    }
}