/// <summary> /// Method to list transactions for specify address. /// </summary> /// <param name="address"></param> /// <param name="direction"></param> /// <returns></returns> public ListTransactionsForAddressResult ListTransactionsForAddress(string address, TransactionDirection direction = TransactionDirection.BOTH) { ListTransactionsForAddressResult final = new ListTransactionsForAddressResult(); final.transactions = new List <Transaction>(); ListTransactionsResult list = ListTransactions(1000000); var transactions = list.result.Where(x => x.address == address); if (direction == TransactionDirection.SENT) { transactions = transactions.Where(x => x.category == "send"); } else if (direction == TransactionDirection.RECEIVED) { transactions = transactions.Where(x => x.category == "receive"); } transactions = transactions.Select(x => x).OrderByDescending(x => x.blockindex); foreach (Transaction trans in transactions) { final.transactions.Add(trans); } return(final); }
/// <summary> /// List transactions default. /// </summary> /// <returns></returns> public ListTransactionsResult ListTransactions() { IRestRequest req = new RestRequest(Method.POST); req = addMandatoryHeader(req); JObject obj = BodySkeleton("listtransactions"); req.AddJsonBody(obj.ToString()); var response = client.Execute(req); ValidateResponse(response); ListTransactionsResult res = JsonConvert.DeserializeObject <ListTransactionsResult>(response.Content); return(res); }
private void CheckNewTransaction(object sender, EventArgs e) { if (!duringAction) { duringAction = true; ListTransactionsResult result = _instance.ListTransactions(100000); if (dataType == DataType.DATABASE) { lock (_transactions) { foreach (Transaction transaction in result.result) { var exist = _transactions._transaction.Where(x => x.txid == transaction.txid && x.category == transaction.category).ToList(); if (exist.Count == 0) { _transactions.Add(transaction); onTransaction.Invoke(transaction); } } _transactions.SaveChanges(); } } if (dataType == DataType.LOCAL) { lock (_listTransactions) { foreach (Transaction transaction in result.result) { var exist = _listTransactions.Where(x => x.txid == transaction.txid && x.category == transaction.category).Select(x => x).ToList(); if (exist.Count == 0) { _listTransactions.Add(transaction); onTransaction.Invoke(transaction); } } } } } duringAction = false; }
/// <summary> /// List transactions with specify parameters. /// </summary> /// <param name="count"> /// Default 10, count of transactions returned. /// </param> /// <param name="skip"> /// how much transactions should be skipped? /// </param> /// <param name="include_watchonly"> /// include watchonly addresses? /// </param> /// <param name="dummy"> /// leave it alone. /// </param> /// <returns></returns> public ListTransactionsResult ListTransactions(int count = 10, int skip = 0, bool include_watchonly = false, string dummy = "*") { IRestRequest req = new RestRequest(Method.POST); req = addMandatoryHeader(req); JArray parameter = new JArray(); parameter.Add(dummy); parameter.Add(count); parameter.Add(skip); parameter.Add(include_watchonly); JObject obj = BodySkeleton("listtransactions", parameter); req.AddJsonBody(obj.ToString()); var response = client.Execute(req); ValidateResponse(response); ListTransactionsResult res = JsonConvert.DeserializeObject <ListTransactionsResult>(response.Content); return(res); }