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