RippleLibSharp Ledger Tracker Example
Import the necessary libraries
using RippleLibSharp.Network;
using using RippleLibSharp.Commands.Subscriptions;
Connect to the xrp ledger
var tokenSource = new CancellationTokenSource();
var token = tokenSource.Token;
ConnectionSettings connectInfo = new ConnectionSettings
{
ServerUrls = new string[] { "wss://s1.ripple.com:443", "wss://s2.ripple.com:443" },
LocalUrl = "localhost",
UserAgent = "optional spoof browser user agent",
Reconnect = true
};
NetworkInterface network = new NetworkInterface(connectInfo);
bool didConnect = network.Connect();
if (!didConnect) {
return;
}
Set a delegate function for ledget events
LedgerTracker.OnLedgerClosed += (object sender, LedgerClosed ledgerCloseEvent) => {
int fee_base = ledgerCloseEvent.fee_base;
int fee_ref = ledgerCloseEvent.fee_ref;
string ledger_hash = ledgerCloseEvent.ledger_hash;
uint ledger_index = ledgerCloseEvent.ledger_index;
int ledger_time = ledgerCloseEvent.ledger_time;
DateTime receivedTime = ledgerCloseEvent.ReceivedTime;
int reserve_base = ledgerCloseEvent.reserve_base;
int reserve_inc = ledgerCloseEvent.reserve_inc;
int txn_count = ledgerCloseEvent.txn_count;
string validated_ledgers = ledgerCloseEvent.validated_ledgers;
};
LedgerTracker.OnServerStateChanged += (object sender, ServerStateEventArgs serverStateEvent) => {
var base_fee = serverStateEvent.base_fee;
var load_base = serverStateEvent.load_base;
var load_factor = serverStateEvent.load_factor;
var load_factor_fee_escalation = serverStateEvent.load_factor_fee_escalation;
var load_factor_fee_queue = serverStateEvent.load_factor_fee_queue;
var load_factor_fee_reference = serverStateEvent.load_factor_fee_reference;
var load_factor_server = serverStateEvent.load_factor_server;
var server_status = serverStateEvent.server_status;
var eventType = serverStateEvent.type;
};
Subscribe to ledger events
Subscribe.LedgerSubscribe (network, token);
Subscribe.ServerSubscribe (network, token);