Skip to content

Commit 583a130

Browse files
ci(release): publish latest release
1 parent b215092 commit 583a130

File tree

468 files changed

+12976
-6193
lines changed

Some content is hidden

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

468 files changed

+12976
-6193
lines changed

.env.defaults

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,11 @@ IS_E2E_TEST=false
2828
AMPLITUDE_PROXY_URL_OVERRIDE=
2929
API_BASE_URL_OVERRIDE=
3030
API_BASE_URL_V2_OVERRIDE=
31-
FOR_API_URL_OVERRIDE=
31+
FOR_API_URL_OVERRIDE=bun
3232
GRAPHQL_URL_OVERRIDE=
3333
SCANTASTIC_API_URL_OVERRIDE=
3434
STATSIG_PROXY_URL_OVERRIDE=
3535
TRADING_API_URL_OVERRIDE=
3636
UNITAGS_API_URL_OVERRIDE=
3737
GH_TOKEN_RN_CLI=
38+
JUPITER_PROXY_URL=

AGENTS.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ bun g:lint:fix # Fix linting issues
5656
bun g:typecheck # Type check all packages
5757
bun g:format:fix # Fix formatting
5858
bun g:fix # Run both lint and format fix
59+
bun i18n:extract # Extract localized strings (run after changing translations)
5960
```
6061

6162
## Architecture Overview
@@ -114,6 +115,7 @@ bun g:fix # Run both lint and format fix
114115
- Always update existing unit tests related to changes made
115116
- Run tests before considering a task to be 'complete'
116117
- Also run linting and typecheck before considering a task to be 'complete'
118+
- Run `bun i18n:extract` after making changes to localized strings (e.g., using translation hooks like `useTranslation`)
117119

118120
## Critical Development Notes
119121

CLAUDE.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ bun g:lint:fix # Fix linting issues
5656
bun g:typecheck # Type check all packages
5757
bun g:format:fix # Fix formatting
5858
bun g:fix # Run both lint and format fix
59+
bun i18n:extract # Extract localized strings (run after changing translations)
5960
```
6061

6162
## Architecture Overview
@@ -114,6 +115,7 @@ bun g:fix # Run both lint and format fix
114115
- Always update existing unit tests related to changes made
115116
- Run tests before considering a task to be 'complete'
116117
- Also run linting and typecheck before considering a task to be 'complete'
118+
- Run `bun i18n:extract` after making changes to localized strings (e.g., using translation hooks like `useTranslation`)
117119

118120
## Critical Development Notes
119121

RELEASE

Lines changed: 43 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
IPFS hash of the deployment:
2-
- CIDv0: `QmZDGpemKezoNt9EN6WRuTFPM4eXNYH2sxT3VXwnop1byu`
3-
- CIDv1: `bafybeifbrs7b4fucyijr6s24lgaaa736h6q25l62d3hagu3gxakobgdctq`
2+
- CIDv0: `QmVwDGzz52bfNgBMBwALFJ1E6JNecNgizvEqj9o2faTgoB`
3+
- CIDv1: `bafybeidq3rqtrmkzoeos4k5jn6zvrdgajsidyejtrzgrlsalii6bqcifci`
44

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

@@ -10,72 +10,62 @@ 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://bafybeifbrs7b4fucyijr6s24lgaaa736h6q25l62d3hagu3gxakobgdctq.ipfs.dweb.link/
14-
- [ipfs://QmZDGpemKezoNt9EN6WRuTFPM4eXNYH2sxT3VXwnop1byu/](ipfs://QmZDGpemKezoNt9EN6WRuTFPM4eXNYH2sxT3VXwnop1byu/)
13+
- https://bafybeidq3rqtrmkzoeos4k5jn6zvrdgajsidyejtrzgrlsalii6bqcifci.ipfs.dweb.link/
14+
- [ipfs://QmVwDGzz52bfNgBMBwALFJ1E6JNecNgizvEqj9o2faTgoB/](ipfs://QmVwDGzz52bfNgBMBwALFJ1E6JNecNgizvEqj9o2faTgoB/)
1515

16-
## 5.112.0 (2025-10-02)
16+
## 5.113.0 (2025-10-14)
1717

1818

1919
### Features
2020

21-
* **web:** add basic disconnected view for portfolio (#23459) 365239b
22-
* **web:** add new Solana receive crypto QR option (#23446) 3aa3b51
23-
* **web:** add percentage allocation chart (#23205) cf31a33
24-
* **web:** add portfolio activity filter controls (#23493) 32bfa25
25-
* **web:** add toucan skeleton page behind a feature flag (#23900) 3b14d35
26-
* **web:** add toucantoken page (#23906) 199e6a8
27-
* **web:** context menu for tokens table (#23434) e1dd094
28-
* **web:** disconnect menu tooltip (#23954) 79ce2a2
29-
* **web:** Include global types in web functions (#23874) fffa958
30-
* **web:** multiwallet UX address display v2 (#22894) bd4d4dd
31-
* **web:** portfolio tokens tab (#23193) f822c00
32-
* **web:** rename base Dropdown component and create DropdownSelector component (#23836) 81f0743
33-
* **web:** Replace graphql types with GraphQLApi from @universe/api (#23757) e551cd6
34-
* **web:** Support Solana FOR (#23653) 3b229fc
35-
* **web:** switch platform-specific account (#23970) 2c5e8af
36-
* **web:** use uniswap url for jupiter api (#22101) e0d1dec
21+
* **web:** add an auction store with zustand (#24058) 79708f6
22+
* **web:** add bid container + placeholder components (#23999) 1ad50cf
23+
* **web:** add graduationThreshold marker (#24167) 2f49858
24+
* **web:** add max budget to the bid form (#24223) 86d6ae9
25+
* **web:** add multiplatform receive crypto modal (#24126) 5be7eb7
26+
* **web:** add progress bar (#24156) 638015f
27+
* **web:** add promo banner/modal clicked analytics (#24328) 1c3b366
28+
* **web:** add UI for intro modal (#23963) 9512c53
29+
* **web:** persist the hiding of the intro modal (#24031) 83874ac
30+
* **web:** toucan auction header (#23977) 6c08e97
31+
* **web:** update amplitude analytics for svm wallet connection (#24322) e441e41
32+
* **web:** update meldSupportedCurrencyToCurrencyInfo to use not deprecated common bases (#24275) a8dfa89
3733

3834

3935
### Bug Fixes
4036

41-
* **web:** add more padding for smaller screens (#23799) 4b80cf1
42-
* **web:** add uniswap mobile wallet into accountstore (#23882) ba44b56
43-
* **web:** alignment for uniswap wallet QR code (#23992) 035d2df
44-
* **web:** avoid displaying two binance wallet options when trust wall… (#24248) 9bd62a9
45-
* **web:** debounce useMissingPlatformWalletPopup (#23965) ef1de10
46-
* **web:** don't run sitemap generation script with NX (#24061) 55711c5
47-
* **web:** env loading in production builds (#23973) fad5b5f
48-
* **web:** fix context menu on positions page (#23809) a9ef911
49-
* **web:** fix pool mini card menu zindex (#24220) 98b5d9c
50-
* **web:** fix portfolio e2e test (#23716) 6e5ac69
51-
* **web:** fix sitemap generation script (#24065) 8058e3f
52-
* **web:** fix solana-only miniP (#22895) 973103e
53-
* **web:** hide migrate to v3 button on unsupported chains (#23306) d73d883
54-
* **web:** open proper connect page when clicking swap connect wallet (#23991) 0e7f6a1
55-
* **web:** prevent regressions in non-solana wallet connection flow (#24044) ab315b0
56-
* **web:** re-enable solana coinbase adapter (#23982) 6927d70
57-
* **web:** re-instate activity parsing for web popups (#24154) 6d59743
58-
* **web:** remove custom env loading and bypass nx for staging/prod builds (#24045) df38e77
59-
* **web:** revert change to POPUP_MAX_WIDTH (#24041) e51797a
60-
* **web:** show disabled buy/sell/send form button if mismatched wallet platform (#23661) a5887c7
37+
* **web:** add infinite loading for limits (#24280) 5b032bf
38+
* **web:** add v4 support for lp flow for celo (#24201) 9145081
39+
* **web:** avoid displaying two binance wallet options when trust wallet is installed (#24247) 950f64f
40+
* **web:** dedupe visx/responsive (#24114) 1b1d322
41+
* **web:** Default FOR country to device locale on country lookup failure (#24259) 626ec89
42+
* **web:** default to TDP token on buy/sell flows (#24199) dbc660b
43+
* **web:** delete extra EnvelopeHeart (#24229) b469696
44+
* **web:** detect solflare user reject + improve connection error modal (#24325) 396debe
45+
* **web:** enable sourcemaps in staging builds (#24087) fe4e2b6
46+
* **web:** explore table tokens dropdown should not show >1d for solana (#24046) 7d17539
47+
* **web:** fix limit form crash when selecting solana (#24069) eb4ddee
48+
* **web:** fix z-index issue on solana promo modal (#24441) (#24457) 1287d20
49+
* **web:** handle meld native SOL address (#24289) e772533
50+
* **web:** minor nits for solana (#24166) 9440e71
51+
* **web:** pin datadog action for e2e tests (#24136) 078aeb1
52+
* **web:** prevent WSOL TDP pages (#24121) 5a64884
53+
* **web:** re-instate activity parsing for web popups - PORT-454 (#24086) e5531e9
54+
* **web:** replace useNavigate with links [1/n] (#23324) 3a282cd
55+
* **web:** reset account drawer on uniswap wallet connection (#24338) 2dae9a4
56+
* **web:** use chain count for landing page chain count (#24459) 9fb5adb
57+
* **web:** use connected indicator if two diff wallets connected (#24042) e26d6f1
58+
* **web:** use default export lazy import for SolanaPromoModal (#24373) f348b15
59+
* **web:** use proper jup proxy for staging (#24388) ece9de3
6160

6261

6362
### Continuous Integration
6463

65-
* **web:** update sitemaps 7bcdac9
64+
* **web:** update sitemaps 0527e1f
6665

6766

68-
### Styles
67+
### Tests
6968

70-
* **web:** fix spinning loader causing overflow issues in mini portfolio (#24048) 3ccd937
71-
72-
73-
### Code Refactoring
74-
75-
* **web:** decluster WalletModal (#23953) 625ae78
76-
* **web:** gas hook integration (#23295) 653d744
77-
* **web:** integrate cancellation functions into web (#23292) 0aee376
78-
* **web:** kill walletConnectorMeta (#23909) ee69fbf
79-
* **web:** use AccountsStore shapes for connecting (#23844) 7713cb3
69+
* **web:** check sitemap generation in CI (#24066) eb163a6
8070

8171

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
web/5.112.0
1+
web/5.113.0

apps/extension/.depcheckrc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
ignores: [
22
# Dependencies that depcheck thinks are unused but are actually used
3+
'concurrently',
34
'react-native-web',
45
'jest-environment-jsdom',
56
'webpack-cli',
67
'@wxt-dev/module-react',
78
'serve',
9+
'typescript',
810
# Dependencies that depcheck thinks are missing but are actually present or never used
911
## Internal packages / workspaces
1012
'src',
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import { type BrowserContext, chromium } from '@playwright/test'
2+
import os from 'os'
3+
import path from 'path'
4+
5+
interface CreateExtensionContextOptions {
6+
/** Prefix for the user data directory (for test isolation) */
7+
userDataDirPrefix?: string
8+
}
9+
10+
/**
11+
* Creates a persistent browser context with the extension loaded.
12+
* Returns both the context and cleanup function.
13+
*/
14+
export async function createExtensionContext(options: CreateExtensionContextOptions = {}): Promise<BrowserContext> {
15+
const { userDataDirPrefix = 'playwright-extension' } = options
16+
17+
const extensionPath = path.join(__dirname, '../../build')
18+
19+
// Generate a unique user data directory for each test to ensure isolation
20+
const userDataDir = path.join(
21+
os.tmpdir(),
22+
`${userDataDirPrefix}-${Date.now()}-${Math.random().toString(36).substring(7)}`,
23+
)
24+
25+
// CI environments need different args for headless-like behavior
26+
const isCI = process.env.CI === 'true'
27+
28+
const context = await chromium.launchPersistentContext(userDataDir, {
29+
headless: false, // Chrome extensions require headed mode
30+
args: [
31+
`--disable-extensions-except=${extensionPath}`,
32+
`--load-extension=${extensionPath}`,
33+
'--no-default-browser-check',
34+
'--disable-default-apps',
35+
'--no-sandbox', // Required for CI
36+
'--disable-setuid-sandbox',
37+
'--disable-dev-shm-usage', // Overcome limited resource problems in CI
38+
...(isCI ? ['--disable-gpu', '--disable-software-rasterizer'] : []),
39+
],
40+
viewport: { width: 1280, height: 720 },
41+
})
42+
43+
return context
44+
}

apps/extension/e2e/fixtures/extension.fixture.ts

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { type BrowserContext, test as base, chromium } from '@playwright/test'
1+
import { type BrowserContext, test as base } from '@playwright/test'
2+
import { createExtensionContext } from 'e2e/fixtures/extension-context'
23
import { waitForExtensionLoad } from 'e2e/utils/wait-for-extension'
3-
import path from 'path'
44

55
interface ExtensionFixtures {
66
context: BrowserContext
@@ -10,24 +10,7 @@ interface ExtensionFixtures {
1010
export const freshExtensionTest = base.extend<ExtensionFixtures>({
1111
// biome-ignore lint/correctness/noEmptyPattern: fixture file
1212
context: async ({}, use) => {
13-
const extensionPath = path.join(__dirname, '../../build')
14-
15-
// CI environments need different args for headless-like behavior
16-
const isCI = process.env.CI === 'true'
17-
18-
const context = await chromium.launchPersistentContext('', {
19-
headless: false, // Chrome extensions require headed mode
20-
args: [
21-
`--disable-extensions-except=${extensionPath}`,
22-
`--load-extension=${extensionPath}`,
23-
'--no-sandbox', // Required for CI
24-
'--disable-setuid-sandbox',
25-
'--disable-dev-shm-usage', // Overcome limited resource problems in CI
26-
...(isCI ? ['--disable-gpu', '--disable-software-rasterizer'] : []),
27-
],
28-
viewport: { width: 1280, height: 720 },
29-
})
30-
13+
const context = await createExtensionContext()
3114
await use(context)
3215
await context.close()
3316
},

apps/extension/e2e/fixtures/onboarded-extension.fixture.ts

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
/** biome-ignore-all lint/suspicious/noConsole: fixture file */
2-
import { type BrowserContext, test as base, chromium } from '@playwright/test'
2+
import { type BrowserContext, test as base } from '@playwright/test'
3+
import { createExtensionContext } from 'e2e/fixtures/extension-context'
34
import { completeOnboarding } from 'e2e/utils/onboarding-helpers'
45
import { waitForExtensionLoad } from 'e2e/utils/wait-for-extension'
5-
import path from 'path'
66
import { ONE_SECOND_MS } from 'utilities/src/time/time'
77

88
interface OnboardedExtensionFixtures {
@@ -14,21 +14,8 @@ interface OnboardedExtensionFixtures {
1414
export const onboardedExtensionTest = base.extend<OnboardedExtensionFixtures>({
1515
// biome-ignore lint/correctness/noEmptyPattern: fixture file
1616
context: async ({}, use) => {
17-
const extensionPath = path.join(__dirname, '../../build')
18-
const isCI = process.env.CI === 'true'
19-
20-
// Launch with a fresh temporary user data dir
21-
const context = await chromium.launchPersistentContext('', {
22-
headless: false, // Chrome extensions require headed mode
23-
args: [
24-
`--disable-extensions-except=${extensionPath}`,
25-
`--load-extension=${extensionPath}`,
26-
'--no-sandbox', // Required for CI
27-
'--disable-setuid-sandbox',
28-
'--disable-dev-shm-usage', // Overcome limited resource problems in CI
29-
...(isCI ? ['--disable-gpu', '--disable-software-rasterizer'] : []),
30-
],
31-
viewport: { width: 1280, height: 720 },
17+
const context = await createExtensionContext({
18+
userDataDirPrefix: 'playwright-extension-onboarded',
3219
})
3320

3421
try {

apps/extension/package.json

Lines changed: 37 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -103,39 +103,42 @@
103103
},
104104
"private": true,
105105
"scripts": {
106-
"build:production": "webpack --node-env=production --env BUILD_ENV=prod BUILD_NUM=${BUILD_NUM:-0}",
107-
"check:circular": "concurrently \"../../scripts/check-circular-imports.sh ./src/entrypoints/sidepanel/main.tsx 0\" \"../../scripts/check-circular-imports.sh ./src/entrypoints/onboarding/main.tsx 0\" \"../../scripts/check-circular-imports.sh ./src/entrypoints/unitagClaim/main.tsx 0\"",
108-
"check:deps:usage": "depcheck",
109-
"env:local:download": "bash ../../scripts/downloadEnvLocal.sh m4dhqfltt3dokkqi3hqwigmf2a .env",
110-
"env:local:upload": "bash ../../scripts/uploadEnvLocal.sh m4dhqfltt3dokkqi3hqwigmf2a .env",
111-
"lint:biome": "biome check --error-on-warnings .",
112-
"lint:biome:fix": "biome check . --write --unsafe",
113-
"lint": "bun run lint:biome && NODE_OPTIONS=--max_old_space_size=8192 eslint . --ext ts,tsx --max-warnings=0",
114-
"lint:fix": "bun run lint:biome:fix && NODE_OPTIONS=--max-old-space-size=8192 eslint . --ext ts,tsx --fix",
115-
"start:webpack": "webpack serve --config webpack.config.js",
116-
"start:webpack:absolute": "webpack serve --config webpack.config.js --output-path /Users/Shared/stretch",
117-
"start": "wxt",
118-
"start:absolute": "bun run start:absolute:mac",
119-
"start:absolute:mac": "WXT_ABSOLUTE_OUTDIR=/Users/Shared/stretch wxt",
120-
"start:absolute:windows": "WXT_ABSOLUTE_OUTDIR=C:/ProgramData/stretch wxt",
121-
"test": "jest",
122-
"snapshots": "jest -u",
123-
"typecheck": "tsc -b",
124-
"dev": "wxt",
125-
"dev:firefox": "wxt -b firefox",
126-
"build:wxt": "wxt build",
127-
"build:firefox": "wxt build -b firefox",
128-
"zip": "wxt zip",
129-
"zip:firefox": "wxt zip -b firefox",
130-
"postinstall": "wxt prepare",
131-
"prepare": "wxt prepare",
132-
"clean": "wxt clean",
133-
"build:e2e": "webpack --node-env=production --env BUILD_ENV=dev BUILD_NUM=0",
134-
"playwright:test": "playwright test --config=e2e/config/playwright.config.ts",
135-
"playwright:test:smoke": "playwright test --config=e2e/config/playwright.config.ts e2e/tests/smoke/",
136-
"playwright:ui": "playwright test --ui --config=e2e/config/playwright.config.ts",
137-
"e2e": "bun run build:e2e && bun run playwright:test",
138-
"e2e:smoke": "bun run build:e2e && bun run playwright:test:smoke",
139-
"e2e:ui": "bun run build:e2e && bun run playwright:ui"
106+
"build:firefox": "nx build:firefox extension",
107+
"build:production": "nx build:production extension",
108+
"build:wxt": "nx build:wxt extension",
109+
"check:circular": "nx check:circular extension",
110+
"check:deps:usage": "nx check:deps:usage extension",
111+
"clean": "nx clean extension",
112+
"dev": "nx dev extension",
113+
"dev:firefox": "nx dev:firefox extension",
114+
"env:local:download": "nx env:local:download extension",
115+
"env:local:upload": "nx env:local:upload extension",
116+
"lint:biome": "nx lint:biome extension",
117+
"lint:biome:fix": "nx lint:biome:fix extension",
118+
"lint": "nx lint extension",
119+
"lint:fix": "nx lint:fix extension",
120+
"postinstall": "nx postinstall extension",
121+
"prepare": "nx prepare extension",
122+
"snapshots": "nx snapshots extension",
123+
"start": "nx start extension",
124+
"start:absolute": "nx start:absolute extension",
125+
"start:absolute:mac": "nx start:absolute:mac extension",
126+
"start:absolute:windows": "nx start:absolute:windows extension",
127+
"start:webpack": "nx start:webpack extension",
128+
"start:webpack:absolute": "nx start:webpack:absolute extension",
129+
"test": "nx test extension",
130+
"typecheck": "nx typecheck extension",
131+
"zip": "nx zip extension",
132+
"zip:firefox": "nx zip:firefox extension",
133+
"build:e2e": "nx build:e2e extension",
134+
"playwright:test": "nx playwright:test extension",
135+
"playwright:test:smoke": "nx playwright:test:smoke extension",
136+
"playwright:ui": "nx playwright:ui extension",
137+
"e2e": "nx e2e extension",
138+
"e2e:smoke": "nx e2e:smoke extension",
139+
"e2e:ui": "nx e2e:ui extension"
140+
},
141+
"nx": {
142+
"includedScripts": []
140143
}
141144
}

0 commit comments

Comments
 (0)