TonSdk.Adnl 0.2.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package TonSdk.Adnl --version 0.2.2                
NuGet\Install-Package TonSdk.Adnl -Version 0.2.2                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TonSdk.Adnl" Version="0.2.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add TonSdk.Adnl --version 0.2.2                
#r "nuget: TonSdk.Adnl, 0.2.2"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install TonSdk.Adnl as a Cake Addin
#addin nuget:?package=TonSdk.Adnl&version=0.2.2

// Install TonSdk.Adnl as a Cake Tool
#tool nuget:?package=TonSdk.Adnl&version=0.2.2                

TonSdk.Adnl

Overview example

// Define constants for the ADNL client configuration
private static readonly int AdnlHost = 84478511; // Host ID for ADNL client
private static readonly int AdnlPort = 19949; // Port number for ADNL client
private static readonly string AdnlPubKey = "n4VDnSCUuSpjnCyUk9e3QOOd6o0ItSWYbTnW3Wnn8wk="; // Public key for ADNL client

// Initialize the ADNL client with the predefined settings
AdnlClientTcp client = new AdnlClientTcp(AdnlHost, AdnlPort, AdnlPubKey);

// Subscribe to various client events
client.Connected += OnClientConnected; // Event when client connected, but not ready
client.Ready += OnClientReady; // Event when client is ready
client.Closed += OnClientClosed; // Event when client connection closes
client.DataReceived += OnDataReceived; // Event when data is received
client.ErrorOccurred += OnErrorOccured; // Event when an error occurs

// Connect the client and wait for input before closing
await client.Connect();

// Event handlers for the ADNL client
private static void OnClientConnected()
{
    Console.WriteLine("Connected");
}

private static void OnClientClosed()
{
    Console.WriteLine("Closed");
}

private static void OnDataReceived(byte[] data)
{
    Console.WriteLine("Data Received");
    Console.WriteLine(Utils.BytesToHex(data));
}

private static async void OnClientReady()
{
    Console.WriteLine("Ready");
    
    // Send a predefined byte array (TL) to the client
    byte[] tlGettime = Utils.HexToBytes("7af98bb435263e6c95d6fecb497dfd0aa5f031e7d412986b5ce720496db512052e8f2d100cdf068c7904345aad16000000000000");
    await client.Write(tlGettime);
}

private static void OnErrorOccured(Exception ex)
{
    throw ex;
}
Write byte data method
// Write byte array via NetworkStream. Should be predefined by using TL Schemes 
// TL docs: https://core.telegram.org/mtproto/TL or https://docs.ton.org/develop/data-formats/tl
await client.Write(byte[] data);
End connection method
// Close and Dispose connection to Liteserver
client.End();

LiteClient overview example

// Initialize the Lite client with the predefined settings
LiteClient liteClient = new LiteClient(AdnlHost, AdnlPort, AdnlPubKey);

// Connect the client
await liteClient.Connect();

// It is optimal to send a ping packet once every 5 seconds.
// This is necessary to maintain the connection while no data is being transmitted,
// otherwise the server may terminate the connection.
await client.PingPong();

// RunSmcMethod example
Address destination = new Address("xxx");
RunSmcMethodResult result = await liteClient.RunSmcMethod(destination, "seqno", Array.Empty<byte>(), new RunSmcOptions() 
{ Result = true });

// GetMasterChainInfo example
MasterChainInfo mcInfo = await liteClient.GetMasterChainInfo();
BlockIdExtended blockId = mcInfo.LastBlockId;

// Disconnect the client
liteClient.Disconnect();

Donation

continuation.ton

License

MIT License

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on TonSdk.Adnl:

Package Downloads
TonSdk.Client

Ton Client library for work with HTTP API and Lite Servers.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.2.4 7,062 9/14/2024
0.2.3 563 7/5/2024
0.2.2 4,840 7/4/2024
0.2.1 2,950 5/16/2024
0.1.5 1,147 4/8/2024
0.1.4 148 4/8/2024
0.1.3 309 12/7/2023
0.1.2 162 11/30/2023
0.1.1 166 11/13/2023
0.1.0 141 11/13/2023