func (m *Bounce) UnmarshalBinaryData(data []byte) (newData []byte, err error) { defer func() { if r := recover(); r != nil { err = fmt.Errorf("Error unmarshalling: %v", r) } }() newData = data if newData[0] != m.Type() { return nil, errors.New("Invalid Message type") } newData = newData[1:] m.Name = string(newData[:32]) newData = newData[32:] m.Number, newData = int32(binary.BigEndian.Uint32(newData[0:4])), newData[4:] m.Timestamp = new(primitives.Timestamp) newData, err = m.Timestamp.UnmarshalBinaryData(newData) if err != nil { return nil, err } numTS, newData := binary.BigEndian.Uint32(newData[0:4]), newData[4:] for i := uint32(0); i < numTS; i++ { ts := new(primitives.Timestamp) newData, err = ts.UnmarshalBinaryData(newData) if err != nil { return nil, err } m.Stamps = append(m.Stamps, ts) } return }
func (m *RevealEntryMsg) UnmarshalBinaryData(data []byte) (newData []byte, err error) { defer func() { if r := recover(); r != nil { err = fmt.Errorf("Error unmarshalling: %v", r) } }() newData = data if newData[0] != m.Type() { return nil, fmt.Errorf("%s", "Invalid Message type") } newData = newData[1:] t := new(primitives.Timestamp) newData, err = t.UnmarshalBinaryData(newData) if err != nil { return nil, err } m.Timestamp = t e := entryBlock.NewEntry() newData, err = e.UnmarshalBinaryData(newData) if err != nil { return nil, err } m.Entry = e return newData, nil }