code: def all_prev_ordered(self, commit: Commit):
          
          # TODO: This method does a lot of work, choose correct data
          # structures to make it efficient.
  
          viewNo, ppSeqNo = commit.viewNo, commit.ppSeqNo
  
          if self.last_ordered_3pc == (viewNo, ppSeqNo - 1):
              # Last ordered was in same view as this COMMIT
              return True
  
          # if some PREPAREs/COMMITs were completely missed in the same view
          toCheck = set()
          toCheck.update(set(self.sentPrePrepares.keys()))
          toCheck.update(set(self.prePrepares.keys()))
          toCheck.update(set(self.prepares.keys()))
          toCheck.update(set(self.commits.keys()))
          for (v, p) in toCheck:
              if v < viewNo and (v, p) not in self.ordered:
                  # Have commits from previous view that are unordered.
                  return False
              if v == viewNo and p < ppSeqNo and (v, p) not in self.ordered:
                  # If unordered commits are found with lower ppSeqNo then this
                  # cannot be ordered.
                  return False
  
          return True
docs: Return True if all previous COMMITs have been ordered