public void GetCHTData(HelperTrieRequest request, List <byte[]> proofNodes, List <byte[]> auxData) { var cht = SyncServer.GetCHT(); // todo - enum? if (request.AuxiliaryData == 1) { auxData.Add(cht.RootHash.Bytes); return; } else if (request.AuxiliaryData == 2) { (Keccak hash, _) = cht.Get(request.Key); var headerResult = SyncServer.FindHeaders(hash, 1, 0, false); if (headerResult.Length != 1) { throw new SubprotocolException($"Unable to find header for block {request.Key.WithoutLeadingZeros().ToArray().ToLongFromBigEndianByteArrayWithoutLeadingZeros()} for GetHelperProofs response."); } auxData.Add(Rlp.Encode(headerResult[0]).Bytes); } proofNodes.AddRange(cht.BuildProof(request.Key, request.SectionIndex, request.FromLevel)); }