docs: def openOrder(self, orderId, contract, order, orderState):
          """
          This wrapper is called to:
  
          * feed in open orders at startup;
          * feed in open orders or order updates from other clients and TWS
            if clientId=master id;
          * feed in manual orders and order updates from TWS if clientId=0;
          * handle openOrders and allOpenOrders responses.
          """
          if order.whatIf:
              # response to whatIfOrder
              self._endReq(order.orderId, orderState)
          else:
              key = self.orderKey(order.clientId, order.orderId, order.permId)
              trade = self.trades.get(key)
              # ignore '?' values in the order
              d = {k: v for k, v in order.dict().items() if v != '?'}
              if trade:
                  trade.order.update(**d)
              else:
                  contract = Contract.create(**contract.dict())
                  order = Order(**d)
                  orderStatus = OrderStatus(status=orderState.status)
                  trade = Trade(contract, order, orderStatus, [], [])
                  self.trades[key] = trade
                  self._logger.info(f'openOrder: {trade}')
              results = self._results.get('openOrders')
              if results is None:
                  self.ib.openOrderEvent.emit(trade)
              else:
                  # response to reqOpenOrders or reqAllOpenOrders
                  results.append(order)