Skip to content

fix(sdk-core,universal-router-sdk): add permissioned pools addresses and UR 2.2.0 for Base and Ink - #745

Merged
SocksNFlops merged 2 commits into
mainfrom
socksnflops/permpools-base-ink-addresses
Sep 24, 2026
Merged

SocksNFlops merged 2 commits into
mainfrom
socksnflops/permpools-base-ink-addresses

Conversation

@SocksNFlops

Copy link
Copy Markdown
Contributor

Adds the permissioned pools deployments on Base and Ink to the SDKs, same shape as #692.

sdk-core (BASE_ADDRESSES, INK_ADDRESSES)

Chain permissionedV4PositionManagerAddress permissionedV4HooksAddress
Base 0xC09255D86DB563cBc11C2fCf4a0C512e160111B4 0x5750be78fEdfb2fA48FAa6C6623400Ba4538A8c0
Ink 0x003aa18c6E682dB80Cf4aa17261CcbFfd28690CE 0x3c5903cEa9F15e1e59758c8f9267d39C16ea28c0

universal-router-sdk (CHAIN_CONFIGS[...].routerConfigs[V2_2_0])

Chain Address Creation block
Base 0xbe2257d1aafbe6b73f67a9ac971c2f0b344bb3c5 51740773 (new entry)
Ink 0x315e413a11ab0df498ef83873012430ca36638ae 56772481 (replaces 0x8BbC…B48c)

The previous Ink 2.2.0 router referenced a PermissionsAdapterFactory built from an older revision and was redeployed against the new factory; the old one is superseded. HyperEVM is intentionally left out of the SDKs for now.

All addresses were verified onchain: hooks carry the 0x28c0 permission bits and point at the new factories; position managers mirror the canonical PositionManager's immutables on each chain; routers carry the 23,233-byte 2.2.0 runtime with constructor args decoded from the deployment transactions. Registry: Uniswap/contracts#170. Deploy params: Uniswap/universal-router#521.

Changeset: patch for both packages.

🤖 Generated with Claude Code

@SocksNFlops
SocksNFlops requested a review from a team as a code owner September 24, 2026 19:08
@github-actions

github-actions Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

● Reviewed · against e5697c9 · 2026-09-24 19:15 UTC · view run ↗

Note

Approved.

Adds the permissioned-pool PositionManager/Hooks addresses for Base and Ink to sdk-core, plus UniversalRouter 2.2.0 router configs (new Base entry, Ink address swap superseding the old factory-derived deployment).

Assessment

Pure address-constant addition matching the shape of existing chain entries. The new permissionedV4* fields conform to the optional ChainAddresses members, the sdk-core addresses are correctly EIP-55 checksummed, and the Ink V2_2_0 change is a clean value replacement with no dangling reference to the superseded router. Onchain provenance of the addresses (permission bits, factory linkage, runtime bytecode) isn't verifiable from the repo and rests on the cited registry/deploy attestations.

Warning

Reduced-confidence APPROVE: empty-findings APPROVE with coverage 0/2 reviewable file(s) investigated — below the floor (standard depth requires ≥ 25% of 2 reviewable file(s)). The harness would demote this verdict to COMMENT, but this repo's verdict policy (verdict.allowed) does not permit COMMENT, so the APPROVE stands. Treat this run as reduced-confidence, not a clean bill.

Tip

Teach the reviewer. React 👍 on findings that helped, 👎 on false positives. Reply to push back or add context — we aggregate this weekly to tune the bot.

Comment @request-claude-review to re-run.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note

✅ Approved — see full review in the sticky comment ↑

@dannythedawger dannythedawger left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@SocksNFlops
SocksNFlops merged commit afd80aa into main Sep 24, 2026
8 checks passed
@SocksNFlops
SocksNFlops deleted the socksnflops/permpools-base-ink-addresses branch September 24, 2026 19:52
david-uniswap added a commit that referenced this pull request Sep 25, 2026
#708 was squash-merged, so main carries its work as one commit while this
branch carries the original commits plus its own. Git cannot see them as the
same change, hence conflicts in the eight files both touch.

Every conflicted file resolves to this branch's side: its content is #708's
final state plus this branch's additions -- the changeset text here is
literally #708's paragraph extended. Taking main's side would revert #710.

#745 (UR 2.2.0 Base/Ink addresses) merged cleanly from main and is kept.
Its changeset is absent on both sides because #746 already released it.

Verified: 140 tests pass across the two conflicted test files, 597/598 in
the hardhat suite (the one failure is a fork test with no RPC configured),
and the monorepo build is clean.
david-uniswap added a commit that referenced this pull request Sep 25, 2026
#710 was squash-merged, so this branch's copies of its commits no longer
match main. Only uniswap.ts actually conflicted:

  HEAD  Omit<RouterSwapOptions, 'inputTokenPermit' | 'fee'> + fee?: FeeOptions[]
  main  Omit<RouterSwapOptions, 'inputTokenPermit'>

Resolved to this branch's side, which is the superset: omitting 'fee' from
the base type is what lets this PR redeclare it as array-capable, and the
'inputTokenPermit' omission from main is preserved either way.

constants.ts auto-merged, which matters more than it sounds: #745's five
V2_2_0 address blocks are all present, and this branch's isAtLeastV2_1_1
rewrite (enum-index ordering, so '2.1.1-rc.1' cannot sort >= '2.1.1')
survives alongside them. Picking a side there would have dropped one or
the other.

Verified: 649 hardhat tests pass (the one failure is the fork test with no
RPC configured), 72 in feeEncoding, 140 across the router-balance suites,
and turbo build is clean across all 12 packages.
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.

3 participants