1
1
use common:: {
2
2
consensus_state:: IConsensusState ,
3
-
4
3
icon:: icon:: lightclient:: v1:: { ClientState , ConsensusState } ,
5
4
traits:: AnyTypes ,
6
5
} ;
7
6
use cw_common:: raw_types:: Any ;
8
7
use cw_light_client_common:: ContractError ;
8
+ use ibc:: Height ;
9
9
use ics07_tendermint_cw:: ics23:: FakeInner ;
10
10
use ics08_wasm:: client_state:: ClientState as WasmClientState ;
11
11
use prost:: Message ;
12
12
use tendermint_proto:: Protobuf ;
13
- use ibc:: Height ;
14
13
pub fn get_consensus_state_key ( height : Height ) -> Vec < u8 > {
15
14
[
16
15
"consensusStates/" . to_string ( ) . into_bytes ( ) ,
@@ -27,10 +26,13 @@ pub fn to_wasm_client_state(
27
26
client_state : ClientState ,
28
27
old_wasm_state : Vec < u8 > ,
29
28
) -> Result < Vec < u8 > , ContractError > {
30
- let any = any_from_byte ( & * old_wasm_state) ?;
31
- let mut wasm_client_state =
32
- WasmClientState :: < FakeInner , FakeInner , FakeInner > :: decode_vec ( & any. value )
33
- . map_err ( |e| ContractError :: OtherError { error : e. to_string ( ) } ) ?;
29
+ let any = any_from_byte ( & old_wasm_state) ?;
30
+ let mut wasm_client_state = WasmClientState :: < FakeInner , FakeInner , FakeInner > :: decode_vec (
31
+ & any. value ,
32
+ )
33
+ . map_err ( |e| ContractError :: OtherError {
34
+ error : e. to_string ( ) ,
35
+ } ) ?;
34
36
wasm_client_state. data = client_state. to_any ( ) . encode_to_vec ( ) ;
35
37
wasm_client_state. latest_height = to_ibc_height ( client_state. latest_height ) ;
36
38
let vec1 = wasm_client_state. to_any ( ) . encode_to_vec ( ) ;
@@ -52,7 +54,9 @@ pub fn decode_client_state(data: &[u8]) -> Result<ClientState, ContractError> {
52
54
ics08_wasm:: client_state:: ClientState :: < FakeInner , FakeInner , FakeInner > :: decode_vec (
53
55
& any. value ,
54
56
)
55
- . map_err ( |e| ContractError :: OtherError { error : e. to_string ( ) } ) ?;
57
+ . map_err ( |e| ContractError :: OtherError {
58
+ error : e. to_string ( ) ,
59
+ } ) ?;
56
60
let any = Any :: decode ( & * wasm_state. data ) . map_err ( ContractError :: DecodeError ) ?;
57
61
let state = ClientState :: from_any ( any) . map_err ( ContractError :: DecodeError ) ?;
58
62
Ok ( state)
@@ -61,14 +65,18 @@ pub fn decode_client_state(data: &[u8]) -> Result<ClientState, ContractError> {
61
65
pub fn decode_consensus_state ( value : & [ u8 ] ) -> Result < ConsensusState , ContractError > {
62
66
let any = Any :: decode ( & mut & * value) . map_err ( ContractError :: DecodeError ) ?;
63
67
let wasm_consensus_state =
64
- ics08_wasm:: consensus_state:: ConsensusState :: < FakeInner > :: decode_vec ( & any. value )
65
- . map_err ( |e| ContractError :: OtherError { error : e. to_string ( ) } ) ?;
66
- let any = Any :: decode ( & mut & wasm_consensus_state. data [ ..] ) . map_err ( ContractError :: DecodeError ) ?;
68
+ ics08_wasm:: consensus_state:: ConsensusState :: < FakeInner > :: decode_vec ( & any. value ) . map_err (
69
+ |e| ContractError :: OtherError {
70
+ error : e. to_string ( ) ,
71
+ } ,
72
+ ) ?;
73
+ let any =
74
+ Any :: decode ( & mut & wasm_consensus_state. data [ ..] ) . map_err ( ContractError :: DecodeError ) ?;
67
75
let any_consensus_state = ConsensusState :: from_any ( any) . map_err ( ContractError :: DecodeError ) ?;
68
76
Ok ( any_consensus_state)
69
77
}
70
78
71
- pub fn to_ibc_height ( height : u64 ) -> Height {
79
+ pub fn to_ibc_height ( height : u64 ) -> Height {
72
80
Height :: new ( 0 , height)
73
81
}
74
82
0 commit comments