mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-05-29 18:26:41 +00:00

* [NOD-1509] Implement StageVirtualUTXODiff * [NOD-1509] Fix HasUTXOByOutpoint, get rid of database.ErrNotFound, and fix errors
39 lines
1.1 KiB
Go
39 lines
1.1 KiB
Go
package consensusstatestore
|
|
|
|
import (
|
|
"github.com/kaspanet/kaspad/domain/consensus/model"
|
|
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
|
"github.com/kaspanet/kaspad/domain/consensus/utils/dbkeys"
|
|
"github.com/kaspanet/kaspad/domain/consensus/utils/hashes"
|
|
)
|
|
|
|
var virtualDiffParentsKey = dbkeys.MakeBucket().Key([]byte("virtual-diff-parents"))
|
|
|
|
func (c consensusStateStore) VirtualDiffParents(dbContext model.DBReader) ([]*externalapi.DomainHash, error) {
|
|
if c.stagedVirtualDiffParents != nil {
|
|
return c.stagedVirtualDiffParents, nil
|
|
}
|
|
|
|
virtualDiffParentsBytes, err := dbContext.Get(virtualDiffParentsKey)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return hashes.DeserializeHashSlice(virtualDiffParentsBytes)
|
|
}
|
|
|
|
func (c consensusStateStore) StageVirtualDiffParents(tipHashes []*externalapi.DomainHash) {
|
|
c.stagedVirtualDiffParents = tipHashes
|
|
}
|
|
|
|
func (c consensusStateStore) commitVirtualDiffParents(dbTx model.DBTransaction) error {
|
|
virtualDiffParentsBytes := hashes.SerializeHashSlice(c.stagedVirtualDiffParents)
|
|
|
|
err := dbTx.Put(virtualDiffParentsKey, virtualDiffParentsBytes)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|