public static Message Unserialize(BinaryReader reader) { var opcode = (Opcode)reader.ReadByte(); var address = reader.ReadAddress(); Message msg; switch (opcode) { case Opcode.REQUEST: { msg = RequestMessage.FromReader(address, reader); break; } case Opcode.EVENT: { msg = EventMessage.FromReader(address, reader); break; } case Opcode.LIST: { msg = ListMessage.FromReader(address, reader); break; } case Opcode.MEMPOOL_Add: { msg = MempoolAddMessage.FromReader(address, reader); break; } /* case Opcode.MEMPOOL_List: * { * msg = MempoolGetMessage.FromReader(address, reader); * break; * } * * case Opcode.CHAIN_List: * { * msg = ChainListMessage.FromReader(address, reader); * break; * } */ case Opcode.ERROR: { msg = ErrorMessage.FromReader(address, reader); break; } default: return(null); } if (address != null) { msg.Signature = reader.ReadSignature(); } return(msg); }