```\nfunction addToken(\n    bytes4 tokenSource, \n    bytes32 tokenSourceAddress, \n    address nativeTokenAddress, \n    TokenType tokenType) external onlyRole(TOKEN_MANAGER) {\n    require(\n        tokenInfos[nativeTokenAddress].tokenSourceAddress == bytes32(0) &&\n        tokenSourceMap[tokenSource][tokenSourceAddress] == address(0), "Bridge: exists");\n    uint8 precision = ERC20(nativeTokenAddress).decimals();\n\n    tokenSourceMap[tokenSource][tokenSourceAddress] = nativeTokenAddress;\n    tokenInfos[nativeTokenAddress] = TokenInfo(\n        tokenSource, \n        tokenSourceAddress, \n        precision, \n        tokenType, \n        TokenStatus.Enabled);\n}\n```\n