Skip to content

Commit

Permalink
Address PR feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
tholonious committed Jun 26, 2023
1 parent f85eb4e commit 0691d4b
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 5 deletions.
26 changes: 22 additions & 4 deletions lib/pos_network.go
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@ func (sig *AggregatedBLSSignature) ToBytes() ([]byte, error) {
if sig.SignersList == nil {
return nil, errors.New("AggregatedBLSSignature.ToBytes: SignersList must not be nil")
}
retBytes = append(retBytes, EncodeByteArray(sig.SignersList.ToBytes())...)
retBytes = append(retBytes, EncodeBitset(sig.SignersList)...)

// Signature
if sig.Signature == nil {
Expand All @@ -392,12 +392,10 @@ func (sig *AggregatedBLSSignature) ToBytes() ([]byte, error) {
func (sig *AggregatedBLSSignature) FromBytes(rr io.Reader) error {
var err error

encodedSignersList, err := DecodeByteArray(rr)
sig.SignersList, err = DecodeBitset(rr)
if err != nil {
return errors.Wrapf(err, "AggregatedBLSSignature.FromBytes: Error decoding SignersList")
}
sig.SignersList = bitset.NewBitset()
sig.SignersList.FromBytes(encodedSignersList)

sig.Signature, err = DecodeBLSSignature(rr)
if err != nil {
Expand Down Expand Up @@ -531,3 +529,23 @@ func (aggQC *TimeoutAggregateQuorumCertificate) FromBytes(rr io.Reader) error {

return nil
}

// ==================================================================
// Bitset Utils
// ==================================================================

func EncodeBitset(b *bitset.Bitset) []byte {
var encodedBytes []byte
if b != nil {
encodedBytes = b.ToBytes()
}
return EncodeByteArray(encodedBytes)
}

func DecodeBitset(rr io.Reader) (*bitset.Bitset, error) {
encodedBytes, err := DecodeByteArray(rr)
if err != nil {
return nil, errors.Wrapf(err, "DecodeBitset: Error decoding bitset")
}
return (bitset.NewBitset()).FromBytes(encodedBytes), nil
}
3 changes: 2 additions & 1 deletion utils/bitset/bitset.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,10 @@ func (b *Bitset) ToBytes() []byte {
}

// Populates the BitSet from a big-endian byte slice.
func (b *Bitset) FromBytes(bytes []byte) {
func (b *Bitset) FromBytes(bytes []byte) *Bitset {
if b.store == nil {
b.store = big.NewInt(0)
}
b.store.SetBytes(bytes)
return b
}

0 comments on commit 0691d4b

Please sign in to comment.