1
1
use std:: marker:: PhantomData ;
2
2
3
3
use crate :: {
4
- state :: { CLIENT_STATES , CONFIG , CONSENSUS_STATES , PROCESSED_HEIGHTS , PROCESSED_TIMES } ,
4
+ constants :: { CLIENT_STATES , CONFIG , CONSENSUS_STATES , PROCESSED_HEIGHTS , PROCESSED_TIMES } ,
5
5
traits:: Config ,
6
6
ContractError ,
7
7
} ;
@@ -140,6 +140,35 @@ impl QueryHandler {
140
140
deps : Deps ,
141
141
client_id : & str ,
142
142
height : u64 ,
143
+ delay_time_period : u64 ,
144
+ delay_block_period : u64 ,
145
+ proof : & [ MerkleNode ] ,
146
+ value : & [ u8 ] ,
147
+ path : & [ u8 ] ,
148
+ ) -> Result < bool , ContractError > {
149
+ let client_state = Self :: get_client_state ( deps. storage , client_id) ?;
150
+ let consensus_state: ConsensusState =
151
+ Self :: get_consensus_state ( deps. storage , client_id, height) ?;
152
+ Self :: verify_membership_inner (
153
+ deps,
154
+ client_id,
155
+ client_state,
156
+ consensus_state,
157
+ height,
158
+ delay_time_period,
159
+ delay_block_period,
160
+ proof,
161
+ value,
162
+ path,
163
+ )
164
+ }
165
+
166
+ pub fn verify_membership_inner (
167
+ deps : Deps ,
168
+ client_id : & str ,
169
+ client_state : ClientState ,
170
+ consensus_state : ConsensusState ,
171
+ height : u64 ,
143
172
_delay_time_period : u64 ,
144
173
_delay_block_period : u64 ,
145
174
proof : & [ MerkleNode ] ,
@@ -159,10 +188,8 @@ impl QueryHandler {
159
188
let path = keccak256 ( path) . to_vec ( ) ;
160
189
cw_println ! ( deps. api, "[LightClient]: client id is: {:?}" , client_id) ;
161
190
162
- let state = Self :: get_client_state ( deps. storage , client_id) ?;
163
-
164
- if state. frozen_height != 0 && height > state. frozen_height {
165
- return Err ( ContractError :: ClientStateFrozen ( state. frozen_height ) ) ;
191
+ if client_state. frozen_height != 0 && height > client_state. frozen_height {
192
+ return Err ( ContractError :: ClientStateFrozen ( client_state. frozen_height ) ) ;
166
193
}
167
194
168
195
let mut value_hash = value. to_vec ( ) ;
@@ -172,8 +199,7 @@ impl QueryHandler {
172
199
173
200
// let _ =
174
201
// self.validate_delay_args(client_id, height, delay_time_period, delay_block_period)?;
175
- let consensus_state: ConsensusState =
176
- Self :: get_consensus_state ( deps. storage , client_id, height) ?;
202
+
177
203
cw_println ! (
178
204
deps. api,
179
205
"[LightClient]: Path Hash {:?}" ,
@@ -257,7 +283,7 @@ impl QueryHandler {
257
283
mod tests {
258
284
use cosmwasm_std:: testing:: MockStorage ;
259
285
260
- use crate :: state :: CONSENSUS_STATES ;
286
+ use crate :: constants :: CONSENSUS_STATES ;
261
287
262
288
use super :: QueryHandler ;
263
289
0 commit comments