@@ -32,26 +32,27 @@ pub fn execute(
3232 state : & mut TopLevelState ,
3333 fee_payer : & Address ,
3434 _sender_public : & Public ,
35+ current_block_number : u64 ,
3536) -> StateResult < ( ) > {
3637 let datagram = Datagram :: decode ( & Rlp :: new ( bytes) ) . expect ( "Verification passed" ) ;
3738 match datagram {
3839 Datagram :: CreateClient {
3940 id,
4041 kind,
4142 consensus_state,
42- } => create_client ( state, fee_payer, & id, kind, & consensus_state) ,
43+ } => create_client ( state, fee_payer, & id, kind, & consensus_state, current_block_number ) ,
4344 Datagram :: UpdateClient {
4445 id,
4546 header,
46- } => update_client ( state, & id, & header) ,
47+ } => update_client ( state, & id, & header, current_block_number ) ,
4748 Datagram :: ConnOpenInit {
4849 identifier,
4950 desired_counterparty_connection_identifier,
5051 counterparty_prefix,
5152 client_identifier,
5253 counterparty_client_identifier,
5354 } => {
54- let mut context = ibc_context:: TopLevelContext :: new ( state) ;
55+ let mut context = ibc_context:: TopLevelContext :: new ( state, current_block_number ) ;
5556 let connection_manager = ibc_connection:: Manager :: new ( ) ;
5657 connection_manager
5758 . handle_open_init (
@@ -74,8 +75,9 @@ fn create_client(
7475 id : & str ,
7576 kind : ibc_client:: Kind ,
7677 consensus_state : & [ u8 ] ,
78+ current_block_number : u64 ,
7779) -> StateResult < ( ) > {
78- let mut context = ibc_context:: TopLevelContext :: new ( state) ;
80+ let mut context = ibc_context:: TopLevelContext :: new ( state, current_block_number ) ;
7981 let client_manager = ibc_client:: Manager :: new ( ) ;
8082 if kind != ibc_client:: KIND_FOUNDRY {
8183 return Err ( RuntimeError :: IBC ( format ! ( "CreateClient has invalid type {}" , kind) ) . into ( ) )
@@ -94,8 +96,8 @@ fn create_client(
9496 Ok ( ( ) )
9597}
9698
97- fn update_client ( state : & mut TopLevelState , id : & str , header : & [ u8 ] ) -> StateResult < ( ) > {
98- let mut context = ibc_context:: TopLevelContext :: new ( state) ;
99+ fn update_client ( state : & mut TopLevelState , id : & str , header : & [ u8 ] , current_block_number : u64 ) -> StateResult < ( ) > {
100+ let mut context = ibc_context:: TopLevelContext :: new ( state, current_block_number ) ;
99101 let client_manager = ibc_client:: Manager :: new ( ) ;
100102 let client_state = client_manager. query ( & mut context, id) . map_err ( RuntimeError :: IBC ) ?;
101103
0 commit comments