Uniswap v3 swaps and quotes from your keepers/tasks
uniswap.swap(rpcUrl: string, chainId: number, tokenIn: string, tokenOut: string, amountIn: string, minAmountOut: string)(emit-effect "uniswap.swap" { ...args })
Emitted inline as part of the state transition.