Skip to content

feat: Uniswap V3 + WETH on Arbitrum and Optimism - #26

Merged
chrisli30 merged 1 commit into
mainfrom
feat/uniswap-v3-arb-op
Aug 12, 2026
Merged

feat: Uniswap V3 + WETH on Arbitrum and Optimism#26
chrisli30 merged 1 commit into
mainfrom
feat/uniswap-v3-arb-op

Conversation

@chrisli30

Copy link
Copy Markdown
Member

Summary

0.9.0 added Aave on Arbitrum/Optimism but not Uniswap V3. The SDK's SessionPolicyActions.uniswapV3Swap(chainId) reads Protocols.uniswapV3.swapRouter02[chainId] and throws when the catalog has no entry — so Studio still cannot grant an Arb/OP swap without a hardcoded target.

This fills that hole. Addresses from the official Uniswap pages:

Also adds wrapped.weth and native Circle USDC (uniswapV3.tokens.USDC) on both chains so uniswapV3Capability({ approveTokens: [USDC, WETH] }) can resolve from the catalog.

SwapRouter02 / Factory / QuoterV2 / NFT PM share Ethereum's CREATE2 addresses on Arb and OP — confirmed against the official tables, not assumed.

After merge

Release as 0.10.0, then bump @avaprotocol/sdk-js to ^0.10.0. No SDK code change is required — uniswapV3Swap(42161) starts resolving.

Test plan

  • yarn test:run (71)
  • yarn typecheck

SwapRouter02 / QuoterV2 / Factory / NFT Position Manager / Permit2 /
Universal Router plus wrapped WETH and native Circle USDC, from the
official Uniswap deployment pages.

Unblocks SessionPolicyActions.uniswapV3Swap(42161|10) in the SDK —
that helper reads swapRouter02[chainId] and refuses unknown chains.
@chrisli30
chrisli30 merged commit 0e9a255 into main Aug 12, 2026
6 checks passed
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.

1 participant