- 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
- }
|