fix(sdk-core,universal-router-sdk): add permissioned pools addresses and UR 2.2.0 for Base and Ink - #745
Conversation
…and UR 2.2.0 for Base and Ink
|
● Reviewed · against 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). AssessmentPure address-constant addition matching the shape of existing chain entries. The new 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 ( 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 |
There was a problem hiding this comment.
Note
✅ Approved — see full review in the sticky comment ↑
#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.
#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.
Adds the permissioned pools deployments on Base and Ink to the SDKs, same shape as #692.
sdk-core (
BASE_ADDRESSES,INK_ADDRESSES)0xC09255D86DB563cBc11C2fCf4a0C512e160111B40x5750be78fEdfb2fA48FAa6C6623400Ba4538A8c00x003aa18c6E682dB80Cf4aa17261CcbFfd28690CE0x3c5903cEa9F15e1e59758c8f9267d39C16ea28c0universal-router-sdk (
CHAIN_CONFIGS[...].routerConfigs[V2_2_0])0xbe2257d1aafbe6b73f67a9ac971c2f0b344bb3c50x315e413a11ab0df498ef83873012430ca36638ae0x8BbC…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
0x28c0permission 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