Skip to content

Commit c38f049

Browse files
authored
fix: sessionId hardcoded list (#951)
1 parent 2a32718 commit c38f049

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

src/handlers/proxy.rs

+8-7
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use {
33
crate::{
44
analytics::MessageInfo,
55
error::RpcError,
6+
providers::ProviderKind,
67
state::AppState,
78
utils::{crypto, network},
89
},
@@ -69,10 +70,10 @@ pub async fn rpc_call(
6970
let chain_id = query_params.chain_id.clone();
7071

7172
if query_params.session_id.is_some() {
72-
let provider_id = match chain_id.as_str() {
73-
"eip155:10" => Some("quicknode"), // Optimism
74-
"eip155:8453" => Some("lava"), // Base
75-
"eip155:42161" => Some("lava"), // Arbitrum One
73+
let provider_kind = match chain_id.as_str() {
74+
"eip155:10" => Some(ProviderKind::Quicknode), // Optimism
75+
"eip155:8453" => Some(ProviderKind::Lava), // Base
76+
"eip155:42161" => Some(ProviderKind::Lava), // Arbitrum One
7677
_ => {
7778
debug!(
7879
"Requested sessionId for chain {chain_id} but no hardcoded provider was configured"
@@ -81,11 +82,11 @@ pub async fn rpc_call(
8182
}
8283
};
8384

84-
if let Some(provider_id) = provider_id {
85+
if let Some(provider_kind) = provider_kind {
8586
let provider = state
8687
.providers
87-
.get_rpc_provider_by_provider_id(provider_id)
88-
.ok_or_else(|| RpcError::UnsupportedProvider(provider_id.to_owned()))?;
88+
.get_rpc_provider_by_provider_kind(&provider_kind)
89+
.ok_or_else(|| RpcError::UnsupportedProvider(provider_kind.to_string()))?;
8990
let response = rpc_provider_call(
9091
state.clone(),
9192
addr,

src/providers/mod.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -615,7 +615,15 @@ impl ProviderRepository {
615615
) -> Option<Arc<dyn RpcProvider>> {
616616
let provider = ProviderKind::from_str(provider_id)?;
617617

618-
self.rpc_providers.get(&provider).cloned()
618+
self.get_rpc_provider_by_provider_kind(&provider)
619+
}
620+
621+
#[tracing::instrument(skip(self), level = "debug")]
622+
pub fn get_rpc_provider_by_provider_kind(
623+
&self,
624+
provider_kind: &ProviderKind,
625+
) -> Option<Arc<dyn RpcProvider>> {
626+
self.rpc_providers.get(provider_kind).cloned()
619627
}
620628
}
621629

0 commit comments

Comments
 (0)