Skip to content

Commit df635fe

Browse files
committed
Refactor swapper provider URL handling
Centralize and simplify provider URL generation and adjust ProxyProvider construction. - Import SwapperProvider in config. - Add get_swap_provider_url(provider) -> String to build provider-specific endpoint: "{API_BASE_URL}/v1/swaps/providers/{provider.id()}". - Remove use of API_BASE_URL_ENV and env lookup in get_swap_proxy_url; it now uses API_BASE_URL directly. - Update ProxyProvider: rename new_with_path to new_with_provider (signature adjusted), initialize the RPC client with get_swap_provider_url(provider) instead of composing a proxy path, and update new_okx to call the new constructor without a hardcoded path. This refactor removes per-path env handling and consolidates provider endpoint formation for clarity and consistency.
1 parent 3d7c1c6 commit df635fe

2 files changed

Lines changed: 10 additions & 10 deletions

File tree

core/crates/swapper/src/config.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
1-
use crate::{SwapperSlippage, SwapperSlippageMode};
1+
use crate::{SwapperProvider, SwapperSlippage, SwapperSlippageMode};
22
use primitives::Chain;
33

44
pub const DEFAULT_SLIPPAGE_BPS: u32 = 100;
55
pub const DEFAULT_SWAP_FEE_BPS: u32 = 50;
66
pub const DEFAULT_CHAINFLIP_FEE_BPS: u32 = 45;
77

88
pub const API_BASE_URL: &str = "https://api.gemwallet.com";
9-
pub const API_BASE_URL_ENV: &str = "GEM_API_BASE_URL";
9+
10+
pub fn get_swap_provider_url(provider: SwapperProvider) -> String {
11+
format!("{API_BASE_URL}/v1/swaps/providers/{}", provider.id())
12+
}
1013

1114
pub fn get_swap_proxy_url(path: &str) -> String {
12-
let base_url = std::env::var(API_BASE_URL_ENV).unwrap_or_else(|_| API_BASE_URL.to_string());
13-
format!("{}/proxy/swap/{path}", base_url.trim_end_matches('/'))
15+
format!("{API_BASE_URL}/proxy/swap/{path}")
1416
}
1517

1618
#[derive(Debug, Clone, PartialEq)]

core/crates/swapper/src/proxy/provider.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use crate::{
77
FetchQuoteData, ProviderData, ProviderType, Quote, QuoteRequest, Route, SwapResult, Swapper, SwapperError, SwapperProvider, SwapperProviderMode, SwapperQuoteData,
88
alien::{RpcClient, RpcProvider},
99
approval::{DEFAULT_EVM_SWAP_GAS_LIMIT, check_approval_erc20, get_swap_gas_limit_with_approval},
10-
config::get_swap_proxy_url,
10+
config::get_swap_provider_url,
1111
cross_chain::VaultAddresses,
1212
fees::{DEFAULT_AGGREGATOR_FEE_BPS, DEFAULT_SWAP_FEE_BPS},
1313
models::SwapperChainAsset,
@@ -97,16 +97,14 @@ where
9797
}
9898

9999
impl ProxyProvider<RpcClient> {
100-
fn new_with_path(provider: SwapperProvider, path: &str, assets: Vec<SwapperChainAsset>, rpc_provider: Arc<dyn RpcProvider>) -> Self {
101-
let base_url = get_swap_proxy_url(&format!("swapper/{path}"));
102-
let client = ProxyClient::new(RpcClient::new(base_url, rpc_provider.clone()));
100+
fn new_with_provider(provider: SwapperProvider, assets: Vec<SwapperChainAsset>, rpc_provider: Arc<dyn RpcProvider>) -> Self {
101+
let client = ProxyClient::new(RpcClient::new(get_swap_provider_url(provider), rpc_provider.clone()));
103102
Self::new_with_client(provider, client, assets, rpc_provider)
104103
}
105104

106105
pub fn new_okx(rpc_provider: Arc<dyn RpcProvider>) -> Self {
107-
Self::new_with_path(
106+
Self::new_with_provider(
108107
SwapperProvider::Okx,
109-
"okx",
110108
vec![
111109
SwapperChainAsset::All(Chain::Solana),
112110
SwapperChainAsset::All(Chain::Ethereum),

0 commit comments

Comments
 (0)