Skip to content

Commit b215092

Browse files
ci(release): publish latest release
1 parent 0144dd7 commit b215092

File tree

1,473 files changed

+25020
-24606
lines changed

Some content is hidden

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

1,473 files changed

+25020
-24606
lines changed

.depcheckrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ ignores: [
33
'@graphql-codegen/*',
44
'@commitlint/*',
55
'@uniswap/eslint-config',
6+
'@uniswap/biome-config',
67
'i18next',
78
'moti',
89
'wrangler',

.github/workflows/tag_and_release.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,20 @@ jobs:
88
deploy-to-prod:
99
runs-on: ubuntu-latest
1010
steps:
11+
- uses: bullfrogsec/bullfrog@dcde5841b19b7ef693224207a7fdec67fce604db # v0.8.3
12+
with:
13+
# List of IPs to allow outbound connections to.
14+
# By default, only localhost and IPs required for the essential operations of Github Actions are allowed.
15+
# allowed-ips:|
16+
17+
# List of domains to allow outbound connections to.
18+
# Wildcards are accepted. For example, if allowing `*.google.com`, this will allow `www.google.com`, `console.cloud.google.com` but not `google.com`.
19+
# By default, only domains required for essential operations of Github Actions and uploading job summaries are allowed.
20+
# Refer to https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#communication-requirements-for-github-hosted-runners-and-github for additional domains that should be allowed for additional Github Actions features.
21+
#allowed-domains: |
22+
# The egress policy to enforce. Valid values are `audit` and `block`.
23+
# Default: audit
24+
egress-policy: audit
1125
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
1226

1327
- name: 🧷️ Get version

.husky/post-checkout

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
#!/bin/sh
2+
3+
if [ "$LEFTHOOK_VERBOSE" = "1" -o "$LEFTHOOK_VERBOSE" = "true" ]; then
4+
set -x
5+
fi
6+
7+
if [ "$LEFTHOOK" = "0" ]; then
8+
exit 0
9+
fi
10+
11+
call_lefthook()
12+
{
13+
if test -n "$LEFTHOOK_BIN"
14+
then
15+
"$LEFTHOOK_BIN" "$@"
16+
elif lefthook -h >/dev/null 2>&1
17+
then
18+
lefthook "$@"
19+
else
20+
dir="$(git rev-parse --show-toplevel)"
21+
osArch=$(uname | tr '[:upper:]' '[:lower:]')
22+
cpuArch=$(uname -m | sed 's/aarch64/arm64/;s/x86_64/x64/')
23+
if test -f "$dir/node_modules/lefthook-${osArch}-${cpuArch}/bin/lefthook"
24+
then
25+
"$dir/node_modules/lefthook-${osArch}-${cpuArch}/bin/lefthook" "$@"
26+
elif test -f "$dir/node_modules/@evilmartians/lefthook/bin/lefthook-${osArch}-${cpuArch}/lefthook"
27+
then
28+
"$dir/node_modules/@evilmartians/lefthook/bin/lefthook-${osArch}-${cpuArch}/lefthook" "$@"
29+
elif test -f "$dir/node_modules/@evilmartians/lefthook-installer/bin/lefthook"
30+
then
31+
"$dir/node_modules/@evilmartians/lefthook-installer/bin/lefthook" "$@"
32+
elif test -f "$dir/node_modules/lefthook/bin/index.js"
33+
then
34+
"$dir/node_modules/lefthook/bin/index.js" "$@"
35+
36+
elif go tool lefthook -h >/dev/null 2>&1
37+
then
38+
go tool lefthook "$@"
39+
elif bundle exec lefthook -h >/dev/null 2>&1
40+
then
41+
bundle exec lefthook "$@"
42+
elif yarn lefthook -h >/dev/null 2>&1
43+
then
44+
yarn lefthook "$@"
45+
elif pnpm lefthook -h >/dev/null 2>&1
46+
then
47+
pnpm lefthook "$@"
48+
elif swift package lefthook >/dev/null 2>&1
49+
then
50+
swift package --build-path .build/lefthook --disable-sandbox lefthook "$@"
51+
elif command -v mint >/dev/null 2>&1
52+
then
53+
mint run csjones/lefthook-plugin "$@"
54+
elif uv run lefthook -h >/dev/null 2>&1
55+
then
56+
uv run lefthook "$@"
57+
elif mise exec -- lefthook -h >/dev/null 2>&1
58+
then
59+
mise exec -- lefthook "$@"
60+
elif devbox run lefthook -h >/dev/null 2>&1
61+
then
62+
devbox run lefthook "$@"
63+
else
64+
echo "Can't find lefthook in PATH"
65+
fi
66+
fi
67+
}
68+
69+
call_lefthook run "post-checkout" "$@"

RELEASE

Lines changed: 48 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
IPFS hash of the deployment:
2-
- CIDv0: `QmW2N1jVYGV4M84L1cMTysFn1BtPJTKcjDkdoZtpmNE3xt`
3-
- CIDv1: `bafybeidsfyuzvuwapjnhk4dfkgjipmjnovf34gfv6c6broz6zjcsikwwbe`
2+
- CIDv0: `QmZDGpemKezoNt9EN6WRuTFPM4eXNYH2sxT3VXwnop1byu`
3+
- CIDv1: `bafybeifbrs7b4fucyijr6s24lgaaa736h6q25l62d3hagu3gxakobgdctq`
44

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

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

16-
## 5.111.0 (2025-09-24)
16+
## 5.112.0 (2025-10-02)
1717

1818

1919
### Features
2020

21-
* **web:** [lp] action buttons - center range (#23054) 53738d8
22-
* **web:** [lp] action buttons - history duration (#23068) e163e2c
23-
* **web:** [lp] action buttons - modify zoom options (#23069) 6666906
24-
* **web:** [lp] action buttons - reset (#23067) 39d2a4b
25-
* **web:** [lp] action buttons - zoom (#23061) 6a09678
26-
* **web:** [lp] add center range behavior (#22983) c568951
27-
* **web:** [lp] add chartInteractions - pinch to zoom (#22986) a41a9ca
28-
* **web:** [lp] add chartInteractions - scroll (#22985) 8b0bd0c
29-
* **web:** [lp] add handlePriceChange action (#23348) 4c4c7ce
30-
* **web:** [lp] add line swap (#23346) 134fb89
31-
* **web:** [lp] add scrollbar and min/max indicators (#22964) 1563c30
32-
* **web:** [lp] add tick based drag behavior (#22965) 8e587cf
33-
* **web:** [lp] add tick based drag to liquidity range area (#23047) 30bd10a
34-
* **web:** [lp] create current tick renderer (#22989) 312799a
35-
* **web:** [lp] current price (#23090) f7b9574
36-
* **web:** [lp] default price strats (#23141) 828d388
37-
* **web:** [lp] drag to create range area (#23048) 9096a52
38-
* **web:** [lp] full range state (#23086) 12bf3f5
39-
* **web:** [lp] hide default price strats when missing liquidity or price data (#23422) 8bf92e7
40-
* **web:** [lp] improved loading state (#23103) d8374b3
41-
* **web:** [lp] indicate at when at our around price strat (#23423) 931ef48
42-
* **web:** [lp] move current price and token selection to d3 liquidity input (#23140) 56c68fc
43-
* **web:** [lp] move range input component (#23491) dc34109
44-
* **web:** [lp] move range inputs (#23143) 90e06d4
45-
* **web:** [lp] on set min/max, transparent drags (#22962) cab80c9
46-
* **web:** [lp] pass initial min/max price (#23080) ebec3ff
47-
* **web:** [lp] percent indicators (#23157) 973e1a7
48-
* **web:** [lp] revert back to original default range logic (#23567) d9b1335
49-
* **web:** [lp] tick tooltips (#23142) 51b26e0
50-
* **web:** [lp] time scale (#23078) 48fa2e3
51-
* **web:** AccountsStore implementation (#23290) 6230f2a
52-
* **web:** add more configuration for web-ext (#23483) 03fe259
53-
* **web:** add pool info endpoint feature gate (#23521) da496bb
54-
* **web:** add v2 style options to table component (#23171) 03c21e6
55-
* **web:** create solana switch network toast prompt (#22414) 96cfa33
56-
* **web:** show notifications in mini portfolio for context menu actions (#23218) 79b0ccf
57-
* **web:** update CLAUDE.md for extension (#23507) d1e5c5f
58-
* **web:** use poolinfo endpoint (#22711) 817b639
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
5937

6038

6139
### Bug Fixes
6240

63-
* **web:** [lp] default to custom range (#23573) 2ba34e0
64-
* **web:** [lp] ensure minimum min/max indicator height on drag creation (#23572) 5dd689e
65-
* **web:** [lp] fix min/max at same closest tick (#23591) 3a4f390
66-
* **web:** [lp] render priceToY at specified tick alignment (#23571) 337649f
67-
* **web:** add query for extra limit orders - PORT-427 (#23667) 10848d5
68-
* **web:** detected label alignment in connection pane (#23708) 39e5c93
69-
* **web:** enhance Binance wallet connection handling (#23394) 6e82ab5
70-
* **web:** fix focus stealing issue on the deposit form (#23510) bb90d34
71-
* **web:** fix toastregularsimple design (#22493) 1539552
72-
* **web:** fix useAccountRiskCheck for solana and BlockedAccount modal for svm (#22976) d09e5d7
73-
* **web:** hover state on position cards (#22819) 1e9fa50
74-
* **web:** mweb fixes (#23596) c3dbe85
75-
* **web:** mweb mini-portfolio tabs bottom spacing - PORT-400 (#23372) 1bcd62b
76-
* **web:** prevent currency change causing re-render in create form (#23598) 3e2f37e
77-
* **web:** remove preserve sym links for better HMR (#23719) 113bb9c
78-
* **web:** remove receipt req for batch txs in updater - PORT-248 (#23371) ba1b742
79-
* **web:** remove unneeded param for deeplinking on web to native assets from portfolio (#23642) f039e38
80-
* **web:** show unsupported Solana error in create liquidity (#23399) 3dca695
81-
* **web:** updates receive modal copy animation (#23704) 37747e2
82-
* **web:** use useSwapAndLimitContext for currentTab (#23326) d7ba078
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
8361

8462

8563
### Continuous Integration
8664

87-
* **web:** update sitemaps b368c4b
65+
* **web:** update sitemaps 7bcdac9
8866

8967

9068
### Styles
9169

92-
* **web:** update copy icon animation (#23298) 20e9bde
93-
* **web:** update CopyHelper copy animation (#23358) 7c2d700
94-
* **web:** update explore copy icon (#23373) b834e84
70+
* **web:** fix spinning loader causing overflow issues in mini portfolio (#24048) 3ccd937
9571

9672

9773
### Code Refactoring
9874

99-
* **web:** [lp] clean up chart actions and utils (#23167) 199a3b7
100-
* **web:** [lp] clean up chart state (#23168) 81f689f
101-
* **web:** [lp] rename files and functions (#23169) f35fb74
102-
* **web:** rm rest of direct wagmi connection code + handle errors (#23461) 840f2cc
103-
104-
105-
### Tests
106-
107-
* **web:** [lp] dynamic zoom min (#23258) fec8dd6
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
10880

10981

VERSION

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

apps/extension/.depcheckrc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ ignores: [
88
# Dependencies that depcheck thinks are missing but are actually present or never used
99
## Internal packages / workspaces
1010
'src',
11+
'e2e',
1112
'tsconfig',
13+
'@uniswap/biome-config',
1214
# Webpack plugins
1315
'@svgr/webpack',
1416
'tamagui-loader',

apps/extension/.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,6 @@ dist-ssr
3232
web-ext.config.ts
3333

3434
tsconfig.tsbuildinfo
35+
36+
# E2E test artifacts
37+
e2e/test-results/

apps/extension/biome.json

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,3 @@
11
{
2-
"extends": "//",
3-
"files": {
4-
"experimentalScannerIgnores": [
5-
"dev/**"
6-
]
7-
},
8-
"formatter": {
9-
"includes": [
10-
"**",
11-
"!dev"
12-
]
13-
}
2+
"extends": ["@uniswap/biome-config/extension"]
143
}

apps/extension/e2e/README.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# Extension E2E Tests
2+
3+
End-to-end tests for the Uniswap Chrome Extension using Playwright.
4+
5+
## Setup
6+
7+
1. Install dependencies (from repo root):
8+
```bash
9+
bun install
10+
```
11+
12+
2. Install Playwright browsers (from extension directory):
13+
```bash
14+
cd apps/extension
15+
bun playwright install chromium
16+
```
17+
18+
## Running Tests
19+
20+
### Build and run all tests:
21+
```bash
22+
bun run e2e
23+
```
24+
25+
### Build and run smoke tests only:
26+
```bash
27+
bun run e2e:smoke
28+
```
29+
30+
### Run tests without rebuilding:
31+
```bash
32+
bun run playwright:test
33+
```
34+
35+
### Run tests in UI mode (for debugging):
36+
```bash
37+
bun playwright test --ui --config=e2e/config/playwright.config.ts
38+
```
39+
40+
### Run tests in headless environment (CI/SSH):
41+
Chrome extensions require a display server. If you're running in a headless environment, use xvfb:
42+
```bash
43+
# Install xvfb if needed
44+
sudo apt-get install xvfb
45+
# Run tests with xvfb
46+
xvfb-run -a bun run e2e:smoke
47+
```
48+
49+
50+
## Test Structure
51+
52+
- `config/` - Playwright configuration
53+
- `fixtures/` - Test fixtures for extension loading
54+
- `tests/smoke/` - Smoke tests for critical functionality
55+
- `basic-setup.test.ts` - Verifies extension loads correctly
56+
- `onboarding-flow.test.ts` - Tests fresh install onboarding
57+
- `sidebar-loads.test.ts` - Tests sidebar functionality (auto-onboards)
58+
- `wallet-connection.test.ts` - Tests dApp connection flow (auto-onboards)
59+
- `utils/` - Helper utilities including programmatic onboarding
60+
61+
## Test Fixtures
62+
63+
### freshExtensionTest
64+
- Loads extension with no user data
65+
- Triggers onboarding flow
66+
- Use for testing fresh installation scenarios
67+
68+
### onboardedExtensionTest
69+
- Loads extension with fresh user data
70+
- Automatically completes onboarding with test wallet
71+
- Uses test seed phrase: `test test test test test test test test test test test junk`
72+
- Use for testing wallet functionality
73+
74+
## Programmatic Onboarding
75+
76+
Tests that require an onboarded extension will automatically complete the onboarding process using a test seed phrase. This approach:
77+
- Avoids committing sensitive user data
78+
- Ensures consistent test environment
79+
- Works identically in CI and local development
80+
- No manual setup required
81+
82+
## CI Integration
83+
84+
Tests run automatically on PRs that affect the extension or its dependencies using GitHub Actions.

0 commit comments

Comments
 (0)