diff --git a/web3_proxy/src/frontend/http_proxy.rs b/web3_proxy/src/frontend/http_proxy.rs index f5ae4692..6f61ade8 100644 --- a/web3_proxy/src/frontend/http_proxy.rs +++ b/web3_proxy/src/frontend/http_proxy.rs @@ -15,7 +15,7 @@ pub async fn public_proxy_web3_rpc( Extension(app): Extension>, ClientIp(ip): ClientIp, ) -> FrontendResult { - let _ip: IpAddr = rate_limit_by_ip(&app, ip).await?.try_into()?; + let _ip: IpAddr = rate_limit_by_ip(&app, ip).await?; let protocol = Protocol::HTTP; let user_id = 0; @@ -67,7 +67,7 @@ pub async fn user_proxy_web3_rpc( Extension(app): Extension>, Path(user_key): Path, ) -> FrontendResult { - let user_id: u64 = rate_limit_by_user_key(&app, user_key).await?.try_into()?; + let user_id: u64 = rate_limit_by_user_key(&app, user_key).await?; let protocol = Protocol::HTTP; diff --git a/web3_proxy/src/frontend/rate_limit.rs b/web3_proxy/src/frontend/rate_limit.rs index 325bd878..b17a3246 100644 --- a/web3_proxy/src/frontend/rate_limit.rs +++ b/web3_proxy/src/frontend/rate_limit.rs @@ -52,11 +52,14 @@ impl TryFrom for u64 { } } -pub async fn rate_limit_by_ip(app: &Web3ProxyApp, ip: IpAddr) -> RateLimitFrontendResult { +pub async fn rate_limit_by_ip( + app: &Web3ProxyApp, + ip: IpAddr, +) -> Result { let rate_limit_result = app.rate_limit_by_ip(ip).await?; match rate_limit_result { - RateLimitResult::AllowedIp(x) => Ok(x.into()), + RateLimitResult::AllowedIp(x) => Ok(x), RateLimitResult::AllowedUser(_) => panic!("only ips or errors are expected here"), rate_limit_result => { let _: RequestFrom = rate_limit_result.try_into()?; @@ -70,12 +73,12 @@ pub async fn rate_limit_by_user_key( app: &Web3ProxyApp, // TODO: change this to a Ulid user_key: Uuid, -) -> RateLimitFrontendResult { +) -> Result { let rate_limit_result = app.rate_limit_by_key(user_key).await?; match rate_limit_result { RateLimitResult::AllowedIp(_) => panic!("only user keys or errors are expected here"), - RateLimitResult::AllowedUser(x) => Ok(x.into()), + RateLimitResult::AllowedUser(x) => Ok(x), rate_limit_result => { let _: RequestFrom = rate_limit_result.try_into()?; diff --git a/web3_proxy/src/frontend/users.rs b/web3_proxy/src/frontend/users.rs index 0152b974..968471ec 100644 --- a/web3_proxy/src/frontend/users.rs +++ b/web3_proxy/src/frontend/users.rs @@ -38,7 +38,7 @@ pub async fn get_login( // TODO: allow ENS names here? Path(mut params): Path>, ) -> FrontendResult { - let _ip: IpAddr = rate_limit_by_ip(&app, ip).await?.try_into()?; + let _ip: IpAddr = rate_limit_by_ip(&app, ip).await?; // at first i thought about checking that user_address is in our db // but theres no need to separate the registration and login flows @@ -134,7 +134,7 @@ pub async fn post_login( Json(payload): Json, Query(query): Query, ) -> FrontendResult { - let _ip: IpAddr = rate_limit_by_ip(&app, ip).await?.try_into()?; + let _ip: IpAddr = rate_limit_by_ip(&app, ip).await?; let mut new_user = true; // TODO: check the database diff --git a/web3_proxy/src/frontend/ws_proxy.rs b/web3_proxy/src/frontend/ws_proxy.rs index 69570bb3..2dedbbd4 100644 --- a/web3_proxy/src/frontend/ws_proxy.rs +++ b/web3_proxy/src/frontend/ws_proxy.rs @@ -33,7 +33,7 @@ pub async fn public_websocket_handler( ClientIp(ip): ClientIp, ws_upgrade: Option, ) -> FrontendResult { - let _ip: IpAddr = rate_limit_by_ip(&app, ip).await?.try_into()?; + let _ip: IpAddr = rate_limit_by_ip(&app, ip).await?; let user_id = 0; let protocol = Protocol::Websocket; @@ -57,7 +57,7 @@ pub async fn user_websocket_handler( Path(user_key): Path, ws_upgrade: Option, ) -> FrontendResult { - let user_id: u64 = rate_limit_by_user_key(&app, user_key).await?.try_into()?; + let user_id: u64 = rate_limit_by_user_key(&app, user_key).await?; let protocol = Protocol::Websocket;