github.com/evdatsion/aphelion-dpos-bft@v0.32.1/types/test_util.go (about)

     1  package types
     2  
     3  import (
     4  	tmtime "github.com/evdatsion/aphelion-dpos-bft/types/time"
     5  )
     6  
     7  func MakeCommit(blockID BlockID, height int64, round int,
     8  	voteSet *VoteSet,
     9  	validators []PrivValidator) (*Commit, error) {
    10  
    11  	// all sign
    12  	for i := 0; i < len(validators); i++ {
    13  		addr := validators[i].GetPubKey().Address()
    14  		vote := &Vote{
    15  			ValidatorAddress: addr,
    16  			ValidatorIndex:   i,
    17  			Height:           height,
    18  			Round:            round,
    19  			Type:             PrecommitType,
    20  			BlockID:          blockID,
    21  			Timestamp:        tmtime.Now(),
    22  		}
    23  
    24  		_, err := signAddVote(validators[i], vote, voteSet)
    25  		if err != nil {
    26  			return nil, err
    27  		}
    28  	}
    29  
    30  	return voteSet.MakeCommit(), nil
    31  }
    32  
    33  func signAddVote(privVal PrivValidator, vote *Vote, voteSet *VoteSet) (signed bool, err error) {
    34  	err = privVal.SignVote(voteSet.ChainID(), vote)
    35  	if err != nil {
    36  		return false, err
    37  	}
    38  	return voteSet.AddVote(vote)
    39  }