diff --git a/crates/gem_evm/src/uniswap/deployment/v4.rs b/crates/gem_evm/src/uniswap/deployment/v4.rs index e2cc45c44..918b03875 100644 --- a/crates/gem_evm/src/uniswap/deployment/v4.rs +++ b/crates/gem_evm/src/uniswap/deployment/v4.rs @@ -75,6 +75,21 @@ pub fn get_uniswap_deployment_by_chain(chain: &Chain) -> Option { permit2, universal_router: "0xEf740bf23aCaE26f6492B10de645D6B98dC8Eaf3", }), + Chain::Celo => Some(V4Deployment { + quoter: "0x28566da1093609182dFf2cB2A91CFD72e61d66cd", + permit2, + universal_router: "0xcb695bc5D3Aa22cAD1E6DF07801b061a05A0233A", + }), + Chain::Monad => Some(V4Deployment { + quoter: "0xa222Dd357A9076d1091Ed6Aa2e16C9742dD26891", + permit2, + universal_router: "0x0D97Dc33264bfC1c226207428A79b26757fb9dc3", + }), + Chain::Ink => Some(V4Deployment { + quoter: "0x3972C00f7ed4885e145823eb7C655375d275A1C5", + permit2, + universal_router: "0x112908daC86e20e7241B0927479Ea3Bf935d1fa0", + }), _ => None, } } diff --git a/crates/primitives/src/chain_config.rs b/crates/primitives/src/chain_config.rs index eefe3c52c..826aab6f0 100644 --- a/crates/primitives/src/chain_config.rs +++ b/crates/primitives/src/chain_config.rs @@ -1175,7 +1175,7 @@ static CHAIN_CONFIGS: &[ChainConfig] = &[ minimum_account_balance: None, block_time: 2_000, rank: 30, - is_swap_supported: false, + is_swap_supported: true, is_nft_supported: false, is_utxo: false, evm: Some(EvmChainConfig { diff --git a/crates/swapper/src/proxy/provider.rs b/crates/swapper/src/proxy/provider.rs index 01135463c..bb37c8b00 100644 --- a/crates/swapper/src/proxy/provider.rs +++ b/crates/swapper/src/proxy/provider.rs @@ -47,6 +47,10 @@ where } pub async fn check_approval_and_limit(&self, quote: &Quote, quote_data: &SwapQuoteData) -> Result<(Option, Option), SwapperError> { + if let Some(ref approval) = quote_data.approval { + return Ok((Some(approval.clone()), quote_data.gas_limit.clone())); + } + let request = "e.request; let from_asset = request.from_asset.asset_id(); @@ -104,7 +108,17 @@ impl ProxyProvider { } pub fn new_okx(rpc_provider: Arc) -> Self { - Self::new_with_path(SwapperProvider::Okx, "okx", vec![SwapperChainAsset::All(Chain::Solana)], rpc_provider) + Self::new_with_path( + SwapperProvider::Okx, + "okx", + vec![ + SwapperChainAsset::All(Chain::Solana), + SwapperChainAsset::All(Chain::Manta), + SwapperChainAsset::All(Chain::Mantle), + SwapperChainAsset::All(Chain::XLayer), + ], + rpc_provider, + ) } pub fn new_cetus_aggregator(rpc_provider: Arc) -> Self { @@ -161,11 +175,7 @@ impl ProxyProvider { Self::new_with_path( SwapperProvider::Relay, "relay", - vec![ - SwapperChainAsset::All(Chain::Hyperliquid), - SwapperChainAsset::All(Chain::Manta), - SwapperChainAsset::All(Chain::Berachain), - ], + vec![SwapperChainAsset::All(Chain::Hyperliquid), SwapperChainAsset::All(Chain::Berachain)], rpc_provider, ) }