Esempio n. 1
0
        static void CreateTransaction(List <string> from, string to, int amount, string change, BlockChainClassLib.CommandProcessor cmdProc)
        {
            WalletLib.WalletEntry we;

            //build the transaction:
            BlockChainClassLib.Transaction t = new BlockChainClassLib.Transaction();
            t.id = Guid.NewGuid();

            foreach (string address in from)
            {
                we = cmdProc.Wallet_FindEntry(address);
                string publicKey = we.publicKey;
                string signature = cmdProc.SignAddress(address, t.id.ToString(), we.publicKey, we.privateKey);
                t.Inputs.Add(new BlockChainClassLib.Input(address, signature, publicKey));
            }

            //add the primary payment address
            t.Outputs.Add(new BlockChainClassLib.Output(to, amount));

            //add the address to collect change
            t.Outputs.Add(new BlockChainClassLib.Output(change, 0));

            //sign the transaction
            we          = cmdProc.Wallet_FindEntry(from[0]);
            t.PublicKey = we.publicKey;
            cmdProc.SignTransaction(t, we.publicKey, we.privateKey);

            //Instruct the command processor to submit the transaction
            cmdProc.Transfer(t);
        }
Esempio n. 2
0
        public void TestCommandLib_RLWE()
        {
            CryptoProvider.RLWE_Provider provider = new CryptoProvider.RLWE_Provider();
            provider.GenerateKeyPair();

            BlockChainClassLib.Transaction t = new BlockChainClassLib.Transaction();
            t.id = Guid.NewGuid();

            string publicKey = provider.ExportPublicKey();
            string address   = CryptoProvider.AddressEncoder.CreateAddress(publicKey);
            string signature = CryptoProvider.AddressEncoder.SignAddress(address, t.id.ToString(), provider);

            t.Inputs.Add(new BlockChainClassLib.Input(address, signature, publicKey));
            t.Outputs.Add(new BlockChainClassLib.Output("paul", 1));

            BlockChainClassLib.CommandProcessor cmdProc = new BlockChainClassLib.CommandProcessor("RLWE", "localhost", "12345");
            //string json = Newtonsoft.Json.JsonConvert.SerializeObject(t);

            cmdProc.Transfer(t);
            cmdProc.mine(address);
        }