QBitNinjaClient – Transaction tramite id

Lo scorso week-end ho deciso di provare a scrivere le mie prime righe di codice legate al mondo blockchain e per farlo ho sfruttato il componente QBitNinjaClient disponibile tramite nuget. Come primo esperimento ho provato a leggere tutte le informazioni relative ad una transazione e successivamente trasformarle in json traminte Newtonsoft.

QBitNinja.Client - nuget

Installare QBitNinja.Client è davvero semplice ed è possibile farlo con la seguente istruzione da riga di comando (=oppure sfruttando l’interfaccia grafica di visual studio)

Install-Package QBitNinja.Client -Version 1.0.3.50

Per maggiori dettagli vi rimando alla pagina di dettaglio " NuGet Gallery | QBitNinja.Client

QBitNinja.Client - GetTransaction

Di seguito vi riporto la classe utilizzata per ottenere il json con tutti i dettagli della blockchain transaction in formato json partendo dall’id univoco. Per ottenere l’id di prova ho aperto coinbase (Buy/Sell cryptocurrency) ed aprendo una transazione in bitcoin ho preso il suo id univoco tramite il link “Visualizza transazione” QBitNinja.Client - GetTransaction

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

public class QBitNinjaClientGetTransactionDemo
{

	private JsonSerializerSettings _settings = null;

	public QBitNinjaClientGetTransactionDemo()
	{
		_settings = new JsonSerializerSettings();
		NBitcoin.JsonConverters.Serializer.RegisterFrontConverters(_settings, Network.Main);
	}


	public string GetJson(string id, bool min = false)
	{

		QBitNinjaClient ninjaClient = new QBitNinjaClient(Network.Main);
		var transactionId = uint256.Parse(id);

		GetTransactionResponse response = ninjaClient.GetTransaction(transactionId).Result;

		string result = JsonConvert.SerializeObject(
			response,
			(min ? Formatting.None: Formatting.Indented),
			_settings
		);

		return result;
	}

}

Per potere utilizzare il codice appena proposto vi serviranno i seguenti using all’interno del codice

1
2
3
4
5
6

using NBitcoin;
using Newtonsoft.Json;
using QBitNinja.Client;
using QBitNinja.Client.Models;

Vi segnalo (e ricordo) di definire il vostro JsonSerializerSettings tramite NBitcoin se desiderate convertire il risultato di GetTransactionResponse in json. Se così non fosse, questa operazione nel costruttore potete non farla.