Ejemplo n.º 1
0
 public void RunBasicExample()
 {
     Console.WriteLine("Get New Address: " + blockIo.GetNewAddress("{label: 'testDest2'}").Data);
     Console.WriteLine("Withdraw from labels: " + blockIo.WithdrawFromLabels("{from_labels: 'default', to_label: 'testDest2', amount: 2.5}").Data);
     Console.WriteLine("Get Address Balance: " + blockIo.GetAddressBalance("{labels: ['default', 'testDest2']}").Data);
     Console.WriteLine("Get Sent Transactions: " + blockIo.GetTransactions("{type: 'sent'}").Data);
     Console.WriteLine("Get Received Transactions: " + blockIo.GetTransactions("{type: 'received'}").Data);
     Console.WriteLine("Get Current Price: " + blockIo.GetCurrentPrice("{base_price: 'BTC'}").Data);
 }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            var path = Path.Combine(Directory.GetCurrentDirectory());

            path = Path.GetFullPath(path) + "/.env";
            DotEnv.Config(true, path);
            DotEnv.Config(true, path, Encoding.Unicode, false);
            var envReader = new EnvReader();

            BlockIo blockIo = new BlockIo(envReader.GetStringValue("API_KEY"), envReader.GetStringValue("PIN"));

            Console.WriteLine("Get New Address: " + blockIo.GetNewAddress(new { label = "testDest2" }).Data);
            Console.WriteLine("Withdraw from labels: " + blockIo.WithdrawFromLabels(new { from_labels = "testDest2", to_label = "default", amount = "0.00061440" }).Data);
            Console.WriteLine("Get Address Balance: " + blockIo.GetAddressBalance(new { labels = "default,testDest2" }).Data);
            Console.WriteLine("Get Sent Transactions: " + blockIo.GetTransactions(new { type = "sent" }).Data);
            Console.WriteLine("Get Received Transactions: " + blockIo.GetTransactions(new { type = "received" }).Data);
            Console.WriteLine("Get Current Price: " + blockIo.GetCurrentPrice(new { base_price = "BTC" }).Data);
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            var path = Path.Combine(Directory.GetCurrentDirectory());

            path = Path.GetFullPath(path) + "/.env";
            DotEnv.Config(true, path);
            DotEnv.Config(true, path, Encoding.Unicode, false);
            var envReader = new EnvReader();

            string     DtrustAddress      = null;
            string     DtrustAddressLabel = "dTrust1_witness_v0";
            BlockIo    blockIo            = new BlockIo(envReader.GetStringValue("API_KEY"), envReader.GetStringValue("PIN"));
            List <Key> PrivKeys           = new List <Key>()
            {
                new Key().ExtractKeyFromPassphraseString("verysecretkey1"),
                new Key().ExtractKeyFromPassphraseString("verysecretkey2"),
                new Key().ExtractKeyFromPassphraseString("verysecretkey3"),
                new Key().ExtractKeyFromPassphraseString("verysecretkey4")
            };
            List <string> PublicKeys = new List <string>()
            {
                PrivKeys[0].PubKey.ToHex(),
                PrivKeys[1].PubKey.ToHex(),
                PrivKeys[2].PubKey.ToHex(),
                PrivKeys[3].PubKey.ToHex()
            };

            string signers = string.Join(",", PublicKeys);
            var    res     = blockIo.GetNewDtrustAddress(new { label = DtrustAddressLabel, public_keys = signers, required_signatures = "3", address_type = "witness_v0" });

            if (res.Status != "success")
            {
                Console.WriteLine("Error: " + res.Data);
                // if this failed, we probably created the same label before. let's fetch the address then

                res           = blockIo.GetDtrustAddressByLabel(new { label = DtrustAddressLabel });
                DtrustAddress = res.Data.address;
            }
            else
            {
                DtrustAddress = res.Data.address;
            }
            Console.WriteLine("Our dTrust Address: " + DtrustAddress);

            res = blockIo.WithdrawFromLabels(new { from_labels = "default", to_address = DtrustAddress, amounts = "0.0002" });
            Console.WriteLine("Withdrawal Response: " + res.Data);

            res = blockIo.GetDtrustAddressBalance(new { label = DtrustAddressLabel });
            Console.WriteLine("Dtrust address label Balance: " + res.Data);

            var normalAddress = blockIo.GetAddressByLabel(new { label = "default" }).Data.address.ToString();

            Console.WriteLine("Withdrawing from dtrust_address_label to the 'default' label in normal multisig");

            res = blockIo.WithdrawFromDtrustAddress(new { from_labels = DtrustAddressLabel, to_address = normalAddress, amounts = "0.0002" });

            Console.WriteLine("Withdraw from Dtrust Address response: " + res.Data);

            int keyIte;

            foreach (dynamic input in res.Data.inputs)
            {
                keyIte = 0;
                foreach (dynamic signer in input.signers)
                {
                    signer.signed_data = Helper.SignInputs(PrivKeys[keyIte++], input.data_to_sign.ToString(), signer.signer_public_key.ToString());
                }
            }
            Console.WriteLine("Our Signed Request: " + res.Data);
            Console.WriteLine("Finalize Withdrawal: ");
            Console.WriteLine(blockIo.SignAndFinalizeWithdrawal(res.Data.ToString()).Data);
            Console.WriteLine("Get transactions sent by our dtrust_address_label address: ");
            Console.WriteLine(blockIo.GetDtrustTransactions(new { type = "sent", labels = DtrustAddressLabel }).Data);
        }