bvs-vault-factory 0.0.0-main.167+2025.05.05

SatLayer Bitcoin Validated Service
Documentation
use cosmwasm_std::{to_json_binary, Deps, MessageInfo, QueryRequest, WasmQuery};

use crate::{error::ContractError, state::REGISTRY};

pub fn assert_operator(deps: Deps, info: &MessageInfo) -> Result<(), ContractError> {
    let msg = bvs_registry::msg::QueryMsg::IsOperator(info.sender.to_string());

    let query = WasmQuery::Smart {
        contract_addr: REGISTRY.load(deps.storage)?.to_string(),
        msg: to_json_binary(&msg)?,
    };

    let bvs_registry::msg::IsOperatorResponse(is_operator) =
        deps.querier.query(&QueryRequest::Wasm(query))?;

    if !is_operator {
        Err(ContractError::Unauthorized {})
    } else {
        Ok(())
    }
}