The library is used to connect to MultiversX Web Wallet and sign transactions.
The content is delivered via nuget package:
- Define the network provider which can be MainNet/DevNet/TestNet
IApiProvider provider = new ApiProvider(new ApiNetworkConfiguration(Network.DevNet));
- Define the Web Wallet
IWebWallet IWebWallet = new WebWallet(provider.NetworkConfiguration);
- Create transaction to sign
var networkConfig = await NetworkConfig.GetFromNetwork(provider);
var account = Account.From(await provider.GetAccount("USER_ACCOUNT_ADDRESS"));
var receiverAddress = Address.FromBech32("RECEIVER_ADDRESS");
var transactionRequest = EGLDTransactionRequest.EGLDTransfer(
networkConfig,
account,
receiverAddress,
ESDTAmount.EGLD("1"));
var transactionToSignUrl = IWebWallet.CreateTransactionToSignUrl(transactionRequest, "https://website.com");
-
Navigate to
transactionToSignUrl
and sign the transaction
*callback website address after signing transaction is https://website.com and is followed by some arguments?TRANSACTION_ARGUMENTS
-
Get the transaction from URL (https://website.com?TRANSACTION_ARGUMENTS)
WalletTransactionStatus status;
var transaction = IWebWallet.GetTransactionsFromUrl("https://website.com?TRANSACTION_ARGUMENTS", out status);
switch(status)
{
case WalletTransactionStatus.TransactionsSigned:
var response = await provider.SendTransactions(transaction);
Console.WriteLine(response.TxHash);
break;
case WalletTransactionStatus.Cancelled:
Console.WriteLine("Transaction was canceled");
break;
case WalletTransactionStatus.Unknown:
Console.WriteLine("Some error occured");
break;
}