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 }