mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-05-23 15:26:42 +00:00

* [NOD-1579] Rename AcceptedTxIDs to AcceptedTransactionIDs. * [NOD-1579] Add InsertBlockResult to ValidateAndInsertBlock results. * [NOD-1593] Rename InsertBlockResult to BlockInsertionResult. * [NOD-1593] Add SelectedParentChainChanges to AddBlockToVirtual's result. * [NOD-1593] Implement findSelectedParentChainChanges. * [NOD-1593] Implement TestFindSelectedParentChainChanges. * [NOD-1593] Fix a string. * [NOD-1593] Finish implementing TestFindSelectedParentChainChanges. * [NOD-1593] Fix merge errors. * [NOD-1597] Begin implementing UTXOIndex. * [NOD-1597] Connect UTXOIndex to RPC. * [NOD-1597] Connect Consensus to UTXOIndex. * [NOD-1597] Add AcceptanceData to BlockInfo. * [NOD-1597] Implement UTXOIndex.Update(). * [NOD-1597] Implement add(), remove(), and discard() in utxoIndexStore. * [NOD-1597] Add error cases to add() and remove(). * [NOD-1597] Add special cases to add() and remove(). * [NOD-1597] Implement commit. * [NOD-1597] Add a mutex around UTXOIndex.Update(). * [NOD-1597] Return changes to the UTXO from Update(). * [NOD-1597] Add NotifyUTXOsChangedRequestMessage and related structs. * [NOD-1597] Implement HandleNotifyUTXOsChanged. * [NOD-1597] Begin implementing TestUTXOIndex. * [NOD-1597] Implement RegisterForUTXOsChangedNotifications. * [NOD-1597] Fix bad transaction.ID usage. * [NOD-1597] Implement convertUTXOChangesToUTXOsChangedNotification. * [NOD-1597] Make UTXOsChangedNotificationMessage.Removed UTXOsByAddressesEntry instead of just RPCOutpoint so that the client can discern which address was the UTXO removed for. * [NOD-1597] Collect outpoints in TestUTXOIndex. * [NOD-1597] Rename RPC stuff. * [NOD-1597] Add messages for GetUTXOsByAddresses. * [NOD-1597] Implement HandleGetUTXOsByAddresses. * [NOD-1597] Implement GetUTXOsByAddresses. * [NOD-1597] Implement UTXOs(). * [NOD-1597] Implement getUTXOOutpointEntryPairs(). * [NOD-1597] Expand TestUTXOIndex. * [NOD-1597] Convert SubmitTransaction to use RPCTransaction instead of MsgTx. * [NOD-1597] Finish implementing TestUTXOIndex. * [NOD-1597] Add messages for GetVirtualSelectedParentBlueScore. * [NOD-1597] Implement HandleGetVirtualSelectedParentBlueScore and GetVirtualSelectedParentBlueScore. * [NOD-1597] Implement TestVirtualSelectedParentBlueScore. * [NOD-1597] Implement NotifyVirtualSelectedParentBlueScoreChanged. * [NOD-1597] Expand TestVirtualSelectedParentBlueScore. * [NOD-1597] Implement notifyVirtualSelectedParentBlueScoreChanged. * [NOD-1597] Make go lint happy. * [NOD-1593] Fix merge errors. * [NOD-1593] Rename findSelectedParentChainChanges to calculateSelectedParentChainChanges. * [NOD-1593] Expand TestCalculateSelectedParentChainChanges. * [NOD-1597] Add logs to utxoindex.go. * [NOD-1597] Add logs to utxoindex/store.go. * [NOD-1597] Add logs to RPCManager.NotifyXXX functions. * Implement notifySelectedParentChainChanged. * Implement TestSelectedParentChain. * Rename NotifyChainChanged to NotifyVirtualSelectedParentChainChanged. * Rename GetChainFromBlock to GetVirtualSelectedParentChainFromBlock. * Remove AcceptanceIndex from the config. * Implement HandleGetVirtualSelectedParentChainFromBlock. * Expand TestVirtualSelectedParentChain. * Fix merge errors. * Add a comment. * Move a comment.
68 lines
2.5 KiB
Go
68 lines
2.5 KiB
Go
package serialization
|
|
|
|
import (
|
|
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
|
)
|
|
|
|
// DomainAcceptanceDataToDbAcceptanceData converts model.AcceptanceData to DbAcceptanceData
|
|
func DomainAcceptanceDataToDbAcceptanceData(domainAcceptanceData externalapi.AcceptanceData) *DbAcceptanceData {
|
|
dbBlockAcceptanceData := make([]*DbBlockAcceptanceData, len(domainAcceptanceData))
|
|
for i, blockAcceptanceData := range domainAcceptanceData {
|
|
dbTransactionAcceptanceData := make([]*DbTransactionAcceptanceData,
|
|
len(blockAcceptanceData.TransactionAcceptanceData))
|
|
|
|
for j, transactionAcceptanceData := range blockAcceptanceData.TransactionAcceptanceData {
|
|
dbTransaction := DomainTransactionToDbTransaction(transactionAcceptanceData.Transaction)
|
|
dbTransactionAcceptanceData[j] = &DbTransactionAcceptanceData{
|
|
Transaction: dbTransaction,
|
|
Fee: transactionAcceptanceData.Fee,
|
|
IsAccepted: transactionAcceptanceData.IsAccepted,
|
|
}
|
|
}
|
|
|
|
blockHash := DomainHashToDbHash(blockAcceptanceData.BlockHash)
|
|
|
|
dbBlockAcceptanceData[i] = &DbBlockAcceptanceData{
|
|
BlockHash: blockHash,
|
|
TransactionAcceptanceData: dbTransactionAcceptanceData,
|
|
}
|
|
}
|
|
|
|
return &DbAcceptanceData{
|
|
BlockAcceptanceData: dbBlockAcceptanceData,
|
|
}
|
|
}
|
|
|
|
// DbAcceptanceDataToDomainAcceptanceData converts DbAcceptanceData to model.AcceptanceData
|
|
func DbAcceptanceDataToDomainAcceptanceData(dbAcceptanceData *DbAcceptanceData) (externalapi.AcceptanceData, error) {
|
|
domainAcceptanceData := make(externalapi.AcceptanceData, len(dbAcceptanceData.BlockAcceptanceData))
|
|
for i, dbBlockAcceptanceData := range dbAcceptanceData.BlockAcceptanceData {
|
|
domainTransactionAcceptanceData := make([]*externalapi.TransactionAcceptanceData,
|
|
len(dbBlockAcceptanceData.TransactionAcceptanceData))
|
|
|
|
for j, dbTransactionAcceptanceData := range dbBlockAcceptanceData.TransactionAcceptanceData {
|
|
domainTransaction, err := DbTransactionToDomainTransaction(dbTransactionAcceptanceData.Transaction)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
domainTransactionAcceptanceData[j] = &externalapi.TransactionAcceptanceData{
|
|
Transaction: domainTransaction,
|
|
Fee: dbTransactionAcceptanceData.Fee,
|
|
IsAccepted: dbTransactionAcceptanceData.IsAccepted,
|
|
}
|
|
}
|
|
|
|
blockHash, err := DbHashToDomainHash(dbBlockAcceptanceData.BlockHash)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
domainAcceptanceData[i] = &externalapi.BlockAcceptanceData{
|
|
BlockHash: blockHash,
|
|
TransactionAcceptanceData: domainTransactionAcceptanceData,
|
|
}
|
|
}
|
|
|
|
return domainAcceptanceData, nil
|
|
}
|