@@ -22,7 +22,7 @@ use hotshot_types::{
22
22
data:: { Leaf2 , QuorumProposal2 , QuorumProposalWrapper , VidDisperse , ViewChangeEvidence2 } ,
23
23
epoch_membership:: EpochMembership ,
24
24
message:: Proposal ,
25
- simple_certificate:: { QuorumCertificate2 , UpgradeCertificate } ,
25
+ simple_certificate:: { ExtendedQuorumCertificate , QuorumCertificate2 , UpgradeCertificate } ,
26
26
traits:: {
27
27
block_contents:: BlockHeader ,
28
28
node_implementation:: { NodeImplementation , NodeType } ,
@@ -127,23 +127,31 @@ impl<TYPES: NodeType, V: Versions> ProposalDependencyHandle<TYPES, V> {
127
127
rx : & mut Receiver < Arc < HotShotEvent < TYPES > > > ,
128
128
) -> Option < QuorumCertificate2 < TYPES > > {
129
129
while let Ok ( event) = rx. recv_direct ( ) . await {
130
- if let HotShotEvent :: HighQcRecv ( qc, _sender) = event. as_ref ( ) {
131
- let prev_epoch = qc. data . epoch ;
132
- let epoch_membership = self . membership . get_new_epoch ( prev_epoch) . await . ok ( ) ?;
133
- let membership_stake_table = epoch_membership. stake_table ( ) . await ;
134
- let membership_success_threshold = epoch_membership. success_threshold ( ) . await ;
135
-
136
- if qc
137
- . is_valid_cert (
138
- StakeTableEntries :: < TYPES > :: from ( membership_stake_table) . 0 ,
139
- membership_success_threshold,
140
- & self . upgrade_lock ,
141
- )
142
- . await
143
- . is_ok ( )
144
- {
145
- return Some ( qc. clone ( ) ) ;
146
- }
130
+ match event. as_ref ( ) {
131
+ HotShotEvent :: HighQcRecv ( qc, _)
132
+ | HotShotEvent :: ExtendedQcRecv (
133
+ ExtendedQuorumCertificate { qc, state_cert : _ } ,
134
+ _,
135
+ _,
136
+ ) => {
137
+ let prev_epoch = qc. data . epoch ;
138
+ let epoch_membership = self . membership . get_new_epoch ( prev_epoch) . await . ok ( ) ?;
139
+ let membership_stake_table = epoch_membership. stake_table ( ) . await ;
140
+ let membership_success_threshold = epoch_membership. success_threshold ( ) . await ;
141
+
142
+ if qc
143
+ . is_valid_cert (
144
+ StakeTableEntries :: < TYPES > :: from ( membership_stake_table) . 0 ,
145
+ membership_success_threshold,
146
+ & self . upgrade_lock ,
147
+ )
148
+ . await
149
+ . is_ok ( )
150
+ {
151
+ return Some ( qc. clone ( ) ) ;
152
+ }
153
+ } ,
154
+ _ => { } ,
147
155
}
148
156
}
149
157
None
0 commit comments