stasatdaglabs 01c7c67aed
[NOD-1493] Implement serialization in AcceptanceDataStore, BlockRelationStore, BlockStatusStore, and BlockStore (#982)
* [NOD-1493] Add DbHashToDomainHash and DomainHashToDbHash.

* [NOD-1493] Use DbHashToDomainHash and DomainHashToDbHash.

* [NOD-1493] Begin implementing serializeAcceptanceData.

* [NOD-1493] Extract serialization blockHeader logic to serialization.

* [NOD-1493] Extract serialization acceptance data logic to serialization.

* [NOD-1493] Implement acceptance data serialization/deserialization.

* [NOD-1493] Implement transaction serialization/deserialization.

* [NOD-1493] Implement outpoint serialization/deserialization.

* [NOD-1493] Implement transaction ID serialization/deserialization.

* [NOD-1493] Implement subnetwork ID serialization/deserialization.

* [NOD-1493] Implement block relation serialization/deserialization.

* [NOD-1493] Implement block status serialization/deserialization.

* [NOD-1493] Implement block serialization/deserialization.

* [NOD-1493] Implement serialization/deserialization in BlockRelationStore.

* [NOD-1493] Implement serialization/deserialization in BlockStatusStore.

* [NOD-1493] Implement serialization/deserialization in BlockStore.

* [NOD-1493] Make go vet happy.

* [NOD-1493] Use DomainHashesToDbHashes.
2020-10-29 16:49:05 +02:00

51 lines
1.9 KiB
Go

package serialization
import (
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
)
// DomainBlockHeaderToDbBlockHeader converts DomainBlockHeader to DbBlockHeader
func DomainBlockHeaderToDbBlockHeader(domainBlockHeader *externalapi.DomainBlockHeader) *DbBlockHeader {
return &DbBlockHeader{
Version: domainBlockHeader.Version,
ParentHashes: DomainHashesToDbHashes(domainBlockHeader.ParentHashes),
HashMerkleRoot: DomainHashToDbHash(&domainBlockHeader.HashMerkleRoot),
AcceptedIDMerkleRoot: DomainHashToDbHash(&domainBlockHeader.AcceptedIDMerkleRoot),
UtxoCommitment: DomainHashToDbHash(&domainBlockHeader.UTXOCommitment),
TimeInMilliseconds: domainBlockHeader.TimeInMilliseconds,
Bits: domainBlockHeader.Bits,
Nonce: domainBlockHeader.Nonce,
}
}
// DbBlockHeaderToDomainBlockHeader converts DbBlockHeader to DomainBlockHeader
func DbBlockHeaderToDomainBlockHeader(dbBlockHeader *DbBlockHeader) (*externalapi.DomainBlockHeader, error) {
parentHashes, err := DbHashesToDomainHashes(dbBlockHeader.ParentHashes)
if err != nil {
return nil, err
}
hashMerkleRoot, err := DbHashToDomainHash(dbBlockHeader.HashMerkleRoot)
if err != nil {
return nil, err
}
acceptedIDMerkleRoot, err := DbHashToDomainHash(dbBlockHeader.AcceptedIDMerkleRoot)
if err != nil {
return nil, err
}
utxoCommitment, err := DbHashToDomainHash(dbBlockHeader.UtxoCommitment)
if err != nil {
return nil, err
}
return &externalapi.DomainBlockHeader{
Version: dbBlockHeader.Version,
ParentHashes: parentHashes,
HashMerkleRoot: *hashMerkleRoot,
AcceptedIDMerkleRoot: *acceptedIDMerkleRoot,
UTXOCommitment: *utxoCommitment,
TimeInMilliseconds: dbBlockHeader.TimeInMilliseconds,
Bits: dbBlockHeader.Bits,
Nonce: dbBlockHeader.Nonce,
}, nil
}