```\nfunction transferFrom(\n    address sender,\n    address recipient,\n    uint256 amount\n) public override returns (bool) {\n    _transfer(sender, recipient, amount);\n    _approve(\n        sender,\n        _msgSender(),\n        _allowances[sender][_msgSender()].sub(\n            amount,\n            "ERC20: transfer amount exceeds allowance"\n        )\n    );\n    return true;\n}\n```\n