code: def ToName(param_type):
      
      items = inspect.getmembers(ContractParameterType)
  
      if type(param_type) is bytes:
          param_type = int.from_bytes(param_type, 'little')
  
      for item in items:
          name = item[0]
          val = int(item[1].value)
  
          if val == param_type:
              return name
  
      return None
docs: Gets the name of a ContractParameterType based on its value
      Args:
          param_type (ContractParameterType): type to get the name of
  
      Returns:
          str