package factory import ( "context" "time" tmproto "github.com/tendermint/tendermint/proto/tendermint/types" "github.com/tendermint/tendermint/types" ) func MakeVote( ctx context.Context, val types.PrivValidator, chainID string, valIndex int32, height int64, round int32, step int, blockID types.BlockID, time time.Time, ) (*types.Vote, error) { pubKey, err := val.GetPubKey(ctx) if err != nil { return nil, err } v := &types.Vote{ ValidatorAddress: pubKey.Address(), ValidatorIndex: valIndex, Height: height, Round: round, Type: tmproto.SignedMsgType(step), BlockID: blockID, Timestamp: time, } vpb := v.ToProto() if err := val.SignVote(ctx, chainID, vpb); err != nil { return nil, err } v.Signature = vpb.Signature return v, nil }