11#[starknet:: contract]
22pub mod ZeroXBridgeL2 {
3- use openzeppelin_access :: ownable :: OwnableComponent ;
4- use openzeppelin_introspection :: src5 :: SRC5Component ;
5- use openzeppelin_upgrades :: UpgradeableComponent ;
6- use openzeppelin_upgrades :: interface :: IUpgradeable ;
7- use starknet :: {
8- ContractAddress , get_caller_address, ClassHash , get_block_timestamp, get_contract_address,
9- };
10- use l2 :: interfaces :: IxZBErc20 :: {IXZBERC20Dispatcher , IXZBERC20DispatcherTrait };
11- use openzeppelin_token :: erc20 :: interface :: {IERC20DispatcherTrait , IERC20Dispatcher };
12- use l2 :: interfaces :: IL2Oracle :: {IL2OracleDispatcher , IL2OracleDispatcherTrait };
13-
3+ use cairo_lib :: data_structures :: mmr :: mmr :: {MMR , MMRTrait };
4+ use core :: array :: ArrayTrait ;
5+ use core :: hash :: {HashStateExTrait , HashStateTrait };
146 use core :: option :: Option ;
157 use core :: poseidon :: PoseidonTrait ;
16- use core :: array :: ArrayTrait ;
17- use starknet :: storage :: {
18- StoragePointerReadAccess , StoragePointerWriteAccess , Map , StorageMapReadAccess ,
19- StorageMapWriteAccess , Vec , VecTrait , MutableVecTrait ,
20- };
21- use core :: hash :: {HashStateTrait , HashStateExTrait };
22-
8+ use l2 :: interfaces :: IL2Oracle :: {IL2OracleDispatcher , IL2OracleDispatcherTrait };
9+ use l2 :: interfaces :: IMerkleManager :: IMerkleManager ;
2310 use l2 :: interfaces :: IProofRegistry :: {IProofRegistryDispatcher , IProofRegistryDispatcherTrait };
2411 use l2 :: interfaces :: IZeroXBridgeL2 :: {IDynamicRate , IZeroXBridgeL2 };
25- use l2 :: interfaces :: IMerkleManager :: IMerkleManager ;
26-
12+ use l2 :: interfaces :: IxZBErc20 :: {IXZBERC20Dispatcher , IXZBERC20DispatcherTrait };
13+ use openzeppelin_access :: ownable :: OwnableComponent ;
14+ use openzeppelin_introspection :: src5 :: SRC5Component ;
15+ use openzeppelin_token :: erc20 :: interface :: {IERC20Dispatcher , IERC20DispatcherTrait };
16+ use openzeppelin_upgrades :: UpgradeableComponent ;
17+ use openzeppelin_upgrades :: interface :: IUpgradeable ;
2718 use starknet :: eth_address :: EthAddress ;
2819 use starknet :: eth_signature :: verify_eth_signature;
2920 use starknet :: secp256_trait :: Signature ;
30- use cairo_lib :: data_structures :: mmr :: mmr :: MMR ;
31- use cairo_lib :: data_structures :: mmr :: mmr :: MMRTrait ;
21+ use starknet :: storage :: {
22+ Map , MutableVecTrait , StorageMapReadAccess , StorageMapWriteAccess , StoragePointerReadAccess ,
23+ StoragePointerWriteAccess , Vec , VecTrait ,
24+ };
25+ use starknet :: {
26+ ClassHash , ContractAddress , get_block_timestamp, get_caller_address, get_contract_address,
27+ };
3228
3329
3430 const PRECISION : u256 = 1_000_000_000_000_000_000 ; // 18 decimals for precision
@@ -313,7 +309,7 @@ pub mod ZeroXBridgeL2 {
313309 let max_rate = rates . max_rate;
314310
315311 let final_rate = if raw_rate == 0 {
316- 1 * PRECISION
312+ PRECISION
317313 } else if raw_rate < min_rate {
318314 min_rate
319315 } else if raw_rate > max_rate {
@@ -339,16 +335,16 @@ pub mod ZeroXBridgeL2 {
339335 self . ownable. assert_only_owner ();
340336 let mut current_rates = self . rates. read ();
341337
342- match min_rate {
343- Option :: Some (new_min ) => { current_rates . min_rate = new_min ; },
344- Option :: None => {},
338+ if let Option :: Some (new_min ) = min_rate {
339+ {
340+ current_rates . min_rate = new_min ;
341+ }
345342 }
346-
347- match max_rate {
348- Option :: Some ( new_max ) => { current_rates . max_rate = new_max ; },
349- Option :: None => {},
343+ if let Option :: Some ( new_max ) = max_rate {
344+ {
345+ current_rates . max_rate = new_max ;
346+ }
350347 }
351-
352348 assert (current_rates . min_rate < current_rates . max_rate, ' Min rate must be < max rate' );
353349
354350 self . rates. write (current_rates );
@@ -405,7 +401,7 @@ pub mod ZeroXBridgeL2 {
405401 let mut peaks = array! [];
406402 for i in 0 .. self . last_peaks. len () {
407403 peaks . append (self . last_peaks. at (i ). read ());
408- };
404+ }
409405 peaks
410406 }
411407
@@ -450,7 +446,7 @@ pub mod ZeroXBridgeL2 {
450446 for i in 0 .. peaks_len {
451447 let mut storage_ptr = self . last_peaks. at (i . into ());
452448 storage_ptr . write (* peaks . at (i ));
453- };
449+ }
454450 for i in peaks_len .. last_peaks_len {
455451 let mut storage_ptr = self . last_peaks. at (i . into ());
456452 storage_ptr . write (0 );
@@ -460,9 +456,9 @@ pub mod ZeroXBridgeL2 {
460456 for i in 0 .. last_peaks_len {
461457 let mut storage_ptr = self . last_peaks. at (i . into ());
462458 storage_ptr . write (* peaks . at (i ));
463- };
459+ }
464460 for i in last_peaks_len .. peaks_len {
465- self . last_peaks. append () . write (* peaks . at (i ));
461+ self . last_peaks. push (* peaks . at (i ));
466462 };
467463 }
468464
0 commit comments