Skip to content

Commit c2b82b5

Browse files
ci(release): publish latest release
1 parent 922a412 commit c2b82b5

File tree

425 files changed

+16785
-10885
lines changed

Some content is hidden

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

425 files changed

+16785
-10885
lines changed

RELEASE

+76-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
IPFS hash of the deployment:
2-
- CIDv0: `QmSFSxn2NQ8LP2HZckSX6WkmwGz9SQudXWqsQ9ShJKRZSb`
3-
- CIDv1: `bafybeib2dgh2xulteyu7s2lwepf2oyuwf63k3cpxeb5ogcnemn3cdsmpjq`
2+
- CIDv0: `QmQCnXjjekxSd3k2zzpWjh85rA7sgg1R3RiiiGMTpVgNE6`
3+
- CIDv1: `bafybeia3wojcisyfrr4bcavcvvrza2e2jxcoqo557gmewxmgx4gcv7msum`
44

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

@@ -10,15 +10,84 @@ 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://bafybeib2dgh2xulteyu7s2lwepf2oyuwf63k3cpxeb5ogcnemn3cdsmpjq.ipfs.dweb.link/
14-
- https://bafybeib2dgh2xulteyu7s2lwepf2oyuwf63k3cpxeb5ogcnemn3cdsmpjq.ipfs.cf-ipfs.com/
15-
- [ipfs://QmSFSxn2NQ8LP2HZckSX6WkmwGz9SQudXWqsQ9ShJKRZSb/](ipfs://QmSFSxn2NQ8LP2HZckSX6WkmwGz9SQudXWqsQ9ShJKRZSb/)
13+
- https://bafybeia3wojcisyfrr4bcavcvvrza2e2jxcoqo557gmewxmgx4gcv7msum.ipfs.dweb.link/
14+
- https://bafybeia3wojcisyfrr4bcavcvvrza2e2jxcoqo557gmewxmgx4gcv7msum.ipfs.cf-ipfs.com/
15+
- [ipfs://QmQCnXjjekxSd3k2zzpWjh85rA7sgg1R3RiiiGMTpVgNE6/](ipfs://QmQCnXjjekxSd3k2zzpWjh85rA7sgg1R3RiiiGMTpVgNE6/)
1616

17-
### 5.65.2 (2025-01-16)
17+
## 5.66.0 (2025-01-21)
18+
19+
20+
### Features
21+
22+
* **web:** add basic behavior history reset button (#14917) 80c38bf
23+
* **web:** align main CTA buttons in all swap forms (#14954) 4d9d0b7
24+
* **web:** design changes for pool out of sync state (#15178) 5b17719
25+
* **web:** display dependent amount from Trading API response in Increase LP flow (#15116) 3fb84dd
26+
* **web:** log sentry error for approve/increase/decrease/create/migrate [lp] (#15223) 6ee46f0
27+
* **web:** log sentry error for claim [lp] (#15218) 6a8e41b
28+
* **web:** unichain card (cold) (#14820) 56c5117
29+
* **web:** unichain card (warm) (#14822) 1b42422
30+
* **web:** update create trading api (#15159) 2d6e12e
1831

1932

2033
### Bug Fixes
2134

22-
* **web:** cherry-picks lping to reduce trading API errors (#15225) 1db3f5d
35+
* **mweb:** decimal separator on mweb (#15219) 2a75310
36+
* **web:** add settings context provider to migrate page (#15195) c703139
37+
* **web:** apply position list filters to saved pairs (#15050) 8463eef
38+
* **web:** approve the wrapped token for v2 + v3 (#15217) 140fca5
39+
* **web:** avoid showing incorrect Trading API error messages when skipping queries (#15038) ecfc228
40+
* **web:** broken link on v2 migrate page (#15156) a813623
41+
* **web:** disable range input when lacking data to visualize (#15067) 5ff362b
42+
* **web:** DoubleLogo networkLogo bug (#15154) e95a795
43+
* **web:** explore table should use chainId in ranking (#15103) b1c0e2e
44+
* **web:** fix analytics toggle setting flash (#15128) 07e954a
45+
* **web:** fix blocked token language (#15132) f6d06dd
46+
* **web:** fix infinite loop on analytics toggle (#15070) fd57c35
47+
* **web:** fix max token amount calc error (#15139) bb425a5
48+
* **web:** fix mweb navigation test (#15014) 6600909
49+
* **web:** fix numbers for LP flow analytics (#15140) 7fef11e
50+
* **web:** fix scroll persist on transactions table tab (#14795) 621dc15
51+
* **web:** fix the tokenA and tokenB deposit form for single-sided liquidity (#15174) 581d4d0
52+
* **web:** fix wrapping/unwrapping for v3 (#15263) f29bcb8
53+
* **web:** handle empty quotes array from new FOR service (#14955) ab29c6b
54+
* **web:** import esm version of connectrpc (#14998) 9d4409b
55+
* **web:** import esm version of i18next (#15006) 019c9c1
56+
* **web:** import v2 positions fixes (#15151) fd0d075
57+
* **web:** incorrect base/quote currency labels for price range on edit component (#15285) 88da0e4
58+
* **web:** price range input bug fix (#15228) b0ce03b
59+
* **web:** react key error in LP create flow (#15034) 01b6ab5
60+
* **web:** remove auto-wrapping option for v4 increase / decrease (#15232) 1e203d8
61+
* **web:** remove liquidity input 100 max (#14968) f96c4a5
62+
* **web:** remove unnecessary tooltip from v2 migration page (#15155) 70cce38
63+
* **web:** scroll on nav dropdown and adjust max height (#15087) c594c67
64+
* **web:** search input padding ui fix for mweb safari (#15039) 2b28393
65+
* **web:** single-sided liquidity crash (#15224) eecc9ab
66+
* **web:** UI fixes for v4 position cards (#15053) c1ca09c
67+
* **web:** unavailable price state for pool creation (#15071) eb19cbe
68+
* **web:** update calls to trading api after new schema change (#15095) 77391b5
69+
* **web:** update google conversion datetime format (#15021) 1cbb13f
70+
* **web:** update input to trading api fro v3 + v4 create (#15205) 382c928
71+
* **web:** use deeplink to default to unichain (#15318) 528b5f5
72+
* **web:** v4 bug bash fixes (#15212) 62d63a8
73+
* **web:** v4 hook flow fixes (#15052) 329f961
74+
* **web:** v4 UI nit fixes (#15051) e20b2c1
75+
76+
77+
### Styles
78+
79+
* **web:** staging copy nav dropdown item style (#15322) 94fff89
80+
81+
82+
### Continuous Integration
83+
84+
* **web:** update sitemaps 55b34d7
85+
86+
87+
### Code Refactoring
88+
89+
* **web:** use universe ens address hook (#14669) 1c229db
90+
* **web:** use universe ens avatar hook (#14670) 7af231a
91+
* **web:** use universe ens name hook (#14667) ce789a4
2392

2493

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
web/5.65.2
1+
web/5.66.0

apps/extension/.gitignore

-3
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,3 @@ dist-ssr
2525
*.sw?
2626

2727
.tamagui
28-
29-
# Sentry Config File
30-
.env.sentry-build-plugin

apps/extension/package.json

+3-6
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,14 @@
99
"@ethersproject/providers": "5.7.2",
1010
"@metamask/rpc-errors": "6.2.1",
1111
"@reduxjs/toolkit": "1.9.3",
12-
"@sentry/browser": "7.80.0",
13-
"@sentry/react": "7.80.0",
14-
"@sentry/webpack-plugin": "2.10.3",
1512
"@svgr/webpack": "8.0.1",
1613
"@tamagui/core": "1.114.4",
1714
"@types/uuid": "9.0.1",
1815
"@uniswap/analytics-events": "2.40.0",
1916
"@uniswap/uniswapx-sdk": "3.0.0-beta.1",
20-
"@uniswap/universal-router-sdk": "4.7.0",
21-
"@uniswap/v3-sdk": "3.19.0",
22-
"@uniswap/v4-sdk": "1.12.0",
17+
"@uniswap/universal-router-sdk": "4.10.0",
18+
"@uniswap/v3-sdk": "3.21.0",
19+
"@uniswap/v4-sdk": "1.15.0",
2320
"dotenv-webpack": "8.0.1",
2421
"ethers": "5.7.2",
2522
"eventemitter3": "5.0.1",

apps/extension/src/app/Global.css

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ body,
22
html {
33
height: 100%;
44
max-width: 100vw;
5+
font-feature-settings: 'liga' 0;
6+
font-variant-ligatures: no-contextual;
57
}
68

79
#root {

apps/extension/src/app/OnboardingApp.tsx

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@ import 'symbol-observable' // Needed by `reduxed-chrome-storage` as polyfill, or
44

55
import { useEffect } from 'react'
66
import { I18nextProvider } from 'react-i18next'
7-
import { RouteObject, RouterProvider } from 'react-router-dom'
7+
import { RouteObject, RouterProvider, createHashRouter } from 'react-router-dom'
88
import { PersistGate } from 'redux-persist/integration/react'
99
import { ExtensionStatsigProvider } from 'src/app/StatsigProvider'
1010
import { GraphqlProvider } from 'src/app/apollo'
1111
import { ErrorElement } from 'src/app/components/ErrorElement'
12+
import { DatadogAppNameTag } from 'src/app/datadog'
1213
import { ClaimUnitagScreen } from 'src/app/features/onboarding/ClaimUnitagScreen'
1314
import { Complete } from 'src/app/features/onboarding/Complete'
1415
import {
@@ -34,7 +35,6 @@ import { ScanToOnboard } from 'src/app/features/onboarding/scan/ScanToOnboard'
3435
import { ScantasticContextProvider } from 'src/app/features/onboarding/scan/ScantasticContextProvider'
3536
import { OnboardingRoutes, TopLevelRoutes } from 'src/app/navigation/constants'
3637
import { setRouter, setRouterState } from 'src/app/navigation/state'
37-
import { SentryAppNameTag, sentryCreateHashRouter } from 'src/app/sentry'
3838
import { initExtensionAnalytics } from 'src/app/utils/analytics'
3939
import { checksIfSupportsSidePanel } from 'src/app/utils/chrome'
4040
import { PrimaryAppInstanceDebuggerLazy } from 'src/store/PrimaryAppInstanceDebuggerLazy'
@@ -135,7 +135,7 @@ const allRoutes = [
135135
},
136136
]
137137

138-
const router = sentryCreateHashRouter([
138+
const router = createHashRouter([
139139
{
140140
path: `/${TopLevelRoutes.Onboarding}`,
141141
element: <OnboardingWrapper />,
@@ -188,7 +188,7 @@ export default function OnboardingApp(): JSX.Element {
188188
return (
189189
<Trace>
190190
<PersistGate persistor={getReduxPersistor()}>
191-
<ExtensionStatsigProvider appName={SentryAppNameTag.Onboarding}>
191+
<ExtensionStatsigProvider appName={DatadogAppNameTag.Onboarding}>
192192
<I18nextProvider i18n={i18n}>
193193
<SharedWalletProvider reduxStore={getReduxStore()}>
194194
<ErrorBoundary>

apps/extension/src/app/PopupApp.tsx

+4-16
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ import 'src/app/Global.css'
44
import { useEffect } from 'react'
55
import { I18nextProvider, useTranslation } from 'react-i18next'
66
import { useDispatch } from 'react-redux'
7-
import { RouterProvider } from 'react-router-dom'
7+
import { RouterProvider, createHashRouter } from 'react-router-dom'
88
import { PersistGate } from 'redux-persist/integration/react'
99
import { ExtensionStatsigProvider } from 'src/app/StatsigProvider'
1010
import { GraphqlProvider } from 'src/app/apollo'
1111
import { ErrorElement } from 'src/app/components/ErrorElement'
1212
import { TraceUserProperties } from 'src/app/components/Trace/TraceUserProperties'
13+
import { DatadogAppNameTag } from 'src/app/datadog'
1314
import { DappContextProvider } from 'src/app/features/dapp/DappContext'
14-
import { SentryAppNameTag, initializeSentry, sentryCreateHashRouter } from 'src/app/sentry'
1515
import { initExtensionAnalytics } from 'src/app/utils/analytics'
1616
import { getReduxPersistor, getReduxStore } from 'src/store/store'
1717
import { DeprecatedButton, Flex, Image, Text } from 'ui/src'
@@ -25,23 +25,11 @@ import { ElementName } from 'uniswap/src/features/telemetry/constants'
2525
import { UnitagUpdaterContextProvider } from 'uniswap/src/features/unitags/context'
2626
import i18n from 'uniswap/src/i18n'
2727
import { ExtensionScreens } from 'uniswap/src/types/screens/extension'
28-
import { getUniqueId } from 'utilities/src/device/getUniqueId'
29-
import { logger } from 'utilities/src/logger/logger'
3028
import { ErrorBoundary } from 'wallet/src/components/ErrorBoundary/ErrorBoundary'
3129
import { useTestnetModeForLoggingAndAnalytics } from 'wallet/src/features/testnetMode/hooks'
3230
import { SharedWalletProvider } from 'wallet/src/providers/SharedWalletProvider'
3331

34-
getUniqueId()
35-
.then((userId) => {
36-
initializeSentry(SentryAppNameTag.Popup, userId)
37-
})
38-
.catch((error) => {
39-
logger.error(error, {
40-
tags: { file: 'PopupApp.tsx', function: 'getUniqueId' },
41-
})
42-
})
43-
44-
const router = sentryCreateHashRouter([
32+
const router = createHashRouter([
4533
{
4634
path: '',
4735
element: <PopupContent />,
@@ -128,7 +116,7 @@ export default function PopupApp(): JSX.Element {
128116
return (
129117
<Trace>
130118
<PersistGate persistor={getReduxPersistor()}>
131-
<ExtensionStatsigProvider appName={SentryAppNameTag.Popup}>
119+
<ExtensionStatsigProvider appName={DatadogAppNameTag.Popup}>
132120
<I18nextProvider i18n={i18n}>
133121
<SharedWalletProvider reduxStore={getReduxStore()}>
134122
<ErrorBoundary>

apps/extension/src/app/SidebarApp.tsx

+4-15
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ import 'src/app/Global.css'
44
import { useEffect, useRef, useState } from 'react'
55
import { I18nextProvider } from 'react-i18next'
66
import { useDispatch } from 'react-redux'
7-
import { RouterProvider } from 'react-router-dom'
7+
import { RouterProvider, createHashRouter } from 'react-router-dom'
88
import { PersistGate } from 'redux-persist/integration/react'
99
import { ExtensionStatsigProvider } from 'src/app/StatsigProvider'
1010
import { GraphqlProvider } from 'src/app/apollo'
1111
import { ErrorElement } from 'src/app/components/ErrorElement'
1212
import { TraceUserProperties } from 'src/app/components/Trace/TraceUserProperties'
13+
import { DatadogAppNameTag } from 'src/app/datadog'
1314
import { AccountSwitcherScreen } from 'src/app/features/accounts/AccountSwitcherScreen'
1415
import { DappContextProvider } from 'src/app/features/dapp/DappContext'
1516
import { addRequest } from 'src/app/features/dappRequests/saga'
@@ -29,7 +30,6 @@ import { useIsWalletUnlocked } from 'src/app/hooks/useIsWalletUnlocked'
2930
import { AppRoutes, RemoveRecoveryPhraseRoutes, SettingsRoutes } from 'src/app/navigation/constants'
3031
import { MainContent, WebNavigation } from 'src/app/navigation/navigation'
3132
import { setRouter, setRouterState } from 'src/app/navigation/state'
32-
import { SentryAppNameTag, initializeSentry, sentryCreateHashRouter } from 'src/app/sentry'
3333
import { initExtensionAnalytics } from 'src/app/utils/analytics'
3434
import {
3535
DappBackgroundPortChannel,
@@ -47,7 +47,6 @@ import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants'
4747
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
4848
import { UnitagUpdaterContextProvider, useUnitagUpdater } from 'uniswap/src/features/unitags/context'
4949
import i18n from 'uniswap/src/i18n'
50-
import { getUniqueId } from 'utilities/src/device/getUniqueId'
5150
import { isDevEnv } from 'utilities/src/environment/env'
5251
import { logger } from 'utilities/src/logger/logger'
5352
import { ONE_SECOND_MS } from 'utilities/src/time/time'
@@ -56,17 +55,7 @@ import { ErrorBoundary } from 'wallet/src/components/ErrorBoundary/ErrorBoundary
5655
import { useTestnetModeForLoggingAndAnalytics } from 'wallet/src/features/testnetMode/hooks'
5756
import { SharedWalletProvider } from 'wallet/src/providers/SharedWalletProvider'
5857

59-
getUniqueId()
60-
.then((userId) => {
61-
initializeSentry(SentryAppNameTag.Sidebar, userId)
62-
})
63-
.catch((error) => {
64-
logger.error(error, {
65-
tags: { file: 'SidebarApp.tsx', function: 'getUniqueId' },
66-
})
67-
})
68-
69-
const router = sentryCreateHashRouter([
58+
const router = createHashRouter([
7059
{
7160
path: '',
7261
element: <SidebarWrapper />,
@@ -258,7 +247,7 @@ export default function SidebarApp(): JSX.Element {
258247
return (
259248
<Trace>
260249
<PersistGate persistor={getReduxPersistor()}>
261-
<ExtensionStatsigProvider appName={SentryAppNameTag.Sidebar}>
250+
<ExtensionStatsigProvider appName={DatadogAppNameTag.Sidebar}>
262251
<I18nextProvider i18n={i18n}>
263252
<SharedWalletProvider reduxStore={getReduxStore()}>
264253
<ErrorBoundary>

apps/extension/src/app/UnitagClaimApp.tsx

+4-15
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@ import 'src/app/Global.css'
33

44
import { PropsWithChildren, useEffect } from 'react'
55
import { I18nextProvider } from 'react-i18next'
6-
import { Outlet, RouterProvider, useSearchParams } from 'react-router-dom'
6+
import { Outlet, RouterProvider, createHashRouter, useSearchParams } from 'react-router-dom'
77
import { PersistGate } from 'redux-persist/integration/react'
88
import { ExtensionStatsigProvider } from 'src/app/StatsigProvider'
99
import { GraphqlProvider } from 'src/app/apollo'
1010
import { ErrorElement } from 'src/app/components/ErrorElement'
1111
import { TraceUserProperties } from 'src/app/components/Trace/TraceUserProperties'
12+
import { DatadogAppNameTag } from 'src/app/datadog'
1213
import {
1314
ClaimUnitagSteps,
1415
OnboardingStepsProvider,
@@ -23,7 +24,6 @@ import { UnitagCreateUsernameScreen } from 'src/app/features/unitags/UnitagCreat
2324
import { UnitagIntroScreen } from 'src/app/features/unitags/UnitagIntroScreen'
2425
import { UnitagClaimRoutes } from 'src/app/navigation/constants'
2526
import { setRouter, setRouterState } from 'src/app/navigation/state'
26-
import { SentryAppNameTag, initializeSentry, sentryCreateHashRouter } from 'src/app/sentry'
2727
import { initExtensionAnalytics } from 'src/app/utils/analytics'
2828
import { getReduxPersistor, getReduxStore } from 'src/store/store'
2929
import { Flex } from 'ui/src'
@@ -32,25 +32,14 @@ import { LocalizationContextProvider } from 'uniswap/src/features/language/Local
3232
import Trace from 'uniswap/src/features/telemetry/Trace'
3333
import { UnitagUpdaterContextProvider } from 'uniswap/src/features/unitags/context'
3434
import i18n from 'uniswap/src/i18n'
35-
import { getUniqueId } from 'utilities/src/device/getUniqueId'
3635
import { logger } from 'utilities/src/logger/logger'
3736
import { usePrevious } from 'utilities/src/react/hooks'
3837
import { ErrorBoundary } from 'wallet/src/components/ErrorBoundary/ErrorBoundary'
3938
import { useTestnetModeForLoggingAndAnalytics } from 'wallet/src/features/testnetMode/hooks'
4039
import { useAccountAddressFromUrlWithThrow } from 'wallet/src/features/wallet/hooks'
4140
import { SharedWalletProvider } from 'wallet/src/providers/SharedWalletProvider'
4241

43-
getUniqueId()
44-
.then((userId) => {
45-
initializeSentry(SentryAppNameTag.UnitagClaim, userId)
46-
})
47-
.catch((error) => {
48-
logger.error(error, {
49-
tags: { file: 'UnitagClaimApp.tsx', function: 'getUniqueId' },
50-
})
51-
})
52-
53-
const router = sentryCreateHashRouter([
42+
const router = createHashRouter([
5443
{
5544
path: '',
5645
element: <UnitagAppInner />,
@@ -162,7 +151,7 @@ export default function UnitagClaimApp(): JSX.Element {
162151
return (
163152
<Trace>
164153
<PersistGate persistor={getReduxPersistor()}>
165-
<ExtensionStatsigProvider appName={SentryAppNameTag.UnitagClaim}>
154+
<ExtensionStatsigProvider appName={DatadogAppNameTag.UnitagClaim}>
166155
<I18nextProvider i18n={i18n}>
167156
<SharedWalletProvider reduxStore={getReduxStore()}>
168157
<ErrorBoundary>

0 commit comments

Comments
 (0)