Some checks are pending
docker-build-cometbft / vars (push) Waiting to run
docker-build-cometbft / build-images (amd64, ubuntu-24.04) (push) Blocked by required conditions
docker-build-cometbft / build-images (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
docker-build-cometbft / merge-images (push) Blocked by required conditions
docker-build-e2e-node / vars (push) Waiting to run
docker-build-e2e-node / build-images (amd64, ubuntu-24.04) (push) Blocked by required conditions
docker-build-e2e-node / build-images (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
docker-build-e2e-node / merge-images (push) Blocked by required conditions
63 lines
2 KiB
Go
63 lines
2 KiB
Go
package state
|
|
|
|
import (
|
|
dbm "git.cw.tr/mukan-network/mukan-consensus-db"
|
|
|
|
abci "git.cw.tr/mukan-network/mukan-consensus/abci/types"
|
|
"git.cw.tr/mukan-network/mukan-consensus/types"
|
|
)
|
|
|
|
//
|
|
// TODO: Remove dependence on all entities exported from this file.
|
|
//
|
|
// Every entity exported here is dependent on a private entity from the `state`
|
|
// package. Currently, these functions are only made available to tests in the
|
|
// `state_test` package, but we should not be relying on them for our testing.
|
|
// Instead, we should be exclusively relying on exported entities for our
|
|
// testing, and should be refactoring exported entities to make them more
|
|
// easily testable from outside of the package.
|
|
//
|
|
|
|
const ValSetCheckpointInterval = valSetCheckpointInterval
|
|
|
|
// UpdateState is an alias for updateState exported from execution.go,
|
|
// exclusively and explicitly for testing.
|
|
func UpdateState(
|
|
state State,
|
|
blockID types.BlockID,
|
|
header *types.Header,
|
|
resp *abci.ResponseFinalizeBlock,
|
|
validatorUpdates []*types.Validator,
|
|
) (State, error) {
|
|
return updateState(state, blockID, header, resp, validatorUpdates)
|
|
}
|
|
|
|
// ValidateValidatorUpdates is an alias for validateValidatorUpdates exported
|
|
// from execution.go, exclusively and explicitly for testing.
|
|
func ValidateValidatorUpdates(abciUpdates []abci.ValidatorUpdate, params types.ValidatorParams) error {
|
|
return validateValidatorUpdates(abciUpdates, params)
|
|
}
|
|
|
|
// SaveValidatorsInfo is an alias for the private saveValidatorsInfo method in
|
|
// store.go, exported exclusively and explicitly for testing.
|
|
func SaveValidatorsInfo(db dbm.DB, height, lastHeightChanged int64, valSet *types.ValidatorSet) error {
|
|
stateStore := dbStore{db, StoreOptions{DiscardABCIResponses: false}}
|
|
batch := stateStore.db.NewBatch()
|
|
err := stateStore.saveValidatorsInfo(height, lastHeightChanged, valSet, batch)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
err = batch.WriteSync()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func Int64ToBytes(val int64) []byte {
|
|
return int64ToBytes(val)
|
|
}
|
|
|
|
func Int64FromBytes(val []byte) int64 {
|
|
return int64FromBytes(val)
|
|
}
|