void PH_Version(byte[] payload) { MemoryStream stream = new MemoryStream(payload); BinaryReader br = new BinaryReader(stream); mRemoteVersion = br.ReadUInt32(); mRemoteServices = br.ReadUInt64(); mRemoteTimestamp = br.ReadUInt64(); { //uint addrA_time = br.ReadUInt32(); ulong addrA_services = br.ReadUInt64(); byte[] addrA_ip = br.ReadBytes(16); ushort addrA_port = br.ReadUInt16(); } { //uint addrB_time = br.ReadUInt32(); ulong addrB_services = br.ReadUInt64(); byte[] addrB_ip = br.ReadBytes(16); ushort addrB_port = br.ReadUInt16(); } mRemoteNodeNOnce = br.ReadUInt64(); ulong nameLen = Utils.ReadVarInt(br); char[] clientName = br.ReadChars((int)nameLen); mRemoteUserAgent = new string(clientName); mRemoteHeight = br.ReadUInt32(); br.Close(); // Send verack byte[] verackData = new byte[0]; SendPacket("verack", verackData); mOwner.VersionRecieved(this); Console.WriteLine("Remote Version: " + mRemoteVersion); }