Skip to content

Commit 068c4cd

Browse files
ci(release): publish latest release
1 parent e8cdfff commit 068c4cd

File tree

480 files changed

+12738
-9192
lines changed

Some content is hidden

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

480 files changed

+12738
-9192
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ An open source repository for all Uniswap front end interfaces maintained by Uni
2121

2222
## Whitepapers
2323

24+
- [V4](https://uniswap.org/whitepaper-v4.pdf)
2425
- [V3](https://uniswap.org/whitepaper-v3.pdf)
2526
- [V2](https://uniswap.org/whitepaper.pdf)
2627
- [V1](https://hackmd.io/C-DvwDSfSxuh-Gd4WKE_ig)

RELEASE

+53-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
IPFS hash of the deployment:
2-
- CIDv0: `QmRHsud7WNRFUg4cTcXRxuwZYZRAhYMkYAcA97mtqwq9re`
3-
- CIDv1: `bafybeibl3u67jwwr3vxssx7z6bbz35bk333qe6xdnkruce7pmma5uf2z74`
2+
- CIDv0: `QmXkPV7sagZDwbUR5PRBNWAvFrJSuTUh5Fu1aJpFA1whLV`
3+
- CIDv1: `bafybeielzxuhhhlrf7rtyfrqtzqawka7oyjb3qklvfvcexvwdumpsnujdi`
44

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

@@ -10,15 +10,61 @@ 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://bafybeibl3u67jwwr3vxssx7z6bbz35bk333qe6xdnkruce7pmma5uf2z74.ipfs.dweb.link/
14-
- https://bafybeibl3u67jwwr3vxssx7z6bbz35bk333qe6xdnkruce7pmma5uf2z74.ipfs.cf-ipfs.com/
15-
- [ipfs://QmRHsud7WNRFUg4cTcXRxuwZYZRAhYMkYAcA97mtqwq9re/](ipfs://QmRHsud7WNRFUg4cTcXRxuwZYZRAhYMkYAcA97mtqwq9re/)
13+
- https://bafybeielzxuhhhlrf7rtyfrqtzqawka7oyjb3qklvfvcexvwdumpsnujdi.ipfs.dweb.link/
14+
- https://bafybeielzxuhhhlrf7rtyfrqtzqawka7oyjb3qklvfvcexvwdumpsnujdi.ipfs.cf-ipfs.com/
15+
- [ipfs://QmXkPV7sagZDwbUR5PRBNWAvFrJSuTUh5Fu1aJpFA1whLV/](ipfs://QmXkPV7sagZDwbUR5PRBNWAvFrJSuTUh5Fu1aJpFA1whLV/)
1616

17-
### 5.64.2 (2025-01-13)
17+
## 5.65.0 (2025-01-15)
18+
19+
20+
### Features
21+
22+
* **web:** [EW] Add passkey sign in (#13883) 01fd45c
23+
* **web:** [EW] Add show recovery phrase modal (#13894) 05748a7
24+
* **web:** [EW] Add sign up (#13862) aa9771e
25+
* **web:** [EW] Add signing txs (#13890) c779f0c
26+
* **web:** add the v4 whitepaper (#14867) e87e686
27+
* **web:** delete unused background updating code (#14612) aa26058
28+
* **web:** replace usage of DoubleLogoWithChain with DoubleLogo (#15011) e723da8
29+
* **web:** update uniswapx-sdk (#14654) ab645c7
30+
* **web:** use dynamic config for blocked nft collections (#14643) a748576
1831

1932

2033
### Bug Fixes
2134

22-
* **web:** fix infinite loop on analytics toggle 3a2b4dc
35+
* **web:** 5859 get position owner from get position call (#14729) b412b95
36+
* **web:** align chart headers in explore (#14830) 4a2e838
37+
* **web:** consistent lp buttons (#14664) 4c3c0d9
38+
* **web:** eth logo flash (#15013) 486ab05
39+
* **web:** filter toggle behavior on TDP (#14898) dbebd9a
40+
* **web:** fix crash on v4 create (#14891) 53b84d8
41+
* **web:** fix double logo on DoubleCurrencyAndChainLogo (#14946) 0579dcf
42+
* **web:** fix infinite loop on analytics toggle f4b5fde
43+
* **web:** fix infinite loop on analytics toggle (#15068) ad1a014
44+
* **web:** fix pdp price display (#14902) 2f00216
45+
* **web:** fix range display for v4 positions in custom fee tiers (#14904) 3be2db0
46+
* **web:** hero title bug when switching languages (#15022) d6511f5
47+
* **web:** inverted initial price bug (#14994) 017e47e
48+
* **web:** limit orders do not work with uniswapx v2 (#14995) b492069
49+
* **web:** make the swap primary colors on the tdp use token extraction colors (#14696) ea7f43b
50+
* **web:** move both price toggles together in the create flow (#14971) 8d8f595
51+
* **web:** re-add images prop to PortfolioLogo and use split logo (#14864) 840edff
52+
* **web:** reduce size impact of ui icons (#14613) f89a87e
53+
* **web:** remove direct t imports and fix translations outside of React context on web (#14829) e040834
54+
* **web:** remove worldchain minikit provider (#14544) 6794856
55+
* **web:** scroll on nav dropdown and adjust max height (#15094) 3bbd575
56+
* **web:** send speed bump font size fix (#15004) 0bd82df
57+
* **web:** update google conversion datetime format (#15131) 6a7ca9a
58+
* **web:** update input behavior on send tab (#14843) 8c4eab7
59+
60+
61+
### Continuous Integration
62+
63+
* **web:** update sitemaps 8e5f49e
64+
65+
66+
### Styles
67+
68+
* **web:** round ends of loading spinner component (#14779) 26b3a8b
2369

2470

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
web/5.64.2
1+
web/5.65.0

apps/extension/package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"@tamagui/core": "1.114.4",
1717
"@types/uuid": "9.0.1",
1818
"@uniswap/analytics-events": "2.40.0",
19-
"@uniswap/uniswapx-sdk": "2.1.0-beta.18",
19+
"@uniswap/uniswapx-sdk": "3.0.0-beta.1",
2020
"@uniswap/universal-router-sdk": "4.7.0",
2121
"@uniswap/v3-sdk": "3.19.0",
2222
"@uniswap/v4-sdk": "1.12.0",
@@ -91,8 +91,8 @@
9191
"build:production": "webpack --node-env=production --env BUILD_ENV=prod BUILD_NUM=${BUILD_NUM:-0}",
9292
"check:circular": "concurrently \"../../scripts/check-circular-imports.sh ./src/entry/sidebar.tsx 1\" \"../../scripts/check-circular-imports.sh ./src/entry/onboarding.tsx 1\" \"../../scripts/check-circular-imports.sh ./src/entry/unitagClaim.tsx 1\"",
9393
"check:deps:usage": "depcheck",
94-
"env:local:download": "bash ../../scripts/downloadEnvLocal.sh web-local-envs ../../.env",
95-
"env:local:upload": "bash ../../scripts/uploadEnvLocal.sh web-local-envs ../../.env",
94+
"env:local:download": "bash ../../scripts/downloadEnvLocal.sh m4dhqfltt3dokkqi3hqwigmf2a ../../.env",
95+
"env:local:upload": "bash ../../scripts/uploadEnvLocal.sh m4dhqfltt3dokkqi3hqwigmf2a ../../.env",
9696
"format": "../../scripts/prettier.sh",
9797
"lint": "NODE_OPTIONS=--max_old_space_size=8192 eslint . --ext ts,tsx --max-warnings=0",
9898
"lint:fix": "NODE_OPTIONS=--max-old-space-size=8192 eslint . --ext ts,tsx --fix",

apps/extension/src/app/PopupApp.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { DappContextProvider } from 'src/app/features/dapp/DappContext'
1414
import { SentryAppNameTag, initializeSentry, sentryCreateHashRouter } from 'src/app/sentry'
1515
import { initExtensionAnalytics } from 'src/app/utils/analytics'
1616
import { getReduxPersistor, getReduxStore } from 'src/store/store'
17-
import { Button, Flex, Image, Text } from 'ui/src'
17+
import { DeprecatedButton, Flex, Image, Text } from 'ui/src'
1818
import { CHROME_LOGO, UNISWAP_LOGO } from 'ui/src/assets'
1919
import { iconSizes, spacing } from 'ui/src/theme'
2020
import { BlankUrlProvider } from 'uniswap/src/contexts/UrlContext'
@@ -98,7 +98,7 @@ function PopupContent(): JSX.Element {
9898
<Flex fill />
9999

100100
<Trace logPress element={ElementName.ExtensionPopupOpenButton}>
101-
<Button
101+
<DeprecatedButton
102102
theme="primary"
103103
width="100%"
104104
onPress={async () => {
@@ -110,7 +110,7 @@ function PopupContent(): JSX.Element {
110110
}}
111111
>
112112
{t('extension.popup.chrome.button')}
113-
</Button>
113+
</DeprecatedButton>
114114
</Trace>
115115
</Flex>
116116
</Trace>

apps/extension/src/app/components/PasswordInput.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { forwardRef } from 'react'
22
import { useTranslation } from 'react-i18next'
33
import { TextInput } from 'react-native'
44
import { Input, InputProps } from 'src/app/components/Input'
5-
import { Button, Flex, FlexProps, IconProps, Text } from 'ui/src'
5+
import { DeprecatedButton, Flex, FlexProps, IconProps, Text } from 'ui/src'
66
import { Eye, EyeOff } from 'ui/src/components/icons'
77
import { PasswordStrength, getPasswordStrengthTextAndColor } from 'wallet/src/utils/password'
88

@@ -34,7 +34,7 @@ export const PasswordInput = forwardRef<TextInput, PasswordInputProps>(function
3434
<StrengthIndicator strength={passwordStrength} />
3535
) : (
3636
onToggleHideInput && (
37-
<Button
37+
<DeprecatedButton
3838
backgroundColor="$transparent"
3939
hoverStyle={hoverStyle}
4040
position="absolute"
@@ -43,7 +43,7 @@ export const PasswordInput = forwardRef<TextInput, PasswordInputProps>(function
4343
onPress={(): void => onToggleHideInput(!hideInput)}
4444
>
4545
{hideInput ? <Eye {...iconProps} /> : <EyeOff {...iconProps} />}
46-
</Button>
46+
</DeprecatedButton>
4747
)
4848
)}
4949
</Flex>

apps/extension/src/app/components/modal/InfoModal.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ReactNode } from 'react'
2-
import { Anchor, Button, Flex, Text, TouchableArea, useSporeColors } from 'ui/src'
2+
import { Anchor, DeprecatedButton, Flex, Text, TouchableArea, useSporeColors } from 'ui/src'
33
import { X } from 'ui/src/components/icons'
44
import { zIndices } from 'ui/src/theme'
55
import { Modal } from 'uniswap/src/components/modals/Modal'
@@ -60,9 +60,9 @@ export function InfoModal({
6060
{description}
6161
</Text>
6262
</Flex>
63-
<Button size="medium" theme={buttonTheme} width="100%" onPress={onButtonPress}>
63+
<DeprecatedButton size="medium" theme={buttonTheme} width="100%" onPress={onButtonPress}>
6464
{buttonText}
65-
</Button>
65+
</DeprecatedButton>
6666
{linkText && linkUrl && (
6767
<Anchor href={linkUrl} lineHeight={16} p="$spacing12" target="_blank" textDecorationLine="none">
6868
<Text color="$neutral2" textAlign="center" variant="buttonLabel3">

apps/extension/src/app/features/accounts/AccountSwitcherScreen.tsx

+13-7
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { PopupName, openPopup } from 'src/app/features/popups/slice'
1515
import { AppRoutes, RemoveRecoveryPhraseRoutes, SettingsRoutes, UnitagClaimRoutes } from 'src/app/navigation/constants'
1616
import { navigate } from 'src/app/navigation/state'
1717
import { focusOrCreateUnitagTab } from 'src/app/navigation/utils'
18-
import { Button, Flex, Popover, ScrollView, Text, useSporeColors } from 'ui/src'
18+
import { DeprecatedButton, Flex, Popover, ScrollView, Text, useSporeColors } from 'ui/src'
1919
import { WalletFilled, X } from 'ui/src/components/icons'
2020
import { spacing } from 'ui/src/theme'
2121
import { WarningModal } from 'uniswap/src/components/modals/WarningModal/WarningModal'
@@ -201,14 +201,14 @@ export function AccountSwitcherScreen(): JSX.Element {
201201
{activeAccountHasUnitag ? (
202202
<UnitagActionButton />
203203
) : (
204-
<Button
204+
<DeprecatedButton
205205
size="small"
206206
testID={TestID.AccountCard}
207207
theme="secondary"
208208
onPress={() => setShowEditLabelModal(true)}
209209
>
210210
{t('account.wallet.header.button.title')}
211-
</Button>
211+
</DeprecatedButton>
212212
)}
213213
</Flex>
214214
<ScrollView backgroundColor="$surface1" height="auto">
@@ -291,17 +291,23 @@ const UnitagActionButton = (): JSX.Element => {
291291

292292
if (isClaimUnitagEnabled) {
293293
return (
294-
<Button color="$neutral1" size="small" testID={TestID.AccountCard} theme="tertiary" onPress={onPressEditProfile}>
294+
<DeprecatedButton
295+
color="$neutral1"
296+
size="small"
297+
testID={TestID.AccountCard}
298+
theme="tertiary"
299+
onPress={onPressEditProfile}
300+
>
295301
{t('account.wallet.header.button.disabled.title')}
296-
</Button>
302+
</DeprecatedButton>
297303
)
298304
}
299305

300306
return (
301307
<ComingSoon placement="top">
302-
<Button color="$neutral2" disabled={true} size="small" testID={TestID.AccountCard} theme="secondary">
308+
<DeprecatedButton color="$neutral2" disabled={true} size="small" testID={TestID.AccountCard} theme="secondary">
303309
{t('account.wallet.header.button.disabled.title')}
304-
</Button>
310+
</DeprecatedButton>
305311
</ComingSoon>
306312
)
307313
}

apps/extension/src/app/features/accounts/CreateWalletModal.tsx

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { useCallback, useMemo, useState } from 'react'
22
import { useTranslation } from 'react-i18next'
33
import { OpaqueColorValue } from 'react-native'
4-
import { Button, Flex, Text, getUniconColors, useIsDarkMode } from 'ui/src'
4+
import { DeprecatedButton, Flex, Text, getUniconColors, useIsDarkMode } from 'ui/src'
55
import { iconSizes, opacify } from 'ui/src/theme'
66
import { TextInput } from 'uniswap/src/components/input/TextInput'
77
import { Modal } from 'uniswap/src/components/modals/Modal'
@@ -44,7 +44,7 @@ export function CreateWalletModal({
4444
? getUniconColors(onboardingAccountAddress, isDark)
4545
: { color: '' }
4646

47-
// Cast because Button component doesnt acccept sytling outside of theme color values for hover and press states
47+
// Cast because DeprecatedButton component doesnt acccept sytling outside of theme color values for hover and press states
4848
const hoverAndPressButtonStyle = useMemo(() => {
4949
return {
5050
backgroundColor: opacify(15, uniconColor) as unknown as OpaqueColorValue,
@@ -76,10 +76,10 @@ export function CreateWalletModal({
7676
</Flex>
7777

7878
<Flex centered fill row gap="$spacing12" justifyContent="space-between" width="100%">
79-
<Button color="$neutral1" flex={1} flexBasis={1} size="small" theme="secondary" onPress={onCancel}>
79+
<DeprecatedButton color="$neutral1" flex={1} flexBasis={1} size="small" theme="secondary" onPress={onCancel}>
8080
{t('common.button.cancel')}
81-
</Button>
82-
<Button
81+
</DeprecatedButton>
82+
<DeprecatedButton
8383
flex={1}
8484
flexBasis={1}
8585
hoverStyle={hoverAndPressButtonStyle}
@@ -89,7 +89,7 @@ export function CreateWalletModal({
8989
onPress={onPressConfirm}
9090
>
9191
{t('common.button.create')}
92-
</Button>
92+
</DeprecatedButton>
9393
</Flex>
9494
</Flex>
9595
</Modal>

apps/extension/src/app/features/accounts/EditLabelModal.tsx

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next'
33
import { useDispatch } from 'react-redux'
44
import { UnitagClaimRoutes } from 'src/app/navigation/constants'
55
import { focusOrCreateUnitagTab } from 'src/app/navigation/utils'
6-
import { Button, Flex, Text } from 'ui/src'
6+
import { DeprecatedButton, Flex, Text } from 'ui/src'
77
import { Person } from 'ui/src/components/icons'
88
import { iconSizes } from 'ui/src/theme'
99
import { TextInput } from 'uniswap/src/components/input/TextInput'
@@ -100,12 +100,12 @@ export function EditLabelModal({ isOpen, address, onClose }: EditLabelModalProps
100100
</Text>
101101
</Flex>
102102
<Flex centered fill row gap="$spacing12" justifyContent="space-between" width="100%">
103-
<Button color="$neutral1" flex={1} flexBasis={1} size="small" theme="secondary" onPress={onClose}>
103+
<DeprecatedButton color="$neutral1" flex={1} flexBasis={1} size="small" theme="secondary" onPress={onClose}>
104104
{t('common.button.cancel')}
105-
</Button>
106-
<Button flex={1} flexBasis={1} size="small" theme="accentSecondary" onPress={onConfirm}>
105+
</DeprecatedButton>
106+
<DeprecatedButton flex={1} flexBasis={1} size="small" theme="accentSecondary" onPress={onConfirm}>
107107
{t('common.button.save')}
108-
</Button>
108+
</DeprecatedButton>
109109
</Flex>
110110
</Flex>
111111
</Modal>

apps/extension/src/app/features/appRating/AppRatingModal.tsx

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { useEffect, useState } from 'react'
22
import { useTranslation } from 'react-i18next'
33
import { useDispatch, useSelector } from 'react-redux'
4-
import { Button, Flex, Text, TouchableArea } from 'ui/src'
4+
import { DeprecatedButton, Flex, Text, TouchableArea } from 'ui/src'
55
import { Feedback, LikeSquare, MessageText, X } from 'ui/src/components/icons'
66
import { IconSizeTokens, zIndices } from 'ui/src/theme'
77
import { Modal } from 'uniswap/src/components/modals/Modal'
@@ -133,12 +133,12 @@ export default function AppRatingModal({ onClose }: AppRatingModalProps): JSX.El
133133
</Text>
134134
</Flex>
135135
<Flex row width="100%" gap="$spacing12">
136-
<Button flex={1} flexBasis={1} size="small" theme="secondary" onPress={onSecondaryButtonPress}>
136+
<DeprecatedButton flex={1} flexBasis={1} size="small" theme="secondary" onPress={onSecondaryButtonPress}>
137137
{secondaryButtonText}
138-
</Button>
139-
<Button flex={1} flexBasis={1} size="small" theme="primary" onPress={onPrimaryButtonPress}>
138+
</DeprecatedButton>
139+
<DeprecatedButton flex={1} flexBasis={1} size="small" theme="primary" onPress={onPrimaryButtonPress}>
140140
{primaryButtonText}
141-
</Button>
141+
</DeprecatedButton>
142142
</Flex>
143143
</Flex>
144144
</Modal>

apps/extension/src/app/features/dappRequests/DappRequestContent.tsx

+14-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,16 @@ import { useDappLastChainId } from 'src/app/features/dapp/hooks'
44
import { useDappRequestQueueContext } from 'src/app/features/dappRequests/DappRequestQueueContext'
55
import { DappRequestStoreItem } from 'src/app/features/dappRequests/slice'
66
import { DappRequestType } from 'src/app/features/dappRequests/types/DappRequestTypes'
7-
import { Anchor, AnimatePresence, Button, Flex, Text, UniversalImage, UniversalImageResizeMode, styled } from 'ui/src'
7+
import {
8+
Anchor,
9+
AnimatePresence,
10+
DeprecatedButton,
11+
Flex,
12+
Text,
13+
UniversalImage,
14+
UniversalImageResizeMode,
15+
styled,
16+
} from 'ui/src'
817
import { borderRadii, iconSizes } from 'ui/src/theme'
918
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains'
1019
import { UniverseChainId } from 'uniswap/src/features/chains/types'
@@ -240,10 +249,10 @@ export function DappRequestFooter({
240249
px="$spacing8"
241250
/>
242251
<Flex row gap="$spacing12" pt="$spacing8">
243-
<Button flex={1} flexBasis={1} size="medium" theme="secondary" onPress={handleOnCancel}>
252+
<DeprecatedButton flex={1} flexBasis={1} size="medium" theme="secondary" onPress={handleOnCancel}>
244253
{t('common.button.cancel')}
245-
</Button>
246-
<Button
254+
</DeprecatedButton>
255+
<DeprecatedButton
247256
disabled={!isConfirmEnabled}
248257
flex={1}
249258
flexBasis={1}
@@ -252,7 +261,7 @@ export function DappRequestFooter({
252261
onPress={handleOnConfirm}
253262
>
254263
{confirmText}
255-
</Button>
264+
</DeprecatedButton>
256265
</Flex>
257266
</Flex>
258267
</>

apps/extension/src/app/features/dappRequests/requestContent/PersonalSign/PersonalSignRequestContent.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { useEffect, useRef, useState } from 'react'
33
import { useTranslation } from 'react-i18next'
44
import { DappRequestContent } from 'src/app/features/dappRequests/DappRequestContent'
55
import { SignMessageRequest } from 'src/app/features/dappRequests/types/DappRequestTypes'
6-
import { Button, Flex, Text, Tooltip } from 'ui/src'
6+
import { DeprecatedButton, Flex, Text, Tooltip } from 'ui/src'
77
import { AlertTriangleFilled, Code, StickyNoteTextSquare } from 'ui/src/components/icons'
88
import { containsNonPrintableChars } from 'utilities/src/primitives/string'
99

@@ -86,7 +86,7 @@ export function PersonalSignRequestContent({ dappRequest }: PersonalSignRequestP
8686
right={isScrollable ? '$spacing24' : '$spacing12'}
8787
>
8888
<Tooltip.Trigger>
89-
<Button
89+
<DeprecatedButton
9090
borderColor="$surface3"
9191
borderRadius="$rounded4"
9292
icon={

0 commit comments

Comments
 (0)