code: def doDynamicValidation(self, request: Request):
          
          self.execute_hook(NodeHooks.PRE_DYNAMIC_VALIDATION, request=request)
  
          # Digest validation
          ledger_id, seq_no = self.seqNoDB.get_by_payload_digest(request.payload_digest)
          if ledger_id is not None and seq_no is not None:
              raise SuspiciousPrePrepare('Trying to order already ordered request')
  
          ledger = self.getLedger(self.ledger_id_for_request(request))
          for txn in ledger.uncommittedTxns:
              if get_payload_digest(txn) == request.payload_digest:
                  raise SuspiciousPrePrepare('Trying to order already ordered request')
  
          operation = request.operation
          req_handler = self.get_req_handler(txn_type=operation[TXN_TYPE])
          req_handler.validate(request)
  
          self.execute_hook(NodeHooks.POST_DYNAMIC_VALIDATION, request=request)
docs: State based validation