Skip to content

Commit ef77bee

Browse files
committed
fix: qcommitment quorumIndex field
1 parent c3624de commit ef77bee

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

dash/src/blockdata/transaction/special_transaction/quorum_commitment.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)