code: def update(
              self,
              update,
              *,
              channel_id=None,
              has_pts=(
                  types.UpdateNewMessage,
                  types.UpdateDeleteMessages,
                  types.UpdateReadHistoryInbox,
                  types.UpdateReadHistoryOutbox,
                  types.UpdateWebPage,
                  types.UpdateReadMessagesContents,
                  types.UpdateEditMessage,
                  types.updates.State,
                  types.updates.DifferenceTooLong,
                  types.UpdateShortMessage,
                  types.UpdateShortChatMessage,
                  types.UpdateShortSentMessage
              ),
              has_date=(
                  types.UpdateUserPhoto,
                  types.UpdateEncryption,
                  types.UpdateEncryptedMessagesRead,
                  types.UpdateChatParticipantAdd,
                  types.updates.DifferenceEmpty,
                  types.UpdateShortMessage,
                  types.UpdateShortChatMessage,
                  types.UpdateShort,
                  types.UpdatesCombined,
                  types.Updates,
                  types.UpdateShortSentMessage,
              ),
              has_channel_pts=(
                  types.UpdateChannelTooLong,
                  types.UpdateNewChannelMessage,
                  types.UpdateDeleteChannelMessages,
                  types.UpdateEditChannelMessage,
                  types.UpdateChannelWebPage,
                  types.updates.ChannelDifferenceEmpty,
                  types.updates.ChannelDifferenceTooLong,
                  types.updates.ChannelDifference
              )
      ):
          
          has_pts = isinstance(update, has_pts)
          has_date = isinstance(update, has_date)
          has_channel_pts = isinstance(update, has_channel_pts)
          if has_pts and has_date:
              self._pts_date = update.pts, update.date
          elif has_pts:
              self._pts_date = update.pts, self._pts_date[1]
          elif has_date:
              self._pts_date = self._pts_date[0], update.date
  
          if has_channel_pts:
              if channel_id is None:
                  channel_id = self.get_channel_id(update)
  
              if channel_id is None:
                  self._logger.info(
                      'Failed to retrieve channel_id from %s', update)
              else:
                  self.__dict__[channel_id] = update.pts
docs: Update the state with the given update.