```\nspender = address(Deployments.UNIV2_ROUTER);\ntarget = address(Deployments.UNIV2_ROUTER);\n// msgValue is always zero for uniswap\n\nif (\n    tradeType == TradeType.EXACT_IN_SINGLE ||\n    tradeType == TradeType.EXACT_IN_BATCH\n) {\n    executionCallData = abi.encodeWithSelector(\n        IUniV2Router2.swapExactTokensForTokens.selector,\n        trade.amount,\n        trade.limit,\n        data.path,\n        from,\n        trade.deadline\n    );\n} else if (\n    tradeType == TradeType.EXACT_OUT_SINGLE ||\n    tradeType == TradeType.EXACT_OUT_BATCH\n) {\n    executionCallData = abi.encodeWithSelector(\n        IUniV2Router2.swapTokensForExactTokens.selector,\n        trade.amount,\n        trade.limit,\n        data.path,\n        from,\n        trade.deadline\n    );\n}\n```\n