```\n  function delegateTreasury(\n        address delegatee,\n        uint256 amount,\n        uint256[] calldata nftIds\n    ) external override onlyThis {\n        require(amount > 0 || nftIds.length > 0, "Gov: empty delegation");\n        require(getExpertStatus(delegatee), "Gov: delegatee is not an expert");\n\n        _unlock(delegatee);\n\n        if (amount != 0) {\n            address token = _govUserKeeper.tokenAddress();\n\n  >          IERC20(token).transfer(address(_govUserKeeper), amount.from18(token.decimals())); //@audit no check if tokens are actually transferred\n\n            _govUserKeeper.delegateTokensTreasury(delegatee, amount);\n        }\n\n        if (nftIds.length != 0) {\n            IERC721 nft = IERC721(_govUserKeeper.nftAddress());\n\n            for (uint256 i; i < nftIds.length; i++) {\n  >              nft.safeTransferFrom(address(this), address(_govUserKeeper), nftIds[i]); //-n no check if nft's are actually transferred\n            }\n\n            _govUserKeeper.delegateNftsTreasury(delegatee, nftIds);\n        }\n\n        _revoteDelegated(delegatee, VoteType.TreasuryVote);\n\n        emit DelegatedTreasury(delegatee, amount, nftIds, true);\n    }\n```\n