@@ -33,6 +33,7 @@ pub struct QuorumFinalizationCommitment {
3333 pub version : u16 ,
3434 pub llmq_type : u8 ,
3535 pub quorum_hash : QuorumHash ,
36+ pub quorum_index : Option < i16 > ,
3637 pub signers : Vec < u8 > ,
3738 pub valid_members : Vec < u8 > ,
3839 pub quorum_public_key : BLSPublicKey ,
@@ -47,6 +48,9 @@ impl QuorumFinalizationCommitment {
4748 let mut size = 2 + 1 + 32 + 48 + 32 + 96 + 96 ;
4849 size += VarInt ( self . signers . len ( ) as u64 ) . len ( ) + self . signers . len ( ) ;
4950 size += VarInt ( self . valid_members . len ( ) as u64 ) . len ( ) + self . valid_members . len ( ) ;
51+ if self . version == 2 || self . version == 4 {
52+ size += 16 ;
53+ }
5054 size
5155 }
5256}
@@ -57,6 +61,9 @@ impl Encodable for QuorumFinalizationCommitment {
5761 len += self . version . consensus_encode ( w) ?;
5862 len += self . llmq_type . consensus_encode ( w) ?;
5963 len += self . quorum_hash . consensus_encode ( w) ?;
64+ if self . version == 2 || self . version == 4 {
65+ len += self . quorum_index . unwrap ( ) . consensus_encode ( w) ?;
66+ }
6067 len += self . signers . consensus_encode ( w) ?;
6168 len += self . valid_members . consensus_encode ( w) ?;
6269 len += self . quorum_public_key . consensus_encode ( w) ?;
@@ -72,6 +79,7 @@ impl Decodable for QuorumFinalizationCommitment {
7279 let version = u16:: consensus_decode ( r) ?;
7380 let llmq_type = u8:: consensus_decode ( r) ?;
7481 let quorum_hash = QuorumHash :: consensus_decode ( r) ?;
82+ let quorum_index = if version == 2 || version == 4 { Some ( i16:: consensus_decode ( r) ?) } else { None } ;
7583 let signers = Vec :: < u8 > :: consensus_decode ( r) ?;
7684 let valid_members = Vec :: < u8 > :: consensus_decode ( r) ?;
7785 let quorum_public_key = BLSPublicKey :: consensus_decode ( r) ?;
@@ -82,6 +90,7 @@ impl Decodable for QuorumFinalizationCommitment {
8290 version,
8391 llmq_type,
8492 quorum_hash,
93+ quorum_index,
8594 signers,
8695 valid_members,
8796 quorum_public_key,
@@ -151,6 +160,7 @@ mod tests {
151160 version : 0 ,
152161 llmq_type : 0 ,
153162 quorum_hash : QuorumHash :: all_zeros ( ) ,
163+ quorum_index : None ,
154164 signers : vec ! [ 1 , 2 , 3 , 4 , 5 ] ,
155165 valid_members : vec ! [ 6 , 7 , 8 , 9 , 0 ] ,
156166 quorum_public_key : BLSPublicKey :: from ( [ 0 ; 48 ] ) ,
0 commit comments