//StatusResponseMessage get status response msg
type StatusResponseMessage struct {
- Height uint64
- RawHash [32]byte
+ Height uint64
+ RawHash [32]byte
+ GenesisHash [32]byte
}
//NewStatusResponseMessage construct get status response msg
-func NewStatusResponseMessage(blockHeader *types.BlockHeader) *StatusResponseMessage {
+func NewStatusResponseMessage(blockHeader *types.BlockHeader, hash *bc.Hash) *StatusResponseMessage {
return &StatusResponseMessage{
- Height: blockHeader.Height,
- RawHash: blockHeader.Hash().Byte32(),
+ Height: blockHeader.Height,
+ RawHash: blockHeader.Hash().Byte32(),
+ GenesisHash: hash.Byte32(),
}
}
return &hash
}
+//GetGenesisHash get hash from msg
+func (m *StatusResponseMessage) GetGenesisHash() *bc.Hash {
+ hash := bc.NewHash(m.GenesisHash)
+ return &hash
+}
+
//String convert msg to string
func (m *StatusResponseMessage) String() string {
hash := m.GetHash()
- return fmt.Sprintf("StatusResponseMessage{Height: %d, Hash: %s}", m.Height, hash.String())
+ genesisHash := m.GetGenesisHash()
+ return fmt.Sprintf("StatusResponseMessage{Height: %d, Best hash: %s, Genesis hash: %s}", m.Height, hash.String(), genesisHash.String())
}
//MineBlockMessage new mined block msg