public static RejectMessage Read(BitcoinStreamReader reader) { string rejectedCommand = reader.ReadText(MaxTextLength); byte reasonByte = reader.ReadByte(); string reasonText = reader.ReadText(MaxTextLength); //todo: parse data? length should be provided as parameter? RejectReason reason = (RejectReason) reasonByte; return new RejectMessage(rejectedCommand, reason, reasonText); }