3
3
4
4
use crate :: queriers:: Bank ;
5
5
use crate :: queriers:: CosmWasm ;
6
- use crate :: queriers:: DaemonQuerier ;
7
6
use crate :: queriers:: Staking ;
8
7
use cosmwasm_std:: Addr ;
9
8
use cosmwasm_std:: AllBalanceResponse ;
10
9
use cosmwasm_std:: BalanceResponse ;
11
- use cosmwasm_std:: Delegation ;
12
- use cosmwasm_std:: { AllDelegationsResponse , BondedDenomResponse } ;
13
-
14
10
use cosmwasm_std:: BankQuery ;
15
11
use cosmwasm_std:: Binary ;
12
+ use cosmwasm_std:: Delegation ;
16
13
use cosmwasm_std:: Empty ;
17
14
use cosmwasm_std:: StakingQuery ;
15
+ use cosmwasm_std:: { AllDelegationsResponse , BondedDenomResponse } ;
16
+ use cw_orch_core:: environment:: BankQuerier ;
18
17
use ibc_chain_registry:: chain:: ChainData ;
19
18
use tokio:: runtime:: Runtime ;
20
19
use tonic:: transport:: Channel ;
21
20
22
- use std:: marker:: PhantomData ;
23
- use std:: str:: FromStr ;
24
-
25
21
use cosmwasm_std:: testing:: { MockApi , MockStorage } ;
26
22
use cosmwasm_std:: {
27
23
from_json, to_json_binary, Coin , ContractResult , OwnedDeps , Querier , QuerierResult ,
28
24
QueryRequest , SystemError , SystemResult , Uint128 , WasmQuery ,
29
25
} ;
26
+ use cw_orch_core:: environment:: WasmQuerier ;
27
+ use std:: marker:: PhantomData ;
28
+ use std:: str:: FromStr ;
30
29
31
30
use crate :: channel:: GrpcChannel ;
32
31
@@ -83,28 +82,28 @@ impl WasmMockQuerier {
83
82
pub fn handle_query ( & self , request : & QueryRequest < Empty > ) -> QuerierResult {
84
83
match & request {
85
84
QueryRequest :: Wasm ( x) => {
86
- let querier = CosmWasm :: new ( self . channel . clone ( ) ) ;
85
+ let querier = CosmWasm {
86
+ channel : self . channel . clone ( ) ,
87
+ rt_handle : Some ( self . runtime . handle ( ) . clone ( ) ) ,
88
+ } ;
87
89
match x {
88
90
WasmQuery :: Smart { contract_addr, msg } => {
89
91
// We forward the request to the cosmwasm querier
90
92
91
93
let query_result: Result < Binary , _ > = self
92
94
. runtime
93
95
. block_on (
94
- querier. contract_state ( contract_addr. to_string ( ) , msg. to_vec ( ) ) ,
96
+ querier. _contract_state ( contract_addr. to_string ( ) , msg. to_vec ( ) ) ,
95
97
)
96
98
. map ( |query_result| query_result. into ( ) ) ;
97
99
SystemResult :: Ok ( ContractResult :: from ( query_result) )
98
100
}
99
101
WasmQuery :: Raw { contract_addr, key } => {
100
- // We forward the request to the cosmwasm querier
102
+ // We forward the request to the cosmwasm querie
103
+ let query_result = querier
104
+ . raw_query ( contract_addr. to_string ( ) , key. to_vec ( ) )
105
+ . map ( |query_result| query_result. into ( ) ) ;
101
106
102
- let query_result = self
103
- . runtime
104
- . block_on (
105
- querier. contract_raw_state ( contract_addr. to_string ( ) , key. to_vec ( ) ) ,
106
- )
107
- . map ( |query_result| query_result. data . into ( ) ) ;
108
107
SystemResult :: Ok ( ContractResult :: from ( query_result) )
109
108
}
110
109
_ => SystemResult :: Err ( SystemError :: InvalidRequest {
@@ -114,36 +113,25 @@ impl WasmMockQuerier {
114
113
}
115
114
}
116
115
QueryRequest :: Bank ( x) => {
117
- let querier = Bank :: new ( self . channel . clone ( ) ) ;
116
+ let querier = Bank {
117
+ channel : self . channel . clone ( ) ,
118
+ rt_handle : Some ( self . runtime . handle ( ) . clone ( ) ) ,
119
+ } ;
118
120
match x {
119
121
BankQuery :: Balance { address, denom } => {
120
- let query_result = self
121
- . runtime
122
- . block_on ( querier. balance ( address, Some ( denom. clone ( ) ) ) )
123
- . map ( |result| {
122
+ let query_result =
123
+ querier. balance ( address, Some ( denom. clone ( ) ) ) . map ( |result| {
124
124
to_json_binary ( & BalanceResponse {
125
- amount : Coin {
126
- amount : Uint128 :: from_str ( & result[ 0 ] . amount ) . unwrap ( ) ,
127
- denom : result[ 0 ] . denom . clone ( ) ,
128
- } ,
125
+ amount : result[ 0 ] . clone ( ) ,
129
126
} )
130
127
. unwrap ( )
131
128
} ) ;
132
129
SystemResult :: Ok ( ContractResult :: from ( query_result) )
133
130
}
134
131
BankQuery :: AllBalances { address } => {
135
- let query_result = self
136
- . runtime
137
- . block_on ( querier. balance ( address, None ) )
138
- . map ( |result| AllBalanceResponse {
139
- amount : result
140
- . into_iter ( )
141
- . map ( |c| Coin {
142
- amount : Uint128 :: from_str ( & c. amount ) . unwrap ( ) ,
143
- denom : c. denom ,
144
- } )
145
- . collect ( ) ,
146
- } )
132
+ let query_result = querier
133
+ . balance ( address, None )
134
+ . map ( |result| AllBalanceResponse { amount : result } )
147
135
. map ( |query_result| to_json_binary ( & query_result) )
148
136
. unwrap ( ) ;
149
137
SystemResult :: Ok ( ContractResult :: from ( query_result) )
@@ -155,12 +143,12 @@ impl WasmMockQuerier {
155
143
}
156
144
}
157
145
QueryRequest :: Staking ( x) => {
158
- let querier = Staking :: new ( self . channel . clone ( ) ) ;
146
+ let querier = Staking :: new_async ( self . channel . clone ( ) ) ;
159
147
match x {
160
148
StakingQuery :: BondedDenom { } => {
161
149
let query_result = self
162
150
. runtime
163
- . block_on ( querier. params ( ) )
151
+ . block_on ( querier. _params ( ) )
164
152
. map ( |result| BondedDenomResponse {
165
153
denom : result. params . unwrap ( ) . bond_denom ,
166
154
} )
@@ -173,7 +161,7 @@ impl WasmMockQuerier {
173
161
StakingQuery :: AllDelegations { delegator } => {
174
162
let query_result = self
175
163
. runtime
176
- . block_on ( querier. delegator_delegations ( delegator, None ) )
164
+ . block_on ( querier. _delegator_delegations ( delegator, None ) )
177
165
. map ( |result| AllDelegationsResponse {
178
166
delegations : result
179
167
. delegation_responses
0 commit comments