```\n        try params.contracts.swapHandler.swap(\n            SwapUtils.SwapParams(\n                params.contracts.dataStore,\n                params.contracts.eventEmitter,\n                params.contracts.oracle,\n                Bank(payable(order.market())),\n                params.key,\n                result.outputToken,\n                result.outputAmount,\n                params.swapPathMarkets,\n                0,\n                order.receiver(),\n                order.uiFeeReceiver(),\n                order.shouldUnwrapNativeToken()\n            )\n        ) returns (address tokenOut, uint256 swapOutputAmount) {\n            `(\n                params.contracts.oracle,\n                tokenOut,\n                swapOutputAmount,\n                order.minOutputAmount()\n            );\n        } catch (bytes memory reasonBytes) {\n            (string memory reason, /* bool hasRevertMessage */) = ErrorUtils.getRevertMessage(reasonBytes);\n\n            _handleSwapError(\n                params.contracts.oracle,\n                order,\n                result,\n                reason,\n                reasonBytes\n            );\n        }\n    }\n```\n