Example #1
0
        public void Init()
        {
            _masterkey = new ExtKey();
            _keypath   = new KeyPath(0, 2);
            _net       = Network.Main;

            _walletkey = new WalletKey(_masterkey, _keypath, _net);
        }
Example #2
0
 private static void MineAddresses()
 {
     while (true)
     {
         var key = WalletKey.Create();
         if (key.Address.StartsWith("1Onur"))
         {
             Console.WriteLine(key.Address);
         }
     }
 }
Example #3
0
        public void TestSignature()
        {
            var wk = WalletKey.Create();

            const string signedMessage   = "Wallet Test 2017";
            const string unsignedMessage = "Tallet West 1720";

            var signature = wk.DSA.SignData(Encoding.UTF8.GetBytes(signedMessage), HashAlgorithmName.SHA256);

            Assert.True(wk.DSA.VerifyData(Encoding.UTF8.GetBytes(signedMessage), signature, HashAlgorithmName.SHA256));
            Assert.False(wk.DSA.VerifyData(Encoding.UTF8.GetBytes(unsignedMessage), signature, HashAlgorithmName.SHA256));
            Assert.False(wk.DSA.VerifyData(Encoding.UTF8.GetBytes(signedMessage), signature, HashAlgorithmName.MD5));
        }
Example #4
0
        private static void TestSpeed()
        {
            const uint ITERATIONS = 10_000_000;

            var key = WalletKey.Create();

            var txs = new List <Transaction>()
            {
                new Transaction()
                {
                    OpCode    = OperationCode.Claim,
                    Timestamp = DateTime.UtcNow,
                },
            };

            txs.First().Outputs.Add(Tuple.Create <string, ulong>(key.Address, 50 * 100_000));

            var blk = new Block
            {
                PreviousBlock = "00".ToHash(),
                TxMerkleRoot  = txs
                                .OrderBy(tx => tx.Timestamp)
                                .Select(tx => tx.GetProof())
                                .GetMerkleRoot(),
                Timestamp    = DateTime.UtcNow,
                Throttle     = 0,
                Transactions = txs.ToList(),
            };

            {
                var sw = Stopwatch.StartNew();
                for (var i = 0; i < ITERATIONS; i++)
                {
                    blk.GetProof();
                }
                sw.Stop();
                Console.WriteLine($"{ITERATIONS} GetProof calls took {sw.Elapsed}");
            }

            //{
            //    var sw = Stopwatch.StartNew();
            //    for (var i = 0; i < 1000000; i++)
            //        blk.GetAltProof();
            //    sw.Stop();
            //    Console.WriteLine($"1000000 GetAltProof {sw.Elapsed}");
            //}
        }
        static async Task Main(string[] args)
        {
            Console.WriteLine("Press enter to start");
            Console.ReadLine();
            var client           = new WalletManagerClient("http://localhost:5001");
            var signFacadeClient = new BlockchainSignFacadeClient("http://blockchain-sign-facade.services.svc.cluster.local/",
                                                                  "350AFDCE-A027-4843-935F-EF5C377CE2EB", new EmptyLog());
            var senderWallet = await signFacadeClient.CreateWalletAsync("Bitcoin");

            var receiverWallet = await signFacadeClient.CreateWalletAsync("Bitcoin");

            var walletKey = new WalletKey()
            {
                BlockchainAssetId = "BTC",
                BlockchainId      = "Bitcoin",
                WalletAddress     = senderWallet.PublicAddress
            };

            var balance1 = await client.Balances.GetAllBalancesForBlockchainAsync(new GetAllBalancesForBlockchainRequest()
            {
                BlockchainId = "Bitcoin",
                Skip         = 0,
                Take         = 100
            });

            //await client.Operations.GetOperationsForWallet();

            var task = client.Wallets.RegisterWalletAsync(new RegisterWalletRequest()
            {
                WalletKey = walletKey
            }).ResponseAsync.ContinueWith(async
                                              (prev) =>
            {
                await prev;

                var operationId      = Guid.NewGuid().ToString();
                var builtTransaction = await client.Transfers.BuildTransactionAsync(new BuildTransactionRequest()
                {
                    OperationId        = operationId,
                    BlockchainAssetId  = "BTC",
                    BlockchainId       = "Bitcoin",
                    FromAddress        = senderWallet.PublicAddress,
                    FromAddressContext = senderWallet.AddressContext,
                    Amount             = "1000000",
                    ToAddress          = receiverWallet.PublicAddress,
                    IncludeFee         = true
                });

                var signedTransaction =
                    await signFacadeClient.SignTransactionAsync("Bitcoin",
                                                                new SignTransactionRequest()
                {
                    PublicAddresses    = new[] { senderWallet.PublicAddress },
                    TransactionContext = builtTransaction.TransactionContext
                });

                var sendTransactionResult = await client.Transfers.BroadcastTransactionAsync(new BroadcastTransactionRequest()
                {
                    BlockchainId      = "Bitcoin",
                    SignedTransaction = signedTransaction.SignedTransaction,
                    OperationId       = operationId
                });

                var operations = await client.Operations.GetOperationsAsync(new GetOperationRequest()
                {
                    WalletKey = walletKey,
                    Skip      = 0,
                    Take      = 100
                });

                var balance = await client.Balances.GetBalanceAsync(new GetBalanceRequest()
                {
                    WalletKey = walletKey,
                });
            });

            while (true)
            {
                try
                {
                    var sw = new Stopwatch();
                    sw.Start();
                    var result = await client.Monitoring.IsAliveAsync(new IsAliveRequest());

                    sw.Stop();
                    Console.WriteLine($"{result.Name}  {sw.ElapsedMilliseconds} ms");
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }

                await Task.Delay(1000);
            }
        }