github.com/elastos/Elastos.ELA.SideChain.ETH@v0.2.2/chainbridge-core/dpos_msg/feedbackArbitersSignature.go (about)

     1  package dpos_msg
     2  
     3  import (
     4  	"io"
     5  
     6  	elaCom "github.com/elastos/Elastos.ELA/common"
     7  	"github.com/elastos/Elastos.ELA/p2p"
     8  )
     9  
    10  // Ensure FeedBackArbitersSignature implement p2p.Message interface.
    11  var _ p2p.Message = (*FeedBackArbitersSignature)(nil)
    12  
    13  type FeedBackArbitersSignature struct {
    14  	Producer   []byte
    15  	Signature []byte
    16  }
    17  
    18  func (m *FeedBackArbitersSignature) CMD() string {
    19  	return CmdFeedbackArbiterSignature
    20  }
    21  
    22  
    23  func (m *FeedBackArbitersSignature) MaxLength() uint32 {
    24  	return 33 + 65 + 2
    25  }
    26  
    27  func (m *FeedBackArbitersSignature) Serialize(w io.Writer) error {
    28  	if err := elaCom.WriteVarBytes(w, m.Producer); err != nil {
    29  		return err
    30  	}
    31  	if err := elaCom.WriteVarBytes(w, m.Signature); err != nil {
    32  		return err
    33  	}
    34  
    35  	return nil
    36  }
    37  
    38  func (m *FeedBackArbitersSignature) Deserialize(r io.Reader) error {
    39  	signer, err := elaCom.ReadVarBytes(r, 33, "Signer")
    40  	if err != nil {
    41  		return err
    42  	}
    43  	m.Producer = signer
    44  
    45  	sig, err := elaCom.ReadVarBytes(r, 65, "Signature")
    46  	if err != nil {
    47  		return err
    48  	}
    49  	m.Signature = sig
    50  
    51  	return nil
    52  }
    53  
    54