github.com/electroneum/electroneum-sc@v0.0.0-20230105223411-3bc1d078281e/consensus/istanbul/types/message.go (about)

     1  package qbfttypes
     2  
     3  import (
     4  	"github.com/electroneum/electroneum-sc/common"
     5  	"github.com/electroneum/electroneum-sc/consensus/istanbul"
     6  )
     7  
     8  // QBFT message codes
     9  const (
    10  	PreprepareCode  = 0x12
    11  	PrepareCode     = 0x13
    12  	CommitCode      = 0x14
    13  	RoundChangeCode = 0x15
    14  )
    15  
    16  // A set containing the messages codes for all QBFT messages.
    17  func MessageCodes() map[uint64]struct{} {
    18  	return map[uint64]struct{}{
    19  		PreprepareCode:  {},
    20  		PrepareCode:     {},
    21  		CommitCode:      {},
    22  		RoundChangeCode: {},
    23  	}
    24  }
    25  
    26  // Common interface for all QBFT messages
    27  type QBFTMessage interface {
    28  	Code() uint64
    29  	View() istanbul.View
    30  	Source() common.Address
    31  	SetSource(address common.Address)
    32  	EncodePayloadForSigning() ([]byte, error)
    33  	Signature() []byte
    34  	SetSignature(signature []byte)
    35  }