uju-cw2-common 0.3.2

A package for common utilities for CosmWasm 2.0 contracts
Documentation
use cosmwasm_std::{ensure_eq, Env, MessageInfo, QuerierWrapper};

use crate::error::CommonError;

pub fn only_contract_admin(
    querier: &QuerierWrapper,
    info: &MessageInfo,
    env: &Env,
) -> Result<(), CommonError> {
    let contract_info_resp = querier.query_wasm_contract_info(&env.contract.address)?;

    let admin = contract_info_resp
        .admin
        .ok_or_else(|| CommonError::Unauthorized("contract admin unset".to_string()))?;

    ensure_eq!(
        info.sender,
        admin,
        CommonError::Unauthorized("only the admin of contract can perform this action".to_string())
    );

    Ok(())
}