package types import ( "fmt" "io" "github.com/tendermint/go-crypto" "github.com/tendermint/go-wire" "github.com/tendermint/go-wire/data" cmn "github.com/tendermint/tmlibs/common" ) type Heartbeat struct { ValidatorAddress data.Bytes `json:"validator_address"` ValidatorIndex int `json:"validator_index"` Height int `json:"height"` Round int `json:"round"` Sequence int `json:"sequence"` Signature crypto.Signature `json:"signature"` } func (heartbeat *Heartbeat) WriteSignBytes(chainID string, w io.Writer, n *int, err *error) { wire.WriteJSON(CanonicalJSONOnceHeartbeat{ chainID, CanonicalHeartbeat(heartbeat), }, w, n, err) } func (heartbeat *Heartbeat) Copy() *Heartbeat { heartbeatCopy := *heartbeat return &heartbeatCopy } func (heartbeat *Heartbeat) String() string { if heartbeat == nil { return "nil-heartbeat" } return fmt.Sprintf("Heartbeat{%v:%X %v/%02d (%v) %v}", heartbeat.ValidatorIndex, cmn.Fingerprint(heartbeat.ValidatorAddress), heartbeat.Height, heartbeat.Round, heartbeat.Sequence, heartbeat.Signature) }