/// Checks whether some proposes are waiting for this transaction.
/// Returns a list of proposes that don't contain unknown transactions.
///
/// Transaction is ignored if the following criteria are fulfilled:
///
/// - transaction isn't contained in unknown transaction list of any propose
/// - transaction isn't a part of block
Checks whether some proposes are waiting for this transaction.
Returns a list of proposes that don't contain unknown transactions.

Transaction is ignored if the following criteria are fulfilled.

transaction isn't contained in unknown transaction list of any propose
transaction isn't a part of block
Checks whether some proposes are waiting for this transaction . Returns a list of proposes that don ' t contain unknown transactions . Transaction is ignored if the following criteria are fulfilled . transaction isn ' t contained in unknown transaction list of any propose transaction isn ' t a part of block
pub(super) fn check_incomplete_proposes(&mut self, tx_hash: Hash) -> Vec<(Hash, Round)> {
        let mut full_proposes = Vec::new();
        for (propose_hash, propose_state) in &mut self.proposes {
            propose_state.unknown_txs.remove(&tx_hash);
            if self.invalid_txs.contains(&tx_hash) {
                // Mark prevote with newly received invalid transaction as invalid.
                propose_state.is_valid = false;
            }
            if propose_state.unknown_txs.is_empty() {
                full_proposes.push((*propose_hash, propose_state.message().payload().round()));
            }
        }
        // Depending on the build type and amount of proposes, we may want
        // to reorder proposes. See comments in both implementations of
        // `reorder_proposes_if_needed` to get details.
        Self::reorder_proposes_if_needed(&mut full_proposes);
        full_proposes
    }
pub ( super ) fn check_incomplete_proposes ( & mut self , tx_hash : Hash ) -> Vec < ( Hash , Round ) > { let mut full_proposes = Vec :: new ( ) ; for ( propose_hash , propose_state ) in & mut self . proposes { propose_state . unknown_txs . remove ( & tx_hash ) ; if self . invalid_txs . contains ( & tx_hash ) { // Mark prevote with newly received invalid transaction as invalid. propose_state . is_valid = false ; } if propose_state . unknown_txs . is_empty ( ) { full_proposes . push ( ( * propose_hash , propose_state . message ( ) . payload ( ) . round ( ) ) ) ; } } // Depending on the build type and amount of proposes, we may want // to reorder proposes. See comments in both implementations of // `reorder_proposes_if_needed` to get details. Self :: reorder_proposes_if_needed ( & mut full_proposes ) ; full_proposes }
Checks whether some proposes are waiting for this transaction.
Checks whether some proposes are waiting for this transaction .
&mut self
tx_hash
Hash