public void CreateBtcTransactions() { var uriBitcoinRpcServer = ConfigurationManager.AppSettings["UriBitcoinRpcServer"]; var loginBitcoinRpcServer = ConfigurationManager.AppSettings["LoginBitcoinRpcServer"]; var passwordBitcoinRpcServer = ConfigurationManager.AppSettings["PasswordBitcoinRpcServer"]; StopBitcoinNodeService(); StartBitcoinNodeService(); GenerateLocalBitcoins(); var accounts = GetLocalAccounts(80); using (var client = new BitcoinNetClient(new Uri("http://localhost:18332"), loginBitcoinRpcServer, passwordBitcoinRpcServer)) { for (var i = 0; i <= 7; i++) { Log.Instance.Info($"Dispatch of bitcoins, {i}-th generation..."); for (var j = 0; j < 10; j++) { var address = client.GetNewAddress(accounts[i * 10 + j]); for (var k = 0; k < 2; k++) { client.SendToAddress(address, 50.00f, "send bitcoin for init data", "send bitcoin for init data"); } } if (i > 6) { continue; } Log.Instance.Info($"Confirm bitcoin transactions, {i}-th generation"); ExternalGenerationHashBlocks(1); } } }
protected string GetAddressForAccountOnDataProcessingAction(string json) { string address; GetDataForRpcBitcoinServer(out var uriServer, out var login, out var password); var request = JsonConvert.DeserializeObject <GetAddressForAccountRequest>(json); var server = new Uri(uriServer); using (var client = new BitcoinNetClient(server, login, password)) address = client.GetNewAddress(request.Account); var response = new GetAddressForAccountResponse(address); return(JsonConvert.SerializeObject(response)); }
protected void ExecuteSendBtcRequests() { var container = UnityConfig.GetConfiguredContainer(); GetDataForRpcBitcoinServer(out var uriServer, out var login, out var password); var server = new Uri(uriServer); using (var context = container.Resolve <IDalContext>()) { var requests = context.SendBtcRequests.Where(sbr => !sbr.IsExecute).ToList(); using (var client = new BitcoinNetClient(server, login, password)) { requests.ForEach(sbr => client.SendToAddress(sbr.Address, sbr.Amount, "send bitcoin for execute request in Core.Bitcon.Service", "send bitcoin for execute request in Core.Bitcon.Service")); } requests.ForEach(sbr => sbr.IsExecute = true); context.SaveChangesAsync().Wait(); } }
protected void GetStateBitcoinWallets() { var container = UnityConfig.GetConfiguredContainer(); GetDataForRpcBitcoinServer(out var uriServer, out var login, out var password); var server = new Uri(uriServer); using (var context = container.Resolve <IDalContext>()) { List <ListReceivedByAddressResponseElement> wallets; List <GetTransactionResponse> transactions; using (var client = new BitcoinNetClient(server, login, password)) { wallets = client.ListReceivedByAddress(0).ToList(); var transactionsIds = wallets.SelectMany(w => w.TxIds); transactions = transactionsIds.Select(t => client.GetTransaction(t)).ToList(); } UpdateWallets(context, wallets); UpdateTransactions(context, transactions, "send", GetOutgoingDbTransactions, AddOutgoingTransactionInDb); UpdateTransactions(context, transactions, "receive", GetIncomingDbTransactions, AddIncomingTransactionInDb); } }