Skip to content

seer-pm/lens

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lens License:MIT solidity Foundry

A simple DEX aggregator quoter for Seer. Quotes across venues and builds calldata for official DEX routers (Uniswap SwapRouter02 / V4 Router, Swapr Algebra SwapRouter).

LensQuoter is based on zRouter.

Unified cross-chain contract

One bytecode for src/LensQuoter.sol. Per-chain DEX addresses are injected in the constructor; pass address(0) to disable a venue.

Supported venues: Uniswap V3, Uniswap V4 (hookless + hooked via V4 Router), Swapr V3 (Algebra).

Chain UniV3 UniV4 Swapr
Ethereum / Base / Optimism yes yes no
Gnosis no no yes

Users approve and call the venue routers returned by builders.

Public API

LensQuoter

View getters: WNATIVE, V3_FACTORY, V3_QUOTER, V3_SWAP_ROUTER, V4_POOL_MANAGER, V4_QUOTER, V4_ROUTER, SWAPR_POOL_DEPLOYER, SWAPR_QUOTER, SWAPR_SWAP_ROUTER.

  • getQuotes(exactOut, tokenIn, tokenOut, swapAmount) — best + all venue quotes (no calldata)
  • buildBestSwap(...) — single-hop best route + (target, callData, msgValue) for an official router
  • buildBestSwapViaETH(...) — via WNATIVE mid (optional V4 hook candidate on single-hop); two-hop uses same-venue path encoding
  • buildBestSwapViaToken(..., mid) — configurable mid; two-hop same venue only
  • limit(exactOut, quoted, bps) — slippage helper

Native = address(0). V3/Swapr paths use WNATIVE internally; V4 keeps native as address(0).

Deploy

forge script script/Deploy.s.sol:Deploy --rpc-url ethereum --broadcast -vvvv
forge script script/Deploy.s.sol:Deploy --rpc-url op --broadcast -vvvv
forge script script/Deploy.s.sol:Deploy --rpc-url base --broadcast -vvvv
forge script script/Deploy.s.sol:Deploy --rpc-url gnosis --broadcast -vvvv

After broadcast, update CHAINS.lensQuoter in sdk/src/index.ts and rebuild the SDK (cd sdk && npm run build).

Constructor args come from script/ChainConfig.sol.

Tests

forge test --match-contract LensQuoterV4QuoterDelegationTest
forge test --match-contract LensQuoterGnosisTest -j1
forge test --match-contract LensQuoterOPTest -j1

SDK

See sdk/README.md. Package: @seer-pm/lens. Same ABI and AMM enum on every chain.

Security note

The contracts are optimized for simplicity. Review before production use. Use at your own risk.

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages