diff --git a/RELEASE b/RELEASE index e5d2b8da24c..8d04bacbf36 100644 --- a/RELEASE +++ b/RELEASE @@ -1,6 +1,6 @@ IPFS hash of the deployment: -- CIDv0: `QmSXtnd5rc5ifhuGDZ9oSTWzT3hby6KQJ8Lw3hbVzpvfD5` -- CIDv1: `bafybeib6kag7hqjgchx7kr7novcjc42sn6bc5iq2u27ra5n2wimtjiwg5q` +- CIDv0: `QmbENTNezCQwTKQ2VkX1SqyZZPRrduUGjfXvek11DL4yn3` +- CIDv1: `bafybeif7rqirjplagadkzstmg5kpcsusw3urflnjglb2wuqtunyune3fhq` The latest release is always mirrored at [app.uniswap.org](https://app.uniswap.org). @@ -10,14 +10,9 @@ You can also access the Uniswap Interface from an IPFS gateway. Your Uniswap settings are never remembered across different URLs. IPFS gateways: -- https://bafybeib6kag7hqjgchx7kr7novcjc42sn6bc5iq2u27ra5n2wimtjiwg5q.ipfs.dweb.link/ -- [ipfs://QmSXtnd5rc5ifhuGDZ9oSTWzT3hby6KQJ8Lw3hbVzpvfD5/](ipfs://QmSXtnd5rc5ifhuGDZ9oSTWzT3hby6KQJ8Lw3hbVzpvfD5/) +- https://bafybeif7rqirjplagadkzstmg5kpcsusw3urflnjglb2wuqtunyune3fhq.ipfs.dweb.link/ +- [ipfs://QmbENTNezCQwTKQ2VkX1SqyZZPRrduUGjfXvek11DL4yn3/](ipfs://QmbENTNezCQwTKQ2VkX1SqyZZPRrduUGjfXvek11DL4yn3/) -### 5.69.3 (2025-02-07) - - -### Bug Fixes - -* **web:** show correct token amount in PDP tx table [prod] (#16114) 5391b42 +### 5.69.4 (2025-02-07) diff --git a/VERSION b/VERSION index c4e89754f08..0ea080ba521 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -web/5.69.3 \ No newline at end of file +web/5.69.4 \ No newline at end of file diff --git a/packages/uniswap/src/data/apiClients/tradingApi/TradingApiClient.ts b/packages/uniswap/src/data/apiClients/tradingApi/TradingApiClient.ts index 0f9c290d50c..a1782e3e695 100644 --- a/packages/uniswap/src/data/apiClients/tradingApi/TradingApiClient.ts +++ b/packages/uniswap/src/data/apiClients/tradingApi/TradingApiClient.ts @@ -37,6 +37,8 @@ import { TransactionHash, UniversalRouterVersion, } from 'uniswap/src/data/tradingApi/__generated__' +import { UniverseChainId } from 'uniswap/src/features/chains/types' +import { isTestEnv } from 'utilities/src/environment/env' // TradingAPI team is looking into updating type generation to produce the following types for it's current QuoteResponse type: // See: https://linear.app/uniswap/issue/API-236/explore-changing-the-quote-schema-to-pull-out-a-basequoteresponse @@ -125,11 +127,19 @@ export async function fetchOrders({ orderIds }: { orderIds: string[] }): Promise } export async function fetchSwappableTokens(params: SwappableTokensParams): Promise { + const chainBlocklist = params.unichainEnabled ? [] : [UniverseChainId.Unichain.toString()] + return await TradingApiClient.get(uniswapUrls.tradingApiPaths.swappableTokens, { params: { tokenIn: params.tokenIn, tokenInChainId: params.tokenInChainId, }, + headers: + params.unichainEnabled || isTestEnv() + ? {} + : { + 'x-chain-blocklist': chainBlocklist.join(','), + }, }) } diff --git a/packages/uniswap/src/data/apiClients/tradingApi/useTradingApiSwappableTokensQuery.ts b/packages/uniswap/src/data/apiClients/tradingApi/useTradingApiSwappableTokensQuery.ts index a93d13b9610..366469cac0d 100644 --- a/packages/uniswap/src/data/apiClients/tradingApi/useTradingApiSwappableTokensQuery.ts +++ b/packages/uniswap/src/data/apiClients/tradingApi/useTradingApiSwappableTokensQuery.ts @@ -23,6 +23,7 @@ import { MAX_REACT_QUERY_CACHE_TIME_MS } from 'utilities/src/time/time' export type SwappableTokensParams = { tokenIn: Address tokenInChainId: ChainId + unichainEnabled?: boolean } export function useTradingApiSwappableTokensQuery({ diff --git a/packages/uniswap/src/features/bridging/hooks/chains.ts b/packages/uniswap/src/features/bridging/hooks/chains.ts index a21081e2aa2..8e8670b4f4e 100644 --- a/packages/uniswap/src/features/bridging/hooks/chains.ts +++ b/packages/uniswap/src/features/bridging/hooks/chains.ts @@ -3,6 +3,8 @@ import { useTradingApiSwappableTokensQuery } from 'uniswap/src/data/apiClients/t import { ChainId } from 'uniswap/src/data/tradingApi/__generated__' import { UniverseChainId } from 'uniswap/src/features/chains/types' import { toSupportedChainId } from 'uniswap/src/features/chains/utils' +import { FeatureFlags } from 'uniswap/src/features/gating/flags' +import { useFeatureFlag } from 'uniswap/src/features/gating/hooks' import { NATIVE_ADDRESS_FOR_TRADING_API, toTradingApiSupportedChainId, @@ -11,10 +13,12 @@ import { const FALLBACK_NUM_CHAINS = 8 export function useNumBridgingChains(): number { + const unichainEnabled = useFeatureFlag(FeatureFlags.Unichain) const { data: bridgingTokens } = useTradingApiSwappableTokensQuery({ params: { tokenIn: NATIVE_ADDRESS_FOR_TRADING_API, tokenInChainId: ChainId._1, + unichainEnabled, }, }) @@ -25,10 +29,12 @@ export function useNumBridgingChains(): number { } export function useIsBridgingChain(chainId: UniverseChainId): boolean { + const unichainEnabled = useFeatureFlag(FeatureFlags.Unichain) const { data: bridgingTokens } = useTradingApiSwappableTokensQuery({ params: { tokenIn: NATIVE_ADDRESS_FOR_TRADING_API, tokenInChainId: ChainId._1, + unichainEnabled, }, }) @@ -39,10 +45,12 @@ export function useIsBridgingChain(chainId: UniverseChainId): boolean { } export function useBridgingSupportedChainIds(): UniverseChainId[] { + const unichainEnabled = useFeatureFlag(FeatureFlags.Unichain) const { data: bridgingTokens } = useTradingApiSwappableTokensQuery({ params: { tokenIn: NATIVE_ADDRESS_FOR_TRADING_API, tokenInChainId: ChainId._1, + unichainEnabled, }, }) diff --git a/packages/uniswap/src/features/bridging/hooks/tokens.ts b/packages/uniswap/src/features/bridging/hooks/tokens.ts index 7ecabc17f9c..9f92cadab92 100644 --- a/packages/uniswap/src/features/bridging/hooks/tokens.ts +++ b/packages/uniswap/src/features/bridging/hooks/tokens.ts @@ -14,6 +14,8 @@ import { ALL_CHAIN_IDS, UniverseChainId } from 'uniswap/src/features/chains/type import { toSupportedChainId } from 'uniswap/src/features/chains/utils' import { CurrencyInfo, PortfolioBalance } from 'uniswap/src/features/dataApi/types' import { currencyIdToContractInput } from 'uniswap/src/features/dataApi/utils' +import { FeatureFlags } from 'uniswap/src/features/gating/flags' +import { useFeatureFlag } from 'uniswap/src/features/gating/hooks' import { NATIVE_ADDRESS_FOR_TRADING_API, getTokenAddressFromChainForTradingApi, @@ -54,12 +56,14 @@ export function useBridgingTokenWithHighestBalance({ fetchPolicy: 'cache-first', }) + const unichainEnabled = useFeatureFlag(FeatureFlags.Unichain) const { data: bridgingTokens } = useTradingApiSwappableTokensQuery({ params: otherChainBalances && otherChainBalances?.length > 0 && tokenIn && tokenInChainId ? { tokenIn, tokenInChainId, + unichainEnabled, } : undefined, }) @@ -118,7 +122,7 @@ export function useBridgingTokensOptions({ }): GqlResult & { shouldNest?: boolean } { const tokenIn = input?.address ? getTokenAddressFromChainForTradingApi(input.address, input.chainId) : undefined const tokenInChainId = toTradingApiSupportedChainId(input?.chainId) - + const unichainEnabled = useFeatureFlag(FeatureFlags.Unichain) const { data: bridgingTokens, isLoading: loadingBridgingTokens, @@ -130,6 +134,7 @@ export function useBridgingTokensOptions({ ? { tokenIn, tokenInChainId, + unichainEnabled, } : undefined, })