nft-faucet/NftFaucet/Pages/ConnectIpfs.razor.cs
2022-04-05 00:29:34 +02:00

44 lines
1.2 KiB
C#

using Microsoft.AspNetCore.Components;
using Microsoft.JSInterop;
using NftFaucet.Components;
using NftFaucet.Extensions;
using NftFaucet.Utils;
namespace NftFaucet.Pages;
public class ConnectIpfsComponent : BasicComponent
{
[Inject]
protected IJSRuntime JsRuntime { get; set; }
protected string TitleText => "In order to use Crust (IPFS provider), please sign the message";
protected string ButtonText => "Sign message";
protected override async Task OnInitializedAsync()
{
if (await Metamask.IsConnected())
{
await Metamask.RefreshAddress();
}
if (AppState.IpfsContext.IsInitialized)
{
UriHelper.NavigateToRelative("/");
}
}
protected async Task Sign()
{
var address = Metamask.Address.ToLowerInvariant();
var signedMessageResult = await ResultWrapper.Wrap(Metamask.Service.SignAsync(address));
if (signedMessageResult.IsFailure)
{
return;
}
var signedMessage = signedMessageResult.Value;
AppState.IpfsContext.Initialize(address, signedMessage);
UriHelper.NavigateToRelative("/");
}
}