Skip to content

Commit

Permalink
ci(release): publish latest release
Browse files Browse the repository at this point in the history
  • Loading branch information
hello-happy-puppy committed Jan 28, 2025
1 parent 914fc4c commit 1b08f62
Show file tree
Hide file tree
Showing 671 changed files with 31,955 additions and 13,325 deletions.
1 change: 1 addition & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @uniswap/web-admins
93 changes: 85 additions & 8 deletions RELEASE
Original file line number Diff line number Diff line change
@@ -1,12 +1,89 @@
We are back with some new updates! Here’s the latest:
IPFS hash of the deployment:
- CIDv0: `QmNtCo1PghM7VEpvqi9Fm1vuEmuTPeQWb5WsVeNnkKnjUJ`
- CIDv1: `bafybeiaicvehxvmsqtyl4r2pd6unfxqvmsadic5jgjn6ah7ps3np47dw34`

Integrated Flashbots Protect: This is a private RPC provider that protects users from getting sandwiched on Mainnet.
The latest release is always mirrored at [app.uniswap.org](https://app.uniswap.org).

Max Balance Education: Introduces copy to educate users on why the Max button is disabled when they don't have enough of the network token to cover gas costs.
You can also access the Uniswap Interface from an IPFS gateway.
**BEWARE**: The Uniswap interface uses [`localStorage`](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage) to remember your settings, such as which tokens you have imported.
**You should always use an IPFS gateway that enforces origin separation**, or our hosted deployment of the latest release at [app.uniswap.org](https://app.uniswap.org).
Your Uniswap settings are never remembered across different URLs.

IPFS gateways:
- https://bafybeiaicvehxvmsqtyl4r2pd6unfxqvmsadic5jgjn6ah7ps3np47dw34.ipfs.dweb.link/
- [ipfs://QmNtCo1PghM7VEpvqi9Fm1vuEmuTPeQWb5WsVeNnkKnjUJ/](ipfs://QmNtCo1PghM7VEpvqi9Fm1vuEmuTPeQWb5WsVeNnkKnjUJ/)

## 5.68.0 (2025-01-28)


### Features

* **web:** add additional error description to the trading api error (#15490) 37043c4
* **web:** add bridging fallback for canonical bridge (#15434) b5d404d
* **web:** add flag to experiment with 2s l2 polling interval (#15383) c1aa575
* **web:** add hook url param for v4 positions (#15472) d6c3fa4
* **web:** add script for finding&deleting unused assets (#15358) 6678a83
* **web:** copy updates for v4 (#15389) 2b75dac
* **web:** Handle unknown USD values in LP positions (#15295) c1d994d
* **web:** prevent users from creating a pool with the wrapped native token (#15615) bf3b9eb
* **web:** show unichain promo tooltip on network selector (#14805) 352d05b
* **web:** unichain bridging tooltip + animation (#14842) e2536a5


### Bug Fixes

* **web:** 2 sec polling flag (#15404) 8ea60ed
* **web:** avoid precision error in parsing gql token balances (#15372) b4632cf
* **web:** buy form modals too tall (#15511) c5be5ae
* **web:** celo zksync v3 create staging (#15547) 685bf90
* **web:** consolidate Mutable<T> defs (#15360) 2a78e7e
* **web:** disable v4 LP creation for zksync and celo (#15393) 4a6f478
* **web:** dont poll after committing to calldata - create (#15437) ae7801c
* **web:** dont poll after committing to calldata - decrease (#15435) ceeae16
* **web:** dont poll after committing to calldata - increase (#15436) dff928e
* **web:** end holiday logo after Jan 7th (#15375) ea12101
* **web:** fix inversion issue for v4 (#15519) 5ce6c04
* **web:** fix migrate flow from the view positions page (#15338) c83f555
* **web:** fix the claim success toast (#15326) e0badea
* **web:** handle tick value of 0 (#15548) e04024b
* **web:** improve lp logging (#15356) dd06b3f
* **web:** layout of uniswapX routing settings labels (#15516) 7fc4f58
* **web:** log previousConnectedChainId only if previously connected (#15508) d8be58d
* **web:** LP create - dont refetch after error response (#15461) c4a5df3
* **web:** lp create - error message for unsupported v4 chains (#15487) 7f1e405
* **web:** LP event analytics chainId should not be connected chain (#15469) 17b3895
* **web:** lp zksync/celo disable migration to v4 (#15488) 7c0fdfc
* **web:** missing chart placeholder image for LP positions (#15513) 7a2b1a6
* **web:** modal content is hidden and not scrollable (#15344) c159c82
* **web:** move migrate flow behind a feature flag (#15578) 9ccaee2
* **web:** prevent calls to approve when there are no params (#15381) d39b798
* **web:** react hook errors in LP create flow (#15468) eae0c80
* **web:** remove migrate from context menu for v4 positions (#15464) 33d02e5
* **web:** remove reference to cf-ipfs from build workflow (#15363) 001965d
* **web:** remove spacing between swap and banner when no quote is available but tokens selected (#15147) be58118
* **web:** remove statsig-controlled outage banners (#15365) 01bf6e7
* **web:** replace deprecated onKeyPress with onKeyDown (#15339) 5967037
* **web:** replace tooltip with MouseOverTooltip (#15340) 62bec2f
* **web:** send updated user property chainId (#15396) 8453e4a
* **web:** should not unwrap currency info when v4 (#15495) 4fc68d9
* **web:** simulate tx for claiming so we can better detect errors on the trading API. approvals are not needed so this should always be possible (#15349) cdd389c
* **web:** update range overflow (#15567) 9d0e27d
* **web:** update react-scroll-sync types (#15361) 3c41a07
* **web:** update the message name being logged to sentry to more easily distinguish errors (#15420) 39fd2c4
* **web:** update the settings cog size (#15503) 95090d2
* **web:** use deeplink to default to unichain (#15316) 724b581
* **web:** use on chain currency balance for increase, create (#15376) 0952fc5
* **web:** v4 explore - volume query fix (#15611) 4d162f3
* **web:** v4 PDP - use correct pool ID for price/volume queries (#15605) d22ae33


### Continuous Integration

* **web:** update sitemaps fbc557b


### Styles

* **web:** fix inconsistent sizing on nav dropdown items (#15313) a9f4e8b

Other changes:

- Improved readability and color extraction of NFT Detail pages
- Improved fee detection of fee-on-transfer tokens
- More concise context menu on token detail pages
- Various bug fixes and performance improvements
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
mobile/1.43.1
web/5.68.0
3 changes: 0 additions & 3 deletions apps/extension/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,3 @@ dist-ssr
*.sw?

.tamagui

# Sentry Config File
.env.sentry-build-plugin
11 changes: 4 additions & 7 deletions apps/extension/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,14 @@
"@ethersproject/providers": "5.7.2",
"@metamask/rpc-errors": "6.2.1",
"@reduxjs/toolkit": "1.9.3",
"@sentry/browser": "7.80.0",
"@sentry/react": "7.80.0",
"@sentry/webpack-plugin": "2.10.3",
"@svgr/webpack": "8.0.1",
"@tamagui/core": "1.114.4",
"@types/uuid": "9.0.1",
"@uniswap/analytics-events": "2.40.0",
"@uniswap/analytics-events": "2.41.0",
"@uniswap/uniswapx-sdk": "3.0.0-beta.1",
"@uniswap/universal-router-sdk": "4.7.0",
"@uniswap/v3-sdk": "3.19.0",
"@uniswap/v4-sdk": "1.12.0",
"@uniswap/universal-router-sdk": "4.14.0",
"@uniswap/v3-sdk": "3.24.0",
"@uniswap/v4-sdk": "1.18.0",
"dotenv-webpack": "8.0.1",
"ethers": "5.7.2",
"eventemitter3": "5.0.1",
Expand Down
2 changes: 2 additions & 0 deletions apps/extension/src/app/Global.css
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ body,
html {
height: 100%;
max-width: 100vw;
font-feature-settings: 'liga' 0;
font-variant-ligatures: no-contextual;
}

#root {
Expand Down
8 changes: 4 additions & 4 deletions apps/extension/src/app/OnboardingApp.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@ import 'symbol-observable' // Needed by `reduxed-chrome-storage` as polyfill, or

import { useEffect } from 'react'
import { I18nextProvider } from 'react-i18next'
import { RouteObject, RouterProvider } from 'react-router-dom'
import { RouteObject, RouterProvider, createHashRouter } from 'react-router-dom'
import { PersistGate } from 'redux-persist/integration/react'
import { ExtensionStatsigProvider } from 'src/app/StatsigProvider'
import { GraphqlProvider } from 'src/app/apollo'
import { ErrorElement } from 'src/app/components/ErrorElement'
import { DatadogAppNameTag } from 'src/app/datadog'
import { ClaimUnitagScreen } from 'src/app/features/onboarding/ClaimUnitagScreen'
import { Complete } from 'src/app/features/onboarding/Complete'
import {
Expand All @@ -34,7 +35,6 @@ import { ScanToOnboard } from 'src/app/features/onboarding/scan/ScanToOnboard'
import { ScantasticContextProvider } from 'src/app/features/onboarding/scan/ScantasticContextProvider'
import { OnboardingRoutes, TopLevelRoutes } from 'src/app/navigation/constants'
import { setRouter, setRouterState } from 'src/app/navigation/state'
import { SentryAppNameTag, sentryCreateHashRouter } from 'src/app/sentry'
import { initExtensionAnalytics } from 'src/app/utils/analytics'
import { checksIfSupportsSidePanel } from 'src/app/utils/chrome'
import { PrimaryAppInstanceDebuggerLazy } from 'src/store/PrimaryAppInstanceDebuggerLazy'
Expand Down Expand Up @@ -135,7 +135,7 @@ const allRoutes = [
},
]

const router = sentryCreateHashRouter([
const router = createHashRouter([
{
path: `/${TopLevelRoutes.Onboarding}`,
element: <OnboardingWrapper />,
Expand Down Expand Up @@ -188,7 +188,7 @@ export default function OnboardingApp(): JSX.Element {
return (
<Trace>
<PersistGate persistor={getReduxPersistor()}>
<ExtensionStatsigProvider appName={SentryAppNameTag.Onboarding}>
<ExtensionStatsigProvider appName={DatadogAppNameTag.Onboarding}>
<I18nextProvider i18n={i18n}>
<SharedWalletProvider reduxStore={getReduxStore()}>
<ErrorBoundary>
Expand Down
20 changes: 4 additions & 16 deletions apps/extension/src/app/PopupApp.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ import 'src/app/Global.css'
import { useEffect } from 'react'
import { I18nextProvider, useTranslation } from 'react-i18next'
import { useDispatch } from 'react-redux'
import { RouterProvider } from 'react-router-dom'
import { RouterProvider, createHashRouter } from 'react-router-dom'
import { PersistGate } from 'redux-persist/integration/react'
import { ExtensionStatsigProvider } from 'src/app/StatsigProvider'
import { GraphqlProvider } from 'src/app/apollo'
import { ErrorElement } from 'src/app/components/ErrorElement'
import { TraceUserProperties } from 'src/app/components/Trace/TraceUserProperties'
import { DatadogAppNameTag } from 'src/app/datadog'
import { DappContextProvider } from 'src/app/features/dapp/DappContext'
import { SentryAppNameTag, initializeSentry, sentryCreateHashRouter } from 'src/app/sentry'
import { initExtensionAnalytics } from 'src/app/utils/analytics'
import { getReduxPersistor, getReduxStore } from 'src/store/store'
import { DeprecatedButton, Flex, Image, Text } from 'ui/src'
Expand All @@ -25,23 +25,11 @@ import { ElementName } from 'uniswap/src/features/telemetry/constants'
import { UnitagUpdaterContextProvider } from 'uniswap/src/features/unitags/context'
import i18n from 'uniswap/src/i18n'
import { ExtensionScreens } from 'uniswap/src/types/screens/extension'
import { getUniqueId } from 'utilities/src/device/getUniqueId'
import { logger } from 'utilities/src/logger/logger'
import { ErrorBoundary } from 'wallet/src/components/ErrorBoundary/ErrorBoundary'
import { useTestnetModeForLoggingAndAnalytics } from 'wallet/src/features/testnetMode/hooks'
import { SharedWalletProvider } from 'wallet/src/providers/SharedWalletProvider'

getUniqueId()
.then((userId) => {
initializeSentry(SentryAppNameTag.Popup, userId)
})
.catch((error) => {
logger.error(error, {
tags: { file: 'PopupApp.tsx', function: 'getUniqueId' },
})
})

const router = sentryCreateHashRouter([
const router = createHashRouter([
{
path: '',
element: <PopupContent />,
Expand Down Expand Up @@ -128,7 +116,7 @@ export default function PopupApp(): JSX.Element {
return (
<Trace>
<PersistGate persistor={getReduxPersistor()}>
<ExtensionStatsigProvider appName={SentryAppNameTag.Popup}>
<ExtensionStatsigProvider appName={DatadogAppNameTag.Popup}>
<I18nextProvider i18n={i18n}>
<SharedWalletProvider reduxStore={getReduxStore()}>
<ErrorBoundary>
Expand Down
19 changes: 4 additions & 15 deletions apps/extension/src/app/SidebarApp.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@ import 'src/app/Global.css'
import { useEffect, useRef, useState } from 'react'
import { I18nextProvider } from 'react-i18next'
import { useDispatch } from 'react-redux'
import { RouterProvider } from 'react-router-dom'
import { RouterProvider, createHashRouter } from 'react-router-dom'
import { PersistGate } from 'redux-persist/integration/react'
import { ExtensionStatsigProvider } from 'src/app/StatsigProvider'
import { GraphqlProvider } from 'src/app/apollo'
import { ErrorElement } from 'src/app/components/ErrorElement'
import { TraceUserProperties } from 'src/app/components/Trace/TraceUserProperties'
import { DatadogAppNameTag } from 'src/app/datadog'
import { AccountSwitcherScreen } from 'src/app/features/accounts/AccountSwitcherScreen'
import { DappContextProvider } from 'src/app/features/dapp/DappContext'
import { addRequest } from 'src/app/features/dappRequests/saga'
Expand All @@ -29,7 +30,6 @@ import { useIsWalletUnlocked } from 'src/app/hooks/useIsWalletUnlocked'
import { AppRoutes, RemoveRecoveryPhraseRoutes, SettingsRoutes } from 'src/app/navigation/constants'
import { MainContent, WebNavigation } from 'src/app/navigation/navigation'
import { setRouter, setRouterState } from 'src/app/navigation/state'
import { SentryAppNameTag, initializeSentry, sentryCreateHashRouter } from 'src/app/sentry'
import { initExtensionAnalytics } from 'src/app/utils/analytics'
import {
DappBackgroundPortChannel,
Expand All @@ -47,7 +47,6 @@ import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants'
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
import { UnitagUpdaterContextProvider, useUnitagUpdater } from 'uniswap/src/features/unitags/context'
import i18n from 'uniswap/src/i18n'
import { getUniqueId } from 'utilities/src/device/getUniqueId'
import { isDevEnv } from 'utilities/src/environment/env'
import { logger } from 'utilities/src/logger/logger'
import { ONE_SECOND_MS } from 'utilities/src/time/time'
Expand All @@ -56,17 +55,7 @@ import { ErrorBoundary } from 'wallet/src/components/ErrorBoundary/ErrorBoundary
import { useTestnetModeForLoggingAndAnalytics } from 'wallet/src/features/testnetMode/hooks'
import { SharedWalletProvider } from 'wallet/src/providers/SharedWalletProvider'

getUniqueId()
.then((userId) => {
initializeSentry(SentryAppNameTag.Sidebar, userId)
})
.catch((error) => {
logger.error(error, {
tags: { file: 'SidebarApp.tsx', function: 'getUniqueId' },
})
})

const router = sentryCreateHashRouter([
const router = createHashRouter([
{
path: '',
element: <SidebarWrapper />,
Expand Down Expand Up @@ -258,7 +247,7 @@ export default function SidebarApp(): JSX.Element {
return (
<Trace>
<PersistGate persistor={getReduxPersistor()}>
<ExtensionStatsigProvider appName={SentryAppNameTag.Sidebar}>
<ExtensionStatsigProvider appName={DatadogAppNameTag.Sidebar}>
<I18nextProvider i18n={i18n}>
<SharedWalletProvider reduxStore={getReduxStore()}>
<ErrorBoundary>
Expand Down
19 changes: 4 additions & 15 deletions apps/extension/src/app/UnitagClaimApp.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@ import 'src/app/Global.css'

import { PropsWithChildren, useEffect } from 'react'
import { I18nextProvider } from 'react-i18next'
import { Outlet, RouterProvider, useSearchParams } from 'react-router-dom'
import { Outlet, RouterProvider, createHashRouter, useSearchParams } from 'react-router-dom'
import { PersistGate } from 'redux-persist/integration/react'
import { ExtensionStatsigProvider } from 'src/app/StatsigProvider'
import { GraphqlProvider } from 'src/app/apollo'
import { ErrorElement } from 'src/app/components/ErrorElement'
import { TraceUserProperties } from 'src/app/components/Trace/TraceUserProperties'
import { DatadogAppNameTag } from 'src/app/datadog'
import {
ClaimUnitagSteps,
OnboardingStepsProvider,
Expand All @@ -23,7 +24,6 @@ import { UnitagCreateUsernameScreen } from 'src/app/features/unitags/UnitagCreat
import { UnitagIntroScreen } from 'src/app/features/unitags/UnitagIntroScreen'
import { UnitagClaimRoutes } from 'src/app/navigation/constants'
import { setRouter, setRouterState } from 'src/app/navigation/state'
import { SentryAppNameTag, initializeSentry, sentryCreateHashRouter } from 'src/app/sentry'
import { initExtensionAnalytics } from 'src/app/utils/analytics'
import { getReduxPersistor, getReduxStore } from 'src/store/store'
import { Flex } from 'ui/src'
Expand All @@ -32,25 +32,14 @@ import { LocalizationContextProvider } from 'uniswap/src/features/language/Local
import Trace from 'uniswap/src/features/telemetry/Trace'
import { UnitagUpdaterContextProvider } from 'uniswap/src/features/unitags/context'
import i18n from 'uniswap/src/i18n'
import { getUniqueId } from 'utilities/src/device/getUniqueId'
import { logger } from 'utilities/src/logger/logger'
import { usePrevious } from 'utilities/src/react/hooks'
import { ErrorBoundary } from 'wallet/src/components/ErrorBoundary/ErrorBoundary'
import { useTestnetModeForLoggingAndAnalytics } from 'wallet/src/features/testnetMode/hooks'
import { useAccountAddressFromUrlWithThrow } from 'wallet/src/features/wallet/hooks'
import { SharedWalletProvider } from 'wallet/src/providers/SharedWalletProvider'

getUniqueId()
.then((userId) => {
initializeSentry(SentryAppNameTag.UnitagClaim, userId)
})
.catch((error) => {
logger.error(error, {
tags: { file: 'UnitagClaimApp.tsx', function: 'getUniqueId' },
})
})

const router = sentryCreateHashRouter([
const router = createHashRouter([
{
path: '',
element: <UnitagAppInner />,
Expand Down Expand Up @@ -162,7 +151,7 @@ export default function UnitagClaimApp(): JSX.Element {
return (
<Trace>
<PersistGate persistor={getReduxPersistor()}>
<ExtensionStatsigProvider appName={SentryAppNameTag.UnitagClaim}>
<ExtensionStatsigProvider appName={DatadogAppNameTag.UnitagClaim}>
<I18nextProvider i18n={i18n}>
<SharedWalletProvider reduxStore={getReduxStore()}>
<ErrorBoundary>
Expand Down
2 changes: 1 addition & 1 deletion apps/extension/src/app/components/tabs/ActivityTab.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { memo } from 'react'
import { ScrollView } from 'ui/src'
import { useActivityData } from 'wallet/src/features/activity/useActivityData'
import { useActivityData } from 'wallet/src/features/activity/hooks/useActivityData'

export const ActivityTab = memo(function _ActivityTab({ address }: { address: Address }): JSX.Element {
const { maybeEmptyComponent, renderActivityItem, sectionData } = useActivityData({
Expand Down
Loading

0 comments on commit 1b08f62

Please sign in to comment.