Skip to content

Commit 829fa0f

Browse files
ci(release): publish latest release
1 parent a745d19 commit 829fa0f

File tree

502 files changed

+15698
-10640
lines changed

Some content is hidden

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

502 files changed

+15698
-10640
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
---
2+
name: Bug Report
3+
about: Report a bug or unexpected behavior in the Uniswap interfaces.
4+
title: "[Bug] "
5+
labels: bug
6+
---
7+
8+
## 📱 Interface Affected
9+
10+
Which application are you experiencing issues with?
11+
12+
- [ ] Web ([app.uniswap.org](https://app.uniswap.org))
13+
- [ ] Wallet Extension ([wallet.uniswap.org](https://wallet.uniswap.org))
14+
- [ ] Wallet Mobile App
15+
- [ ] iOS
16+
- [ ] Android
17+
- [ ] Both
18+
19+
---
20+
21+
## 🧩 App Version
22+
23+
- Version (if known):
24+
- [ ] Production build
25+
- [ ] Development build
26+
27+
---
28+
29+
## 💻 System / Environment Info
30+
31+
Please provide details about your environment:
32+
33+
- Browser (name + version):
34+
- OS / Platform (e.g. iOS 17, Windows 11, Android 14):
35+
- Device (e.g. iPhone 14 Pro, Pixel 7, MacBook Pro 2023):
36+
- Wallet used (e.g. Uniswap Wallet, MetaMask, Rainbow):
37+
- Network (e.g. Ethereum Mainnet, Arbitrum, Base, etc.):
38+
39+
---
40+
41+
## 🔁 Steps to Reproduce
42+
43+
1. Go to '...'
44+
2. Click on '...'
45+
3. Observe the issue
46+
47+
---
48+
49+
## ✅ Expected Behavior
50+
51+
What should have happened?
52+
53+
---
54+
55+
## ❌ Actual Behavior
56+
57+
What actually happened?
58+
59+
---
60+
61+
## 📸 Screenshots or Screen Recording
62+
63+
Please upload any relevant screenshots or recordings to help us understand the issue better.
64+
65+
---
66+
67+
## 🧾 Additional Context
68+
69+
Any extra details? (e.g. logs, error messages, recent updates, beta flags enabled, etc.)
70+
71+
---
72+
73+
⚠️ *Please redact or avoid sharing sensitive data such as private keys, seed phrases, or personally identifying info.*

CONTRIBUTING.md

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Contributing to Uniswap Interface
2+
3+
👋 Thanks for your interest in contributing to Uniswap!
4+
This repository is the **public mirror** of Uniswap Labs' front-end interfaces, including the web app, wallet mobile app, and wallet browser extension.
5+
6+
## Development Workflow
7+
8+
Uniswap Labs maintains and develops all interfaces in a **private repository**. At the end of each development cycle:
9+
10+
1. A **production release** is created internally.
11+
2. The release is then **published to this public repository**.
12+
3. All releases are tagged and visible in the [Releases](https://github.com/Uniswap/interface/releases) tab.
13+
14+
Because of this private development model:
15+
16+
**We do not accept pull requests to this repository.**
17+
18+
## How You *Can* Contribute
19+
20+
We still welcome your ideas, feedback, and issue reports. The best ways to contribute are:
21+
22+
### Reporting Bugs
23+
24+
Open a [GitHub Issue](https://github.com/Uniswap/interface/issues/new?template=bug_report.md) and fill out the template. Be sure to include:
25+
26+
- Which app is affected (web, mobile, or extension)
27+
- Platform (iOS, Android, browser version, etc.)
28+
- App version (Production or dev)
29+
- Steps to reproduce, screenshots, logs, etc.
30+
31+
### Suggesting Features or Improvements
32+
33+
Start a [Discussion](https://github.com/Uniswap/interface/discussions) to propose ideas, gather feedback, or brainstorm improvements.
34+
35+
## Repo Overview
36+
37+
- Review the [README](README.md) to understand the repo's general architecture.

README.md

+28-20
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,38 @@
11
# Uniswap Labs: Front End Interfaces
22

3-
An open source repository for all Uniswap front end interfaces maintained by Uniswap Labs. Uniswap is a protocol for decentralized exchange of Ethereum tokens.
3+
This is the **public** repository for Uniswap Labs’ front-end interfaces, including the Web App, Wallet Mobile App, and Wallet Extension. Uniswap is a protocol for decentralized exchange of Ethereum-based assets.
44

55
## Interfaces
66

77
- Web: [app.uniswap.org](https://app.uniswap.org)
88
- Wallet (mobile + extension): [wallet.uniswap.org](https://wallet.uniswap.org)
99

10+
## Install & Apps
11+
12+
```bash
13+
git clone [email protected]:Uniswap/interface.git
14+
yarn
15+
yarn lfg
16+
yarn web start
17+
```
18+
19+
For instructions per application or package, see the README published for each application:
20+
21+
- [Web](apps/web/README.md)
22+
- [Mobile](apps/mobile/README.md)
23+
- [Extension](apps/extension/README.md)
24+
25+
## Contributing
26+
27+
For instructions on the best way to contribute, please review our [Contributing guide](CONTRIBUTING.md)!
28+
1029
## Socials / Contact
1130

12-
- Twitter: [@Uniswap](https://twitter.com/Uniswap)
31+
- X (Formerly Twitter): [@Uniswap](https://x.com/Uniswap)
1332
- Reddit: [/r/Uniswap](https://www.reddit.com/r/Uniswap/)
1433
15-
- Discord: [Uniswap](https://discord.gg/FCfyBSbCU5)
34+
- Discord: [Uniswap](https://discord.com/invite/uniswap)
35+
- LinkedIn: [Uniswap Labs](https://www.linkedin.com/company/uniswaporg)
1636

1737
## Uniswap Links
1838

@@ -26,26 +46,14 @@ An open source repository for all Uniswap front end interfaces maintained by Uni
2646
- [V2](https://uniswap.org/whitepaper.pdf)
2747
- [V1](https://hackmd.io/C-DvwDSfSxuh-Gd4WKE_ig)
2848

29-
## Apps
30-
31-
For instructions per application or package, see the README published for each application:
32-
33-
- [Web](apps/web/README.md)
34-
- [Mobile](apps/mobile/README.md)
35-
- [Extension](apps/extension/README.md)
36-
37-
## Releases
38-
39-
All interface releases are tagged and published to this repository. To browse them easily, see the [Github releases tab](https://github.com/Uniswap/interface/releases).
49+
## Production & Release Process
4050

41-
## Translations
51+
Uniswap Labs develops all front-end interfaces in a private repository.
52+
At the end of each development cycle:
4253

43-
Translations for our applications are done through [crowdin](https://crowdin.com).
54+
1. We publish the latest production-ready code to this public repository.
4455

45-
| App | Coverage |
46-
| ------- | -------- |
47-
| web | [![Crowdin](https://badges.crowdin.net/uniswap-interface/localized.svg)](https://crowdin.com/project/uniswap-interface) |
48-
| wallet | [![Crowdin](https://badges.crowdin.net/uniswap-wallet/localized.svg)](https://crowdin.com/project/uniswap-wallet) |
56+
2. Releases are automatically tagged — view them in the [Releases tab](https://github.com/Uniswap/interface/releases).
4957

5058
## 🗂 Directory Structure
5159

RELEASE

+64-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
IPFS hash of the deployment:
2-
- CIDv0: `QmV6wxRgkV16x6Gemmdg8UW9HD5zDgjLef844S1wk32H1a`
3-
- CIDv1: `bafybeidep4w2hwdtu4uhxrg6xuk7rdlfjf7j7zq53mo2whxi6k3jeuvfbe`
2+
- CIDv0: `QmY6iPUuY57eq3gtoFaqtJ885ysk1SQDbHi4nawcXmYM7s`
3+
- CIDv1: `bafybeierals42wkadswmgvlto7rbuywzpzfcmgqcywdlzqbvgylukagtoy`
44

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

@@ -10,14 +10,72 @@ 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://bafybeidep4w2hwdtu4uhxrg6xuk7rdlfjf7j7zq53mo2whxi6k3jeuvfbe.ipfs.dweb.link/
14-
- [ipfs://QmV6wxRgkV16x6Gemmdg8UW9HD5zDgjLef844S1wk32H1a/](ipfs://QmV6wxRgkV16x6Gemmdg8UW9HD5zDgjLef844S1wk32H1a/)
13+
- https://bafybeierals42wkadswmgvlto7rbuywzpzfcmgqcywdlzqbvgylukagtoy.ipfs.dweb.link/
14+
- [ipfs://QmY6iPUuY57eq3gtoFaqtJ885ysk1SQDbHi4nawcXmYM7s/](ipfs://QmY6iPUuY57eq3gtoFaqtJ885ysk1SQDbHi4nawcXmYM7s/)
1515

16-
### 5.81.1 (2025-04-29)
16+
## 5.82.0 (2025-04-30)
17+
18+
19+
### Features
20+
21+
* **web:** add more CF cacheing for CSS resources (#18689) 3ddb1e3
22+
* **web:** add more CF caching headers for public assets (#18678) 4f9b98e
23+
* **web:** add more menu to hover state search modal (#18469) d4a85b5
24+
* **web:** add pools mock sections (#17257) 3a6bc2c
25+
* **web:** add tabs to search modal (#17180) 4e62ad9
26+
* **web:** Add verify to add/delete passkey (#18627) b872b40
27+
* **web:** bidirectional table scroll buttons (#18876) c647127
28+
* **web:** defer initializations of AssetActivityProvider and TokenBalancesProvider (#18057) b1e68cf
29+
* **web:** feature-gate pool search and tabs on web (#18273) 78ea6ec
30+
* **web:** implement keyboard focus hover state on OptionItem (#17179) ebfea5c
31+
* **web:** lazy load top level modals (#18056) 6a38462
32+
* **web:** minip updates (#18613) 248bdec
33+
* **web:** more CF caching for js chunks (#18679) 89611fe
34+
* **web:** pass uniquote enabled to trading api requests (#19018) 955bbac
35+
* **web:** show help modal on passkey error (#18682) 15039cf
36+
* **web:** top boosted pools (#18569) cbcb803
37+
* **web:** useMutate for refreshing authenticators (#18628) 3a24751
1738

1839

1940
### Bug Fixes
2041

21-
* **web:** add additional statsig api urls to our csp.json file (#19035) 209df5d
42+
* **web:** [pdp] redirect if no pool found (#18412) 8e95934
43+
* **web:** [tdp] redirect if no token found (#18408) 997977e
44+
* **web:** [tdp] switch testnet/mainnet mode when wallet is disconnected (#18406) 571fced
45+
* **web:** add additional statsig api urls to our csp.json file (#19036) d7a9320
46+
* **web:** add more context to Datadog resource events (#18743) 00d6e11
47+
* **web:** add web3modal to csp to fix wallet connect error (#18771) d57bd82
48+
* **web:** bug bash polish (#18594) ba4f511
49+
* **web:** clean up modal util hooks (#18535) db8ff2b
50+
* **web:** dd- allow 100% sample rate on interface staging (#18267) abb113a
51+
* **web:** DevFlagsBox behavior (#18749) 4a93d4e
52+
* **web:** do not render top level modals when shouldOverridePageLayout=true (#18691) 7f63a56
53+
* **web:** fix button size in FeeTierSearchModal (#18911) 5936720
54+
* **web:** fix closeModal util hook (#18783) b76e2d8
55+
* **web:** fix invalid robots.txt (#18690) f910fd3
56+
* **web:** fix resetting of modal after closing (#18872) 317f04a
57+
* **web:** fix uniwalletmodal opening bug (#18871) c4de0d2
58+
* **web:** lp incentives bugfixes (#18830) 4e3b289
59+
* **web:** migrate Card components to tamagui (#18481) 1f43821
60+
* **web:** migrate containers in MigrateV2Pair to tamagui (#18482) 374dd77
61+
* **web:** optimize images for app store logos and lazy-load QR code (#18635) cb119ef
62+
* **web:** pass chainId to useReadContracts (#18663) c4aa5b5
63+
* **web:** remove applied percent buffer logic from useMaxAmountSpend (#18834) f88ac25
64+
* **web:** remove more dead feature flags (#18538) b9ef4a8
65+
* **web:** replace dotted bg gradient png with css (#18803) bf8cfea
66+
* **web:** search revamp web polish (#18416) 86f034e
67+
* **web:** settings spacing fix (#18874) b36aa67
68+
* **web:** show price for v2 create (#18917) e80273c
69+
* **web:** slideOutMenu adjustments (#18629) 3715c68
70+
* **web:** start migrating MigrateV2Pair to spore / tamagui (#18480) 5d8a2d0
71+
* **web:** temp skip snapshot test on LimitPriceInputPanel.test.tsx (#18630) 435fe3b
72+
* **web:** uninitialized v2 pools (#18807) 8f390da
73+
* **web:** v2 migrate page UI fixes (#18479) 858807d
74+
* **web:** v4 native pair liq chart fix (#18893) c008acc
75+
76+
77+
### Continuous Integration
78+
79+
* **web:** update sitemaps a994dde
2280

2381

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
web/5.81.1
1+
web/5.82.0

apps/extension/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989
"private": true,
9090
"scripts": {
9191
"build:production": "webpack --node-env=production --env BUILD_ENV=prod BUILD_NUM=${BUILD_NUM:-0}",
92-
"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\"",
92+
"check:circular": "concurrently \"../../scripts/check-circular-imports.sh ./src/entry/sidebar.tsx 0\" \"../../scripts/check-circular-imports.sh ./src/entry/onboarding.tsx 0\" \"../../scripts/check-circular-imports.sh ./src/entry/unitagClaim.tsx 0\"",
9393
"check:deps:usage": "depcheck",
9494
"env:local:download": "bash ../../scripts/downloadEnvLocal.sh m4dhqfltt3dokkqi3hqwigmf2a ../../.env",
9595
"env:local:upload": "bash ../../scripts/uploadEnvLocal.sh m4dhqfltt3dokkqi3hqwigmf2a ../../.env",

apps/extension/src/app/core/OnboardingApp.tsx

+2-5
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ import { PrimaryAppInstanceDebuggerLazy } from 'src/store/PrimaryAppInstanceDebu
4545
import { getReduxPersistor } from 'src/store/store'
4646
import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants'
4747
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
48-
import { UnitagUpdaterContextProvider } from 'uniswap/src/features/unitags/context'
4948
import { ExtensionOnboardingFlow } from 'uniswap/src/types/screens/extension'
5049

5150
const supportsSidePanel = checksIfSupportsSidePanel()
@@ -214,10 +213,8 @@ export default function OnboardingApp(): JSX.Element {
214213
return (
215214
<PersistGate persistor={getReduxPersistor()}>
216215
<BaseAppContainer appName={DatadogAppNameTag.Onboarding}>
217-
<UnitagUpdaterContextProvider>
218-
<PrimaryAppInstanceDebuggerLazy />
219-
<RouterProvider router={router} />
220-
</UnitagUpdaterContextProvider>
216+
<PrimaryAppInstanceDebuggerLazy />
217+
<RouterProvider router={router} />
221218
</BaseAppContainer>
222219
</PersistGate>
223220
)

apps/extension/src/app/core/SidebarApp.tsx

+9-11
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { BaseAppContainer } from 'src/app/core/BaseAppContainer'
1111
import { DatadogAppNameTag } from 'src/app/datadog'
1212
import { AccountSwitcherScreen } from 'src/app/features/accounts/AccountSwitcherScreen'
1313
import { DappContextProvider } from 'src/app/features/dapp/DappContext'
14-
import { addRequest } from 'src/app/features/dappRequests/saga'
14+
import { addRequest } from 'src/app/features/dappRequests/actions'
1515
import { ReceiveScreen } from 'src/app/features/receive/ReceiveScreen'
1616
import { SendFlow } from 'src/app/features/send/SendFlow'
1717
import { DevMenuScreen } from 'src/app/features/settings/DevMenuScreen'
@@ -36,10 +36,10 @@ import {
3636
import { BackgroundToSidePanelRequestType } from 'src/background/messagePassing/types/requests'
3737
import { PrimaryAppInstanceDebuggerLazy } from 'src/store/PrimaryAppInstanceDebuggerLazy'
3838
import { getReduxPersistor } from 'src/store/store'
39+
import { useResetUnitagsQueries } from 'uniswap/src/data/apiClients/unitagsApi/useResetUnitagsQueries'
3940
import { syncAppWithDeviceLanguage } from 'uniswap/src/features/settings/slice'
4041
import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants'
4142
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
42-
import { UnitagUpdaterContextProvider, useUnitagUpdater } from 'uniswap/src/features/unitags/context'
4343
import { isDevEnv } from 'utilities/src/environment/env'
4444
import { logger } from 'utilities/src/logger/logger'
4545
import { ONE_SECOND_MS } from 'utilities/src/time/time'
@@ -183,7 +183,7 @@ function SidebarWrapper(): JSX.Element {
183183
useDappRequestPortListener()
184184
useTestnetModeForLoggingAndAnalytics()
185185

186-
const { triggerRefetchUnitags } = useUnitagUpdater()
186+
const resetUnitagsQueries = useResetUnitagsQueries()
187187

188188
useEffect(() => {
189189
dispatch(syncAppWithDeviceLanguage())
@@ -193,10 +193,10 @@ function SidebarWrapper(): JSX.Element {
193193
return backgroundToSidePanelMessageChannel.addMessageListener(
194194
BackgroundToSidePanelRequestType.RefreshUnitags,
195195
() => {
196-
triggerRefetchUnitags()
196+
resetUnitagsQueries()
197197
},
198198
)
199-
}, [triggerRefetchUnitags])
199+
}, [resetUnitagsQueries])
200200

201201
return (
202202
<>
@@ -235,12 +235,10 @@ export default function SidebarApp(): JSX.Element {
235235
return (
236236
<PersistGate persistor={getReduxPersistor()}>
237237
<BaseAppContainer appName={DatadogAppNameTag.Sidebar}>
238-
<UnitagUpdaterContextProvider>
239-
<DappContextProvider>
240-
<PrimaryAppInstanceDebuggerLazy />
241-
<RouterProvider router={router} />
242-
</DappContextProvider>
243-
</UnitagUpdaterContextProvider>
238+
<DappContextProvider>
239+
<PrimaryAppInstanceDebuggerLazy />
240+
<RouterProvider router={router} />
241+
</DappContextProvider>
244242
</BaseAppContainer>
245243
</PersistGate>
246244
)

apps/extension/src/app/core/UnitagClaimApp.tsx

+1-4
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import { UnitagClaimRoutes } from 'src/app/navigation/constants'
2222
import { setRouter, setRouterState } from 'src/app/navigation/state'
2323
import { initExtensionAnalytics } from 'src/app/utils/analytics'
2424
import { Flex } from 'ui/src'
25-
import { UnitagUpdaterContextProvider } from 'uniswap/src/features/unitags/context'
2625
import { logger } from 'utilities/src/logger/logger'
2726
import { usePrevious } from 'utilities/src/react/hooks'
2827
import { useTestnetModeForLoggingAndAnalytics } from 'wallet/src/features/testnetMode/hooks/useTestnetModeForLoggingAndAnalytics'
@@ -139,9 +138,7 @@ export default function UnitagClaimApp(): JSX.Element {
139138

140139
return (
141140
<BaseAppContainer appName={DatadogAppNameTag.UnitagClaim}>
142-
<UnitagUpdaterContextProvider>
143-
<RouterProvider router={router} />
144-
</UnitagUpdaterContextProvider>
141+
<RouterProvider router={router} />
145142
</BaseAppContainer>
146143
)
147144
}

0 commit comments

Comments
 (0)