Skip to content

chore: update dependencies and ci permissions#602

Open
Dargon789 wants to merge 118 commits into
Uniswap:mainfrom
Dargon789:main
Open

chore: update dependencies and ci permissions#602
Dargon789 wants to merge 118 commits into
Uniswap:mainfrom
Dargon789:main

Conversation

@Dargon789

@Dargon789 Dargon789 commented Jun 7, 2026

Copy link
Copy Markdown
  • chore: update dependencies and ci permissions
  • Upgrade eslint to v9.26.0 across multiple SDKs.
  • Update hardhat, ethers, and related testing dependencies in uniswapx-sdk.
  • Deprecate FACTORY_ADDRESS in v3-sdk constants.
  • Update claude-pr-metadata-update.yml workflow permissions to contents: read.
  • Add main to ignored PR branches in VS Code settings.
  • Add .idea/ to .gitignore in v3-sdk.
  • Minor formatting updates to .eslintrc.js and .github/workflows/check-pr-title.yaml.
  • Consolidate PR prompts, add Vercel & SDK updates

Combine scattered PR-review fragments into a single .claude/prompts/claude-pr-review.md and remove the old pr-review files. Add Vercel project metadata (.vercel/project.json) and README, plus a new .env.local (contains environment variables — review for sensitive data and rotate if committed). Add Yarn runtime under .yarn/releases and apply broad updates across multiple SDK packages (sdks/*): package.json, contracts, utils, tests and refactors in uniswapx-sdk/universal-router/v2-v4 SDKs. Minor CI/workflow and editor tweaks (check-pr-title whitespace, .vscode settings). Note: monorepo-integrity.yml currently contains unresolved merge conflict markers (bun install vs yarn --immutable) and needs resolution.

  • Update package.json and resolve merge conflicts

Removed devDependencies and resolved merge conflicts.

  • Update dependency installation method in workflow

Replaced yarn with bun for dependency installation.

  • Update Uniswap SDK dependencies in package.json

Updated dependencies for Uniswap SDKs and removed stashed changes.

  • Resolve merge conflict in index.ts

  • Fix merge conflicts in constants.test.ts

Resolved merge conflicts in constants test data.

  • Update dependencies in package.json

Updated dependencies for UniswapX SDK.

  • Refactor Uniswap action parameters and logic

  • Update .env.local

  • Update .env.local

  • Update .env.local

  • Update .env.local

  • Update @uniswap/sdk-core version in package.json

Updated the version of @uniswap/sdk-core dependency.

  • Update Uniswap SDK dependencies in package.json

Updated Uniswap SDK dependencies to newer versions.

  • Resolve merge conflicts in package.json

Removed conflicting dependencies and updated overrides.

  • Fix merge conflicts in routerCommands.ts

Removed merge conflict markers and cleaned up the code.

  • Remove merge conflict markers from signedRoutes.test.ts

  • Update UniversalRouterVersion and remove V2_1

  • Update @uniswap/sdk-core dependency to workspace

Reverted the version of @uniswap/sdk-core to use workspace instead of a specific version.


Signed-off-by: Dargon789 64915515+Dargon789@users.noreply.github.com
Co-authored-by: googleworkspace-bot googleworkspace-bot@google.com
Co-authored-by: Copilot 198982749+Copilot@users.noreply.github.com
Co-authored-by: semgrep-code-uniswap[bot] <212759065+semgrep-code-uniswap[bot]@users.noreply.github.com>

jsy1218 and others added 30 commits July 3, 2024 05:51
Signed-off-by: Legion's  <64915515+Dargon789@users.noreply.github.com>
Bumps the npm_and_yarn group with 1 update in the / directory: [@openzeppelin/contracts](https://github.com/OpenZeppelin/openzeppelin-contracts).


Updates `@openzeppelin/contracts` from 4.7.0 to 4.9.6
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-contracts/releases)
- [Changelog](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/CHANGELOG.md)
- [Commits](OpenZeppelin/openzeppelin-contracts@v4.7.0...v4.9.6)

---
updated-dependencies:
- dependency-name: "@openzeppelin/contracts"
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…dates (#2)

Bumps the npm_and_yarn group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@openzeppelin/contracts](https://github.com/OpenZeppelin/openzeppelin-contracts) | `4.9.6` | `5.0.2` |
| [follow-redirects](https://github.com/follow-redirects/follow-redirects) | `1.15.3` | `1.15.9` |
| [secp256k1](https://github.com/cryptocoinjs/secp256k1-node) | `4.0.3` | `4.0.4` |
| [tar](https://github.com/isaacs/node-tar) | `6.2.0` | `6.2.1` |
| [undici](https://github.com/nodejs/undici) | `5.28.2` | `5.28.4` |



Updates `@openzeppelin/contracts` from 4.9.6 to 5.0.2
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-contracts/releases)
- [Changelog](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/CHANGELOG.md)
- [Commits](OpenZeppelin/openzeppelin-contracts@v4.9.6...v5.0.2)

Updates `follow-redirects` from 1.15.3 to 1.15.9
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](follow-redirects/follow-redirects@v1.15.3...v1.15.9)

Updates `secp256k1` from 4.0.3 to 4.0.4
- [Release notes](https://github.com/cryptocoinjs/secp256k1-node/releases)
- [Commits](cryptocoinjs/secp256k1-node@v4.0.3...v4.0.4)

Updates `tar` from 6.2.0 to 6.2.1
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](isaacs/node-tar@v6.2.0...v6.2.1)

Updates `undici` from 5.28.2 to 5.28.4
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](nodejs/undici@v5.28.2...v5.28.4)

---
updated-dependencies:
- dependency-name: "@openzeppelin/contracts"
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: follow-redirects
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: secp256k1
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: tar
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: undici
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the npm_and_yarn group with 1 update in the / directory: [@openzeppelin/contracts](https://github.com/OpenZeppelin/openzeppelin-contracts).


Updates `@openzeppelin/contracts` from 5.0.2 to 5.1.0
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-contracts/releases)
- [Changelog](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/CHANGELOG.md)
- [Commits](OpenZeppelin/openzeppelin-contracts@v5.0.2...v5.1.0)

---
updated-dependencies:
- dependency-name: "@openzeppelin/contracts"
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Legion's  <64915515+Dargon789@users.noreply.github.com>
Signed-off-by: Legion's  <64915515+Dargon789@users.noreply.github.com>
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-WS-7266574

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Fix witness typestring generation to omit final closing parenthesis
per The Compact spec, and add comprehensive tests validating complex
nested mandate structures like those used in Tribunal.

Changes:
- Fix buildWitnessTypestring to remove final closing paren
- Add 8 new tests for complex nested mandate types
- Test simple nested structures
- Test arrays in nested structures
- Test alphabetical sorting of multiple nested types
- Test Tribunal-like deeply nested structures with recursive refs
- Test full Tribunal-style mandate with 5 nested types
- Test bytes vs bytes32 in nested structures

Added comprehensive tests to validate SDK mandate encoding against Tribunal's
reference implementation:

- Nested custom types (Mandate_*)
- Arrays of nested types (Mandate_Fill[])
- Recursive type references (Mandate_Compact contains Mandate)
- Complex multi-level nesting (up to 5 nested types)
- Mandate typehash matches Tribunal's MANDATE_TYPEHASH constant
- Mandate_Fill typehash matches MANDATE_FILL_TYPEHASH
- Mandate_FillComponent typehash matches MANDATE_FILL_COMPONENT_TYPEHASH
- Mandate_Lock typehash matches MANDATE_LOCK_TYPEHASH
- All typehashes computed from typestrings match Tribunal contract constants
- Full Tribunal mandate encoding test case from TribunalBasicTest.sol
- Validates encoding structure (address + fillsHash = 64 bytes)
- Verifies hash computation is deterministic

These tests ensure the SDK's EIP-712 encoding is compatible with Tribunal's
on-chain mandate derivation functions (deriveMandateHash, deriveFillHash).
1) Add collectCoverageFrom and coverage reporting configuration to enable test coverage measurement. Includes text, text-summary, and HTML reporters.

2) Add complete parameter and return type documentation to all functions:

Price Curve Library:
- Document all parameters with types and descriptions
- Add return type documentation with value ranges
- Clarify scaling factor semantics (1e18 = neutral)
- Document error conditions and edge cases

Tribunal Builders:
- Full @param documentation for all builder methods
- Document chaining behavior with @returns
- Add class-level documentation with usage examples
- Document build() method preconditions

Convenience Functions:
- Complete parameter documentation for createSameChainFill()
- Full parameter docs for createCrossChainFill()
- Clarify cross-chain callback semantics

3) Add many new test cases for claim and batch claim functionality
…lders

Add extensive class-level and method documentation to all builder classes
in compact.ts and claim.ts, improving API discoverability and usage examples.
Replace basic README with comprehensive documentation covering all aspects
of the SDK usage, from installation to advanced patterns.
Add functional e2e tests using Supersim for testing against forked chains
…eriods

Add E2E test demonstrating batch compacts covering multiple resource locks
with different reset periods, processed in a single batch claim transaction.
Add a simpler `fromCompact()` method to BaseBatchClaimBuilder that pre-fills
sponsor, nonce, expires, and signature from a BatchCompact struct without
requiring ids/amounts upfront. This provides a cleaner API for building batch
claims:

Before:
  ClaimBuilder.batch(domain)
    .sponsor(compact.sponsor)
    .nonce(compact.nonce)
    .expires(compact.expires)
    .addClaim()...

After:
  ClaimBuilder.batch(domain)
    .fromCompact({ compact, signature })
    .addClaim()...

The method is inherited by BatchClaimBuilder, BatchMultichainClaimBuilder,
and ExogenousBatchMultichainClaimBuilder, providing consistent API across
all batch claim builder types.
Dargon789 and others added 17 commits February 1, 2026 18:53
* feat(smart-wallet): add executeUserOp

* Update check-pr-title.yaml

* feat(smart-wallet): add executeUserOp

* Revert "feat(uniswapx-sdk): graduate to stable v3.0.0 (Uniswap#545)"

This reverts commit dc9c963.

* feat(v2-sdk): bump sdk-core in v2 to support x-layer (Uniswap#463)

* feat(v3-sdk): Bump sdk-core for v3 to support x-layer (Uniswap#464)

* feat(v4-sdk): Bump sdk-core version to support x-layer (Uniswap#465)

* feat(router-sdk): bump sdks for xlayer (Uniswap#466)

* feat(ur-sdk): bump sdks for xlayer (Uniswap#467)

## Description

bump sdks in ur-sdk for xlayer

## How Has This Been Tested?

_[e.g. Manually, E2E tests, unit tests, Storybook]_

## Are there any breaking changes?

_[e.g. Type definitions, API definitions]_

If there are breaking changes, please ensure you bump the major version Bump the major version (by using the title `feat(breaking): ...`), post a notice in #eng-sdks, and explicitly notify all Uniswap Labs consumers of the SDK.

## (Optional) Feedback Focus

_[Specific parts of this PR you'd like feedback on, or that reviewers should pay closer attention to]_

## (Optional) Follow Ups

_[Things that weren't addressed in this PR, ways you plan to build on this work, or other ways this work could be extended]_

<!-- claude-pr-description-start -->
---
## ✨ Claude-Generated Content

## Description
Bumps SDK dependencies in universal-router-sdk and adds X-Layer chain configuration to enable X-Layer support. This follows the recent SDK version bumps (Uniswap#463, Uniswap#464, Uniswap#465, Uniswap#466) that added X-Layer support to the individual SDKs.
## Changes
- Updated `@uniswap/router-sdk` version in `sdks/universal-router-sdk/package.json` from `^2.1.0` to `^2.3.0`
- Updated `@uniswap/sdk-core` version from `^7.8.0` to `^7.10.0`
- Updated `@uniswap/v2-sdk` version from `^4.16.0` to `^4.17.0`
- Updated `@uniswap/v3-sdk` version from `^3.26.0` to `^3.27.0`
- Updated `@uniswap/v4-sdk` version from `^1.23.0` to `^1.24.0`
- Added X-Layer chain configuration (chain ID 196) in `constants.ts` with WETH address and Universal Router addresses for V1_2, V2_0, and V2_1
- Updated `yarn.lock` to reflect the new dependency versions
## How Has This Been Tested?
Will test in routing
## Are there any breaking changes?
No
<!-- claude-pr-description-end -->

* feat(uniswapx-sdk): add V4 hybrid order support (Uniswap#432)

* feat(smart-wallet-sdk): add X-Layer support (Uniswap#468)

* feat(v4-sdk): Revert Add max hop slippage (Uniswap#470)

* feat(universal-router-sdk): Revert Universal Router 2.1 support (Uniswap#471)

## Description

Revert Universal Router 2.1 support

## How Has This Been Tested?

_[e.g. Manually, E2E tests, unit tests, Storybook]_

## Are there any breaking changes?

_[e.g. Type definitions, API definitions]_

If there are breaking changes, please ensure you bump the major version Bump the major version (by using the title `feat(breaking): ...`), post a notice in #eng-sdks, and explicitly notify all Uniswap Labs consumers of the SDK.

## (Optional) Feedback Focus

_[Specific parts of this PR you'd like feedback on, or that reviewers should pay closer attention to]_

## (Optional) Follow Ups

_[Things that weren't addressed in this PR, ways you plan to build on this work, or other ways this work could be extended]_

<!-- claude-pr-description-start -->
---
## ✨ Claude-Generated Content

## Description
Reverts Universal Router 2.1 support that was added in PR Uniswap#442. This PR removes all v2.1-specific features to roll back to a v2.0-only state.
## Changes
- Removed `UniversalRouterVersion.V2_1` enum value and all v2.1 router addresses from chain configurations
- Deleted `src/utils/eip712.ts` (EIP712 signing utilities for signed route execution)
- Deleted `src/entities/actions/across.ts` (Across V4 bridge types)
- Removed `SignedRouteOptions`, `EIP712Payload` types and `getExecuteSignedPayload()`, `encodeExecuteSigned()` methods from `swapRouter.ts`
- Removed `maxHopSlippage` option from `SwapOptions` interface
- Removed `addAcrossBridge()` method and `ACROSS_V4_DEPOSIT_V3` command from `routerCommands.ts`
- Removed exports: `NONCE_SKIP_CHECK`, `generateNonce`, `EXECUTE_SIGNED_TYPES`, `getUniversalRouterDomain`
- Deleted unit tests for signed routes (`signedRoutes.test.ts`) and Across bridge (`across.test.ts`)
- Removed v2.1 documentation from README.md (per-hop slippage, signed routes, cross-chain bridging)
## How Has This Been Tested?
Unit tests updated to remove v2.1-specific test cases.
## Are there any breaking changes?
Yes - removes the following exports and functionality:
- `UniversalRouterVersion.V2_1`
- `SignedRouteOptions`, `EIP712Payload` types
- `NONCE_SKIP_CHECK`, `generateNonce`, `EXECUTE_SIGNED_TYPES`, `getUniversalRouterDomain` exports
- `SwapRouter.getExecuteSignedPayload()` and `SwapRouter.encodeExecuteSigned()` methods
- `AcrossV4DepositV3Params` type and `CONTRACT_BALANCE` from across module
- `maxHopSlippage` option in `SwapOptions`
- Bridge parameters in `SwapRouter.swapCallParameters()`
<!-- claude-pr-description-end -->

* feat(universal-router-sdk): downgrade universal-router to v2.0.0-beta.2 (Uniswap#473)

* feat(ur-sdk): xlayer UR 2.0 (Uniswap#472)

## PR Scope

Please title your PR according to the following types and scopes following [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/):

- `fix(SDK name):` will trigger a patch version
- `chore(<type>):` will not trigger any release and should be used for internal repo changes
- `<type>(public):` will trigger a patch version for non-code changes (e.g. README changes)
- `feat(SDK name):` will trigger a minor version
- `feat(breaking):` will trigger a major version for a breaking change

## Description

_[Summary of the change, motivation, and context]_

## How Has This Been Tested?

_[e.g. Manually, E2E tests, unit tests, Storybook]_

## Are there any breaking changes?

_[e.g. Type definitions, API definitions]_

If there are breaking changes, please ensure you bump the major version Bump the major version (by using the title `feat(breaking): ...`), post a notice in #eng-sdks, and explicitly notify all Uniswap Labs consumers of the SDK.

## (Optional) Feedback Focus

_[Specific parts of this PR you'd like feedback on, or that reviewers should pay closer attention to]_

## (Optional) Follow Ups

_[Things that weren't addressed in this PR, ways you plan to build on this work, or other ways this work could be extended]_

<!-- claude-pr-description-start -->
---
## ✨ Claude-Generated Content

## Description
Adds the Universal Router V2.0 deployment configuration for X-Layer (chain ID 196) by updating from placeholder values to the actual deployed contract address.
## Changes
- Updated X-Layer Universal Router V2.0 address from placeholder (`0x0000000000000000000000000000000000000000`) to deployed contract (`0x6bdbd02e751bca2c029cfc21098da04acce8d582`) in `sdks/universal-router-sdk/src/utils/constants.ts`
- Updated X-Layer Universal Router V2.0 creation block from `1` to `47680350`
## How Has This Been Tested?
Will be tested in routing pipeline.
## Are there any breaking changes?
No
<!-- claude-pr-description-end -->

* fix(router-sdk): bump v4-sdk for ur2.1 revert (Uniswap#474)

* feat(universal-router-sdk): Bump router-sdk version (Uniswap#475)

* feat(uniswapx-sdk): expand chain 1301 config with Hybrid and Permit2 support (Uniswap#469)

Co-authored-by: Alan Wu <alanwu100@gmail.com>
Co-authored-by: Alan Wu <60207036+alanhwu@users.noreply.github.com>

* fix(v4-sdk): update to use pathInput (Uniswap#476)

Co-authored-by: Vasilis Xouris <vasileios.xouris@uniswap.org>
Co-authored-by: dianakocsis <diana.kocsis@uniswap.org>

* fix(universal-router-sdk): fix xlayer ur 2.0 address (Uniswap#479)

* fix(router-sdk): bump v4-sdk to 1.25.1 (priceImpact calc fix) (Uniswap#477)

* fix(sdk-core): update xlayer v4 position manager address (Uniswap#480)

* fix(universal-router-sdk): bump v4-sdk and router-sdk (priceImpact calc fix) (Uniswap#478)

* feat(uniswapx-sdk): add V4 order quoter, validator and integration tests (Uniswap#481)

* feat(uniswapx-sdk): bubble v4 quoter revert data (Uniswap#485)

* fix(v4-sdk): eth-weth exact output (Uniswap#486)

* fix(router-sdk): bump v4-sdk to 1.25.2 in router-sdk (Uniswap#487)

* fix(universal-router-sdk): handle ETH/WETH output in V4 split routes (Uniswap#462)

Co-authored-by: marktoda <toda.mark@gmail.com>

* feat: update ai toolkit ref (Uniswap#488)

Co-authored-by: Developer <dev@example.com>
Co-authored-by: Nick Koutrelakos <nick.koutrelakos@uniswap.org>

* fix(v4-sdk): eth-weth as starting pool (Uniswap#490)

* fix(v4-sdk): add comment to trigger release (Uniswap#492)

* fix(v4-sdk): more edge cases for eth-weth pools (Uniswap#494)

* fix(router-sdk): bump v4-sdk to 1.25.5 (Uniswap#493)

* fix(universal-router-sdk): handle ETH-WETH starting pool in split routes (Uniswap#491)

* fix(v4-sdk): bump sdk-core to 7.10.1 and v3-sdk to 3.27.0 (Uniswap#496)

* fix(router-sdk): bump sdk-core to 7.10.1 and v4-sdk to 1.25.6 (Uniswap#497)

* fix(universal-router-sdk): bump router-sdk to 2.3.5 and v4-sdk to 1.25.6 (Uniswap#498)

* chore(uniswapx-sdk): update hybrid order (Uniswap#495)

* feat(v4-sdk): add max hop slippage support for multi-hop swaps (Uniswap#500)

* chore(uniswapx-sdk): new reactor and hook addr (Uniswap#501)

* feat(v4-sdk): add URVersion parameter to addAction for V2.1 encoding (Uniswap#502)

* feat(router-sdk): bump v4-sdk to 1.27.0 (Uniswap#503)

* feat(ur-sdk): Universal Router 2.1 support (Uniswap#504)

Co-authored-by: Daniel Gretzke <daniel@gretzke.de>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat(sdk-core): Add Linea support (Uniswap#519)

* chore(CODEOWNERS): update CO for swap-be SDKs (Uniswap#521)

* feat(v3-sdk): bump sdk-core to 7.11.0 (Uniswap#523)

* feat(v2-sdk): update V2 SDK @uniswap/sdk-core to version 7.11.0 (Uniswap#522)

* feat(v4-sdk): bump sdk-core to 7.11.0 and v3-sdk to 3.28.0 (Uniswap#524)

* feat(router-sdk): update SDK versions to 4.18.0, 3.28.0, and 1.28.0 (Uniswap#525)

* feat(router-sdk): update SDK core versions to 7.11.0 (Uniswap#526)

* feat(universal-router-sdk): bump SDK dependencies to latest versions (Uniswap#527)

* feat(sdk-core): add Tempo chain (4217) support (Uniswap#533)

* feat(v2-sdk, v3-sdk): bump sdk-core to ^7.12.0 for Tempo chain support (Uniswap#536)

* feat(v4-sdk): bump sdk-core to ^7.12.0 and v3-sdk to 3.29.0 for Tempo (Uniswap#537)

* feat(router-sdk): bump SDK deps for Tempo chain support (Uniswap#538)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix(sdk-core): remove WETH9 entry for Tempo chain (4217) (Uniswap#540)

* fix(v2-sdk, v3-sdk): bump sdk-core to ^7.12.1 for Tempo WETH9 fix (Uniswap#541)

* fix(v4-sdk): bump sdk-core to ^7.12.1 and v3-sdk to 3.29.1 (Uniswap#542)

* fix(router-sdk): bump all SDK deps for Tempo WETH9 fix (Uniswap#543)

* feat(universal-router-sdk): add Tempo chain config and bump SDK deps (Uniswap#534)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix: resolve zizmor GitHub Actions security findings (Uniswap#516)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* feat(universal-router-sdk): add SwapProxy support for no-Permit2 approve+swap flow (Uniswap#518)

* feat(uniswapx-sdk): graduate to stable v3.0.0 (Uniswap#545)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* feat: migrate from semantic-release to Changesets with workspace: protocol (Uniswap#539)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix: correct changesets/action SHA in release workflow (Uniswap#548)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix: add registry-url for npm OIDC auth and mark uniswapx-integration private (Uniswap#549)

* test: dummy sdk-core patch to validate changeset workflow (Uniswap#547)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix: use exact workspace versions for cascading changesets (Uniswap#551)

* fix: remove registry-url to fix npm Trusted Publishing OIDC auth (Uniswap#552)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* chore: Version Packages (Uniswap#550)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: David Gilman <david.gilman@uniswap.org>

* chore: remove push-branches-from-main workflow (Uniswap#555)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* ci: skip unnecessary workflows on changeset-release branches (Uniswap#554)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix(v4-sdk): increase liquidity fix (Uniswap#558)

* feat(router-sdk): add maxHopSlippage to Trade.swaps (Uniswap#529)

## Description

For maxHopSlippage, **a partial implementation exists for multi-hop V4-only routes in UR-sdk, but it is incorrect:**

1. Flat array on **`SwapOptions`** -- A single `maxHopSlippage?: BigNumber[]` on `SwapOptions` cannot correctly map values to specific routes in a split-route trade (e.g. 40% Route A with 3 hops, 60% Route B with 2 hops).
2. Mixed routes pass the full array -- In `addMixedSwap`, the entire `options.maxHopSlippage` array is passed to V4 sections without slicing; V2/V3 sections get nothing.



**We need to ensure that per-hop slippage is saved per** **_route_** **data model, not per** **_trade_** **(i.e. for split route trades)**

**This PR adds** `maxHopSlippage` **support to the** `Trade.swaps` **object in router-sdk, enabling per-hop slippage protection for multi-hop swaps across all route types (V2, V3, V4, and mixed routes)**

## How Has This Been Tested?

_[e.g. Manually, E2E tests, unit tests, Storybook]_

## Are there any breaking changes?


Purely additive, no breaking changes, no existing code uses the new field yet. Can merge independently.

## Follow Ups

- in order to be used in UR-sdk, need to publish minor version bump to router-sdk



<!-- claude-pr-description-start -->

---

## ✨ Claude-Generated Content

## Summary

Adds `maxHopSlippage` support to the `Trade` class in router-sdk, enabling per-hop slippage protection for multi-hop swaps across all route types (V2, V3, V4, and mixed routes).

## Changes

- Added optional `maxHopSlippage?: bigint[]` field to the `swaps` array type in `Trade` class
- Extended route input types for V2, V3, V4, and mixed routes to accept `maxHopSlippage` parameter
- Propagated `maxHopSlippage` through the constructor for all route types
- Extended `fromRoutes()` static method to pass `maxHopSlippage` through populated routes

## How Has This Been Tested?

This is a type extension.

## Are there any breaking changes?

No - `maxHopSlippage` is an optional parameter with no changes to existing behavior.

<!-- claude-pr-description-end -->

* feat(breaking): switch v4-sdk from UR v2.1 to UR v2.1.1 & add single-hop ABI struct (Uniswap#530)

## Description

- Rename URVersion.V2_1 to `V2_1_1 `in v4-sdk
- Rename V4_SWAP_ACTIONS_V2_1 to `V4_SWAP_ACTIONS_V2_1_1` and update all references in v4Planner.ts

## How Has This Been Tested?

_[e.g. Manually, E2E tests, unit tests, Storybook]_

## Are there any breaking changes?

The version rename is breaking. (And it is intentionally breaking, as opposed to keeping v2.1 around, because v2.1.1 fixes a precision bug. Plus we don't actually use v2.1 in prod yet)

1. publish v4-sdk as major version
2. update UR-sdk and router-SDK

## (Optional) Feedback Focus

_[Specific parts of this PR you'd like feedback on, or that reviewers should pay closer attention to]_

## (Optional) Follow Ups

Need to explicitly update UR-sdk and router-SDK versions

<!-- claude-pr-description-start -->

---

## ✨ Claude-Generated Content

## Summary

Updates v4-sdk to use Universal Router version 2.1.1 instead of 2.1 by renaming version enums, ABI definitions, and struct types throughout the codebase. Adds V2.1.1-specific struct definitions for single-hop swap actions.

## Changes

- Renamed `URVersion.V2_1` to `URVersion.V2_1_1` in the `URVersion` enum
- Renamed `V4_SWAP_ACTIONS_V2_1` to `V4_SWAP_ACTIONS_V2_1_1` and expanded to include single-hop swap actions (`SWAP_EXACT_IN_SINGLE`, `SWAP_EXACT_OUT_SINGLE`)
- Added new V2.1.1 struct definitions with `maxHopSlippage` field:
    - `SWAP_EXACT_IN_SINGLE_STRUCT_V2_1_1`
    - `SWAP_EXACT_IN_STRUCT_V2_1_1`
    - `SWAP_EXACT_OUT_SINGLE_STRUCT_V2_1_1`
    - `SWAP_EXACT_OUT_STRUCT_V2_1_1`
- Renamed V2.0 single-hop structs to be explicit: `SWAP_EXACT_IN_SINGLE_STRUCT_V2_0`, `SWAP_EXACT_OUT_SINGLE_STRUCT_V2_0`
- Refactored `addTrade` method to use conditional spread operator for cleaner version-specific struct building
- Added validation that `maxHopSlippage` length matches `route.pools.length`
- Updated `v4BaseActionsParser.ts` to use the new version enum and ABI definitions
- Updated all comments referencing "V2.1" to "V2.1.1"
- Updated all test files to use `URVersion.V2_1_1`

## How Has This Been Tested?

Existing unit tests updated to use the new version constant.

## Are there any breaking changes?

Yes - this is a breaking change for consumers using `URVersion.V2_1` or `V4_SWAP_ACTIONS_V2_1`. They will need to update to `URVersion.V2_1_1` and `V4_SWAP_ACTIONS_V2_1_1` respectively.

<!-- claude-pr-description-end -->

* feat(universal-router-sdk): v2.1.1 version rename & ABI structs (Uniswap#531)

## Description



TODO : Need to explicitly update UR-sdk and router-SDK versions based on v4-sdk breaking changes

- Rename UniversalRouterVersion.V2_1 to V2_1_1 in constants.ts + update contract addresses
- Add V2.1.1 ABI definitions for V2/V3 swap commands in routerCommands.ts (the new V2V3_SWAP_COMMANDS_V2_1_1 map)
- Make addCommand/createCommand accept optional urVersion parameter for ABI selection

This is all infrastructure/plumbing. The new V2.1.1 ABI defs exist but nothing calls them yet. The version rename is technically breaking but no consumers use UR V2.1 from the SDK.

## How Has This Been Tested?

_[e.g. Manually, E2E tests, unit tests, Storybook]_

## Are there any breaking changes?

_[e.g. Type definitions, API definitions]_

If there are breaking changes, please ensure you bump the major version Bump the major version (by using the title `feat(breaking): ...`), post a notice in #eng-sdks, and explicitly notify all Uniswap Labs consumers of the SDK.

## (Optional) Feedback Focus

_[Specific parts of this PR you'd like feedback on, or that reviewers should pay closer attention to]_

## (Optional) Follow Ups

_[Things that weren't addressed in this PR, ways you plan to build on this work, or other ways this work could be extended]_

<!-- claude-pr-description-start -->

---

## ✨ Claude-Generated Content

## Summary

Renames `UniversalRouterVersion.V2_1` to `V2_1_1` and adds ABI infrastructure for V2.1.1 swap commands with `maxHopSlippage` support.

## Changes

- Renamed `UniversalRouterVersion.V2_1` to `V2_1_1` in `constants.ts` enum (version string `'2.1'` → `'2.1.1'`)
- Updated all chain configs (20+ chains) to use `[UniversalRouterVersion.V2_1_1]` key
- Added `V2V3_SWAP_COMMANDS_V2_1_1` ABI definitions for V2/V3 swap commands with extended `maxHopSlippage` parameter:
    - `V3_SWAP_EXACT_IN`
    - `V3_SWAP_EXACT_OUT`
    - `V2_SWAP_EXACT_IN`
    - `V2_SWAP_EXACT_OUT`
- Updated `addCommand()` and `createCommand()` to accept optional `urVersion` parameter for ABI selection
- Fixed comment typo in `Parser.V3Actions` case ("v4 swap data" → "v3 position data")

## How Has This Been Tested?

Infrastructure/plumbing changes only - the new V2.1.1 ABI definitions exist but are not yet called by any code paths.

## Are there any breaking changes?

The version enum rename from `V2_1` to `V2_1_1` is technically breaking, but per the design doc, no consumers currently use V2.1.

<!-- claude-pr-description-end -->

* feat(universal-router-sdk): wire up per-hop slippage encoding (Uniswap#532)

## Description

- Remove maxHopSlippage from SwapOptions
- Update Swap interface to carry maxHopSlippage (from trade.swaps)
- addV2Swap / addV3Swap: branch on urVersion to encode with or without maxHopSlippage
- addV4Swap: read maxHopSlippage from swap instead of options
- addMixedSwap: slice maxHopSlippage per section with hop offset tracking
- Tests for all protocol paths (V2, V3, V4, mixed) with and without per-hop slippage

## How Has This Been Tested?

_[e.g. Manually, E2E tests, unit tests, Storybook]_

## Are there any breaking changes?

If consumers want to use UR v2.1.1, they must update to this version of the UR-sdk.

<!-- claude-pr-description-start -->
---
## ✨ Claude-Generated Content

## Summary
Wire up per-hop slippage encoding for Universal Router v2.1.1 across all protocol versions (V2, V3, V4, and mixed routes). The `maxHopSlippage` parameter has been moved from `SwapOptions` to individual swaps, enabling granular slippage protection per route.
## Changes
### `sdks/universal-router-sdk/src/entities/actions/uniswap.ts`
- Removed `maxHopSlippage` from `SwapOptions` interface
- Added `maxHopSlippage?: bigint[]` to the `Swap` interface to carry per-hop slippage from trade.swaps
- `addV2Swap`: branches on `urVersion` to encode with/without `maxHopSlippage` for V2_SWAP_EXACT_IN and V2_SWAP_EXACT_OUT commands
- `addV3Swap`: branches on `urVersion` to encode with/without `maxHopSlippage` for V3_SWAP_EXACT_IN and V3_SWAP_EXACT_OUT commands
- `addV4Swap`: reads `maxHopSlippage` from the swap object instead of options
- `addMixedSwap`: tracks `hopOffset` to slice the flat `maxHopSlippage` array per protocol section
- Added validation to ensure `maxHopSlippage` length matches `route.pools.length`
### `sdks/universal-router-sdk/README.md`
- Updated per-hop slippage documentation to reflect new API where `maxHopSlippage` is specified on each route within `RouterTrade`
- Added mixed routes example showing how the SDK slices hop slippage by section
- Updated references from v2.1 to v2.1.1
### `sdks/universal-router-sdk/test/unit/perHopSlippage.test.ts` (new)
- Tests for V2_SWAP_EXACT_IN/OUT with maxHopSlippage (V2.1.1 ABI)
- Tests for V3_SWAP_EXACT_IN/OUT with maxHopSlippage (V2.1.1 ABI)
- Tests for empty maxHopSlippage arrays
- Backward compatibility tests (V2.0 ABI without maxHopSlippage)
- Mixed route slippage slicing tests
## How Has This Been Tested?
Unit tests covering all protocol paths (V2, V3, V4, mixed) with and without per-hop slippage encoding.
## Are there any breaking changes?
**Minor breaking change**: `maxHopSlippage` has been removed from `SwapOptions`. Consumers must now specify `maxHopSlippage` on individual routes within the `RouterTrade` constructor.
Migration:
```typescript
// Before (v2.1)
SwapRouter.swapCallParameters(trade, { maxHopSlippage: [...], urVersion: URVersion.V2_1 })
// After (v2.1.1)
const trade = new RouterTrade({
  v3Routes: [{ routev3, inputAmount, outputAmount, maxHopSlippage: [...] }],
  tradeType,
})
SwapRouter.swapCallParameters(trade, { urVersion: URVersion.V2_1_1 })
```
<!-- claude-pr-description-end -->

* chore: migrate monorepo from Yarn to Bun (Uniswap#556)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* feat(ur-sdk): PAY_PORTION_FULL_PRECISION support (Uniswap#528)

* fix: use bun/yarn npm publish to resolve workspace:* protocol (Uniswap#562)

* Version Packages (Uniswap#563)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Thomas Thachil <github@thomasthachil.com>

* feat(release): changesets for UR v2.1.1 releases (Uniswap#560)

a changeset changelog update. will auto-bump + release SDKs once merged

* chore(ur-sdk): swap out URVersions from v4-sdk for UniversalRouterVersion (Uniswap#565)

## Description

previously we were exporting URVersion from v4-sdk for the `urVersion` field in universal-router-sdk's `SwapOptions`. it's a strange import pattern, and also forces ur-sdk consumers to import v4-sdk just for the typing

we should use UniversalRouterVersion from universal-router-sdk.

## How Has This Been Tested?

ran tests

## Are there any breaking changes?

_[e.g. Type definitions, API definitions]_

If there are breaking changes, please ensure you bump the major version Bump the major version (by using the title `feat(breaking): ...`), post a notice in #eng-sdks, and explicitly notify all Uniswap Labs consumers of the SDK.

* feat(ur-sdk): release bump UR-sdk to 5.1.0 (Uniswap#566)

## PR Scope

Please title your PR according to the following types and scopes following [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/):

- `fix(SDK name):` will trigger a patch version
- `chore(<type>):` will not trigger any release and should be used for internal repo changes
- `<type>(public):` will trigger a patch version for non-code changes (e.g. README changes)
- `feat(SDK name):` will trigger a minor version
- `feat(breaking):` will trigger a major version for a breaking change

## Description

_[Summary of the change, motivation, and context]_

## How Has This Been Tested?

_[e.g. Manually, E2E tests, unit tests, Storybook]_

## Are there any breaking changes?

_[e.g. Type definitions, API definitions]_

If there are breaking changes, please ensure you bump the major version Bump the major version (by using the title `feat(breaking): ...`), post a notice in #eng-sdks, and explicitly notify all Uniswap Labs consumers of the SDK.

## (Optional) Feedback Focus

_[Specific parts of this PR you'd like feedback on, or that reviewers should pay closer attention to]_

## (Optional) Follow Ups

_[Things that weren't addressed in this PR, ways you plan to build on this work, or other ways this work could be extended]_

* feat(config): add supply chain security controls (Uniswap#570)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: replace npx tsx with bun run in flashtestations-sdk examples (Uniswap#573)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Update sdks/flashtestations-sdk/package.json

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update sdks/smart-wallet-sdk/package.json

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update sdks/uniswapx-sdk/integration/package.json

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update sdks/uniswapx-sdk/integration/package.json

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update sdks/smart-wallet-sdk/src/smartWallet.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

---------

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: Kristie Huang <kristiehuang01@gmail.com>
Co-authored-by: marktoda <toda.mark@gmail.com>
Co-authored-by: googleworkspace-bot <googleworkspace-bot@google.com>
Co-authored-by: cam-uni <cameron.shahmirzadi@uniswap.org>
Co-authored-by: Siyu Jiang (See-You John) <91580504+jsy1218@users.noreply.github.com>
Co-authored-by: Zach Yang <zhiyuan.zach.yang@gmail.com>
Co-authored-by: ens_408 <eric.sanchirico@uniswap.org>
Co-authored-by: Alan Wu <alanwu100@gmail.com>
Co-authored-by: Alan Wu <60207036+alanhwu@users.noreply.github.com>
Co-authored-by: Vasilis Xouris <vasileios.xouris@uniswap.org>
Co-authored-by: dianakocsis <diana.kocsis@uniswap.org>
Co-authored-by: Daniel Gretzke <daniel@gretzke.de>
Co-authored-by: Developer <dev@example.com>
Co-authored-by: Nick Koutrelakos <nick.koutrelakos@uniswap.org>
Co-authored-by: Ayo Akala <13251173+Ayoakala@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Thomas Thachil <thomasthachil@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: David Gilman <david.gilman@uniswap.org>
Co-authored-by: zi-yang-uni <ziyi.yang@uniswap.org>
Co-authored-by: Thomas Thachil <github@thomasthachil.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: googleworkspace-bot <googleworkspace-bot@google.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-PARSEGITCONFIG-9403763

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Co-authored-by: googleworkspace-bot <googleworkspace-bot@google.com>
Remove Arc (5042) and Robinhood (4663) chain entries and related addresses, WETH mapping, router configs and tests across sdk-core and universal-router-sdk. Inline and consolidate v4 URVersion mapping helpers (move/replace the old toV4URVersion util with local mappings in encodeV4Action and uniswap action code), update encode/encodeSwap imports accordingly, and delete the removed utility tests. Also revert several package versions/changelog entries across multiple sdks, remove the top-level package.json resolutions entry, and apply small README formatting change.

Co-Authored-By: Copilot <198982749+Copilot@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: googleworkspace-bot <googleworkspace-bot@google.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-AJV-15274295

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Co-authored-by: googleworkspace-bot <googleworkspace-bot@google.com>
…#22)

The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-TMP-11501554
- https://snyk.io/vuln/SNYK-JS-ELLIPTIC-8187303
- https://snyk.io/vuln/SNYK-JS-INFLIGHT-6095116
- https://snyk.io/vuln/SNYK-JS-COOKIE-8163060

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Co-authored-by: googleworkspace-bot <googleworkspace-bot@google.com>
…ties (#21)

The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-COOKIE-8163060
- https://snyk.io/vuln/SNYK-JS-ELLIPTIC-8187303
- https://snyk.io/vuln/SNYK-JS-TMP-11501554
- https://snyk.io/vuln/SNYK-JS-INFLIGHT-6095116

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Co-authored-by: googleworkspace-bot <googleworkspace-bot@google.com>
* fix: sdks/uniswapx-sdk/package.json to reduce vulnerabilities

The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-BRACES-6838727
- https://snyk.io/vuln/SNYK-JS-CROSSSPAWN-8303230
- https://snyk.io/vuln/SNYK-JS-FORMDATA-10841150
- https://snyk.io/vuln/SNYK-JS-MICROMATCH-6838728
- https://snyk.io/vuln/SNYK-JS-REQUEST-3361831
- https://snyk.io/vuln/SNYK-JS-TOUGHCOOKIE-5672873
- https://snyk.io/vuln/SNYK-JS-UNSETVALUE-2400660

* Update sdks/uniswapx-sdk/package.json

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update sdks/uniswapx-sdk/package.json

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

---------

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: googleworkspace-bot <googleworkspace-bot@google.com>
@Dargon789 Dargon789 requested a review from a team as a code owner June 7, 2026 06:04
* chore: update dependencies and ci permissions

- Upgrade `eslint` to `v9.26.0` across multiple SDKs.
- Update `hardhat`, `ethers`, and related testing dependencies in `uniswapx-sdk`.
- Deprecate `FACTORY_ADDRESS` in `v3-sdk` constants.
- Update `claude-pr-metadata-update.yml` workflow permissions to `contents: read`.
- Add `main` to ignored PR branches in VS Code settings.
- Add `.idea/` to `.gitignore` in `v3-sdk`.
- Minor formatting updates to `.eslintrc.js` and `.github/workflows/check-pr-title.yaml`.

* Consolidate PR prompts, add Vercel & SDK updates

Combine scattered PR-review fragments into a single .claude/prompts/claude-pr-review.md and remove the old pr-review files. Add Vercel project metadata (.vercel/project.json) and README, plus a new .env.local (contains environment variables — review for sensitive data and rotate if committed). Add Yarn runtime under .yarn/releases and apply broad updates across multiple SDK packages (sdks/*): package.json, contracts, utils, tests and refactors in uniswapx-sdk/universal-router/v2-v4 SDKs. Minor CI/workflow and editor tweaks (check-pr-title whitespace, .vscode settings). Note: monorepo-integrity.yml currently contains unresolved merge conflict markers (bun install vs yarn --immutable) and needs resolution.

Co-Authored-By: Copilot <198982749+Copilot@users.noreply.github.com>

* Update package.json and resolve merge conflicts

Removed devDependencies and resolved merge conflicts.

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update dependency installation method in workflow

Replaced yarn with bun for dependency installation.

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update Uniswap SDK dependencies in package.json

Updated dependencies for Uniswap SDKs and removed stashed changes.

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Resolve merge conflict in index.ts

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Fix merge conflicts in constants.test.ts

Resolved merge conflicts in constants test data.

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update dependencies in package.json

Updated dependencies for UniswapX SDK.

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Refactor Uniswap action parameters and logic

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update .env.local

Co-authored-by: semgrep-code-uniswap[bot] <212759065+semgrep-code-uniswap[bot]@users.noreply.github.com>

* Update .env.local

Co-authored-by: semgrep-code-uniswap[bot] <212759065+semgrep-code-uniswap[bot]@users.noreply.github.com>

* Update .env.local

Co-authored-by: semgrep-code-uniswap[bot] <212759065+semgrep-code-uniswap[bot]@users.noreply.github.com>

* Update .env.local

Co-authored-by: semgrep-code-uniswap[bot] <212759065+semgrep-code-uniswap[bot]@users.noreply.github.com>

* Update @uniswap/sdk-core version in package.json

Updated the version of @uniswap/sdk-core dependency.

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update Uniswap SDK dependencies in package.json

Updated Uniswap SDK dependencies to newer versions.

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Resolve merge conflicts in package.json

Removed conflicting dependencies and updated overrides.

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Fix merge conflicts in routerCommands.ts

Removed merge conflict markers and cleaned up the code.

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Remove merge conflict markers from signedRoutes.test.ts

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update UniversalRouterVersion and remove V2_1

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update @uniswap/sdk-core dependency to workspace

Reverted the version of @uniswap/sdk-core to use workspace instead of a specific version.

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

---------

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: googleworkspace-bot <googleworkspace-bot@google.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: semgrep-code-uniswap[bot] <212759065+semgrep-code-uniswap[bot]@users.noreply.github.com>
@Dargon789 Dargon789 requested a review from a team as a code owner June 7, 2026 07:18
@semgrep-code-uniswap

Copy link
Copy Markdown

Semgrep found 2 ssc-ace67ff4-0843-40f4-a8d3-13e050943589 findings:

Risk: Affected versions of js-yaml are vulnerable to Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution'). js-yaml is vulnerable to prototype pollution through its YAML merge key (<<) handling. When parsing untrusted YAML with load, loadAll, safeLoad, or safeLoadAll, a crafted document containing a __proto__ key inside a merged mapping can modify the prototype of the resulting object, leading to integrity violations in the application.

Manual Review Advice: A vulnerability from this advisory is reachable if you are using js-yaml on the CLI

Fix: Upgrade this library to at least version 4.1.1 at sdks/yarn.lock:12609.

Reference(s): GHSA-mh29-5h37-fv8m, CVE-2025-64718

Semgrep found 1 ssc-1a0f4ed6-c2fe-47ec-b275-9bdc1073cf2e finding:

Risk: Affected versions of @babel/plugin-transform-modules-systemjs are vulnerable to Access of Resource Using Incompatible Type ('Type Confusion') / Improper Control of Generation of Code ('Code Injection'). @babel/plugin-transform-modules-systemjs mishandles module string specifiers when compiling code into SystemJS module form. An attacker who can supply specially crafted source code to a Babel build that uses this plugin (directly, or transitively via @babel/preset-env configured with modules: "systemjs") can cause Babel to emit output that executes arbitrary JavaScript when the compiled bundle is loaded.

Manual Review Advice: A vulnerability from this advisory is reachable if you install @babel/plugin-transform-modules-systemjs plugin through cli, or use @babel/preset-env preset with modules set to "systemjs"

Fix: Upgrade this library to at least version 7.29.4 at sdks/yarn.lock:1023.

Reference(s): GHSA-fv7c-fp4j-7gwp

Semgrep found 1 ssc-7655e34f-47d3-43f6-b687-32e02f3c8005 finding:

Risk: Affected versions of handlebars are vulnerable to Improper Control of Generation of Code ('Code Injection') / Improper Encoding or Escaping of Output / Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'). The Handlebars CLI precompiler allows arbitrary JavaScript injection by embedding unescaped template filenames and CLI option values such as --namespace, --commonjs, and --handlebarPath directly into generated output. An attacker who can control these inputs can cause malicious code to execute when the precompiled bundle is loaded in Node.js or a browser.

Manual Review Advice: A vulnerability from this advisory is reachable if you execute templates through the Handlebars CLI precompiler

Fix: Upgrade this library to at least version 4.7.9 at sdks/yarn.lock:10615.

Reference(s): GHSA-xjpj-3mr7-gcpf, CVE-2026-33941

Semgrep found 1 ssc-6193c409-cebc-449c-8a55-f95fa9d0e4f0 finding:

Risk: Affected versions of rollup are vulnerable to Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal'). Rollup is vulnerable to arbitrary file write via path traversal: chunk/asset names derived from user-controlled inputs (e.g., CLI named inputs, manual chunk aliases, or malicious plugins) are insufficiently sanitized, allowing ../ sequences to survive and be passed into path.resolve when computing output paths. This lets an attacker escape the configured output directory and overwrite arbitrary files on the host filesystem that the build process can write to, potentially leading to persistent RCE by clobbering shell/profile or other executable/config files.

Manual Review Advice: A vulnerability from this advisory is reachable if you are running rollup --input

Fix: Upgrade this library to at least version 2.80.0 at sdks/yarn.lock:16592.

Reference(s): GHSA-mw96-cpmx-2vgc, CVE-2026-27606

Semgrep found 1 ssc-cee3e6d5-d7c8-4c35-9815-076aa1ebfd49 finding:

Risk: Affected versions of rollup are vulnerable to Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting').

Manual Review Advice: A vulnerability from this advisory is reachable if you use Rollup to bundle JavaScript with import.meta.url and the output format is set to cjs, umd, or iife formats, while allowing users to inject scriptless HTML elements with unsanitized name attributes

Fix: Upgrade this library to at least version 2.79.2 at sdks/yarn.lock:16592.

Reference(s): GHSA-gcx4-mw62-g8wm, CVE-2024-47068

Semgrep found 2 ssc-17eda294-146f-4ed3-91f7-5ef1b349d687 findings:

Risk: Affected versions of @babel/traverse and babel-traverse are vulnerable to Incomplete List of Disallowed Inputs / Incorrect Comparison. Compiling untrusted code with Babel using plugins that invoke the internal path.evaluate() or path.evaluateTruthy() methods (for example @babel/plugin-transform-runtime, @babel/preset-env with useBuiltIns, or any polyfill‐provider plugin) allows a maliciously crafted AST to execute arbitrary code on the build machine during compilation.

Manual Review Advice: A vulnerability from this advisory is reachable if you use Babel to compile untrusted JavaScript

Fix: There are no safe versions of this library available for upgrade. Library included at sdks/yarn.lock:6076.

Reference(s): GHSA-67hx-6x53-jw92, CVE-2023-45133

Semgrep found 1 ssc-592ab7c9-5593-400a-b545-dc108b1c006b finding:

Risk: @openzeppelin/contracts versions >= 3.3.0 before 3.4.2, >= 4.0.0 before 4.3.1 are vulnerable to Improper Privilege Management. A vulnerability found in TimelockController exposes a security loophole wherein an individual possessing the executor role can exploit the flaw to promptly seize control of the timelock. This is achieved by resetting the delay to zero, which subsequently leads to a privilege escalation, ultimately granting the attacker unrestrained access to the assets held within the contract.

Manual Review Advice: A vulnerability from this advisory is reachable if you have users configured with the executor role or have configured the executor role as open, which effectively permits any user to utilize the role

Fix: Upgrade this library to at least version 3.4.2 at sdks/yarn.lock:3413.

Reference(s): GHSA-fg47-3c2x-m2wr, CVE-2021-39167

@Dargon789 Dargon789 changed the title Update sdks/uniswapx-sdk/integration/package.json (#70) remove .idea artifact Jun 7, 2026
@Dargon789 Dargon789 changed the title remove .idea artifact chore: update dependencies and ci permissions Jun 7, 2026
Dargon789 and others added 2 commits June 7, 2026 16:36
* feat(smart-wallet): add executeUserOp

* Update check-pr-title.yaml

* feat(smart-wallet): add executeUserOp

* Revert "feat(uniswapx-sdk): graduate to stable v3.0.0 (Uniswap#545)"

This reverts commit dc9c963.

* feat(v2-sdk): bump sdk-core in v2 to support x-layer (Uniswap#463)

* feat(v3-sdk): Bump sdk-core for v3 to support x-layer (Uniswap#464)

* feat(v4-sdk): Bump sdk-core version to support x-layer (Uniswap#465)

* feat(router-sdk): bump sdks for xlayer (Uniswap#466)

* feat(ur-sdk): bump sdks for xlayer (Uniswap#467)

## Description

bump sdks in ur-sdk for xlayer

## How Has This Been Tested?

_[e.g. Manually, E2E tests, unit tests, Storybook]_

## Are there any breaking changes?

_[e.g. Type definitions, API definitions]_

If there are breaking changes, please ensure you bump the major version Bump the major version (by using the title `feat(breaking): ...`), post a notice in #eng-sdks, and explicitly notify all Uniswap Labs consumers of the SDK.

## (Optional) Feedback Focus

_[Specific parts of this PR you'd like feedback on, or that reviewers should pay closer attention to]_

## (Optional) Follow Ups

_[Things that weren't addressed in this PR, ways you plan to build on this work, or other ways this work could be extended]_

<!-- claude-pr-description-start -->
---
## ✨ Claude-Generated Content

## Description
Bumps SDK dependencies in universal-router-sdk and adds X-Layer chain configuration to enable X-Layer support. This follows the recent SDK version bumps (Uniswap#463, Uniswap#464, Uniswap#465, Uniswap#466) that added X-Layer support to the individual SDKs.
## Changes
- Updated `@uniswap/router-sdk` version in `sdks/universal-router-sdk/package.json` from `^2.1.0` to `^2.3.0`
- Updated `@uniswap/sdk-core` version from `^7.8.0` to `^7.10.0`
- Updated `@uniswap/v2-sdk` version from `^4.16.0` to `^4.17.0`
- Updated `@uniswap/v3-sdk` version from `^3.26.0` to `^3.27.0`
- Updated `@uniswap/v4-sdk` version from `^1.23.0` to `^1.24.0`
- Added X-Layer chain configuration (chain ID 196) in `constants.ts` with WETH address and Universal Router addresses for V1_2, V2_0, and V2_1
- Updated `yarn.lock` to reflect the new dependency versions
## How Has This Been Tested?
Will test in routing
## Are there any breaking changes?
No
<!-- claude-pr-description-end -->

* feat(uniswapx-sdk): add V4 hybrid order support (Uniswap#432)

* feat(smart-wallet-sdk): add X-Layer support (Uniswap#468)

* feat(v4-sdk): Revert Add max hop slippage (Uniswap#470)

* feat(universal-router-sdk): Revert Universal Router 2.1 support (Uniswap#471)

## Description

Revert Universal Router 2.1 support

## How Has This Been Tested?

_[e.g. Manually, E2E tests, unit tests, Storybook]_

## Are there any breaking changes?

_[e.g. Type definitions, API definitions]_

If there are breaking changes, please ensure you bump the major version Bump the major version (by using the title `feat(breaking): ...`), post a notice in #eng-sdks, and explicitly notify all Uniswap Labs consumers of the SDK.

## (Optional) Feedback Focus

_[Specific parts of this PR you'd like feedback on, or that reviewers should pay closer attention to]_

## (Optional) Follow Ups

_[Things that weren't addressed in this PR, ways you plan to build on this work, or other ways this work could be extended]_

<!-- claude-pr-description-start -->
---
## ✨ Claude-Generated Content

## Description
Reverts Universal Router 2.1 support that was added in PR Uniswap#442. This PR removes all v2.1-specific features to roll back to a v2.0-only state.
## Changes
- Removed `UniversalRouterVersion.V2_1` enum value and all v2.1 router addresses from chain configurations
- Deleted `src/utils/eip712.ts` (EIP712 signing utilities for signed route execution)
- Deleted `src/entities/actions/across.ts` (Across V4 bridge types)
- Removed `SignedRouteOptions`, `EIP712Payload` types and `getExecuteSignedPayload()`, `encodeExecuteSigned()` methods from `swapRouter.ts`
- Removed `maxHopSlippage` option from `SwapOptions` interface
- Removed `addAcrossBridge()` method and `ACROSS_V4_DEPOSIT_V3` command from `routerCommands.ts`
- Removed exports: `NONCE_SKIP_CHECK`, `generateNonce`, `EXECUTE_SIGNED_TYPES`, `getUniversalRouterDomain`
- Deleted unit tests for signed routes (`signedRoutes.test.ts`) and Across bridge (`across.test.ts`)
- Removed v2.1 documentation from README.md (per-hop slippage, signed routes, cross-chain bridging)
## How Has This Been Tested?
Unit tests updated to remove v2.1-specific test cases.
## Are there any breaking changes?
Yes - removes the following exports and functionality:
- `UniversalRouterVersion.V2_1`
- `SignedRouteOptions`, `EIP712Payload` types
- `NONCE_SKIP_CHECK`, `generateNonce`, `EXECUTE_SIGNED_TYPES`, `getUniversalRouterDomain` exports
- `SwapRouter.getExecuteSignedPayload()` and `SwapRouter.encodeExecuteSigned()` methods
- `AcrossV4DepositV3Params` type and `CONTRACT_BALANCE` from across module
- `maxHopSlippage` option in `SwapOptions`
- Bridge parameters in `SwapRouter.swapCallParameters()`
<!-- claude-pr-description-end -->

* feat(universal-router-sdk): downgrade universal-router to v2.0.0-beta.2 (Uniswap#473)

* feat(ur-sdk): xlayer UR 2.0 (Uniswap#472)

## PR Scope

Please title your PR according to the following types and scopes following [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/):

- `fix(SDK name):` will trigger a patch version
- `chore(<type>):` will not trigger any release and should be used for internal repo changes
- `<type>(public):` will trigger a patch version for non-code changes (e.g. README changes)
- `feat(SDK name):` will trigger a minor version
- `feat(breaking):` will trigger a major version for a breaking change

## Description

_[Summary of the change, motivation, and context]_

## How Has This Been Tested?

_[e.g. Manually, E2E tests, unit tests, Storybook]_

## Are there any breaking changes?

_[e.g. Type definitions, API definitions]_

If there are breaking changes, please ensure you bump the major version Bump the major version (by using the title `feat(breaking): ...`), post a notice in #eng-sdks, and explicitly notify all Uniswap Labs consumers of the SDK.

## (Optional) Feedback Focus

_[Specific parts of this PR you'd like feedback on, or that reviewers should pay closer attention to]_

## (Optional) Follow Ups

_[Things that weren't addressed in this PR, ways you plan to build on this work, or other ways this work could be extended]_

<!-- claude-pr-description-start -->
---
## ✨ Claude-Generated Content

## Description
Adds the Universal Router V2.0 deployment configuration for X-Layer (chain ID 196) by updating from placeholder values to the actual deployed contract address.
## Changes
- Updated X-Layer Universal Router V2.0 address from placeholder (`0x0000000000000000000000000000000000000000`) to deployed contract (`0x6bdbd02e751bca2c029cfc21098da04acce8d582`) in `sdks/universal-router-sdk/src/utils/constants.ts`
- Updated X-Layer Universal Router V2.0 creation block from `1` to `47680350`
## How Has This Been Tested?
Will be tested in routing pipeline.
## Are there any breaking changes?
No
<!-- claude-pr-description-end -->

* fix(router-sdk): bump v4-sdk for ur2.1 revert (Uniswap#474)

* feat(universal-router-sdk): Bump router-sdk version (Uniswap#475)

* feat(uniswapx-sdk): expand chain 1301 config with Hybrid and Permit2 support (Uniswap#469)

Co-authored-by: Alan Wu <alanwu100@gmail.com>
Co-authored-by: Alan Wu <60207036+alanhwu@users.noreply.github.com>

* fix(v4-sdk): update to use pathInput (Uniswap#476)

Co-authored-by: Vasilis Xouris <vasileios.xouris@uniswap.org>
Co-authored-by: dianakocsis <diana.kocsis@uniswap.org>

* fix(universal-router-sdk): fix xlayer ur 2.0 address (Uniswap#479)

* fix(router-sdk): bump v4-sdk to 1.25.1 (priceImpact calc fix) (Uniswap#477)

* fix(sdk-core): update xlayer v4 position manager address (Uniswap#480)

* fix(universal-router-sdk): bump v4-sdk and router-sdk (priceImpact calc fix) (Uniswap#478)

* feat(uniswapx-sdk): add V4 order quoter, validator and integration tests (Uniswap#481)

* feat(uniswapx-sdk): bubble v4 quoter revert data (Uniswap#485)

* fix(v4-sdk): eth-weth exact output (Uniswap#486)

* fix(router-sdk): bump v4-sdk to 1.25.2 in router-sdk (Uniswap#487)

* fix(universal-router-sdk): handle ETH/WETH output in V4 split routes (Uniswap#462)

Co-authored-by: marktoda <toda.mark@gmail.com>

* feat: update ai toolkit ref (Uniswap#488)

Co-authored-by: Developer <dev@example.com>
Co-authored-by: Nick Koutrelakos <nick.koutrelakos@uniswap.org>

* fix(v4-sdk): eth-weth as starting pool (Uniswap#490)

* fix(v4-sdk): add comment to trigger release (Uniswap#492)

* fix(v4-sdk): more edge cases for eth-weth pools (Uniswap#494)

* fix(router-sdk): bump v4-sdk to 1.25.5 (Uniswap#493)

* fix(universal-router-sdk): handle ETH-WETH starting pool in split routes (Uniswap#491)

* fix(v4-sdk): bump sdk-core to 7.10.1 and v3-sdk to 3.27.0 (Uniswap#496)

* fix(router-sdk): bump sdk-core to 7.10.1 and v4-sdk to 1.25.6 (Uniswap#497)

* fix(universal-router-sdk): bump router-sdk to 2.3.5 and v4-sdk to 1.25.6 (Uniswap#498)

* chore(uniswapx-sdk): update hybrid order (Uniswap#495)

* feat(v4-sdk): add max hop slippage support for multi-hop swaps (Uniswap#500)

* chore(uniswapx-sdk): new reactor and hook addr (Uniswap#501)

* feat(v4-sdk): add URVersion parameter to addAction for V2.1 encoding (Uniswap#502)

* feat(router-sdk): bump v4-sdk to 1.27.0 (Uniswap#503)

* feat(ur-sdk): Universal Router 2.1 support (Uniswap#504)

Co-authored-by: Daniel Gretzke <daniel@gretzke.de>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat(sdk-core): Add Linea support (Uniswap#519)

* chore(CODEOWNERS): update CO for swap-be SDKs (Uniswap#521)

* feat(v3-sdk): bump sdk-core to 7.11.0 (Uniswap#523)

* feat(v2-sdk): update V2 SDK @uniswap/sdk-core to version 7.11.0 (Uniswap#522)

* feat(v4-sdk): bump sdk-core to 7.11.0 and v3-sdk to 3.28.0 (Uniswap#524)

* feat(router-sdk): update SDK versions to 4.18.0, 3.28.0, and 1.28.0 (Uniswap#525)

* feat(router-sdk): update SDK core versions to 7.11.0 (Uniswap#526)

* feat(universal-router-sdk): bump SDK dependencies to latest versions (Uniswap#527)

* feat(sdk-core): add Tempo chain (4217) support (Uniswap#533)

* feat(v2-sdk, v3-sdk): bump sdk-core to ^7.12.0 for Tempo chain support (Uniswap#536)

* feat(v4-sdk): bump sdk-core to ^7.12.0 and v3-sdk to 3.29.0 for Tempo (Uniswap#537)

* feat(router-sdk): bump SDK deps for Tempo chain support (Uniswap#538)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix(sdk-core): remove WETH9 entry for Tempo chain (4217) (Uniswap#540)

* fix(v2-sdk, v3-sdk): bump sdk-core to ^7.12.1 for Tempo WETH9 fix (Uniswap#541)

* fix(v4-sdk): bump sdk-core to ^7.12.1 and v3-sdk to 3.29.1 (Uniswap#542)

* fix(router-sdk): bump all SDK deps for Tempo WETH9 fix (Uniswap#543)

* feat(universal-router-sdk): add Tempo chain config and bump SDK deps (Uniswap#534)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix: resolve zizmor GitHub Actions security findings (Uniswap#516)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* feat(universal-router-sdk): add SwapProxy support for no-Permit2 approve+swap flow (Uniswap#518)

* feat(uniswapx-sdk): graduate to stable v3.0.0 (Uniswap#545)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* feat: migrate from semantic-release to Changesets with workspace: protocol (Uniswap#539)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix: correct changesets/action SHA in release workflow (Uniswap#548)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix: add registry-url for npm OIDC auth and mark uniswapx-integration private (Uniswap#549)

* test: dummy sdk-core patch to validate changeset workflow (Uniswap#547)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix: use exact workspace versions for cascading changesets (Uniswap#551)

* fix: remove registry-url to fix npm Trusted Publishing OIDC auth (Uniswap#552)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* chore: Version Packages (Uniswap#550)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: David Gilman <david.gilman@uniswap.org>

* chore: remove push-branches-from-main workflow (Uniswap#555)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* ci: skip unnecessary workflows on changeset-release branches (Uniswap#554)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix(v4-sdk): increase liquidity fix (Uniswap#558)

* feat(router-sdk): add maxHopSlippage to Trade.swaps (Uniswap#529)

## Description

For maxHopSlippage, **a partial implementation exists for multi-hop V4-only routes in UR-sdk, but it is incorrect:**

1. Flat array on **`SwapOptions`** -- A single `maxHopSlippage?: BigNumber[]` on `SwapOptions` cannot correctly map values to specific routes in a split-route trade (e.g. 40% Route A with 3 hops, 60% Route B with 2 hops).
2. Mixed routes pass the full array -- In `addMixedSwap`, the entire `options.maxHopSlippage` array is passed to V4 sections without slicing; V2/V3 sections get nothing.



**We need to ensure that per-hop slippage is saved per** **_route_** **data model, not per** **_trade_** **(i.e. for split route trades)**

**This PR adds** `maxHopSlippage` **support to the** `Trade.swaps` **object in router-sdk, enabling per-hop slippage protection for multi-hop swaps across all route types (V2, V3, V4, and mixed routes)**

## How Has This Been Tested?

_[e.g. Manually, E2E tests, unit tests, Storybook]_

## Are there any breaking changes?


Purely additive, no breaking changes, no existing code uses the new field yet. Can merge independently.

## Follow Ups

- in order to be used in UR-sdk, need to publish minor version bump to router-sdk



<!-- claude-pr-description-start -->

---

## ✨ Claude-Generated Content

## Summary

Adds `maxHopSlippage` support to the `Trade` class in router-sdk, enabling per-hop slippage protection for multi-hop swaps across all route types (V2, V3, V4, and mixed routes).

## Changes

- Added optional `maxHopSlippage?: bigint[]` field to the `swaps` array type in `Trade` class
- Extended route input types for V2, V3, V4, and mixed routes to accept `maxHopSlippage` parameter
- Propagated `maxHopSlippage` through the constructor for all route types
- Extended `fromRoutes()` static method to pass `maxHopSlippage` through populated routes

## How Has This Been Tested?

This is a type extension.

## Are there any breaking changes?

No - `maxHopSlippage` is an optional parameter with no changes to existing behavior.

<!-- claude-pr-description-end -->

* feat(breaking): switch v4-sdk from UR v2.1 to UR v2.1.1 & add single-hop ABI struct (Uniswap#530)

## Description

- Rename URVersion.V2_1 to `V2_1_1 `in v4-sdk
- Rename V4_SWAP_ACTIONS_V2_1 to `V4_SWAP_ACTIONS_V2_1_1` and update all references in v4Planner.ts

## How Has This Been Tested?

_[e.g. Manually, E2E tests, unit tests, Storybook]_

## Are there any breaking changes?

The version rename is breaking. (And it is intentionally breaking, as opposed to keeping v2.1 around, because v2.1.1 fixes a precision bug. Plus we don't actually use v2.1 in prod yet)

1. publish v4-sdk as major version
2. update UR-sdk and router-SDK

## (Optional) Feedback Focus

_[Specific parts of this PR you'd like feedback on, or that reviewers should pay closer attention to]_

## (Optional) Follow Ups

Need to explicitly update UR-sdk and router-SDK versions

<!-- claude-pr-description-start -->

---

## ✨ Claude-Generated Content

## Summary

Updates v4-sdk to use Universal Router version 2.1.1 instead of 2.1 by renaming version enums, ABI definitions, and struct types throughout the codebase. Adds V2.1.1-specific struct definitions for single-hop swap actions.

## Changes

- Renamed `URVersion.V2_1` to `URVersion.V2_1_1` in the `URVersion` enum
- Renamed `V4_SWAP_ACTIONS_V2_1` to `V4_SWAP_ACTIONS_V2_1_1` and expanded to include single-hop swap actions (`SWAP_EXACT_IN_SINGLE`, `SWAP_EXACT_OUT_SINGLE`)
- Added new V2.1.1 struct definitions with `maxHopSlippage` field:
    - `SWAP_EXACT_IN_SINGLE_STRUCT_V2_1_1`
    - `SWAP_EXACT_IN_STRUCT_V2_1_1`
    - `SWAP_EXACT_OUT_SINGLE_STRUCT_V2_1_1`
    - `SWAP_EXACT_OUT_STRUCT_V2_1_1`
- Renamed V2.0 single-hop structs to be explicit: `SWAP_EXACT_IN_SINGLE_STRUCT_V2_0`, `SWAP_EXACT_OUT_SINGLE_STRUCT_V2_0`
- Refactored `addTrade` method to use conditional spread operator for cleaner version-specific struct building
- Added validation that `maxHopSlippage` length matches `route.pools.length`
- Updated `v4BaseActionsParser.ts` to use the new version enum and ABI definitions
- Updated all comments referencing "V2.1" to "V2.1.1"
- Updated all test files to use `URVersion.V2_1_1`

## How Has This Been Tested?

Existing unit tests updated to use the new version constant.

## Are there any breaking changes?

Yes - this is a breaking change for consumers using `URVersion.V2_1` or `V4_SWAP_ACTIONS_V2_1`. They will need to update to `URVersion.V2_1_1` and `V4_SWAP_ACTIONS_V2_1_1` respectively.

<!-- claude-pr-description-end -->

* feat(universal-router-sdk): v2.1.1 version rename & ABI structs (Uniswap#531)

## Description



TODO : Need to explicitly update UR-sdk and router-SDK versions based on v4-sdk breaking changes

- Rename UniversalRouterVersion.V2_1 to V2_1_1 in constants.ts + update contract addresses
- Add V2.1.1 ABI definitions for V2/V3 swap commands in routerCommands.ts (the new V2V3_SWAP_COMMANDS_V2_1_1 map)
- Make addCommand/createCommand accept optional urVersion parameter for ABI selection

This is all infrastructure/plumbing. The new V2.1.1 ABI defs exist but nothing calls them yet. The version rename is technically breaking but no consumers use UR V2.1 from the SDK.

## How Has This Been Tested?

_[e.g. Manually, E2E tests, unit tests, Storybook]_

## Are there any breaking changes?

_[e.g. Type definitions, API definitions]_

If there are breaking changes, please ensure you bump the major version Bump the major version (by using the title `feat(breaking): ...`), post a notice in #eng-sdks, and explicitly notify all Uniswap Labs consumers of the SDK.

## (Optional) Feedback Focus

_[Specific parts of this PR you'd like feedback on, or that reviewers should pay closer attention to]_

## (Optional) Follow Ups

_[Things that weren't addressed in this PR, ways you plan to build on this work, or other ways this work could be extended]_

<!-- claude-pr-description-start -->

---

## ✨ Claude-Generated Content

## Summary

Renames `UniversalRouterVersion.V2_1` to `V2_1_1` and adds ABI infrastructure for V2.1.1 swap commands with `maxHopSlippage` support.

## Changes

- Renamed `UniversalRouterVersion.V2_1` to `V2_1_1` in `constants.ts` enum (version string `'2.1'` → `'2.1.1'`)
- Updated all chain configs (20+ chains) to use `[UniversalRouterVersion.V2_1_1]` key
- Added `V2V3_SWAP_COMMANDS_V2_1_1` ABI definitions for V2/V3 swap commands with extended `maxHopSlippage` parameter:
    - `V3_SWAP_EXACT_IN`
    - `V3_SWAP_EXACT_OUT`
    - `V2_SWAP_EXACT_IN`
    - `V2_SWAP_EXACT_OUT`
- Updated `addCommand()` and `createCommand()` to accept optional `urVersion` parameter for ABI selection
- Fixed comment typo in `Parser.V3Actions` case ("v4 swap data" → "v3 position data")

## How Has This Been Tested?

Infrastructure/plumbing changes only - the new V2.1.1 ABI definitions exist but are not yet called by any code paths.

## Are there any breaking changes?

The version enum rename from `V2_1` to `V2_1_1` is technically breaking, but per the design doc, no consumers currently use V2.1.

<!-- claude-pr-description-end -->

* feat(universal-router-sdk): wire up per-hop slippage encoding (Uniswap#532)

## Description

- Remove maxHopSlippage from SwapOptions
- Update Swap interface to carry maxHopSlippage (from trade.swaps)
- addV2Swap / addV3Swap: branch on urVersion to encode with or without maxHopSlippage
- addV4Swap: read maxHopSlippage from swap instead of options
- addMixedSwap: slice maxHopSlippage per section with hop offset tracking
- Tests for all protocol paths (V2, V3, V4, mixed) with and without per-hop slippage

## How Has This Been Tested?

_[e.g. Manually, E2E tests, unit tests, Storybook]_

## Are there any breaking changes?

If consumers want to use UR v2.1.1, they must update to this version of the UR-sdk.

<!-- claude-pr-description-start -->
---
## ✨ Claude-Generated Content

## Summary
Wire up per-hop slippage encoding for Universal Router v2.1.1 across all protocol versions (V2, V3, V4, and mixed routes). The `maxHopSlippage` parameter has been moved from `SwapOptions` to individual swaps, enabling granular slippage protection per route.
## Changes
### `sdks/universal-router-sdk/src/entities/actions/uniswap.ts`
- Removed `maxHopSlippage` from `SwapOptions` interface
- Added `maxHopSlippage?: bigint[]` to the `Swap` interface to carry per-hop slippage from trade.swaps
- `addV2Swap`: branches on `urVersion` to encode with/without `maxHopSlippage` for V2_SWAP_EXACT_IN and V2_SWAP_EXACT_OUT commands
- `addV3Swap`: branches on `urVersion` to encode with/without `maxHopSlippage` for V3_SWAP_EXACT_IN and V3_SWAP_EXACT_OUT commands
- `addV4Swap`: reads `maxHopSlippage` from the swap object instead of options
- `addMixedSwap`: tracks `hopOffset` to slice the flat `maxHopSlippage` array per protocol section
- Added validation to ensure `maxHopSlippage` length matches `route.pools.length`
### `sdks/universal-router-sdk/README.md`
- Updated per-hop slippage documentation to reflect new API where `maxHopSlippage` is specified on each route within `RouterTrade`
- Added mixed routes example showing how the SDK slices hop slippage by section
- Updated references from v2.1 to v2.1.1
### `sdks/universal-router-sdk/test/unit/perHopSlippage.test.ts` (new)
- Tests for V2_SWAP_EXACT_IN/OUT with maxHopSlippage (V2.1.1 ABI)
- Tests for V3_SWAP_EXACT_IN/OUT with maxHopSlippage (V2.1.1 ABI)
- Tests for empty maxHopSlippage arrays
- Backward compatibility tests (V2.0 ABI without maxHopSlippage)
- Mixed route slippage slicing tests
## How Has This Been Tested?
Unit tests covering all protocol paths (V2, V3, V4, mixed) with and without per-hop slippage encoding.
## Are there any breaking changes?
**Minor breaking change**: `maxHopSlippage` has been removed from `SwapOptions`. Consumers must now specify `maxHopSlippage` on individual routes within the `RouterTrade` constructor.
Migration:
```typescript
// Before (v2.1)
SwapRouter.swapCallParameters(trade, { maxHopSlippage: [...], urVersion: URVersion.V2_1 })
// After (v2.1.1)
const trade = new RouterTrade({
  v3Routes: [{ routev3, inputAmount, outputAmount, maxHopSlippage: [...] }],
  tradeType,
})
SwapRouter.swapCallParameters(trade, { urVersion: URVersion.V2_1_1 })
```
<!-- claude-pr-description-end -->

* chore: migrate monorepo from Yarn to Bun (Uniswap#556)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* feat(ur-sdk): PAY_PORTION_FULL_PRECISION support (Uniswap#528)

* fix: use bun/yarn npm publish to resolve workspace:* protocol (Uniswap#562)

* Version Packages (Uniswap#563)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Thomas Thachil <github@thomasthachil.com>

* feat(release): changesets for UR v2.1.1 releases (Uniswap#560)

a changeset changelog update. will auto-bump + release SDKs once merged

* chore(ur-sdk): swap out URVersions from v4-sdk for UniversalRouterVersion (Uniswap#565)

## Description

previously we were exporting URVersion from v4-sdk for the `urVersion` field in universal-router-sdk's `SwapOptions`. it's a strange import pattern, and also forces ur-sdk consumers to import v4-sdk just for the typing

we should use UniversalRouterVersion from universal-router-sdk.

## How Has This Been Tested?

ran tests

## Are there any breaking changes?

_[e.g. Type definitions, API definitions]_

If there are breaking changes, please ensure you bump the major version Bump the major version (by using the title `feat(breaking): ...`), post a notice in #eng-sdks, and explicitly notify all Uniswap Labs consumers of the SDK.

* feat(ur-sdk): release bump UR-sdk to 5.1.0 (Uniswap#566)

## PR Scope

Please title your PR according to the following types and scopes following [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/):

- `fix(SDK name):` will trigger a patch version
- `chore(<type>):` will not trigger any release and should be used for internal repo changes
- `<type>(public):` will trigger a patch version for non-code changes (e.g. README changes)
- `feat(SDK name):` will trigger a minor version
- `feat(breaking):` will trigger a major version for a breaking change

## Description

_[Summary of the change, motivation, and context]_

## How Has This Been Tested?

_[e.g. Manually, E2E tests, unit tests, Storybook]_

## Are there any breaking changes?

_[e.g. Type definitions, API definitions]_

If there are breaking changes, please ensure you bump the major version Bump the major version (by using the title `feat(breaking): ...`), post a notice in #eng-sdks, and explicitly notify all Uniswap Labs consumers of the SDK.

## (Optional) Feedback Focus

_[Specific parts of this PR you'd like feedback on, or that reviewers should pay closer attention to]_

## (Optional) Follow Ups

_[Things that weren't addressed in this PR, ways you plan to build on this work, or other ways this work could be extended]_

* feat(config): add supply chain security controls (Uniswap#570)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: replace npx tsx with bun run in flashtestations-sdk examples (Uniswap#573)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Update sdks/flashtestations-sdk/package.json

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update sdks/smart-wallet-sdk/package.json

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update sdks/uniswapx-sdk/integration/package.json

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update sdks/uniswapx-sdk/integration/package.json

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update sdks/smart-wallet-sdk/src/smartWallet.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update sdks/uniswapx-sdk/src/order/v4/HybridOrder.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update sdks/uniswapx-sdk/src/order/v4/HybridOrder.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update sdks/uniswapx-sdk/src/builder/HybridOrderBuilder.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update sdks/uniswapx-sdk/src/builder/HybridOrderBuilder.test.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update sdks/uniswapx-sdk/src/order/v4/hashing.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update sdks/uniswapx-sdk/src/utils/OrderQuoter.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update sdks/universal-router-sdk/src/entities/actions/uniswap.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

* Update sdks/uniswapx-sdk/src/order/v4/HybridOrder.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

---------

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: Kristie Huang <kristiehuang01@gmail.com>
Co-authored-by: marktoda <toda.mark@gmail.com>
Co-authored-by: googleworkspace-bot <googleworkspace-bot@google.com>
Co-authored-by: cam-uni <cameron.shahmirzadi@uniswap.org>
Co-authored-by: Siyu Jiang (See-You John) <91580504+jsy1218@users.noreply.github.com>
Co-authored-by: Zach Yang <zhiyuan.zach.yang@gmail.com>
Co-authored-by: ens_408 <eric.sanchirico@uniswap.org>
Co-authored-by: Alan Wu <alanwu100@gmail.com>
Co-authored-by: Alan Wu <60207036+alanhwu@users.noreply.github.com>
Co-authored-by: Vasilis Xouris <vasileios.xouris@uniswap.org>
Co-authored-by: dianakocsis <diana.kocsis@uniswap.org>
Co-authored-by: Daniel Gretzke <daniel@gretzke.de>
Co-authored-by: Developer <dev@example.com>
Co-authored-by: Nick Koutrelakos <nick.koutrelakos@uniswap.org>
Co-authored-by: Ayo Akala <13251173+Ayoakala@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Thomas Thachil <thomasthachil@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: David Gilman <david.gilman@uniswap.org>
Co-authored-by: zi-yang-uni <ziyi.yang@uniswap.org>
Co-authored-by: Thomas Thachil <github@thomasthachil.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
# Vercel Web Analytics Installation

## Summary

Successfully installed and configured Vercel Web Analytics for this repository following the latest official documentation from https://vercel.com/docs/analytics/quickstart.

## Changes Made

### 1. Package Installation
- **Added**: `@vercel/analytics@^2.0.1` to root package.json
- **Updated**: bun.lock file with the new dependency

### 2. Documentation Created
- **Created**: `docs/VERCEL_ANALYTICS.md` - Comprehensive integration guide with framework-specific instructions
  - Next.js App Router integration
  - Next.js Pages Router integration
  - React integration
  - Static HTML integration (for Jekyll site)
  - Verification steps
  - Local development notes

### 3. README Updated
- **Modified**: `README.md` - Added "Web Analytics" section linking to the integration guide

## Implementation Notes

This repository is a TypeScript SDK monorepo without a web application frontend. Therefore, I have:

1. Installed the `@vercel/analytics` package at the root level to make it available workspace-wide
2. Created comprehensive documentation for when a web interface is added to the monorepo
3. Included instructions for multiple frameworks (Next.js, React, static HTML) to cover various use cases

The documentation includes:
- Framework-specific integration patterns from the official Vercel docs
- Verification steps to confirm analytics are working
- Development mode configuration options

## Next Steps for Integration

When adding a web application to this monorepo:

1. Follow the framework-specific instructions in `docs/VERCEL_ANALYTICS.md`
2. Enable Analytics in the Vercel dashboard for your project
3. Deploy the changes to Vercel
4. Verify analytics are working by checking for network requests to `/_vercel/insights/view`

## Files Modified

- `package.json` - Added @vercel/analytics dependency
- `bun.lock` - Updated with new dependency
- `README.md` - Added Web Analytics section
- `docs/VERCEL_ANALYTICS.md` - Created comprehensive integration guide (new file)

## Build & Lint Status

Note: Pre-existing build and lint failures in some SDK packages (permit2-sdk) are unrelated to these changes. The failures are due to missing TypeScript and Prettier executables in those packages, which existed before this PR.

The @vercel/analytics package installation does not affect the build process of the existing SDKs, as it's a development/documentation dependency that will be used when web applications are added to the monorepo.

Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
@socket-security

socket-security Bot commented Jun 7, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Added@​vercel/​analytics@​2.0.1991008387100
Updated@​nomicfoundation/​hardhat-chai-matchers@​1.0.6 ⏵ 2.0.199 +110087 +185 +2100

View full report

dependabot Bot and others added 4 commits June 7, 2026 18:18
Bumps the npm_and_yarn group with 1 update in the / directory: @isaacs/brace-expansion.


Updates `@isaacs/brace-expansion` from 5.0.0 to 5.0.1

---
updated-dependencies:
- dependency-name: "@isaacs/brace-expansion"
  dependency-version: 5.0.1
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: googleworkspace-bot <googleworkspace-bot@google.com>
…updates (#65)

* Update settings.json

* chore(deps): bump the npm_and_yarn group across 2 directories with 2 updates

Bumps the npm_and_yarn group with 2 updates in the / directory: [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) and [@openzeppelin/contracts](https://github.com/OpenZeppelin/openzeppelin-contracts).
Bumps the npm_and_yarn group with 1 update in the /sdks/universal-router-sdk directory: [@openzeppelin/contracts](https://github.com/OpenZeppelin/openzeppelin-contracts).


Updates `@babel/runtime` from 7.18.9 to 7.26.10
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.26.10/packages/babel-runtime)

Updates `@openzeppelin/contracts` from 4.7.0 to 4.9.6
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-contracts/releases)
- [Changelog](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/CHANGELOG.md)
- [Commits](OpenZeppelin/openzeppelin-contracts@v4.7.0...v4.9.6)

Updates `@openzeppelin/contracts` from 4.7.0 to 4.9.6
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-contracts/releases)
- [Changelog](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/CHANGELOG.md)
- [Commits](OpenZeppelin/openzeppelin-contracts@v4.7.0...v4.9.6)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-version: 7.26.10
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: "@openzeppelin/contracts"
  dependency-version: 4.9.6
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: "@openzeppelin/contracts"
  dependency-version: 4.9.6
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: googleworkspace-bot <googleworkspace-bot@google.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Install Vercel Web Analytics integration

# Vercel Web Analytics Installation

## Summary

Successfully installed and configured Vercel Web Analytics for this repository following the latest official documentation from https://vercel.com/docs/analytics/quickstart.

## Changes Made

### 1. Package Installation
- **Added**: `@vercel/analytics@^2.0.1` to root package.json
- **Updated**: bun.lock file with the new dependency

### 2. Documentation Created
- **Created**: `docs/VERCEL_ANALYTICS.md` - Comprehensive integration guide with framework-specific instructions
  - Next.js App Router integration
  - Next.js Pages Router integration
  - React integration
  - Static HTML integration (for Jekyll site)
  - Verification steps
  - Local development notes

### 3. README Updated
- **Modified**: `README.md` - Added "Web Analytics" section linking to the integration guide

## Implementation Notes

This repository is a TypeScript SDK monorepo without a web application frontend. Therefore, I have:

1. Installed the `@vercel/analytics` package at the root level to make it available workspace-wide
2. Created comprehensive documentation for when a web interface is added to the monorepo
3. Included instructions for multiple frameworks (Next.js, React, static HTML) to cover various use cases

The documentation includes:
- Framework-specific integration patterns from the official Vercel docs
- Verification steps to confirm analytics are working
- Development mode configuration options

## Next Steps for Integration

When adding a web application to this monorepo:

1. Follow the framework-specific instructions in `docs/VERCEL_ANALYTICS.md`
2. Enable Analytics in the Vercel dashboard for your project
3. Deploy the changes to Vercel
4. Verify analytics are working by checking for network requests to `/_vercel/insights/view`

## Files Modified

- `package.json` - Added @vercel/analytics dependency
- `bun.lock` - Updated with new dependency
- `README.md` - Added Web Analytics section
- `docs/VERCEL_ANALYTICS.md` - Created comprehensive integration guide (new file)

## Build & Lint Status

Note: Pre-existing build and lint failures in some SDK packages (permit2-sdk) are unrelated to these changes. The failures are due to missing TypeScript and Prettier executables in those packages, which existed before this PR.

The @vercel/analytics package installation does not affect the build process of the existing SDKs, as it's a development/documentation dependency that will be used when web applications are added to the monorepo.

Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>

* Update docs/VERCEL_ANALYTICS.md

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>

---------

Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: googleworkspace-bot <googleworkspace-bot@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants