Are there any C# wappers that take an OOO approach to the Bitcoin REST API, and encapsulate it in an easy to use format?
6 Answers
Take a look at this c# bitcoin rpc api wrapper: https://github.com/GeorgeKimionis/BitcoinLib that, unlike bitnet, is up-to-date.
-
2
The newest up to date c# library for .net is .Net-Bitcoin-RPC with full documentation about each call. Very easy to use.
I'm the author of WalletClient.net and it's fairly up to date, covering most of the json-rpc commands. It has an async model and strongly typed return objects. There's also specific support for Blockchain.info vs native Bitcoind.
Let me know what you think.
-
1I like the Blockchain integration, George's solution seems to be better on the QT side. Feb 13, 2014 at 2:18
I wrote my own wrapper, it wasn't complicated, this is the basic gist of it below. Adapt for your specific needs.
Example of getting raw transaction
internal static string GetRawTransaction(string txid)
{
var CredentialCache = new CredentialCache();
CredentialCache.Add(new Uri("http://127.0.0.1:8332"), "Basic", new NetworkCredential("[your rpc username]", "your rpc password"));
var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://127.0.0.1:8332");
httpWebRequest.ContentType = "text/json";
httpWebRequest.Method = "POST";
httpWebRequest.Credentials = CredentialCache;
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json;
json = "{ \"jsonrpc\": \"2.0\", \"id\":\"" + Guid.NewGuid().ToString() + "\", \"method\": \"getrawtransaction\",\"params\":[\"" + txid + "\",1]}";
streamWriter.Write(json);
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var responseText = streamReader.ReadToEnd();
return responseText;
}
}
https://github.com/Glasswalker/Wallet.Net/tree/master/Bitnet.Client I use bitnet client, nothing but good things to say, if its missing anything you need its quite easy to add/modify anything you need.
If you open up bitcoin -qt then go to the console and type in help you will see a list of all the methods. (as not every single one is implemented in bitnet)
Here is my job, mostly for transactions but probably I'll update it in free time