```\n  function stakeWithPermit(\n      uint256 amount,\n      uint256 nonce,\n      uint256 expiry,\n      uint8 v,\n      bytes32 r,\n      bytes32 s\n  ) external whenNotPaused {\n      IDai erc20Token = IDai(stakingToken);\n      erc20Token.permit(msg.sender, address(this), nonce, expiry, true, v, r, s);\n\n      stake(uint96(amount));\n  }\n```\n