clone-cw-multi-test 0.6.5

Testing tools for multi-contract interactions. Helps simulating chain behavior with on-chain storage locally
Documentation
use cosmwasm_std::{to_json_binary, Deps, QueryRequest, StdResult, WasmQuery};

use crate::counter::{
    msg::{GetCountResponse, QueryMsg},
    state::STATE,
};

pub fn count(deps: Deps) -> StdResult<GetCountResponse> {
    let state = STATE.load(deps.storage)?;
    Ok(GetCountResponse { count: state.count })
}

pub fn cousin_count(deps: Deps) -> StdResult<GetCountResponse> {
    let state = STATE.load(deps.storage)?;
    let cousin_count: GetCountResponse =
        deps.querier.query(&QueryRequest::Wasm(WasmQuery::Smart {
            contract_addr: state.cousin.unwrap().to_string(),
            msg: to_json_binary(&QueryMsg::Count {})?,
        }))?;
    Ok(cousin_count)
}

pub fn raw_cousin_count(deps: Deps) -> StdResult<GetCountResponse> {
    let state = STATE.load(deps.storage)?;
    let cousin_state = STATE.query(&deps.querier, state.cousin.unwrap())?;
    Ok(GetCountResponse {
        count: cousin_state.count,
    })
}