private async void Blocks_search_Click(object sender, RoutedEventArgs e) { string search = Blocks_Get_Search.Text; if (search.Length == 64) { byte[] data = await main.blocks.SearchBlock(search, false); if (data.Length != 0) { Additional.Block block = new Additional.Block(); block = main.blocks.BlockDeSerialize(data); Blocks_version.Content = block.version.ToString() + ".0"; Blocks_Get_flowing.Text = block.flowing.ToString(); Blocks_Get_previous.Text = block.previous; Blocks_Get_time.Text = block.time.ToString(); Blocks_Get_transaction_count.Text = block.transactions_count.ToString(); List <string> transactions = new List <string>(); transactions.AddRange(block.transactions_info.Split('|')); Blocks_Get_transactions.Items.Clear(); foreach (string transaction in transactions) { Blocks_Get_transactions.Items.Add(transaction); } } else { Blocks_Get_Warning.Content = "Блок не найден"; } } else { Blocks_Get_Warning.Content = "Проверьте вводимы данные"; } /*public string name; * public int version; * public int time; * public string previous; * public int transactions_count; * public string root_hash; * public int transactions_info_size; * public string transactions_info; * public UInt64 flowing; */ }
public async Task <int> CountGlobalTransactions() { int result = 0; string current = await blocks.ActualBlockGet(); if (current.Length != 0) { bool trigger = true; while (trigger) { byte[] temp = await blocks.SearchBlock(current); if (current.Length != 0) { Additional.Block block = new Additional.Block(); block = blocks.BlockDeSerialize(temp); result += block.transactions_count; if (block.previous == Blocks.first_block) { trigger = false; } current = block.previous; } else { trigger = false; } } } return(result); }