code: def process_market(self, data):
          
          for d in data:
              if not d:
                  continue
              if isinstance(d, str):
                  # Single order has been placed
                  log.debug("Calling on_market with Order()")
                  self.on_market(Order(d, blockchain_instance=self.blockchain))
                  continue
              elif isinstance(d, dict):
                  d = [d]
  
              # Orders have been matched
              for p in d:
                  if not isinstance(p, list):
                      p = [p]
                  for i in p:
                      if isinstance(i, dict):
                          if "pays" in i and "receives" in i:
                              self.on_market(
                                  FilledOrder(i, blockchain_instance=self.blockchain)
                              )
                          elif "for_sale" in i and "sell_price" in i:
                              self.on_market(
                                  Order(i, blockchain_instance=self.blockchain)
                              )
                          elif "collateral" in i and "call_price" in i:
                              self.on_market(
                                  UpdateCallOrder(i, blockchain_instance=self.blockchain)
                              )
                          else:
                              if i:
                                  log.error("Unknown market update type: %s" % i)
docs: This method is used for post processing of market
              notifications. It will return instances of either
  
              * :class:`bitshares.price.Order` or
              * :class:`bitshares.price.FilledOrder` or
              * :class:`bitshares.price.UpdateCallOrder`
  
              Also possible are limit order updates (margin calls)