![]() |
VOOZH | about |
dotnet add package RemarkableTools.Mx.WalletConnect --version 2.2.0
NuGet\Install-Package RemarkableTools.Mx.WalletConnect -Version 2.2.0
<PackageReference Include="RemarkableTools.Mx.WalletConnect" Version="2.2.0" />
<PackageVersion Include="RemarkableTools.Mx.WalletConnect" Version="2.2.0" />Directory.Packages.props
<PackageReference Include="RemarkableTools.Mx.WalletConnect" />Project file
paket add RemarkableTools.Mx.WalletConnect --version 2.2.0
#r "nuget: RemarkableTools.Mx.WalletConnect, 2.2.0"
#:package RemarkableTools.Mx.WalletConnect@2.2.0
#addin nuget:?package=RemarkableTools.Mx.WalletConnect&version=2.2.0Install as a Cake Addin
#tool nuget:?package=RemarkableTools.Mx.WalletConnect&version=2.2.0Install as a Cake Tool
The library is used to connect to xPortal wallet and sign transactions.
The content is delivered via nuget package:
IApiProvider Provider = new ApiProvider(new ApiNetworkConfiguration(Network.DevNet));
NetworkConfig NetworkConfig { get; set; } = default!;
Account Account { get; set; } = default!;
var metadata = new Metadata()
{
Name = "Mx.NET.WinForms",
Description = "Mx.NET.WinForms login testing",
Icons = new[] { "https://devnet.remarkable.tools/remarkabletools.ico" },
Url = "https://devnet.remarkable.tools/"
};
const string CHAIN_ID = "D";
const string PROJECT_ID = "WALLET_CONNECT_PROJECT_ID";
IWalletConnect WalletConnect = new WalletConnect(metadata, PROJECT_ID, CHAIN_ID);
await WalletConnect.ClientInit();
WalletConnect.OnSessionEvent += OnSessionEvent;
WalletConnect.OnSessionDeleteEvent += OnSessionDeleteEvent;
try
{
var isConnected = WalletConnect.TryReconnect();
if (isConnected)
{
//initialize some variables
NetworkConfig = await NetworkConfig.GetFromNetwork(Provider);
Account = Account.From(await Provider.GetAccount(WalletConnect.Address));
//do other operations
}
}
catch (Exception ex)
{
//Exception occured
}
await WalletConnect.Initialize();
Show a QR code generated with the link from WalletConnect.URI
Start the wallet connection
try
{
await WalletConnect.Connect();
//initialize some variables
NetworkConfig = await NetworkConfig.GetFromNetwork(Provider);
Account = Account.From(await Provider.GetAccount(WalletConnect.Address));
}
catch (Exception ex)
{
//Connection was not approved
}
private void OnSessionDeleteEvent(object? sender, SessionEvent e)
{
//Wallet Disconnected
NetworkConfig = default!;
Account = default!;
}
await WalletConnect.Disconnect(); //this will also trigger OnSessionDeleteEvent
9.1 Create a transaction then sign it with WalletConnect
await Account.Sync(Provider); //always sync account first (to have the latest nonce)
var receiver = "RECEIVER_ADDRESS";
var transaction = EGLDTransactionRequest.EGLDTransfer(NetworkConfig,
Account,
Address.FromBech32(receiver),
ESDTAmount.EGLD("1.5"),
$"hello");
try
{
var transactionRequestDto = await WalletConnect.Sign(transaction);
var response = await Provider.SendTransaction(transactionRequestDto);
//Transaction was sent to network
}
catch (Exception ex)
{
//Exception occured
}
9.2 Create multiple transactions the sign them with Wallet Connect
await Account.Sync(Provider); //always sync account first (to have the latest nonce)
var receiver = "RECEIVER_ADDRESS";
var transaction1 = EGLDTransactionRequest.EGLDTransfer(
NetworkConfig,
Account,
Address.FromBech32(receiver),
ESDTAmount.EGLD("0.1"),
"tx 1");
Account.IncrementNonce();
var transaction2 = EGLDTransactionRequest.EGLDTransfer(
NetworkConfig,
Account,
Address.FromBech32(receiver),
ESDTAmount.EGLD("0.2"),
"tx 2");
Account.IncrementNonce();
var transaction3 = EGLDTransactionRequest.EGLDTransfer(
NetworkConfig,
Account,
Address.FromBech32(receiver),
ESDTAmount.EGLD("0.3"),
"tx 3");
Account.IncrementNonce();
var transactions = new[] { transaction1, transaction2, transaction3 };
try
{
var transactionsRequestDto = await WalletConnect.MultiSign(transactions);
var response = await Provider.SendTransactions(transactionsRequestDto);
//Transactions were sent to network
}
catch (Exception ex)
{
//Exception occured
}
A Windows application example can be found here.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 net5.0 was computed. net5.0-windows net5.0-windows was computed. net6.0 net6.0 is compatible. net6.0-android net6.0-android was computed. net6.0-ios net6.0-ios was computed. net6.0-maccatalyst net6.0-maccatalyst was computed. net6.0-macos net6.0-macos was computed. net6.0-tvos net6.0-tvos was computed. net6.0-windows net6.0-windows was computed. net7.0 net7.0 is compatible. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 netcoreapp3.0 was computed. netcoreapp3.1 netcoreapp3.1 is compatible. |
| .NET Standard | netstandard2.1 netstandard2.1 is compatible. |
| MonoAndroid | monoandroid monoandroid was computed. |
| MonoMac | monomac monomac was computed. |
| MonoTouch | monotouch monotouch was computed. |
| Tizen | tizen60 tizen60 was computed. |
| Xamarin.iOS | xamarinios xamarinios was computed. |
| Xamarin.Mac | xamarinmac xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos xamarinwatchos was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
.NET SDK Release