Skip to content

Commit 3b655d2

Browse files
ci(release): publish latest release
1 parent 16fe8a3 commit 3b655d2

File tree

390 files changed

+12266
-4120
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

390 files changed

+12266
-4120
lines changed

.dockerignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# =============================================================================
2-
# .dockerignore for api-self-serve
2+
# .dockerignore for Docker builds (api-self-serve, mission-control)
33
# =============================================================================
44

55
# Dependencies (reinstalled in container)

RELEASE

Lines changed: 49 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
IPFS hash of the deployment:
2-
- CIDv0: `QmPmdNUVNBpYCTEwd3ZGuBsstNv3UFksebFx4yDE5Dpaqi`
3-
- CIDv1: `bafybeiavigyzqlyual3cj6htkjjnjpdgiour4f2frt57nf4dbn5huu66qu`
2+
- CIDv0: `QmNUF7AEq4As66eZBa6w94XBeg4fXSFQtnLgRw4PVrF4wH`
3+
- CIDv1: `bafybeiab6h2ydorvjkntldeks6g5wi7yncj7xei2bmgtttwow257xqpspa`
44

55
The latest release is always mirrored at [app.uniswap.org](https://app.uniswap.org).
66

@@ -10,14 +10,57 @@ You can also access the Uniswap Interface from an IPFS gateway.
1010
Your Uniswap settings are never remembered across different URLs.
1111

1212
IPFS gateways:
13-
- https://bafybeiavigyzqlyual3cj6htkjjnjpdgiour4f2frt57nf4dbn5huu66qu.ipfs.dweb.link/
14-
- [ipfs://QmPmdNUVNBpYCTEwd3ZGuBsstNv3UFksebFx4yDE5Dpaqi/](ipfs://QmPmdNUVNBpYCTEwd3ZGuBsstNv3UFksebFx4yDE5Dpaqi/)
13+
- https://bafybeiab6h2ydorvjkntldeks6g5wi7yncj7xei2bmgtttwow257xqpspa.ipfs.dweb.link/
14+
- [ipfs://QmNUF7AEq4As66eZBa6w94XBeg4fXSFQtnLgRw4PVrF4wH/](ipfs://QmNUF7AEq4As66eZBa6w94XBeg4fXSFQtnLgRw4PVrF4wH/)
1515

16-
### 5.135.1 (2026-02-25)
16+
## 5.136.0 (2026-03-04)
17+
18+
19+
### Features
20+
21+
* **web:** integrate live prices via BFF WebSocket proxy (#29030) 8557385
22+
* **web:** Remove Send button from TDP bottom bar (#28825) d4bf1c0
23+
* **web:** tick lod - v2 (#27089) d13695a
24+
* **websocket:** add session refresh timer and stale socket guards (#28976) 4653f75
1725

1826

1927
### Bug Fixes
2028

21-
* **web:** hotfix #29070 (#5.134.3) (#29073) 78ee400
29+
* **web:** Add dedicated Withdraw transaction type for activity parsing (#29034) c5a3072
30+
* **web:** add FilterStoreContextProvider to pools table in TDP (#28986) 55425c7
31+
* **web:** add hover background to pinned v2 table columns (#29021) e962c18
32+
* **web:** Add information about offline mode in explore tables (#28985) 57ae4c6
33+
* **web:** add max height logic on dropdown to prevent page overflow (#28923) bc2535d
34+
* **web:** Apply column direction for chart header on mobile web (#28984) 6019240
35+
* **web:** cherry-pick #29113 (#5.135.1) (#29116) 636cb12
36+
* **web:** cherry-pick #29128 (#5.135.1) (#29136) eb75f12
37+
* **web:** Don't re-render avatars on scroll in Portfolio's activity (… (#29269) da332d4
38+
* **web:** fix nav searchbar text overflow b4b3e86
39+
* **web:** fix nav searchbar text overflow (#29294) abaa337
40+
* **web:** Fixes AccountDrawer max-height issue (#29100) 46de4cc
41+
* **web:** improve text color after clicking privacy and terms links (#28991) ae902c0
42+
* **web:** LP-647 align token banner fdv (#28631) c2fe0e9
43+
* **web:** prevent named window hijacking in download links (#28999) 2cd2ead
44+
* **web:** resolve scroll arrow buttons becoming unresponsive on mWeb (#28907) 54459cc
45+
* **web:** show active pools tab visually (#28987) ae8530e
46+
* **web:** use actual token price for FDV in completed auctions (#28630) 0d34a69
47+
* **web:** use key when rendering OffchainActivityModal to keep react state per-order (#28971) e29c215
48+
49+
50+
### Continuous Integration
51+
52+
* **web:** update sitemaps 35a16aa
53+
54+
55+
### Code Refactoring
56+
57+
* **web:** centralize price fetching (#29023) d2596ab
58+
* **web:** extract shared token pricing utilities (#28629) f8108bc
59+
* **web:** fix some egw proxy edge cases (#29112) 5f6e6d1
60+
61+
62+
### Tests
63+
64+
* **web:** fix portfolio e2e tests (#28847) c3f15f0
2265

2366

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
web/5.135.1
1+
web/5.136.0

apps/extension/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"@tanstack/react-query": "5.90.20",
1717
"@types/uuid": "9.0.1",
1818
"@uniswap/analytics-events": "2.43.0",
19-
"@uniswap/client-notification-service": "0.0.9",
19+
"@uniswap/client-notification-service": "0.0.11",
2020
"@uniswap/sdk-core": "7.10.1",
2121
"@uniswap/universal-router-sdk": "4.29.2",
2222
"@uniswap/v3-sdk": "3.27.0",

apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/SwapDisplay.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { UniverseChainId } from 'uniswap/src/features/chains/types'
1010
import { CurrencyInfo } from 'uniswap/src/features/dataApi/types'
1111
import { useLocalizationContext } from 'uniswap/src/features/language/LocalizationContext'
1212
import { getCurrencyAmount, ValueType } from 'uniswap/src/features/tokens/getCurrencyAmount'
13-
import { useUSDCValue } from 'uniswap/src/features/transactions/hooks/useUSDCPrice'
13+
import { useUSDCValue } from 'uniswap/src/features/transactions/hooks/useUSDCPriceWrapper'
1414
import { NumberType } from 'utilities/src/format/types'
1515

1616
export function SwapDisplay({

apps/extension/src/app/features/onboarding/import/InitiatePasskeyAuth.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import {
2222
PasskeySignInFlowOpenedSchema,
2323
} from 'uniswap/src/extension/messagePassing/types/requests'
2424
import { EXTENSION_PASSKEY_AUTH_PATH } from 'uniswap/src/features/passkey/constants'
25-
import { Action, AuthenticationTypes } from 'uniswap/src/features/passkey/embeddedWallet'
25+
import { getPrivyEnums } from 'uniswap/src/features/passkey/embeddedWallet'
2626
import { useEmbeddedWalletBaseUrl } from 'uniswap/src/features/passkey/hooks/useEmbeddedWalletBaseUrl'
2727
import Trace from 'uniswap/src/features/telemetry/Trace'
2828
import { ExtensionOnboardingFlow, ExtensionOnboardingScreens } from 'uniswap/src/types/screens/extension'
@@ -129,6 +129,7 @@ function InitiatePasskeyAuthContent(): JSX.Element {
129129
try {
130130
const requestId = uuid()
131131

132+
const { Action, AuthenticationTypes } = await getPrivyEnums()
132133
const challengeResponse = await EmbeddedWalletApiClient.fetchChallengeRequest({
133134
type: AuthenticationTypes.PASSKEY_AUTHENTICATION,
134135
action: Action.EXPORT_SEED_PHRASE,

apps/extension/src/app/features/send/SendFormScreen/SendFormScreen.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
TransactionScreen,
1515
useTransactionModalContext,
1616
} from 'uniswap/src/features/transactions/components/TransactionModal/TransactionModalContext'
17-
import { useUSDCValue } from 'uniswap/src/features/transactions/hooks/useUSDCPrice'
17+
import { useUSDCValue } from 'uniswap/src/features/transactions/hooks/useUSDCPriceWrapper'
1818
import { useUSDTokenUpdater } from 'uniswap/src/features/transactions/hooks/useUSDTokenUpdater'
1919
import { BlockedAddressWarning } from 'uniswap/src/features/transactions/modals/BlockedAddressWarning'
2020
import { LowNativeBalanceModal } from 'uniswap/src/features/transactions/modals/LowNativeBalanceModal'

apps/extension/src/app/features/swap/SwapFlowScreen.tsx

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { CurrencyField } from 'uniswap/src/types/currency'
1313
import { logger } from 'utilities/src/logger/logger'
1414
import { WalletSwapFlow } from 'wallet/src/features/transactions/swap/WalletSwapFlow'
1515
import { invalidateAndRefetchWalletDelegationQueries } from 'wallet/src/features/transactions/watcher/transactionFinalizationSaga'
16-
import { useActiveAccountWithThrow, useSignerAccounts } from 'wallet/src/features/wallet/hooks'
16+
import { useActiveAccountWithThrow } from 'wallet/src/features/wallet/hooks'
1717

1818
export function SwapFlowScreen(): JSX.Element {
1919
const dispatch = useDispatch()
@@ -32,16 +32,12 @@ export function SwapFlowScreen(): JSX.Element {
3232
filteredChainIdsOverride: ignorePersistedFilteredChainIds ? undefined : persistedFilteredChainIds,
3333
})
3434

35-
const signerMnemonicAccounts = useSignerAccounts()
36-
const chains = useEnabledChains()
37-
const accountAddresses = signerMnemonicAccounts.map((account) => account.address)
38-
3935
// Update flow start timestamp every time modal is opened for logging
4036
useEffect(() => {
41-
invalidateAndRefetchWalletDelegationQueries({ accountAddresses, chainIds: chains.chains }).catch((error) =>
37+
invalidateAndRefetchWalletDelegationQueries().catch((error) =>
4238
logger.debug('SwapFlowScreen', 'useEffect', 'Failed to invalidate and refetch wallet delegation queries', error),
4339
)
44-
}, [accountAddresses, chains.chains])
40+
}, [])
4541

4642
const preservedTransactionStateRef = useRef<TransactionState | null>(null)
4743
const initialTransactionState = useMemo(() => {

apps/extension/src/app/navigation/navigation.tsx

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import { isOnboardedSelector } from 'src/app/utils/isOnboardedSelector'
2020
import { AnimatePresence, Flex, SpinningLoader, styled } from 'ui/src'
2121
import { TestnetModeBanner } from 'uniswap/src/components/banners/TestnetModeBanner'
2222
import { useIsChromeWindowFocusedWithTimeout } from 'uniswap/src/extension/useIsChromeWindowFocused'
23+
import { TokenPriceProvider } from 'uniswap/src/features/prices/TokenPriceContext'
2324
import { useEvent, usePrevious } from 'utilities/src/react/hooks'
2425
import { ONE_SECOND_MS } from 'utilities/src/time/time'
2526
import { AccountsStoreContextProvider } from 'wallet/src/features/accounts/store/provider'
@@ -151,14 +152,16 @@ export function WebNavigation(): JSX.Element {
151152
return (
152153
<SidebarNavigationProvider>
153154
<NativeWalletProvider>
154-
<WalletUniswapProvider>
155-
<AccountsStoreContextProvider>
156-
<NotificationToastWrapper />
157-
{shouldRestoreScroll && <ScrollRestoration />}
158-
{childrenMemo}
159-
{isLoggedIn && <ForceUpgradeModal />}
160-
</AccountsStoreContextProvider>
161-
</WalletUniswapProvider>
155+
<TokenPriceProvider>
156+
<WalletUniswapProvider>
157+
<AccountsStoreContextProvider>
158+
<NotificationToastWrapper />
159+
{shouldRestoreScroll && <ScrollRestoration />}
160+
{childrenMemo}
161+
{isLoggedIn && <ForceUpgradeModal />}
162+
</AccountsStoreContextProvider>
163+
</WalletUniswapProvider>
164+
</TokenPriceProvider>
162165
</NativeWalletProvider>
163166
</SidebarNavigationProvider>
164167
)

apps/extension/src/contentScript/methodHandlers/ExtensionEthMethodHandler.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ import { chainIdToHexadecimalString, toSupportedChainId } from 'uniswap/src/feat
4848
import { DappRequestType, DappResponseType, EthMethod } from 'uniswap/src/features/dappRequests/types'
4949
import { isSelfCallWithData } from 'uniswap/src/features/dappRequests/utils'
5050
import { Platform } from 'uniswap/src/features/platforms/types/Platform'
51+
import { InstrumentedJsonRpcProvider } from 'uniswap/src/features/providers/observability/InstrumentedJsonRpcProvider'
52+
import { getRpcObserver } from 'uniswap/src/features/providers/observability/rpcObserver'
5153
import { areAddressesEqual } from 'uniswap/src/utils/addresses'
5254
import { extractBaseUrl } from 'utilities/src/format/urls'
5355

@@ -129,7 +131,13 @@ export class ExtensionEthMethodHandler extends BaseMethodHandler<WindowEthereumR
129131
})?.source
130132

131133
this.setChainIdAndMaybeEmit(message.chainId)
132-
this.setProvider(new JsonRpcProvider(message.providerUrl, parseInt(message.chainId)))
134+
this.setProvider(
135+
new InstrumentedJsonRpcProvider({
136+
url: message.providerUrl,
137+
chainIdOrNetwork: parseInt(message.chainId),
138+
observer: getRpcObserver(),
139+
}),
140+
)
133141
source?.postMessage({
134142
requestId: message.requestId,
135143
result: message.chainId,
@@ -289,7 +297,13 @@ export class ExtensionEthMethodHandler extends BaseMethodHandler<WindowEthereumR
289297
}): void {
290298
this.setConnectedAddressesAndMaybeEmit(connectedAddresses)
291299
this.setChainIdAndMaybeEmit(chainId)
292-
this.setProvider(new JsonRpcProvider(providerUrl, parseInt(chainId)))
300+
this.setProvider(
301+
new InstrumentedJsonRpcProvider({
302+
url: providerUrl,
303+
chainIdOrNetwork: parseInt(chainId),
304+
observer: getRpcObserver(),
305+
}),
306+
)
293307
}
294308

295309
// eslint-disable-next-line complexity

0 commit comments

Comments
 (0)