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

41 lines
1.2 KiB
Go

package serialization
import (
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
)
// DomainBlockToDbBlock converts DomainBlocks to DbBlock
func DomainBlockToDbBlock(domainBlock *externalapi.DomainBlock) *DbBlock {
dbTransactions := make([]*DbTransaction, len(domainBlock.Transactions))
for i, domainTransaction := range domainBlock.Transactions {
dbTransactions[i] = DomainTransactionToDbTransaction(domainTransaction)
}
return &DbBlock{
Header: DomainBlockHeaderToDbBlockHeader(domainBlock.Header),
Transactions: dbTransactions,
}
}
// DbBlockToDomainBlock converts DbBlock to DomainBlock
func DbBlockToDomainBlock(dbBlock *DbBlock) (*externalapi.DomainBlock, error) {
domainBlockHeader, err := DbBlockHeaderToDomainBlockHeader(dbBlock.Header)
if err != nil {
return nil, err
}
domainTransactions := make([]*externalapi.DomainTransaction, len(dbBlock.Transactions))
for i, dbTransaction := range dbBlock.Transactions {
var err error
domainTransactions[i], err = DbTransactionToDomainTransaction(dbTransaction)
if err != nil {
return nil, err
}
}
return &externalapi.DomainBlock{
Header: domainBlockHeader,
Transactions: domainTransactions,
}, nil
}