mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-11-25 06:55:52 +00:00
Begin implementing SerializeUTXODiff and DeserializeUTXODiff.
This commit is contained in:
parent
a5a84e9215
commit
94c3f4b80c
@ -0,0 +1,28 @@
|
||||
package binaryserialization
|
||||
|
||||
import (
|
||||
"github.com/kaspanet/kaspad/domain/consensus/model"
|
||||
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
||||
"github.com/kaspanet/kaspad/domain/consensus/utils/utxo"
|
||||
"github.com/kaspanet/kaspad/util/binaryserializer"
|
||||
"io"
|
||||
)
|
||||
|
||||
func SerializeUTXOCollection(writer io.Writer, utxoCollection model.UTXOCollection) error {
|
||||
length := uint64(utxoCollection.Len())
|
||||
err := binaryserializer.PutUint64(writer, length)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeserializeUTXOCollection(reader io.Reader) (model.UTXOCollection, error) {
|
||||
length, err := binaryserializer.Uint64(reader)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
utxoMap := make(map[externalapi.DomainOutpoint]externalapi.UTXOEntry, length)
|
||||
utxoCollection := utxo.NewUTXOCollection(utxoMap)
|
||||
return utxoCollection, nil
|
||||
}
|
||||
27
domain/consensus/database/binaryserialization/utxo_diff.go
Normal file
27
domain/consensus/database/binaryserialization/utxo_diff.go
Normal file
@ -0,0 +1,27 @@
|
||||
package binaryserialization
|
||||
|
||||
import (
|
||||
"github.com/kaspanet/kaspad/domain/consensus/model"
|
||||
"github.com/kaspanet/kaspad/domain/consensus/utils/utxo"
|
||||
"io"
|
||||
)
|
||||
|
||||
func SerializeUTXODiff(writer io.Writer, utxoDiff model.UTXODiff) error {
|
||||
err := SerializeUTXOCollection(writer, utxoDiff.ToAdd())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return SerializeUTXOCollection(writer, utxoDiff.ToRemove())
|
||||
}
|
||||
|
||||
func DeserializeUTXODiff(reader io.Reader) (model.UTXODiff, error) {
|
||||
toAdd, err := DeserializeUTXOCollection(reader)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
toRemove, err := DeserializeUTXOCollection(reader)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return utxo.NewUTXODiffFromCollections(toAdd, toRemove)
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user