Blocklisted investors can still claim USDC in `TokenSale.sol`
A wrong argument is passed when checking if a user is blacklisted for claiming in `TokenSale.claim()`. Because the check is insufficient, blocked users can claim their USDC.\\n`Admin.setClaimBlock()` blocks users from claiming. The function accepts the address of the user to be blocked and adds it to the `blockClaim` mapping.\\n```\\n    /**\\n     @dev Whitelist users\\n     @param _address Address of User\\n     */\\n    function setClaimBlock(address _address) external onlyRole(OPERATOR) {\\n        blockClaim[_address] = true;\\n    }\\n```\\n\\nThe check in `Admin.claim()` wrongly passes `address(this)` as argument when calling `Admin.blockClaim`.\\n```\\n        require(\\n            uint8(epoch) > 1 && !admin.blockClaim(address(this)),\\n            "TokenSale: Not time or not allowed"\\n        );\\n```\\n\\nIn this context, `address(this)` will be the address of the token sale contract and the require statement can be bypassed even by a blocked user.
Pass the address of the user.\\n```\\n        require(\\n// Remove the line below\\n            uint8(epoch) > 1 && !admin.blockClaim(address(this)),\\n// Add the line below\\n            uint8(epoch) > 1 && !admin.blockClaim(msg.sender)),\\n            "TokenSale: Not time or not allowed"\\n        );\\n```\\n
The whole functionality for blocking claims doesn't work properly.
```\\n    /**\\n     @dev Whitelist users\\n     @param _address Address of User\\n     */\\n    function setClaimBlock(address _address) external onlyRole(OPERATOR) {\\n        blockClaim[_address] = true;\\n    }\\n```\\n