Beispiel #1
0
        public void SendTransaction(NodeCoreAdminClient adminClient)
        {
            Console.WriteLine("SendTransaction");
            Console.WriteLine("NC_CLI command: send <amount> <destinationAddress> [sourceAddress]");

            //Sending implies also signing

            String sourceAddress = "V4m6JbAs8VaEa3wwemJPgsPRY8ETdk";
            String targetAddress = "VDPNEDihaDAuKqcH35YJ1DNHaFbj2R";
            double amount        = 10.5;

            SendCoinsRequest request = new SendCoinsRequest();

            request.SourceAddress = Utils.ConvertAddressToByteString(sourceAddress);
            Output o = new Output();

            o.Address = Utils.ConvertAddressToByteString(targetAddress);
            o.Amount  = Utils.ConvertVbkToAtomicUnits(amount);
            request.Amounts.Add(o);

            SendCoinsReply reply = adminClient.AdminClient.SendCoins(request);

            if (reply.Success)
            {
                //Note - could create multiple Tx, pick just the first one for demo:
                Console.WriteLine("Created transaction: {0}", reply.TxIds[0].ToHexString());
            }
            else
            {
                Console.WriteLine("Error sending transaction: {0}", reply.Results[0].Details);
            }

            Console.WriteLine("--------------------");
            Console.WriteLine();
        }
Beispiel #2
0
        public void GetBlockByIndex(NodeCoreAdminClient adminClient)
        {
            Console.WriteLine("GetBlockByIndex");
            Console.WriteLine("NC_CLI command: getblockfromindex <blockIndex>");

            int iBlockIndex = 100;

            BlockFilter filter = new BlockFilter();

            filter.Index = iBlockIndex;
            GetBlocksRequest request = new GetBlocksRequest();

            request.Filters.Add(filter);
            request.SearchLength = 2000;

            GetBlocksReply reply = adminClient.AdminClient.GetBlocks(request);

            if (reply.Success)
            {
                if (reply.Blocks.Count > 0)
                {
                    //Display info
                    String blockHash = reply.Blocks[0].Hash.ToHexString();
                    Console.WriteLine("BlockHash={0}", blockHash);
                }
            }

            Console.WriteLine("--------------------");
            Console.WriteLine();
        }
Beispiel #3
0
        public void ValidateAddress(NodeCoreAdminClient adminClient)
        {
            Console.WriteLine("GetBalance");
            Console.WriteLine("NC_CLI command: validateaddress <address>");

            String address = "V4m6JbAs8VaEa3wwemJPgsPRY8ETdk";

            ValidateAddressRequest request = new ValidateAddressRequest();

            request.Address = Utils.ConvertAddressToByteString(address);

            ValidateAddressReply reply = adminClient.AdminClient.ValidateAddress(request);

            if (reply.Success)
            {
                Console.WriteLine("IsRemote: {0}", reply.IsRemote);
                Console.WriteLine("PublicKey: {0}", reply.PublicKey.ToHexString());
            }
            else
            {
                Console.WriteLine("Could not validate address: '{0}'", address);
            }

            Console.WriteLine("--------------------");
            Console.WriteLine();
        }
Beispiel #4
0
        public void GetTransactionById(NodeCoreAdminClient adminClient)
        {
            Console.WriteLine("GetTransactionById");
            Console.WriteLine("NC_CLI command: gettransaction <txId> [searchLength]");

            String txId = "DED0DB5035D90A756B6F5333157F13D55103C5F76378FD732809CDE27E6B57F3";

            GetTransactionsRequest request = new GetTransactionsRequest();

            request.Ids.Add(txId.ToByteString());
            request.SearchLength = 2000;

            GetTransactionsReply reply = adminClient.AdminClient.GetTransactions(request);

            if (reply.Success)
            {
                if (reply.Transactions.Count > 0)
                {
                    //Display info
                    int    iBlockIndex  = reply.Transactions[0].BlockNumber;
                    double sourceAmount = Utils.ConvertAtomicToVbkUnits(reply.Transactions[0].Transaction.SourceAmount);
                    Console.WriteLine("BlockIndex={0}, sourceAmount={1}", iBlockIndex, sourceAmount);
                }
            }

            Console.WriteLine("--------------------");
            Console.WriteLine();
        }
Beispiel #5
0
        public void GetBlockByHash(NodeCoreAdminClient adminClient)
        {
            Console.WriteLine("GetBlockByHash");
            Console.WriteLine("NC_CLI command: getblockfromhash <blockHash>");

            String blockHash = "0000000000002A866690AF6E6B7B784151DDB0565BE16EE0";


            BlockFilter filter = new BlockFilter();

            filter.Hash = blockHash.ToByteString();
            GetBlocksRequest request = new GetBlocksRequest();

            request.Filters.Add(filter);
            request.SearchLength = 2000;

            GetBlocksReply reply = adminClient.AdminClient.GetBlocks(request);

            if (reply.Success)
            {
                if (reply.Blocks.Count > 0)
                {
                    //Display info
                    int iBlockIndex = reply.Blocks[0].Number;
                    Console.WriteLine("BlockIndex={0}", iBlockIndex);
                }
            }

            Console.WriteLine("--------------------");
            Console.WriteLine();
        }
Beispiel #6
0
        public void GetNewAddress(NodeCoreAdminClient adminClient)
        {
            Console.WriteLine("GetNewAddress");
            Console.WriteLine("NC_CLI command: getnewaddress");

            //Generate address
            GetNewAddressRequest requestAddress = new GetNewAddressRequest();
            GetNewAddressReply   replyAddress   = adminClient.AdminClient.GetNewAddress(requestAddress);

            if (replyAddress.Success)
            {
                String address = Base58.ToBase58(replyAddress.Address);
                Console.WriteLine("New Address: {0}", address);
            }

            Console.WriteLine("--------------------");
            Console.WriteLine();
        }
Beispiel #7
0
        public void Run()
        {
            String strAddress = "127.0.0.1:10500";

            using (NodeCoreAdminClient adminClient = new NodeCoreAdminClient(strAddress))
            {
                //For simplicity, force sync:

                GetInfo(adminClient);
                ValidateAddress(adminClient);
                GetBalance(adminClient);
                GetTransactionById(adminClient);
                GetNewAddress(adminClient);
                GetBlockByIndex(adminClient);
                GetBlockByHash(adminClient);
                SendTransaction(adminClient);
            }
        }
Beispiel #8
0
        public void GetInfo(NodeCoreAdminClient adminClient)
        {
            Console.WriteLine("GetBalance");
            Console.WriteLine("NC_CLI command: getinfo");
            Console.WriteLine("NC_CLI command: getstateinfo");

            GetInfoRequest requestInfo = new GetInfoRequest();
            GetInfoReply   replyInfo   = adminClient.AdminClient.GetInfo(requestInfo);

            GetStateInfoRequest requestState = new GetStateInfoRequest();
            GetStateInfoReply   replyState   = adminClient.AdminClient.GetStateInfo(requestState);

            Console.WriteLine("NetworkHeight={0}", replyState.NetworkHeight);
            Console.WriteLine("LocalBlockchainHeight={0}", replyState.LocalBlockchainHeight);
            Console.WriteLine("ConnectedPeerCount={0}", replyState.ConnectedPeerCount);
            Console.WriteLine("LastBlock.Hash={0}", replyInfo.LastBlock.Hash.ToHexString());

            Console.WriteLine("--------------------");
            Console.WriteLine();
        }
Beispiel #9
0
        public void GetBalance(NodeCoreAdminClient adminClient)
        {
            Console.WriteLine("GetBalance");
            Console.WriteLine("NC_CLI command: getbalance [address]");

            String address = "V9pNg1wCSadKrBJiGKchpMGAtD7cT3";

            GetBalanceRequest request = new GetBalanceRequest();

            request.Addresses.Add(Utils.ConvertAddressToByteString(address));
            GetBalanceReply reply = adminClient.AdminClient.GetBalance(request);

            if (reply.Success)
            {
                Console.WriteLine("Confirmed={0}", Utils.ConvertAtomicToVbkUnits(reply.Confirmed[0].UnlockedAmount));
                Console.WriteLine("Pending={0}", Utils.ConvertAtomicToVbkUnits(reply.Unconfirmed[0].Amount));
            }

            Console.WriteLine("--------------------");
            Console.WriteLine();
        }