chore(sdks): release UR v2.1.2 and v2.2.0 addresses - #739
Conversation
|
● Reviewed · against Note Approved. Releases the v2.1.2 (#736) and v2.2.0 (#738) Universal Router addresses by committing the AssessmentThe version math is the correct mechanical output of Iteration history · 4 reviews2026-09-18 22:06 UTC · ✅ approved · 0 findings ·
|
Graphite Automations"Request reviewers once CI passes on sdks monorepo" took an action on this PR • (09/18/26)3 reviewers were added to this PR based on Siyu Jiang (See-You John)'s automation. |
There was a problem hiding this comment.
Note
✅ Approved — see full review in the sticky comment ↑
a275809 to
b81426f
Compare
…738) Both PRs merged to main without a changeset, so neither shipped. Adds a minor for #736 (new UniversalRouterVersion.V2_1_2 / URVersion.V2_1_2 enum member plus the v2.1.2 config across 24 chains) and a patch for #738 (v2.2.0 address repointing on mainnet, Sepolia and Ink, and the removal of Ink's V2_1_1 alias). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TY25VxgCmFZA6678WWzABk
#738) Runs `changeset version` so this branch carries the version and changelog output directly. With no pending .changeset/*.md left, merging to main takes the Release workflow's publish path in a single step instead of queueing a separate "Version Packages" PR. Rebased onto current main (358d9de), which added #737's still-pending `permposm-deliverygaslimit-redeploy` changeset. That changeset is consumed here too, so this release also ships #737's sdk-core address update and the dependent patch bumps it cascades. @uniswap/universal-router-sdk 5.11.5 -> 5.12.0 (minor, #736 + #738) @uniswap/v4-sdk 2.3.3 -> 2.4.0 (minor, #736) @uniswap/sdk-core 7.19.2 -> 7.19.3 (patch, #737) @uniswap/router-sdk 2.11.4 -> 2.11.5 (dependent patch) @uniswap/liquidity-launcher-sdk 1.16.2 -> 1.16.3 (dependent patch) @uniswap/smart-wallet-sdk 2.8.3 -> 2.8.4 (dependent patch) @uniswap/uniswapx-sdk 3.1.1 -> 3.1.2 (dependent patch) @uniswap/v2-sdk 4.21.3 -> 4.21.4 (dependent patch) @uniswap/v3-sdk 3.31.3 -> 3.31.4 (dependent patch) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TY25VxgCmFZA6678WWzABk
b81426f to
2b87e07
Compare
Requested by Daniel Daniil · Slack thread
Description
Before: two feature PRs landed on
mainwithout a changeset, so neither shipped. #736 (feat(universal-router-sdk): add Universal Router v2.1.2 addresses,91607ae) added theUniversalRouterVersion.V2_1_2/URVersion.V2_1_2enum member and the v2.1.2 router config for 24 chains. #738 (feat(universal-router-sdk): update Universal Router v2.2.0 addresses,5cdddb0) repointed the v2.2.0 config on Ethereum mainnet, Ethereum Sepolia and Ink, and dropped Ink'sV2_1_1alias. With.changeset/empty of entries, theReleaseworkflow had nothing pending, opened no Version Packages PR, and published nothing — npm still serves@uniswap/universal-router-sdk@5.11.5and@uniswap/v4-sdk@2.3.3(both 2026-09-01), so neither the v2.1.2 addresses nor the corrected v2.2.0 addresses are available to downstream repos.After: merging this single PR publishes directly — no intermediate
Version PackagesPR. The versioning step has already been run on this branch, so there are no pending.changeset/*.mdfiles left; per.github/workflows/semantic-release.yaml, that is exactly the condition under whichchangesets/actiontakes the publish path (bun run g:release) rather than the version path. One merge tomainreleases:@uniswap/universal-router-sdk@uniswap/v4-sdk@uniswap/sdk-core@uniswap/router-sdk@uniswap/liquidity-launcher-sdk@uniswap/smart-wallet-sdk@uniswap/uniswapx-sdk@uniswap/v2-sdk@uniswap/v3-sdkThis release also carries #737 (
fix(sdk-core): update permissioned posm addresses for deliveryGasLimit redeploy,358d9de), whose changeset was still pending onmainwhen this branch was rebased onto it — anything unreleased onmainships with the next publish regardless, sochangeset versionconsumes it here. That is the source of the@uniswap/sdk-corepatch and the five dependent patch bumps below it; the two headline minors are unaffected, since the #736 minor outranks a cascaded patch.How: two changeset entries were written — a
minorfor #736 (new public enum member onUniversalRouterVersionandURVersion, so both packages bump in lockstep;toV4URVersionresolves across them by string value) and apatchscoped touniversal-router-sdkfor #738 (address-only update, no new enum member, and no other package touched).bun run version-packages(i.e.changeset version) was then run locally against currentmainand its output committed, so the 5.12.0 changelog section records both PRs. Theversionfields and theCHANGELOG.mdentries in this diff were generated bychangeset version, not hand-edited — including the dependent patch bumps thatupdateInternalDependencies: "patch"produces. The changeset source files are consumed and deleted by that step, which is why they do not appear in the final tree. No SDK source or test files are touched by this PR.Why minor for #736, patch for #738: this repo's precedent for adding a new
UniversalRouterVersionmember plus its addresses is minor — "Add UniversalRouterVersion V2_2_0 (Sepolia) with permissioned-pool support" shipped asuniversal-router-sdk5.5.0 (from 5.4.0) andv4-sdk2.2.0 (from 2.1.1) from one changeset. Address-only edits are patch — 5.11.2 ("Update the Ethereum Sepolia Universal Router 2.1.1 address…") and 5.5.1 ("Add mainnet UniversalRouterVersion V2_2_0 router config and update sepolia V2_2_0 address"). The #736 minor dominates foruniversal-router-sdk, giving 5.12.0.How Has This Been Tested?
This PR adds no code; the source being released was reviewed and merged in #736, #738 and #737. Locally on this branch, after the rebase onto
358d9deand the re-run ofversion-packages:bun run g:check:deps:mismatch(the monorepo-integrity check) — passbun run g:build— 12/12 tasks successfulbun run g:lint— 12/12 tasks successful (includesprettier --check '**/*.json'over the bumpedpackage.jsonfiles)@uniswap/sdk-core— 375 pass, 0 fail@uniswap/v4-sdk— 240 pass, 2 skip, 0 fail@uniswap/router-sdk— 372 pass, 0 fail@uniswap/liquidity-launcher-sdk— 255 pass, 0 fail@uniswap/smart-wallet-sdk— 43 pass, 0 fail@uniswap/v2-sdk— 103 pass, 0 fail@uniswap/v3-sdk— 338 pass, 2 skip, 0 fail@uniswap/uniswapx-sdk— unit 350 pass, 0 fail. Itstest:integrationsuite does not start locally (HH8: Invalid value {"chainId":1,"forking":{"enabled":true}}) because the fork URL comes from a CI-only secret.@uniswap/universal-router-sdk— 526 pass, 1 fail. The single failure istest/uniswapTrades.test.ts, whosebefore allhook needs the mainnet fork RPC fromFORK_URL(Error: could not detect network); that env var is not available locally. Its sibling unit suitetest/utils/constants.test.ts— the one that covers the addresses being released — runs clean at 226 passing. CI has the fork URL and Foundry, so it exercises both.Are there any breaking changes?
No version-policy breaking change: no package takes a major bump, and #736 is purely additive. One behavioral note carried over from #738 and now recorded in the 5.12.0 changelog: Ink (57073) no longer has a
V2_1_1entry. That entry had been an alias pointing at Ink's old v2.2.0 router rather than a real v2.1.1 deployment, sogetUniversalRouterAddress(UniversalRouterVersion.V2_1_1, 57073)stops resolving; callers on Ink should useV2_1_2orV2_2_0. That change is already onmain— this PR only releases it.(Optional) Feedback Focus
Worth a second pair of eyes on the intent to publish in one merge: this branch deliberately carries the versioning output so the
Releaseworkflow publishes on merge rather than opening achore(sdks): Version PackagesPR for a separate approval. Note that this also means #737's sdk-core patch publishes on the same merge. If you would rather keep the two-step review gate, say so and this can be reverted to a changeset-only PR.🤖 Generated with Claude Code
https://claude.ai/code/session_01TY25VxgCmFZA6678WWzABk