public void Init() { _masterkey = new ExtKey(); _keypath = new KeyPath(0, 2); _net = Network.Main; _walletkey = new WalletKey(_masterkey, _keypath, _net); }
private static void MineAddresses() { while (true) { var key = WalletKey.Create(); if (key.Address.StartsWith("1Onur")) { Console.WriteLine(key.Address); } } }
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)); }
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); } }