cw_orch_clone_testing/queriers/
node.rs1use std::{cell::RefCell, rc::Rc};
2
3use crate::{
4 core::{AppResponse, CloneTestingApp},
5 CloneTesting,
6};
7use cw_orch_core::{
8 environment::{NodeQuerier, Querier, QuerierGetter, StateInterface},
9 CwEnvError,
10};
11
12pub struct CloneNodeQuerier {
13 app: Rc<RefCell<CloneTestingApp>>,
14}
15
16impl CloneNodeQuerier {
17 fn new<S: StateInterface>(mock: &CloneTesting<S>) -> Self {
18 Self {
19 app: mock.app.clone(),
20 }
21 }
22}
23
24impl Querier for CloneNodeQuerier {
25 type Error = CwEnvError;
26}
27
28impl<S: StateInterface> QuerierGetter<CloneNodeQuerier> for CloneTesting<S> {
29 fn querier(&self) -> CloneNodeQuerier {
30 CloneNodeQuerier::new(self)
31 }
32}
33
34impl NodeQuerier for CloneNodeQuerier {
35 type Response = AppResponse;
36
37 fn latest_block(&self) -> Result<cosmwasm_std::BlockInfo, Self::Error> {
38 Ok(self.app.borrow().block_info())
39 }
40
41 fn block_by_height(&self, _height: u64) -> Result<cosmwasm_std::BlockInfo, Self::Error> {
42 unimplemented!()
43 }
44
45 fn block_height(&self) -> Result<u64, Self::Error> {
46 let block_info = self.latest_block()?;
47
48 Ok(block_info.height)
49 }
50
51 fn block_time(&self) -> Result<u128, Self::Error> {
52 let block_info = self.latest_block()?;
53
54 Ok(block_info.time.nanos() as u128)
55 }
56
57 fn simulate_tx(&self, _tx_bytes: Vec<u8>) -> Result<u64, Self::Error> {
58 unimplemented!()
59 }
60
61 fn find_tx(&self, _hash: String) -> Result<Self::Response, Self::Error> {
62 unimplemented!()
63 }
64}