Пример #1
0
        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.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);
        }