private void _read()
 {
     _unsignedMin = new Unsigned(m_io, this, m_root);
     _unsignedMax = new Unsigned(m_io, this, m_root);
     _signedMin   = new Signed(m_io, this, m_root);
     _signedMax   = new Signed(m_io, this, m_root);
 }
Exemplo n.º 2
0
        static public void GetBlock(int block_number, List <string> listAddresses)
        {
            string   url1      = "{\"jsonrpc\": \"2.0\",\"method\": \"getblocks\",\"params\": {\"searchLength\": 1,\"filters\": [{\"index\": ";
            string   url3      = "}]},\"id\": 1}";
            string   jsonBlock = String.Concat(url1, block_number, url3);
            string   response  = TalkToNode(jsonBlock);
            VbkBlock items     = JsonConvert.DeserializeObject <VbkBlock>(response);
            Result   result    = items.Result;

            if (result.Blocks != null)
            {
                Block[] blockArr = result.Blocks;
                Block   block    = blockArr[0];
                RegularTransaction[] regularTransactions = block.RegularTransactions;
                if (block.RegularTransactions != null)
                {
                    for (int i = 0; i < regularTransactions.Length; i++)
                    {
                        RegularTransaction RegularTransaction = regularTransactions[i];
                        Signed             signed             = RegularTransaction.Signed;
                        if (RegularTransaction.Signed != null)
                        {
                            Transaction transaction = signed.Transaction;
                            // save the source address from the regular transaction
                            listAddresses.Add(transaction.SourceAddress);
                            Output[] Txoutputs = transaction.Outputs;
                            if (transaction.Outputs != null)
                            {
                                for (int j = 0; j < Txoutputs.Length; j++)
                                {
                                    Output output = Txoutputs[j];
                                    // save the output addresses from the regular transaction
                                    listAddresses.Add(output.Address);
                                }
                            }
                        }
                        SignedMultisig signedMultisig = RegularTransaction.SignedMultisig;
                        if (RegularTransaction.SignedMultisig != null)
                        {
                            Transaction transaction1 = signedMultisig.Transaction;
                            // save the source address from the multisig transaction
                            listAddresses.Add(transaction1.SourceAddress);
                            Output[] Txoutputs1 = transaction1.Outputs;
                            if (transaction1.Outputs != null)
                            {
                                for (int j = 0; j < Txoutputs1.Length; j++)
                                {
                                    Output output = Txoutputs1[j];
                                    // save the output addresses from the multisig transaction
                                    listAddresses.Add(output.Address);
                                }
                            }
                        }
                    }
                }
                BlockContentMetapackage BlockContentMetapackage = block.BlockContentMetapackage;
                CoinbaseTransaction     CoinbaseTransaction     = BlockContentMetapackage.CoinbaseTransaction;
                Output[] PowOutputs = CoinbaseTransaction.PowOutputs;
                if (CoinbaseTransaction.PowOutputs != null)
                {
                    for (int i = 0; i < PowOutputs.Length; i++)
                    {
                        Output output = PowOutputs[i];
                        // save the addresses from the PoW reward
                        listAddresses.Add(output.Address);
                    }
                }
                Output[] PopOutputs = CoinbaseTransaction.PopOutputs;
                if (CoinbaseTransaction.PopOutputs != null)
                {
                    for (int i = 0; i < PopOutputs.Length; i++)
                    {
                        Output output = PopOutputs[i];
                        // save the addresses from the PoP reward
                        listAddresses.Add(output.Address);
                    }
                }
            }
        }