Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .bun-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.2.21
1.3.1
31 changes: 31 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Use the latest 2.1 version of CircleCI pipeline process engine.
# See: https://circleci.com/docs/configuration-reference
version: 2.1

# Define a job to be invoked later in a workflow.
# See: https://circleci.com/docs/jobs-steps/#jobs-overview & https://circleci.com/docs/configuration-reference/#jobs
jobs:
say-hello:
# Specify the execution environment. You can specify an image from Docker Hub or use one of our convenience images from CircleCI's Developer Hub.
# See: https://circleci.com/docs/executor-intro/ & https://circleci.com/docs/configuration-reference/#executor-job
docker:
# Specify the version you desire here
# See: https://circleci.com/developer/images/image/cimg/base
- image: cimg/base:current

# Add steps to the job
# See: https://circleci.com/docs/jobs-steps/#steps-overview & https://circleci.com/docs/configuration-reference/#steps
steps:
# Checkout the code as the first step.
- checkout
- run:
name: "Say hello"
command: "echo Hello, World!"

# Orchestrate jobs using workflows
# See: https://circleci.com/docs/workflows/ & https://circleci.com/docs/configuration-reference/#workflows
workflows:
say-hello-workflow: # This is the name of the workflow, feel free to change it to better match your workflow.
# Inside the workflow, you define the jobs you want to run.
jobs:
- say-hello
20 changes: 20 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"permissions": {
"deny": [
"Read(**/.env)",
"Edit(**/.env)",
"Read(~/.aws/**)",
"Edit(~/.aws/**)",
"Read(~/.ssh/**)",
"Edit(~/.ssh/**)",
"Read(~/.gnupg/**)",
"Edit(~/.gnupg/**)",
"Read(~/.git-credentials)",
"Edit(~/.git-credentials)",
"Read($HOME/Library/Keychains/**)",
"Edit($HOME/Library/Keychains/**)",
"Read(/private/etc/**)",
"Edit(/private/etc/**)"
]
}
}
21 changes: 21 additions & 0 deletions .cursor/cli.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"version": 1,
"permissions": {
"deny": [
"Read(**/.env)",
"Write(**/.env)",
"Read(~/.aws/**)",
"Write(~/.aws/**)",
"Read(~/.ssh/**)",
"Write(~/.ssh/**)",
"Read(~/.gnupg/**)",
"Write(~/.gnupg/**)",
"Read(~/.git-credentials)",
"Write(~/.git-credentials)",
"Read($HOME/Library/Keychains/**)",
"Write($HOME/Library/Keychains/**)",
"Read(/private/etc/**)",
"Write(/private/etc/**)"
]
}
}
7 changes: 7 additions & 0 deletions .cursorignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
**/.env
**/.aws/**
**/.ssh/**
**/.gnupg/**
**/.git-credentials
**/Library/Keychains/**
**/private/etc/**
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ name: Bug Report
about: Report a bug or unexpected behavior in the Uniswap interfaces.
title: "[Bug] "
labels: bug
assignees: ''

---

## 📱 Interface Affected
Expand Down
10 changes: 10 additions & 0 deletions .github/ISSUE_TEMPLATE/custom.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
name: Custom issue template
about: Describe this issue template's purpose here.
title: ''
labels: ''
assignees: ''

---


20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: 'enhancement'
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
7 changes: 5 additions & 2 deletions .github/workflows/tag_and_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@ on:
push:
branches:
- 'main'

permissions:
contents: write
issues: write
pull-requests: write
jobs:
deploy-to-prod:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -47,7 +50,7 @@ jobs:
- name: 🪽 Release
uses: actions/create-release@c9ba6969f07ed90fae07e2e66100dd03f9b1a50e
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Or use your PAT
with:
tag_name: ${{ steps.github-tag-action.outputs.new_tag }}
release_name: Release ${{ steps.github-tag-action.outputs.new_tag }}
Expand Down
7 changes: 4 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,10 @@ CLAUDE.local.md
# lefthook
.lefthook/



# Nx
.nx/cache
.nx/workspace-data
.cursor/rules/nx-rules.mdc
.github/instructions/nx.instructions.md

# Spec Workflow MCP
.spec-workflow/
3 changes: 2 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ bun extension build:production # Extension production

```bash
bun g:test # Run all tests
bun notifications test # Run tests for a specific package (e.g. notifications)
bun g:test:coverage # With coverage
bun web playwright:test # Web E2E tests
bun mobile e2e # Mobile E2E tests
Expand Down Expand Up @@ -158,4 +159,4 @@ Be cognizant of the app or package within which a given change is being made. Be
- If the user needs help with an Nx configuration or project graph error, use the `nx_workspace` tool to get any errors


<!-- nx configuration end-->
<!-- nx configuration end-->
63 changes: 57 additions & 6 deletions RELEASE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
IPFS hash of the deployment:
- CIDv0: `QmZmRjJXcRL1HVbuFBLX23qqmQydzmqGsLmb94qrqTU9A7`
- CIDv1: `bafybeifjzfti2rq27be42zfwqnturszxqyecs4zxklxxr4pejgcgi72eja`
- CIDv0: `QmNMoMSDQVQwUdfxLqhLpM4bKgGMyEHU2LU2RfDFaRqACc`
- CIDv1: `bafybeiaajnnkurqabznrl32buiydbsym77nt2np3d5xv5mgskkd6euk3au`

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

Expand All @@ -10,14 +10,65 @@ You can also access the Uniswap Interface from an IPFS gateway.
Your Uniswap settings are never remembered across different URLs.

IPFS gateways:
- https://bafybeifjzfti2rq27be42zfwqnturszxqyecs4zxklxxr4pejgcgi72eja.ipfs.dweb.link/
- [ipfs://QmZmRjJXcRL1HVbuFBLX23qqmQydzmqGsLmb94qrqTU9A7/](ipfs://QmZmRjJXcRL1HVbuFBLX23qqmQydzmqGsLmb94qrqTU9A7/)
- https://bafybeiaajnnkurqabznrl32buiydbsym77nt2np3d5xv5mgskkd6euk3au.ipfs.dweb.link/
- [ipfs://QmNMoMSDQVQwUdfxLqhLpM4bKgGMyEHU2LU2RfDFaRqACc/](ipfs://QmNMoMSDQVQwUdfxLqhLpM4bKgGMyEHU2LU2RfDFaRqACc/)

## 5.115.0 (2025-10-24)
## 5.117.0 (2025-11-05)


### Features

* **web:** special case metamask dual vm connection flow (#24756) (#24789) b21eafd
* **web:** add activity items to new mini portfolio (#24822) f0994c6
* **web:** add infinite scroll for portfolio activity table (#24691) d71921f
* **web:** add infinite scroll to minip on web activity (#23352) 78d6dcb
* **web:** add NFT context menu (#24791) 10ed3e4
* **web:** add report position option to context menus (#24840) b587dfc
* **web:** add report position option to PDP (#24841) 97d0b94
* **web:** add toast on report (#24717) 65c8cd6
* **web:** add web entry points for token reporting (#24714) b83cb90
* **web:** block timestamp countdown (#24632) 6a1da1d
* **web:** dialog content container + spacing tweaks (#24239) 035026d
* **web:** portfolio Overview tab (#24737) ed3f451
* **web:** stub out new mini portfolio behind flag (#24821) 0602da3
* **web:** toucan auction status (#24866) 0d9d56b
* **web:** use shared token details hooks with unified 24hr change (#24726) 501d754


### Bug Fixes

* **web:** calculate fiat delta from API percentage for multi-chain tokens (#24728) 36f4c68
* **web:** data reporting abilities fixes (#25130) 9246200
* **web:** default to mainnet for limits flow (#24884) 666bdb0
* **web:** fix issue with listpools endpoint returning an error (#25141) 62f132b
* **web:** fix nested scrollbar overflowY issue (#24688) 60d39f3
* **web:** Fix non-reactive prices on explore tab (#24766) 4539d99
* **web:** Load tokens until scrollbar appears- PORT-359 (#23085) 5a480cf
* **web:** log interface swap finalization results for flashblocks (#24869) b800fb3
* **web:** portfolio polishes (#24944) 6d94d95
* **web:** position card context menu fixes and cleanup (#24839) 5568c4d
* **web:** prevent blank loading state in swap modal 5790e16
* **web:** remove bad import in server side worker code (#24803) 048e2a0
* **web:** Remove unnecessary button outline on Switch (#24697) 6216bb8
* **web:** revert table scroll update (#25113) 9d12691


### Continuous Integration

* **web:** update sitemaps c5134d4


### Code Refactoring

* **web:** Consolidate swap and wrap callbacks into useSwapHandlers (#24219) b151db3
* **web:** Consolidate swap and wrap handlers into unified interface (#24184) 672c7be


### Styles

* **web:** apply textured background to pool details page table variants (#25040) 8381ec0
* **web:** fix portfolio page account header scroll animation (#24953) 13aef52
* **web:** update activity tab filter to reflect designs (#24687) 68f73cb
* **web:** update loading skeletons for NFT Cards (#24951) d556e00
* **web:** update price chart styles (#24773) 5f231db


2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
web/5.115.0
web/5.117.0
44 changes: 44 additions & 0 deletions apps/api-self-serve/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
const restrictedGlobals = require('confusing-browser-globals')
const rulesDirPlugin = require('eslint-plugin-rulesdir')
rulesDirPlugin.RULES_DIR = '../../packages/uniswap/eslint_rules'

module.exports = {
root: true,
extends: ['@uniswap/eslint-config/extension'],
plugins: ['rulesdir'],
ignorePatterns: [
'node_modules',
'.react-router',
'dist',
'build',
'.eslintrc.js',
'manifest.json',
'.nx',
'vite.config.ts',
],
parserOptions: {
project: 'tsconfig.eslint.json',
tsconfigRootDir: __dirname,
ecmaFeatures: {
jsx: true,
},
ecmaVersion: 2018,
sourceType: 'module',
},
rules: {
'rulesdir/i18n': 'error',
},
overrides: [
{
files: ['*.ts', '*.tsx'],
rules: {
'no-relative-import-paths/no-relative-import-paths': [
'error',
{
allowSameFolder: false,
},
],
},
},
],
}
7 changes: 7 additions & 0 deletions apps/api-self-serve/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.DS_Store
.env
/node_modules/

# React Router
/.react-router/
/build/
1 change: 1 addition & 0 deletions apps/api-self-serve/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# API Self Serve Portal
Loading
Loading