code: func (lsi *LastSignedInfo) SignVote(sign tmCryptoSigner, chainID string, vote *types.Vote) error {
  	lsi.Lock()
  	defer lsi.Unlock()
  	if err := lsi.signVote(sign, chainID, vote); err != nil {
  		return fmt.Errorf("error signing vote: %v", err)
  	}
  	return nil
  }
docs: // SignVote signs a canonical representation of the vote, along with the
  // chainID. Implements PrivValidator.