Macro to generate intermediate_token() method for two-pool viewers
Assumes the struct has pool_a() and pool_b() methods returning &(PoolKey,
Address) where PoolKey implements the PoolKey trait
Macro to generate PoolState trait implementation for PancakeSwap V3 pool
viewers Assumes the struct has slot0() method that returns
IUniswapV3Pool::slot0Return
Note: PancakeSwap V3 uses the same IUniswapV3Pool interface as Uniswap V3
Macro to generate PoolViewer trait implementation for PancakeSwap V3 pool
viewers Assumes the struct has pool_address() method and pool_key() method
returning V3PoolKey with token_a and token_b
Note: PancakeSwap V3 uses the same interface as Uniswap V3
Macro to generate PoolState trait implementation for Ramses V3 pool
viewers Assumes the struct has slot0() method that returns
IRamsesV3PoolState::slot0Return
Uses shadow-lib bindings for Ramses V3-specific interfaces
Macro to generate PoolViewer trait implementation for Ramses V3 pool
viewers Assumes the struct has pool_address() method and pool_key() method
returning V3PoolKey with token_a and token_b
Note: Ramses V3 uses the same interface as Uniswap V3 (IRamsesV3PoolState is
compatible with IUniswapV3Pool), so we use uniswap_lens bindings
Macro to generate MultiPoolState trait implementation for Slipstream
multi-pool viewers Assumes the struct has pools() method returning
Vec<(SlipstreamPoolKey, Address)> and slot0s() method
Macro to generate PoolViewer trait implementation for Slipstream pool
viewers Assumes the struct has pool_address() method and pool_key() method
returning SlipstreamPoolKey with token_a and token_b
Macro to generate PoolViewer trait implementation and helper methods for
Slipstream two-pool viewers Assumes the struct has pool_a() and pool_b()
methods returning &(SlipstreamPoolKey, Address)
Macro to generate MultiPoolState trait implementation for V3 multi-pool
viewers Assumes the struct has pools() method returning &[(V3PoolKey,
Address)] and slot0s() method
Macro to generate PoolViewer trait implementation for V3 pool viewers
Assumes the struct has pool_address() method and pool_key() method returning
V3PoolKey with token_a and token_b
Macro to generate PoolViewer trait implementation and helper methods for V3
two-pool viewers Assumes the struct has pool_a() and pool_b() methods
returning &(V3PoolKey, Address)
Macro to generate MultiPoolState trait implementation for V4 multi-pool
viewers Assumes the struct has pools() method returning &[(V4PoolKey,
B256)], slot0s() method, and get_liquidities() method
Macro to generate MultiPoolViewer trait implementation for V4 multi-pool
viewers Assumes the struct has pools() method returning &[(V4PoolKey,
B256)], get_state_view() method, and is_token_a_base field
Macro to generate PoolViewer trait implementation for V4 pool viewers
Assumes the struct has pool_id() method, pool_key() method returning
V4PoolKey, and get_pool_manager() method