code: async def dump_uvarint(writer, n):
      
      buffer = _UVARINT_BUFFER
      if n == 0:
          buffer[0] = 0
          return await writer.awrite(buffer)
  
      negative = n < 0
      ll = -n if negative else n
  
      size = 0
      while ll != 0:
          ll >>= 8
          size += 1
  
      buffer[0] = size
      await writer.awrite(buffer)
  
      ll = -n if negative else n
  
      # TODO: endianity, rev bytes if needed
      for _ in range(size):
          buffer[0] = ll & 0xff
          await writer.awrite(buffer)
          ll >>= 8
docs: Monero portable_binary_archive boost integer serialization
      :param writer:
      :param n:
      :return: