router_wasm_bindings/
querier.rs1use cosmwasm_std::{QuerierWrapper, QueryRequest, StdResult};
2
3use crate::{
4 query::RouterQuery,
5 types::{GasPriceResponse, TokenPriceResponse},
6};
7
8pub struct RouterQuerier<'a> {
10 querier: &'a QuerierWrapper<'a, RouterQuery>,
11}
12
13impl<'a> RouterQuerier<'a> {
14 pub fn new(querier: &'a QuerierWrapper<RouterQuery>) -> Self {
15 RouterQuerier { querier }
16 }
17
18 pub fn token_price(&self, symbol: String) -> StdResult<TokenPriceResponse> {
19 let token_price_query = RouterQuery::TokenPrice { symbol };
20 let request: QueryRequest<RouterQuery> = RouterQuery::into(token_price_query);
21 self.querier.query(&request)
22 }
23
24 pub fn gas_price(&self, chain_id: String) -> StdResult<GasPriceResponse> {
25 let gas_price_query = RouterQuery::GasPrice { chain_id };
26 let request: QueryRequest<RouterQuery> = RouterQuery::into(gas_price_query);
27 self.querier.query(&request)
28 }
29}