コード例 #1
0
        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;
             */
        }
コード例 #2
0
        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);
        }