code: def waitOnUpdate(self, timeout: float = 0) -> bool:
          
          if timeout:
              with suppress(asyncio.TimeoutError):
                  util.run(asyncio.wait_for(self.updateEvent, timeout))
          else:
              util.run(self.updateEvent)
          return True
docs: Wait on any new update to arrive from the network.
  
          Args:
              timeout: Maximum time in seconds to wait.
                  If 0 then no timeout is used.
  
          .. note::
              A loop with ``waitOnUpdate`` should not be used to harvest
              tick data from tickers, since some ticks can go missing.
              This happens when multiple updates occur almost simultaneously;
              The ticks from the first update are then cleared.
              Use events instead to prevent this.