def int_to_varint_hex(int_value):
    """
    VARINT
    <= 0xfc	                  example: 12
    <= 0xffff                 example: fd1234
       Prefix is fd and the next 2 bytes are the VarInt (in little-endian).
    <= 0xffffffff             example: fe12345678
       Prefix is fe and the next 4 bytes are the VarInt (in little-endian).
    <= 0xffffffffffffffff     example: ff1234567890abcdef
       Prefix is ff and the next 8 bytes are the VarInt (in little-endian).

    :param int_value: integer value which we want to convert to hex format varint
    :return: varint hex string in little-endian
    """
    if int_value <= 0xfc:
        return hex(int_value)[2:]
    elif int_value <= 0xffff:
        return 'fd' + int_value.to_bytes(2, byteorder='little').hex()
    elif int_value <= 0xffffffff:
        return 'fe' + int_value.to_bytes(4, byteorder='little').hex()
    elif int_value <= 0xffffffffffffffff:
        return 'ff' + int_value.to_bytes(8, byteorder='little').hex()
    else:
        raise Exception('Too big varint: {}'.format(int_value))