Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions ChainSafe.Gaming.sln
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChainSafe.Gaming.Unity.Ethe
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChainSafe.Gaming.Mud", "src\ChainSafe.Gaming.Mud\ChainSafe.Gaming.Mud.csproj", "{084E4FCB-9376-4B29-AA8C-6871E13906E6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChainSafe.Gaming.EmbeddedWallet", "src\ChainSafe.Gaming.EmbeddedWallet\ChainSafe.Gaming.EmbeddedWallet.csproj", "{CFFFCC7F-946E-4371-A235-18250B6A5E09}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -161,6 +163,12 @@ Global
{084E4FCB-9376-4B29-AA8C-6871E13906E6}.Release|Any CPU.Build.0 = Release|Any CPU
{084E4FCB-9376-4B29-AA8C-6871E13906E6}.Test|Any CPU.ActiveCfg = Debug|Any CPU
{084E4FCB-9376-4B29-AA8C-6871E13906E6}.Test|Any CPU.Build.0 = Debug|Any CPU
{CFFFCC7F-946E-4371-A235-18250B6A5E09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CFFFCC7F-946E-4371-A235-18250B6A5E09}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CFFFCC7F-946E-4371-A235-18250B6A5E09}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CFFFCC7F-946E-4371-A235-18250B6A5E09}.Release|Any CPU.Build.0 = Release|Any CPU
{CFFFCC7F-946E-4371-A235-18250B6A5E09}.Test|Any CPU.ActiveCfg = Debug|Any CPU
{CFFFCC7F-946E-4371-A235-18250B6A5E09}.Test|Any CPU.Build.0 = Debug|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
using System;
using System.Threading;
using System.Threading.Tasks;
using ChainSafe.Gaming.EmbeddedWallet;
using Network = Web3Auth.Network;
using ThemeModes = Web3Auth.ThemeModes;
using Language = Web3Auth.Language;

namespace ChainSafe.GamingSdk.Web3Auth
{
/// <summary>
/// Configuration options for initializing a Web3AuthWallet instance.
/// </summary>
public interface IWeb3AuthConfig : IEmbeddedWalletConfig
{
// Name of the App.
public string AppName { get; }
// Client ID you get from Web3Auth dashboard.
public string ClientId { get; }
// Redirect URI for the app.
public string RedirectUri { get; }
// Network to connect to (MainNet, TestNet...).
public Network Network { get; }
public ThemeModes Theme { get; }
public Language Language { get; }

/// <summary>
/// Gets or sets the Web3AuthOptions for configuring the Web3Auth instance associated with the wallet.
/// </summary>
public Web3AuthOptions Web3AuthOptions => new Web3AuthOptions
{
clientId = ClientId,
redirectUrl = new Uri(RedirectUri),
network = Network,

whiteLabel = new()
{
mode = Theme,
defaultLanguage = Language,
appName = AppName,
}
};

/// <summary>
/// Login Provider to use when connecting the wallet, like Google, facebook etc...
/// </summary>
public Task<Provider> ProviderTask { get; }

/// <summary>
/// Get the SessionId on connection from the provider.
/// </summary>
public Task<string> SessionTask { get; }

/// <summary>
/// Token for cancelling a connection
/// </summary>
public CancellationToken CancellationToken { get; }

/// <summary>
/// Remember this session
/// </summary>
public bool RememberMe { get; }

/// <summary>
/// Remember a previous session and login automatically
/// </summary>
public bool AutoLogin { get; }
}
}

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6292,33 +6292,22 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
customTokenPlaceHolder: {fileID: 6238643033416456295}
customNftPlaceHolder: {fileID: 3893186881389953187}
customTokenDisplayErc20Parent: {fileID: 5657123885924398801}
customNftDisplayParent: {fileID: 8176955415891050272}
customTokenDisplayErc20: {fileID: 1544044832913725164}
customNftDisplay: {fileID: 6034000924353824336}
transferTokensContainer: {fileID: 6754551686753108061}
addCustomTokensMenu: {fileID: 7449198859952559396}
addCustomNftMenu: {fileID: 1102691479002500486}
selectedTokenToTransfer: {fileID: 1643824617281436576}
customTokenAddressInput: {fileID: 1450622858095165912}
customTokenSymbolInput: {fileID: 3033696630416049437}
customNftAddressInput: {fileID: 431849629550995913}
customNftSymbolInput: {fileID: 7343186495474426007}
customNftIdInput: {fileID: 6727692128954422283}
transferTokensWalletInput: {fileID: 7702073597766504067}
transferTokensAmountInput: {fileID: 3540026797197030748}
customNftAmountText: {fileID: 8143053246957829318}
customNftSymbolText: {fileID: 1935757266164244188}
customTokenAmountText: {fileID: 8346934949460858011}
customTokenSymbolText: {fileID: 6891909999124788805}
nativeTokenSymbolText: {fileID: 6256012485412186482}
nativeTokenAmountText: {fileID: 1012412206096704489}
addTokensMenuButton: {fileID: 1391477503969280662}
addNftsMenuButton: {fileID: 3285911010377504504}
closeAddTokensMenuButton: {fileID: 5417894310233579526}
closeAddNftMenuButton: {fileID: 176133887779786777}
addNftButton: {fileID: 2207920767897871812}
addTokenButton: {fileID: 3172254933871926392}
transferTokensMenuButton: {fileID: 3166722148647569110}
closeTransferTokensButton: {fileID: 3090088527211704690}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using ChainSafe.Gaming.EmbeddedWallet;
using ChainSafe.Gaming.Evm.Transactions;
using ChainSafe.Gaming.UnityPackage;
using ChainSafe.GamingSdk.Web3Auth;
Expand Down Expand Up @@ -33,8 +34,8 @@ public class Web3AuthWalletGUITxManager : MonoBehaviour
private int txHistoryDisplayCount = 20;

private bool _processingTransaction;
private IWeb3AuthTransactionHandler _transactionHandler;
private readonly Queue<TransactionRequest> _transactionQueue = new();
private IEmbeddedWalletTransactionHandler _transactionHandler;
private TransactionPool _transactionPool;

#endregion

Expand All @@ -59,33 +60,30 @@ private void Awake()
rejectRequestButton.onClick.AddListener(RejectRequest);
autoTxToggle.onValueChanged.AddListener(ToggleAutoTx);

_transactionHandler = Web3Unity.Web3.ServiceProvider.GetService<IWeb3AuthTransactionHandler>();
_transactionHandler = Web3Unity.Web3.ServiceProvider.GetService<IEmbeddedWalletTransactionHandler>();
_transactionPool = Web3Unity.Web3.ServiceProvider.GetService<TransactionPool>();
}

/// <summary>
/// Populates the incoming transaction display.
/// </summary>
private void OnTransactionRequested(TransactionRequest request)
private void RequestTransaction(EmbeddedWalletTransaction transaction)
{
_transactionQueue.Enqueue(request);

if (_processingTransaction)
{
return;
}

_processingTransaction = true;

PromptTransactionRequest();
PromptTransactionRequest(transaction);
}

/// <summary>
/// Prompts transaction request display.
/// </summary>
private void PromptTransactionRequest()
private void PromptTransactionRequest(EmbeddedWalletTransaction transaction)
{
var transaction = _transactionQueue.Peek();

incomingTxNotification.SetActive(true);

if (AutoConfirmTransactions)
Expand All @@ -102,18 +100,17 @@ private void PromptTransactionRequest()

incomingTxPlaceHolder.SetActive(false);
incomingTxDisplay.SetActive(true);
incomingTxHashText.text = transaction.Data;
incomingTxActionText.text = transaction.Value?.ToString() ?? "Sign Request";
incomingTxHashText.text = transaction.Request.Data;
incomingTxActionText.text = transaction.Request.Value?.ToString() ?? "Sign Request";
}

/// <summary>
/// Accepts an incoming transaction request.
/// </summary>
private void AcceptRequest()
{
var transaction = _transactionQueue.Dequeue();
ShowTxLoadingMenu();
_transactionHandler.TransactionApproved(transaction.Id);
_transactionHandler.TransactionApproved();
ResetTransactionDisplay();
}

Expand All @@ -122,16 +119,17 @@ private void AcceptRequest()
/// </summary>
private void RejectRequest()
{
var transaction = _transactionQueue.Dequeue();
_transactionHandler.TransactionDeclined(transaction.Id);
_transactionHandler.TransactionDeclined();
ResetTransactionDisplay();
}

/// <summary>
/// Gets transaction data.
/// </summary>
private void OnTransactionConfirmed(TransactionResponse response)
private void OnTransactionConfirmed(EmbeddedWalletTransaction transaction)
{
var response = transaction.Response.Task.Result;

var txHash = response.Hash;
var txTime = DateTime.Now.ToString("hh:mm tt");
var txAmount = response.Value?.ToString() ?? "0";
Expand Down Expand Up @@ -180,9 +178,9 @@ private void ResetTransactionDisplay()
incomingTxDisplay.SetActive(false);
incomingTxPlaceHolder.SetActive(true);
// there's transactions in queue
if (_transactionQueue.Count > 0)
if (_transactionPool.Count > 0)
{
PromptTransactionRequest();
RequestTransaction(_transactionPool.Peek());
}

else
Expand Down Expand Up @@ -253,7 +251,7 @@ private void ToggleAutoTx(bool arg0)
private void OnEnable()
{
Web3AuthEventManager.ConfigureTxManager += OnConfigureTxManager;
_transactionHandler.OnTransactionRequested += OnTransactionRequested;
_transactionHandler.OnTransactionQueued += RequestTransaction;
_transactionHandler.OnTransactionConfirmed += OnTransactionConfirmed;
}

Expand All @@ -263,7 +261,7 @@ private void OnEnable()
private void OnDisable()
{
Web3AuthEventManager.ConfigureTxManager -= OnConfigureTxManager;
_transactionHandler.OnTransactionRequested -= OnTransactionRequested;
_transactionHandler.OnTransactionQueued -= RequestTransaction;
_transactionHandler.OnTransactionConfirmed -= OnTransactionConfirmed;
}

Expand Down
Loading