```\nvars.fromReserveAToken.burn(\n msg.sender,\n receiverAddress,\n amountToSwap,\n fromReserve.liquidityIndex\n);\n// Notifies the receiver to proceed, sending as param the underlying already transferred\nISwapAdapter(receiverAddress).executeOperation(\n fromAsset,\n toAsset,\n amountToSwap,\n address(this),\n params\n);\n\nvars.amountToReceive = IERC20(toAsset).balanceOf(receiverAddress);\nif (vars.amountToReceive != 0) {\n IERC20(toAsset).transferFrom(\n receiverAddress,\n address(vars.toReserveAToken),\n vars.amountToReceive\n );\n\n if (vars.toReserveAToken.balanceOf(msg.sender) == 0) {\n \_usersConfig[msg.sender].setUsingAsCollateral(toReserve.id, true);\n }\n\n vars.toReserveAToken.mint(msg.sender, vars.amountToReceive, toReserve.liquidityIndex);\n```\n