def is_valid_abi_type(type_name):
valid_abi_types = {"<STR_LIT:address>", "<STR_LIT:bool>", "<STR_LIT>", "<STR_LIT:int>", "<STR_LIT:string>", "<STR_LIT>"}<EOL>is_bytesN = type_name.startswith("<STR_LIT>") and <NUM_LIT:1> <= int(type_name[<NUM_LIT:5>:]) <= <NUM_LIT:32><EOL>is_intN = (<EOL>type_name.startswith("<STR_LIT:int>") and<EOL><NUM_LIT:8> <= int(type_name[<NUM_LIT:3>:]) <= <NUM_LIT> and<EOL>int(type_name[<NUM_LIT:3>:]) % <NUM_LIT:8> == <NUM_LIT:0><EOL>)<EOL>is_uintN = (<EOL>type_name.startswith("<STR_LIT>") and<EOL><NUM_LIT:8> <= int(type_name[<NUM_LIT:4>:]) <= <NUM_LIT> and<EOL>int(type_name[<NUM_LIT:4>:]) % <NUM_LIT:8> == <NUM_LIT:0><EOL>)<EOL>if type_name in valid_abi_types:<EOL><INDENT>return True<EOL><DEDENT>elif is_bytesN:<EOL><INDENT>return True<EOL><DEDENT>elif is_intN:<EOL><INDENT>return True<EOL><DEDENT>elif is_uintN:<EOL><INDENT>return True<EOL><DEDENT>return False<EOL>
This function is used to make sure that the ``type_name`` is a valid ABI Type.

Please note that this is a temporary function and should be replaced by the corresponding
ABI function, once the following issue has been resolved.
https://github.com/ethereum/eth-abi/issues/125