```\nfunction _claimDeposit(\n    address owner,\n    address receiver\n)\n    internal\n    returns (uint256 shares)\n{\n    shares = previewClaimDeposit(owner);\n\n    uint256 lastRequestId = lastDepositRequestId[owner];\n    uint256 assets = epochs[lastRequestId].depositRequestBalance[owner];\n    epochs[lastRequestId].depositRequestBalance[owner] = 0;\n    _update(address(claimableSilo), receiver, shares);\n    emit ClaimDeposit(lastRequestId, owner, receiver, assets, shares);\n}\n\nfunction previewClaimDeposit(address owner) public view returns (uint256) {\n    uint256 lastRequestId = lastDepositRequestId[owner];\n    uint256 assets = epochs[lastRequestId].depositRequestBalance[owner];\n    return _convertToShares(assets, lastRequestId, Math.Rounding.Floor);\n}\n\nfunction _convertToShares(\n    uint256 assets,\n    uint256 requestId,\n    Math.Rounding rounding\n)\n    internal\n    view\n    returns (uint256)\n{\n    if (isCurrentEpoch(requestId)) {\n        return 0;\n    }\n    uint256 totalAssets =\n        epochs[requestId].totalAssetsSnapshotForDeposit + 1;\n    uint256 totalSupply =\n        epochs[requestId].totalSupplySnapshotForDeposit + 1;\n\n    return assets.mulDiv(totalSupply, totalAssets, rounding);\n}\n```\n