Expand description
Velodrome family ABI bindings.
Covers Aerodrome (Base) and Velodrome Slipstream (Optimism) — the two
deployments share byte-identical NFPM positions() and CLPool ABIs, so a
single crate covers both. Verified on 2026-04-28 against
aerodrome-finance/slipstream and velodrome-finance/slipstream source.
Pure ABI codec — no #[sol(rpc)], no async deps. Downstream callers
build their own eth_call / Multicall3 dispatch on top of *Call::abi_encode
and *Call::abi_decode_returns.
Modules:
factory—IVelodromeCLFactorywithgetPool,tickSpacingToFee,poolImplementation(used by pool-address verification and pool-view fee-tier surface).periphery— NFPM bindings.pool— CL pool state/immutables bindings.
Differences vs sibling families’ interfaces crates:
- NFPM
positions(): 12-field (vs Ramses 10, Algebra 11, V3 12). Hasnonce+operator(V3-style) ANDtickSpacing(Ramses-style) — union of both shapes; nofee(lives on factory’stickSpacingToFeemapping). - Pool
slot0(): 6-field — has NOfeeProtocol(V3 hasuint8, Ramses hasuint24, Slipstream omits entirely). Pool fees are configured on the factory per-tickSpacing. - Pool
feeGrowthGlobal0/1X128preserves V3-naming (NOT Algebra’s “Token” suffix). Same forticks(int24)outside-fee field names (feeGrowthOutside0/1X128).
Spec: docs/superpowers/specs/2026-04-28-r15-velodrome-family-position-support-design.md.
Modules§
- factory
IVelodromeCLFactory— Aerodrome and Velodrome Slipstream CLFactory read methods. Both deployments share byte-identical factory ABIs.- gauge
- Velodrome-family Voter + CLGauge ABI bindings.
- periphery
- Periphery ABI bindings — NonfungiblePositionManager read methods +
collect(CollectParams), plus the sharedMulticall + PeripheryPaymentssurface (multicall/unwrapWETH9/sweepToken/refundETH) carried by Velodrome family NFPMs. - pool
- Pool ABI bindings — immutables (token0/token1/tickSpacing) + state (slot0/liquidity/feeGrowthGlobal*/ticks).