Last updated 7 months ago
If you are selling an NFT in your game, it is important to check the following :
Is user authenticated with a email?
Is user has a wallet?
Create wallet
Example flow for NFT purchase
using UnityEngine; using RGN; public class WalletExamples : MonoBehaviour { private bool IsUserAuthenticatedWithEmail() { return RGNCoreBuilder.I.CurrentAuthState.AuthProvider == EnumAuthProvider.Email; } }
using UnityEngine; using RGN; using RGN.Modules.Wallets; using System.Threading.Tasks; public class WalletExamples : MonoBehaviour { private async Task<bool> IsUserHasBlockchainRequirement() { bool hasRequirement = await WalletsModule.I.IsUserHasBlockchainRequirementAsync(); return hasRequirement; } }
using UnityEngine; using RGN.Modules.Wallets; public class WalletExamples : MonoBehaviour { private void CreateWallet() { // This will open the OAuth form for the wallet creation WalletsModule.I.CreateWallet(); } {
using System.Collections.Generic; using UnityEngine; using RGN; using RGN.Modules.Wallets; using RGN.Modules.SignIn; using RGN.Modules.Store; public class WalletExamples : MonoBehaviour { private async void BuyNFTVirtualItem() { bool authWithEmail = RGNCoreBuilder.I.CurrentAuthState.AuthProvider == EnumAuthProvider.Email; if (!authWithEmail) { EmailSignInModule.I.TryToSignIn(); return; } bool hasBlockchainRequirement = await WalletsModule.I.IsUserHasBlockchainRequirementAsync(); if (!hasBlockchainRequirement) { WalletsModule.I.CreateWallet(); return; } List<string> virtualItemIds = new List<string> { "myNftVirtualItemId" }; PurchaseResult purchaseResult = await StoreModule.I.BuyVirtualItemsAsync(virtualItemIds); } }