Skip to content

Commit 73d2409

Browse files
ci(release): publish latest release
1 parent 39d285e commit 73d2409

File tree

626 files changed

+41416
-18188
lines changed

Some content is hidden

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

626 files changed

+41416
-18188
lines changed

.gitignore

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,11 @@ packages/uniswap/src/i18n/locales/source/*_old.json
6363
# CodeTours Extension
6464
.tours/*
6565

66-
# RNEF
67-
.rnef/
66+
# Expo
67+
.expo/
68+
69+
# auto-generated test ids
70+
apps/mobile/.maestro/scripts/testIds.js
6871

6972
# claude
7073
claude.local.md

CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @uniswap/web-admins

RELEASE

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,23 @@
1-
Various bug fixes and performance improvements
1+
IPFS hash of the deployment:
2+
- CIDv0: `QmNsXxX15TxdeUMfUCn7T2u9hivdRZ6Ar46j1wnGDg1yPH`
3+
- CIDv1: `bafybeiah5fpqbrntgbxd66esq6mokpd4mpfcuqgy3y2uvwxhyzpk36rsdq`
4+
5+
The latest release is always mirrored at [app.uniswap.org](https://app.uniswap.org).
6+
7+
You can also access the Uniswap Interface from an IPFS gateway.
8+
**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.
9+
**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).
10+
Your Uniswap settings are never remembered across different URLs.
11+
12+
IPFS gateways:
13+
- https://bafybeiah5fpqbrntgbxd66esq6mokpd4mpfcuqgy3y2uvwxhyzpk36rsdq.ipfs.dweb.link/
14+
- [ipfs://QmNsXxX15TxdeUMfUCn7T2u9hivdRZ6Ar46j1wnGDg1yPH/](ipfs://QmNsXxX15TxdeUMfUCn7T2u9hivdRZ6Ar46j1wnGDg1yPH/)
15+
16+
### 5.120.4 (2025-12-03)
17+
18+
19+
### Bug Fixes
20+
21+
* **web:** enable correct tamagui stacking zIndex mode (#26002) b2f3041
22+
23+

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
extension/1.62.1
1+
web/5.120.4

apps/api-self-serve/package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
"clsx": "2.1.1",
1616
"isbot": "5.1.31",
1717
"lucide-react": "0.548.0",
18-
"react": "18.3.1",
19-
"react-dom": "18.3.1",
18+
"react": "19.0.0",
19+
"react-dom": "19.0.0",
2020
"react-router": "7.6.3",
2121
"tailwind-merge": "3.3.1",
2222
"tailwindcss-animate": "1.0.7"
@@ -25,11 +25,11 @@
2525
"@react-router/dev": "7.6.3",
2626
"@tailwindcss/vite": "4.1.13",
2727
"@types/node": "22.13.1",
28-
"@types/react": "18.3.18",
28+
"@types/react": "19.0.10",
2929
"@uniswap/eslint-config": "workspace:^",
30-
"eslint": "8.44.0",
30+
"eslint": "8.57.1",
3131
"tailwindcss": "4.1.16",
32-
"typescript": "5.3.3",
32+
"typescript": "5.8.3",
3333
"vite": "npm:[email protected]",
3434
"vite-tsconfig-paths": "5.1.4"
3535
}

apps/cli/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,17 @@
1010
"ink-select-input": "6.2.0",
1111
"ink-spinner": "5.0.0",
1212
"ink-text-input": "6.0.0",
13-
"react": "18.3.1"
13+
"react": "19.0.0"
1414
},
1515
"devDependencies": {
1616
"@types/bun": "1.3.1",
1717
"@types/node": "22.13.1",
18-
"@types/react": "18.3.18",
18+
"@types/react": "19.0.10",
1919
"@uniswap/eslint-config": "workspace:^",
2020
"depcheck": "1.4.7",
21-
"eslint": "8.44.0",
21+
"eslint": "8.57.1",
2222
"ink-gradient": "3.0.0",
23-
"typescript": "5.3.3"
23+
"typescript": "5.8.3"
2424
},
2525
"scripts": {
2626
"dev": "bun run --watch src/cli-ui.tsx",

apps/cli/src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// eslint-disable-next-line @typescript-eslint/triple-slash-reference
2+
/// <reference path="../../../index.d.ts" />

apps/cli/src/ui/screens/ConfigReview.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,8 +242,8 @@ export function ConfigReview({ onConfirm, onBack }: ConfigReviewProps): JSX.Elem
242242
for (const slug of teamSlugs) {
243243
// Check cache first
244244
if (state.teamMembersCache[slug]) {
245-
allEmails.push(...(state.teamMembersCache[slug]?.emails ?? []))
246-
allUsernames.push(...(state.teamMembersCache[slug]?.usernames ?? []))
245+
allEmails.push(...state.teamMembersCache[slug].emails)
246+
allUsernames.push(...state.teamMembersCache[slug].usernames)
247247
} else {
248248
// Fetch if not cached (fallback, should be rare if user viewed details)
249249
try {

apps/extension/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,5 @@ tsconfig.tsbuildinfo
3535

3636
# E2E test artifacts
3737
e2e/test-results/
38+
39+
coverage/

apps/extension/jest-setup.js

Lines changed: 80 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import 'utilities/jest-package-mocks'
22
import 'uniswap/jest-package-mocks'
33
import 'wallet/jest-package-mocks'
44
import 'config/jest-presets/ui/ui-package-mocks'
5+
import 'react-native-gesture-handler/jestSetup';
56

67
import { chrome } from 'jest-chrome'
78
import { AppearanceSettingType } from 'wallet/src/features/appearance/slice'
@@ -51,6 +52,39 @@ global.chrome = {
5152
i18n: {
5253
...global.chrome.i18n,
5354
getUILanguage: jest.fn().mockReturnValue(MOCK_LANGUAGE)
55+
},
56+
storage: {
57+
...chrome.storage,
58+
local: {
59+
...chrome.storage.local,
60+
addListener: jest.fn(),
61+
},
62+
session: {
63+
get: jest.fn().mockImplementation((_keys, callback) => {
64+
if (callback) {
65+
callback({})
66+
}
67+
return Promise.resolve({})
68+
}),
69+
set: jest.fn().mockImplementation((_items, callback) => {
70+
if (callback) {
71+
callback()
72+
}
73+
return Promise.resolve()
74+
}),
75+
remove: jest.fn().mockImplementation((_keys, callback) => {
76+
if (callback) {
77+
callback()
78+
}
79+
return Promise.resolve()
80+
}),
81+
clear: jest.fn().mockImplementation((callback) => {
82+
if (callback) {
83+
callback()
84+
}
85+
return Promise.resolve()
86+
})
87+
}
5488
}
5589
}
5690

@@ -69,10 +103,52 @@ const mockAppearanceSetting = AppearanceSettingType.System
69103
jest.mock('wallet/src/features/appearance/hooks', () => {
70104
return {
71105
useCurrentAppearanceSetting: () => mockAppearanceSetting,
72-
}
73-
})
74-
jest.mock('wallet/src/features/appearance/hooks', () => {
75-
return {
76106
useSelectedColorScheme: () => 'light',
77107
}
78108
})
109+
110+
// Mock IntersectionObserver for Tamagui's useElementLayout
111+
const IntersectionObserverMock = jest.fn().mockImplementation((callback) => ({
112+
observe: jest.fn((element) => {
113+
// Immediately call the callback with a mock entry
114+
if (callback && element) {
115+
callback([
116+
{
117+
target: element,
118+
isIntersecting: true,
119+
intersectionRatio: 1,
120+
boundingClientRect: {
121+
x: 0,
122+
y: 0,
123+
width: 100,
124+
height: 100,
125+
top: 0,
126+
right: 100,
127+
bottom: 100,
128+
left: 0,
129+
},
130+
intersectionRect: {
131+
x: 0,
132+
y: 0,
133+
width: 100,
134+
height: 100,
135+
top: 0,
136+
right: 100,
137+
bottom: 100,
138+
left: 0,
139+
},
140+
rootBounds: null,
141+
time: 0,
142+
},
143+
])
144+
}
145+
}),
146+
unobserve: jest.fn(),
147+
disconnect: jest.fn(),
148+
takeRecords: jest.fn().mockReturnValue([]),
149+
root: null,
150+
rootMargin: '',
151+
thresholds: [],
152+
}))
153+
154+
global.IntersectionObserver = IntersectionObserverMock

0 commit comments

Comments
 (0)