diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayWebGLProvider.cs b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayWebGLProvider.cs
index 8abc568f3..2e6efbe7e 100644
--- a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayWebGLProvider.cs
+++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayWebGLProvider.cs
@@ -17,6 +17,7 @@ public class HyperPlayWebGLProvider : HyperPlayProvider
private readonly IHyperPlayConfig _config;
private readonly IHyperPlayData _data;
private readonly DataStorage _dataStorage;
+ private readonly IHttpClient _httpClient;
private readonly IChainConfig _chainConfig;
private readonly ChainRegistryProvider _chainRegistryProvider;
private readonly EthereumWindowController _ethereumController;
@@ -27,14 +28,15 @@ public class HyperPlayWebGLProvider : HyperPlayProvider
/// Injected .
/// Injected .
/// Injected .
- /// HttpClient to make requests.
+ /// Injected .
/// ChainConfig to fetch chain data.
/// Injected .
- public HyperPlayWebGLProvider(IHyperPlayConfig config, IHyperPlayData data, DataStorage dataStorage, IHttpClient httpClient, IChainConfig chainConfig, ChainRegistryProvider chainRegistryProvider) : base(config, data, dataStorage, httpClient, chainConfig, chainRegistryProvider)
+ public HyperPlayWebGLProvider(IHyperPlayConfig config, IHyperPlayData data, DataStorage dataStorage, Web3Environment environment, IChainConfig chainConfig, ChainRegistryProvider chainRegistryProvider) : base(config, data, dataStorage, environment, chainConfig, chainRegistryProvider)
{
_config = config;
_data = data;
_dataStorage = dataStorage;
+ _httpClient = environment.HttpClient;
_chainConfig = chainConfig;
_chainRegistryProvider = chainRegistryProvider;
@@ -84,7 +86,7 @@ public override async Task Connect()
/// RPC request parameters.
/// RPC request response type.
/// RPC request Response.
- public override async Task Perform(string method, params object[] parameters)
+ public override async Task Request(string method, params object[] parameters)
{
var response = await _ethereumController.Request(method, parameters);
diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/IWeb3AuthTransactionHandler.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/IWeb3AuthTransactionHandler.cs
index 7b4ec9286..9a120b03b 100644
--- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/IWeb3AuthTransactionHandler.cs
+++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/IWeb3AuthTransactionHandler.cs
@@ -3,22 +3,31 @@
namespace ChainSafe.GamingSdk.Web3Auth
{
+ ///
+ /// Handles web3Auth Transaction requests, approvals, declines and confirmations.
+ ///
public interface IWeb3AuthTransactionHandler
{
- public event Action OnTransactionRequested;
-
- public event Action OnTransactionConfirmed;
-
- public event Action OnTransactionApproved;
-
- public event Action OnTransactionDeclined;
-
- public void RequestTransaction(TransactionRequested transactionRequested);
-
- public void ConfirmTransaction(TransactionConfirmed transactionConfirmed);
-
- public void ApproveTransaction(TransactionApproved transactionApproved);
-
- public void DeclineTransaction(TransactionDeclined transactionDeclined);
+ ///
+ /// Invokes when transaction is requested.
+ ///
+ public event Action OnTransactionRequested;
+
+ ///
+ /// Invokes when transaction is confirmed on block.
+ ///
+ public event Action OnTransactionConfirmed;
+
+ ///
+ /// Transaction got approved.
+ ///
+ /// Transaction pool Id of Transaction that was approved.
+ public void TransactionApproved(string transactionId);
+
+ ///
+ /// Transaction got declined.
+ ///
+ /// Transaction pool Id of Transaction that was declined.
+ public void TransactionDeclined(string transactionId);
}
}
\ No newline at end of file
diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/Web3AuthWalletGUITxManager.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/Web3AuthWalletGUITxManager.cs
index ca7adebaf..b3c79791b 100644
--- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/Web3AuthWalletGUITxManager.cs
+++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/Web3AuthWalletGUITxManager.cs
@@ -14,7 +14,7 @@
public class Web3AuthWalletGUITxManager : MonoBehaviour
{
#region Fields
-
+
[SerializeField] private ScrollRect txScrollRect;
[SerializeField] private TextMeshProUGUI incomingTxActionText;
[SerializeField] private TextMeshProUGUI incomingTxHashText;
@@ -34,21 +34,21 @@ public class Web3AuthWalletGUITxManager : MonoBehaviour
private bool _processingTransaction;
private IWeb3AuthTransactionHandler _transactionHandler;
- private Queue _transactionQueue = new Queue();
-
+ private readonly Queue _transactionQueue = new();
+
#endregion
#region Properties
-
+
private bool AutoPopUpWalletOnTx { get; set; }
private bool AutoConfirmTransactions { get; set; }
private TMP_FontAsset DisplayFont { get; set; }
private Color SecondaryTextColour { get; set; }
-
+
#endregion
#region Methods
-
+
///
/// Initializes objects.
///
@@ -61,13 +61,13 @@ private void Awake()
_transactionHandler = Web3Accessor.Web3.ServiceProvider.GetService();
}
-
+
///
/// Populates the incoming transaction display.
///
- private void OnTransactionRequested(TransactionRequested transactionRequested)
+ private void OnTransactionRequested(TransactionRequest request)
{
- _transactionQueue.Enqueue(transactionRequested);
+ _transactionQueue.Enqueue(request);
if (_processingTransaction)
{
@@ -75,23 +75,23 @@ private void OnTransactionRequested(TransactionRequested transactionRequested)
}
_processingTransaction = true;
-
+
PromptTransactionRequest();
}
-
+
///
/// Prompts transaction request display.
///
private void PromptTransactionRequest()
{
- TransactionRequested transactionRequested = _transactionQueue.Peek();
-
+ var transaction = _transactionQueue.Peek();
+
incomingTxNotification.SetActive(true);
if (AutoConfirmTransactions)
{
AcceptRequest();
-
+
return;
}
@@ -102,45 +102,43 @@ private void PromptTransactionRequest()
incomingTxPlaceHolder.SetActive(false);
incomingTxDisplay.SetActive(true);
- incomingTxHashText.text = transactionRequested.Transaction.Data;
- incomingTxActionText.text = transactionRequested.Transaction.Value?.ToString() ?? "Sign Request";
+ incomingTxHashText.text = transaction.Data;
+ incomingTxActionText.text = transaction.Value?.ToString() ?? "Sign Request";
}
-
+
///
/// Accepts an incoming transaction request.
///
private void AcceptRequest()
{
- TransactionRequested transactionRequested = _transactionQueue.Dequeue();
+ var transaction = _transactionQueue.Dequeue();
ShowTxLoadingMenu();
- _transactionHandler.ApproveTransaction(new TransactionApproved(transactionRequested.Id));
+ _transactionHandler.TransactionApproved(transaction.Id);
ResetTransactionDisplay();
}
-
+
///
/// Rejects an incoming transaction request.
///
private void RejectRequest()
{
- TransactionRequested transactionRequested = _transactionQueue.Dequeue();
- _transactionHandler.DeclineTransaction(new TransactionDeclined(transactionRequested.Id));
+ var transaction = _transactionQueue.Dequeue();
+ _transactionHandler.TransactionDeclined(transaction.Id);
ResetTransactionDisplay();
}
-
+
///
/// Gets transaction data.
///
- private void OnTransactionConfirmed(TransactionConfirmed transactionConfirmed)
+ private void OnTransactionConfirmed(TransactionResponse response)
{
- var response = transactionConfirmed.Transaction;
-
var txHash = response.Hash;
var txTime = DateTime.Now.ToString("hh:mm tt");
var txAmount = response.Value?.ToString() ?? "0";
var txAction = response.Value != null ? response.Value.ToString() : "Sign Request";
AddTransactionToHistory(txTime, txAction, txAmount, txHash);
}
-
+
///
/// Adds a transaction to the history area.
///
@@ -170,7 +168,7 @@ private void AddTransactionToHistory(string time, string action, string amount,
txObjectNumber++;
txScrollRect.verticalNormalizedPosition = 0;
}
-
+
///
/// Resets the transaction display.
///
@@ -192,7 +190,7 @@ private void ResetTransactionDisplay()
_processingTransaction = false;
}
}
-
+
///
/// Updates the transaction history prefab text.
///
@@ -221,7 +219,7 @@ private void UpdateTransactionHistory(int txObjectIndex, string txNumber, string
txHistoryObj.GetComponent