11use crate :: common_types:: EvmAddress ;
22use axum:: http:: HeaderMap ;
33
4- use super :: types:: {
5- RateLimitDetectContext , RateLimitDetectMethod , RateLimitError , TransactionType ,
6- } ;
4+ use super :: types:: { RateLimitDetectContext , RateLimitError } ;
75
86pub const RATE_LIMIT_HEADER_NAME : & str = "x-rrelayer-rate-limit-key" ;
97
@@ -24,57 +22,13 @@ impl RateLimitDetector {
2422 if let Some ( header_value) =
2523 headers. get ( RATE_LIMIT_HEADER_NAME ) . and_then ( |v| v. to_str ( ) . ok ( ) )
2624 {
27- return Ok ( RateLimitDetectContext {
28- key : header_value. to_string ( ) ,
29- detection_method : RateLimitDetectMethod :: Header ,
30- transaction_type : TransactionType :: Direct ,
31- } ) ;
25+ return Ok ( RateLimitDetectContext { key : header_value. to_string ( ) } ) ;
3226 }
3327
3428 if self . fallback_to_relayer {
35- return Ok ( RateLimitDetectContext {
36- key : relayer_address. hex ( ) ,
37- detection_method : RateLimitDetectMethod :: Fallback ,
38- transaction_type : TransactionType :: Direct ,
39- } ) ;
29+ return Ok ( RateLimitDetectContext { key : relayer_address. hex ( ) } ) ;
4030 }
4131
4232 Err ( RateLimitError :: NoRateLimitKey )
4333 }
4434}
45-
46- #[ cfg( test) ]
47- mod tests {
48- use super :: * ;
49- use axum:: http:: HeaderMap ;
50- use std:: str:: FromStr ;
51-
52- #[ test]
53- fn test_header_detection ( ) {
54- let detector = RateLimitDetector :: new ( false ) ;
55-
56- let mut headers = HeaderMap :: new ( ) ;
57- headers. insert ( "x-rrelayer-rate-limit-key" , "user-123" . parse ( ) . unwrap ( ) ) ;
58-
59- let relayer_address =
60- EvmAddress :: from_str ( "0x742d35Cc6aF6C5C8c3C4B4C8e1A36F1c57F1b8Ff" ) . unwrap ( ) ;
61- let result = detector. detect ( & headers, & relayer_address) . unwrap ( ) ;
62-
63- assert_eq ! ( result. key, "user-123" ) ;
64- assert ! ( matches!( result. detection_method, RateLimitDetectMethod :: Header ) ) ;
65- }
66-
67- #[ test]
68- fn test_fallback_detection ( ) {
69- let detector = RateLimitDetector :: new ( true ) ;
70-
71- let headers = HeaderMap :: new ( ) ;
72- let relayer_address =
73- EvmAddress :: from_str ( "0x1234567890123456789012345678901234567890" ) . unwrap ( ) ;
74-
75- let result = detector. detect ( & headers, & relayer_address) . unwrap ( ) ;
76-
77- assert_eq ! ( result. key, format!( "{:?}" , relayer_address) ) ;
78- assert ! ( matches!( result. detection_method, RateLimitDetectMethod :: Fallback ) ) ;
79- }
80- }
0 commit comments