public void RequestData(List <Transaction> transactions, List <Block> blocks) { MemoryStream stream = new MemoryStream(); BinaryWriter bw = new BinaryWriter(stream); int count = transactions.Count + blocks.Count; Program.WriteVarInt(bw, (ulong)count); foreach (Transaction t in transactions) { const int transactionType = 1; bw.Write(transactionType); bw.Write(t.Hash); } foreach (Block b in blocks) { const int blockType = 2; bw.Write(blockType); bw.Write(b.Hash); } SendPacket("getdata", stream.ToArray()); bw.Close(); }