pub(crate) async fn handle_quorum_proposal_recv<TYPES: NodeType, I: NodeImplementation<TYPES>, V: Versions>(
    proposal: &Proposal<TYPES, QuorumProposal<TYPES>>,
    quorum_proposal_sender_key: &TYPES::SignatureKey,
    event_sender: &Sender<Arc<HotShotEvent<TYPES>>>,
    event_receiver: &Receiver<Arc<HotShotEvent<TYPES>>>,
    task_state: &mut QuorumProposalRecvTaskState<TYPES, I, V>
) -> Result<()>
Expand description

Handles the QuorumProposalRecv event by first validating the cert itself for the view, and then updating the states, which runs when the proposal cannot be found in the internal state map.

This code can fail when:

  • The justify qc is invalid.
  • The task is internally inconsistent.
  • The sequencer storage update fails.