|
|
- package kvstore
-
- import (
- mrand "math/rand"
-
- "github.com/tendermint/tendermint/abci/types"
- tmrand "github.com/tendermint/tendermint/libs/rand"
- )
-
- // RandVal creates one random validator, with a key derived
- // from the input value
- func RandVal(i int) types.ValidatorUpdate {
- pubkey := tmrand.Bytes(32)
- // Random value between [0, 2^16 - 1]
- power := mrand.Uint32() & (1<<16 - 1) // nolint:gosec // G404: Use of weak random number generator
- v := types.UpdateValidator(pubkey, int64(power), "")
- return v
- }
-
- // RandVals returns a list of cnt validators for initializing
- // the application. Note that the keys are deterministically
- // derived from the index in the array, while the power is
- // random (Change this if not desired)
- func RandVals(cnt int) []types.ValidatorUpdate {
- res := make([]types.ValidatorUpdate, cnt)
- for i := 0; i < cnt; i++ {
- res[i] = RandVal(i)
- }
- return res
- }
-
- // InitKVStore initializes the kvstore app with some data,
- // which allows tests to pass and is fine as long as you
- // don't make any tx that modify the validator state
- func InitKVStore(app *PersistentKVStoreApplication) {
- app.InitChain(types.RequestInitChain{
- Validators: RandVals(1),
- })
- }
|