```\\nfunction removeToken(\\n    bytes4 tokenSource, \\n    bytes32 tokenSourceAddress, \\n    address newAuthority) external onlyRole(TOKEN_MANAGER) {\\n    require(newAuthority != address(0), "Bridge: zero address authority");\\n    address tokenAddress = tokenSourceMap[tokenSource][tokenSourceAddress];\\n    require(tokenAddress != address(0), "Bridge: token not found");\\n    TokenInfo memory tokenInfo = tokenInfos[tokenAddress];\\n\\n    if (tokenInfo.tokenType == TokenType.Base && address(this).balance > 0) {\\n        payable(newAuthority).transfer(address(this).balance);\\n    }\\n\\n    uint256 tokenBalance = IERC20(tokenAddress).balanceOf(address(this));\\n    if (tokenBalance > 0) {\\n        IERC20(tokenAddress).safeTransfer(newAuthority, tokenBalance);\\n    }\\n\\n    if (tokenInfo.tokenType == TokenType.Wrapped) {\\n        WrappedToken(tokenAddress).transferOwnership(newAuthority);\\n    } else if (tokenInfo.tokenType == TokenType.WrappedV0) {\\n        IWrappedTokenV0(tokenAddress).changeAuthority(newAuthority);\\n    }\\n\\n    delete tokenInfos[tokenAddress];\\n    delete tokenSourceMap[tokenSource][tokenSourceAddress];\\n}\\n```\\n