pub async fn build_vid_proposal<TYPES: NodeType>(
membership: &EpochMembership<TYPES>,
view_number: ViewNumber,
epoch_number: Option<EpochNumber>,
payload: &TYPES::BlockPayload,
metadata: &<TYPES::BlockPayload as BlockPayload<TYPES>>::Metadata,
private_key: &<TYPES::SignatureKey as SignatureKey>::PrivateKey,
upgrade_lock: &UpgradeLock<TYPES>,
) -> (Proposal<TYPES, VidDisperse<TYPES>>, Vec<Proposal<TYPES, VidDisperseShare<TYPES>>>)