diff --git a/types/dym_header.go b/types/dym_header.go index e09ef2eee..762b8e9b3 100644 --- a/types/dym_header.go +++ b/types/dym_header.go @@ -22,11 +22,7 @@ func MakeDymHeader(consMessages []*proto.Any) DymHeader { } } -func (h *Header) SetDymHeader(dh DymHeader) { - h.ConsensusMessagesHash = dh.ConsensusMessagesHash -} - -func (h *Header) DymHash() cmtbytes.HexBytes { +func (h DymHeader) Hash() cmtbytes.HexBytes { // 32 bytes long return merkle.HashFromByteSlices([][]byte{ h.ConsensusMessagesHash[:], @@ -34,6 +30,16 @@ func (h *Header) DymHash() cmtbytes.HexBytes { }) } +func (h *Header) SetDymHeader(dh DymHeader) { + h.ConsensusMessagesHash = dh.ConsensusMessagesHash +} + +func (h *Header) DymHash() cmtbytes.HexBytes { + return DymHeader{ + ConsensusMessagesHash: h.ConsensusMessagesHash, + }.Hash() +} + func dymHashFr(blocks []*Block) cmtbytes.HexBytes { // 32 bytes long bzz := make([][]byte, len(blocks)) diff --git a/types/validation.go b/types/validation.go index b11cf5466..33354b225 100644 --- a/types/validation.go +++ b/types/validation.go @@ -50,8 +50,9 @@ func (b *Block) ValidateBasic() error { } func (b *Block) validateDymHeader() error { - if !bytes.Equal(b.Header.DymHash(), NewDymHeader(b.Data.ConsensusMessages).Hash()) { - if !bytes.Equal(b.Header.Dym.Hash(), NewDymHeader(b.Data.ConsensusMessages).Hash()) { + exp := b.Header.DymHash() + got := MakeDymHeader(b.Data.ConsensusMessages).Hash() + if !bytes.Equal(exp, got) { return ErrInvalidDymHeaderHash } return nil @@ -114,9 +115,6 @@ func (h *Header) ValidateBasic() error { if len(h.ProposerAddress) == 0 { return ErrEmptyProposerAddress } - if err := h.Dym.ValidateBasic(); err != nil { - return fmt.Errorf("dym header: %w", err) - } return nil }