package types import ( "bytes" "io" cmn "github.com/tendermint/tmlibs/common" ) // Signable is an interface for all signable things. // It typically removes signatures before serializing. type Signable interface { WriteSignBytes(chainID string, w io.Writer, n *int, err *error) } // SignBytes is a convenience method for getting the bytes to sign of a Signable. func SignBytes(chainID string, o Signable) []byte { buf, n, err := new(bytes.Buffer), new(int), new(error) o.WriteSignBytes(chainID, buf, n, err) if *err != nil { cmn.PanicCrisis(err) } return buf.Bytes() }