func (rs *RoundState) CompleteProposalEvent() types.EventDataCompleteProposal {
	// We must construct BlockID from ProposalBlock and ProposalBlockParts
	// cs.Proposal is not guaranteed to be set when this function is called
	blockId := types.BlockID{
		Hash:        rs.ProposalBlock.Hash(),
		PartsHeader: rs.ProposalBlockParts.Header(),
	}

	return types.EventDataCompleteProposal{
		Height:  rs.Height,
		Round:   rs.Round,
		Step:    rs.Step.String(),
		BlockID: blockId,
	}
}
// CompleteProposalEvent returns information about a proposed block as an event.
CompleteProposalEvent returns information about a proposed block as an event.
// CompleteProposalEvent returns information about a proposed block as an event .
func (rs *RoundState) CompleteProposalEvent() types.EventDataCompleteProposal {
	blockId := types.BlockID{
		Hash:        rs.ProposalBlock.Hash(),
		PartsHeader: rs.ProposalBlockParts.Header(),
	}
	return types.EventDataCompleteProposal{
		Height:  rs.Height,
		Round:   rs.Round,
		Step:    rs.Step.String(),
		BlockID: blockId,
	}
}
func ( rs * RoundState ) CompleteProposalEvent ( ) types . EventDataCompleteProposal { blockId := types . BlockID { Hash : rs . ProposalBlock . Hash ( ) , PartsHeader : rs . ProposalBlockParts . Header ( ) , } return types . EventDataCompleteProposal { Height : rs . Height , Round : rs . Round , Step : rs . Step . String ( ) , BlockID : blockId , } }
CompleteProposalEvent returns information about a proposed block as an event.
CompleteProposalEvent returns information about a proposed block as an event .
// We must construct BlockID from ProposalBlock and ProposalBlockParts // cs.Proposal is not guaranteed to be set when this function is called