package interfaces import "github.com/ethereum/go-ethereum/common" // TokenExtractor defines the interface for extracting tokens from transaction data type TokenExtractor interface { // ExtractTokensFromMulticallData extracts token addresses from multicall transaction data ExtractTokensFromMulticallData(params []byte) (token0, token1 string) // ExtractTokensFromCalldata extracts tokens from raw calldata using known function signatures ExtractTokensFromCalldata(calldata []byte) (token0, token1 common.Address, err error) } // SwapEvent represents a standardized swap event structure type SwapEvent struct { TokenIn common.Address TokenOut common.Address AmountIn string AmountOut string Protocol string Valid bool }