def METHOD_NAME(self,
             counter=None,
             inc_counter=True,
             key=None,
             do_truncation=True,
             challenge=None):
    """
    :param counter:
    :param inc_counter:
    :param key:
    :param do_truncation:
    :param challenge: hexlified challenge
    :return:
    :rtype: str
    """
    if counter is None:
        counter = self.counter
    if challenge:
        hmac = self.hmac(challenge=challenge, key=key)
    else:
        hmac = self.hmac(counter=counter, key=key)
    if do_truncation:
        otp = str(self.truncate(hmac))
        """  fill in the leading zeros  """
        sotp = (self.digits - len(otp)) * "0" + otp
    else:
        sotp = hexlify_and_unicode(hmac)
    if inc_counter:
        self.counter = counter + 1
    return sotp