code: def is_valid_abi_type(type_name):
      
      valid_abi_types = {"address", "bool", "bytes", "int", "string", "uint"}
      is_bytesN = type_name.startswith("bytes") and 1 <= int(type_name[5:]) <= 32
      is_intN = (
          type_name.startswith("int") and
          8 <= int(type_name[3:]) <= 256 and
          int(type_name[3:]) % 8 == 0
      )
      is_uintN = (
          type_name.startswith("uint") and
          8 <= int(type_name[4:]) <= 256 and
          int(type_name[4:]) % 8 == 0
      )
  
      if type_name in valid_abi_types:
          return True
      elif is_bytesN:
          # bytes1 to bytes32
          return True
      elif is_intN:
          # int8 to int256
          return True
      elif is_uintN:
          # uint8 to uint256
          return True
  
      return False
docs: 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