github.com/elastos/Elastos.ELA.SideChain.ETH@v0.2.2/chainbridge-core/dpos_msg/reqarbiterssignature.go (about) 1 package dpos_msg 2 3 import ( 4 "io" 5 6 "github.com/elastos/Elastos.ELA/common" 7 "github.com/elastos/Elastos.ELA/p2p" 8 ) 9 10 // Ensure RequireArbitersSignature implement p2p.Message interface. 11 var _ p2p.Message = (*RequireArbitersSignature)(nil) 12 13 type RequireArbitersSignature struct { 14 PID [33]byte 15 ArbiterCount uint8 16 } 17 18 func (msg *RequireArbitersSignature) CMD() string { 19 return CmdRequireArbitersSignature 20 } 21 22 func (msg *RequireArbitersSignature) MaxLength() uint32 { 23 return 35 24 } 25 26 func (msg *RequireArbitersSignature) Serialize(w io.Writer) error { 27 _, err := w.Write(msg.PID[:]) 28 if err != nil { 29 return err 30 } 31 err = common.WriteUint8(w, msg.ArbiterCount) 32 return err 33 } 34 35 func (msg *RequireArbitersSignature) Deserialize(r io.Reader) error { 36 pid := make([]byte, 33) 37 _, err := r.Read(pid) 38 if err != nil { 39 return err 40 } 41 copy(msg.PID[:], pid) 42 43 msg.ArbiterCount, err = common.ReadUint8(r) 44 return err 45 }