func (pvm *privValidatorMemory) SignVote(chainID string, vote *tmTypes.Vote) error {
	return pvm.lastSignedInfo.SignVote(pvm.signer, chainID, vote)
}
TODO: consider persistence to disk/database to avoid double signing after a crash
package validator
import (
	"github.com/gallactic/gallactic/crypto"
	tmCrypto "github.com/tendermint/tendermint/crypto"
	tmEd25519 "github.com/tendermint/tendermint/crypto/ed25519"
	tmTypes "github.com/tendermint/tendermint/types"
)
type privValidatorMemory struct {
	publicKey      tmCrypto.PubKey
	signer         tmSigner
	lastSignedInfo *LastSignedInfo
}
var _ tmTypes.PrivValidator = &privValidatorMemory{}
func NewPrivValidatorMemory(signer crypto.Signer) *privValidatorMemory {
	return &privValidatorMemory{
		publicKey:      signer.PublicKey().TMPubKey(),
		signer:         asTendermintSigner(signer),
		lastSignedInfo: NewLastSignedInfo(),
	}
}
func (pvm *privValidatorMemory) GetAddress() tmTypes.Address {
	return pvm.publicKey.Address()
}
func (pvm *privValidatorMemory) GetPubKey() tmCrypto.PubKey {
	return pvm.publicKey
}