```\n/// @notice Can be used to delegate call to the TradingModule's implementation in order to execute\n/// a trade.\nfunction \_executeTrade(\n    uint16 dexId,\n    Trade memory trade\n) internal returns (uint256 amountSold, uint256 amountBought) {\n    (bool success, bytes memory result) = nProxy(payable(address(TRADING\_MODULE))).getImplementation()\n        .delegatecall(abi.encodeWithSelector(ITradingModule.executeTrade.selector, dexId, trade));\n    require(success);\n    (amountSold, amountBought) = abi.decode(result, (uint256, uint256));\n}\n\n/// @notice Can be used to delegate call to the TradingModule's implementation in order to execute\n/// a trade.\nfunction \_executeTradeWithDynamicSlippage(\n    uint16 dexId,\n    Trade memory trade,\n    uint32 dynamicSlippageLimit\n) internal returns (uint256 amountSold, uint256 amountBought) {\n    (bool success, bytes memory result) = nProxy(payable(address(TRADING\_MODULE))).getImplementation()\n        .delegatecall(abi.encodeWithSelector(\n            ITradingModule.executeTradeWithDynamicSlippage.selector,\n            dexId, trade, dynamicSlippageLimit\n        )\n    );\n    require(success);\n    (amountSold, amountBought) = abi.decode(result, (uint256, uint256));\n}\n```\n