use cosmwasm_std::{QuerierWrapper, QueryRequest, StdResult};
use crate::{
query::RouterQuery,
types::{GasPriceResponse, TokenPriceResponse},
};
pub struct RouterQuerier<'a> {
querier: &'a QuerierWrapper<'a, RouterQuery>,
}
impl<'a> RouterQuerier<'a> {
pub fn new(querier: &'a QuerierWrapper<RouterQuery>) -> Self {
RouterQuerier { querier }
}
pub fn token_price(&self, symbol: String) -> StdResult<TokenPriceResponse> {
let token_price_query = RouterQuery::TokenPrice { symbol };
let request: QueryRequest<RouterQuery> = RouterQuery::into(token_price_query);
self.querier.query(&request)
}
pub fn gas_price(&self, chain_id: String) -> StdResult<GasPriceResponse> {
let gas_price_query = RouterQuery::GasPrice { chain_id };
let request: QueryRequest<RouterQuery> = RouterQuery::into(gas_price_query);
self.querier.query(&request)
}
}